基于FPGA的步進電機正弦波細分驅動器設計
摘 要:本設計應用Altera 公司的Cyclone II系列的FPGA(現(xiàn)場可編程門陣列)實現(xiàn)了對步進電機正弦波可變細分控制,并在FPGA中進行了具體驗證和實現(xiàn)。該方案綜合運用了電流跟蹤型SPWM技術、PI調節(jié)、片上可編程系統(tǒng)SOPC技術、EDA技術等。步進電機控制系統(tǒng)用FPGA實現(xiàn)了Nios II軟核處理器與硬件邏輯電路集于一體,發(fā)揮了處理器的靈活性和數(shù)字邏輯電路高速性,有效地解決了步距角的高細分問題,細分數(shù)最高達4096,而且細分數(shù)可自動調節(jié)。實驗表明高細分大大提高了步進電機的控制精度,降低了電機運行噪聲消除了低頻振蕩。
關鍵詞: 步進電機驅動器;Nios II;細分;FPGA
1 引言
步進電機是一種將電脈沖信號轉換成相應的角位移(或線位移)的機電元件,具有結構簡單堅固耐用工作可靠的優(yōu)點因此廣泛應用于工業(yè)控制領域。由于脈沖的不連續(xù)性又使步進電機運行存在許多不足之處,如低頻振蕩、噪聲大、分辨率不高及驅動系統(tǒng)可靠性差等,嚴重制約了其應用范圍。步進電機的細分控制有效地解決了這一問題,但是傳統(tǒng)的步進電機驅動系統(tǒng)大多數(shù)采用的是用單片機作為控制芯片,外加分立的數(shù)字邏輯電路和模擬電路構成。受單片機工作頻率的限制,細分數(shù)不是很高,因此驅動器的控制精度較低,控制性能不是很理想。隨著高性能數(shù)字信號處理器DSP的出現(xiàn),以DSP為控制核心,以軟件方式實現(xiàn)電機控制一度成為研究的熱點。近年來隨著可編程邏輯器件的飛速發(fā)展,使得可編程邏輯器件功能越來越強大從而促使高集成化高精度驅動器的出現(xiàn)。因此本文提出了一種基于SOPC片上可編程的全數(shù)字化步進電機控制系統(tǒng),本系統(tǒng)是以FPGA為核心控制器件,將驅動邏輯功能模塊和控制器成功地集成在FPGA上實現(xiàn),充分發(fā)揮了硬件邏輯電路對數(shù)字信號高速的并行處理能力,可以使步進電機繞組電流細分達到4096,且細分數(shù)可以自動調節(jié),極大地提高了控制精度和驅動器的集成度,減小了驅動器體積。
2 步進電機細分驅動原理
步進電機的細分控制本質上是對步進電機勵磁繞組中的電流進行控制,在普通驅動方式下,驅動電路只是通過對電動機繞組激磁電流的“開”和“關”,使步進電動機轉子以其本身的步距角分步旋轉。步進電動機靠定子、轉子磁極間的電磁力來進行工作,當它處于“雙拍”狀態(tài)工作時,其定位位置是正好位于兩通電磁極的中間,即依靠兩通電磁極電磁吸引力的平衡而獲得的。由此可以推論:如果能夠進一步仔細地控制兩磁極電磁吸引力的大小,使轉子磁極獲得更多種由于兩相定子磁極的電磁吸引力差異而形成的平衡定位位置。步進電機細分驅動方式就是應用了這一原理,在細分驅動時,細分控制器通過控制各相激磁繞組電流的逐步增大及逐步減小,讓轉子處于多個磁力平衡狀態(tài)使電機內部的合成磁場為均勻的圓形旋轉磁場,實現(xiàn)步距角變小、電動機的旋轉得到細化的目的。合成的磁場矢量的幅值決定了電機旋轉力矩的大小,相鄰兩個合成磁場矢量的夾角大小決定了該步距角的大小。對于三相步進電機而言,向A、B、C繞組分別通以相位相差2/3π,而幅值相同的正弦波電流(圖1),則合成的電流矢量在空間做幅值恒定的旋轉運動,其對應的合成磁場矢量也作相應的旋轉從而形成旋轉力矩(圖2)。
A、B、C三相瞬時電流值如式(1)、(2)、(3)所示。
(1)
(2)
(3)
圖1 步進電機正弦細分三相繞組電流波形圖
圖2旋轉力矩圖
細分驅動方式下,由于步距角小,步進電機的控制精度明顯提高,同時這種驅動方式又有效抑制低速運行中產(chǎn)生的噪聲和振蕩現(xiàn)象。
3 控制器總體設計方案
步進電機三相繞組的電流是正弦階梯電流,通過改變給定電流的每一次變化的階梯數(shù)可以實現(xiàn)可變細分功能。驅動器的任務就是控制繞組的電流,使之按正弦階梯波的規(guī)律變化。每給一個步進脈沖,A、B、C三相繞組的電流沿正弦階梯波前進一步,電機轉動一個步距角。步進電動機驅動主回路圖如圖3所示IA、IB為兩個霍爾元件。圖中6個IGBT集成在電源控制模塊IPM內。
圖3 步進電動機驅動主回路圖
步進電機控制系統(tǒng)框圖如圖4所示。采用FPGA作為主控制芯片, 將控制器與驅動器的數(shù)字電路部分集成在一片F(xiàn)PGA上實現(xiàn)。為了控制繞組電流,在設計中引入電流跟蹤型閉環(huán)反饋,反饋電流與給定的正弦電流(離散的正弦表)經(jīng)過改進的比例積分PI調節(jié)后進行SPWM調制,輸出6路PWM波,來控制驅動電路三個橋臂上的6個IGBT開通關斷。如果忽略死區(qū)時間控制每個橋臂的上下半橋的兩路PWM波互補即上半橋PWM波為高/低電平時,下半橋PWM波為低/高電平。系統(tǒng)采用14位寬度200MHz計數(shù)器產(chǎn)生PWM載波,載波頻率12.2KHz,電流數(shù)據(jù)全部采用14位精度進行離散化。200MHz時鐘由50MHz時鐘經(jīng)PLL倍頻產(chǎn)生。FPGA輸出的PWM波經(jīng)功率模塊放大后,控制步進電機運行。步進電機運行狀態(tài)(轉速和轉向)通過LED指示。步進電機轉速是由查表速度決定的,CP是用來決定查表頻率,在細分等級一定的情況下CP速度越高電機轉速越快。如果電機在高細分下高速旋轉則CP脈沖頻率就會很高,導致PWM脈寬過小,使功率模塊IGBT控制橋臂頻繁開關,其結果是開關損耗大為增加,功率模塊過熱。而高細分在步進電機高速旋轉時其優(yōu)勢并不明顯,所以在不影響電機運行精度的情況下,系統(tǒng)根據(jù)轉速對細分精度在4096、2048、1024、512、256、128、64、32之間自動調節(jié),使電機更加平穩(wěn)可靠的運行。
圖4 控制系統(tǒng)框圖
3.1 FPGA結構設計
本系統(tǒng)是由集成在系統(tǒng)采用層次化開發(fā)方式,頂層模塊由多個子模塊組合而成,F(xiàn)PGA設計系統(tǒng)框圖如圖5所示。系統(tǒng)由Nios II微處理器模塊和數(shù)字邏輯模塊組成。
圖5 FPGA設計系統(tǒng)框圖
控制器采Nios II的32位CPU軟核,由SOPC Builder 生成。用來接收外界控制信號并把信號處理后送給脈沖發(fā)生器,并通過輸出端口控制LED來指示系統(tǒng)工作情況。系統(tǒng)頂層設計圖如圖6所示,系統(tǒng)由CPU軟核(stepmotor_controller、CP發(fā)生器(PatternGenerator)、正弦查表控制模塊(interface)、A/D電流采樣模塊(currenttop)、C相電流計算模塊(Current_c)調節(jié)模塊、PI調節(jié)模塊(pimodule)、PWM發(fā)生模塊(PWM)組成,各模塊功能如下:
CPU:接受外界控制信號把信號處理后得到相應的細分等級和與速度對應的控制信號送給CP發(fā)生器,把轉向信號處理后送到查表控制模塊,并把轉速和轉向信號送到LED數(shù)碼管和發(fā)光二極管來指示電機運行情況;
CP發(fā)生器:接受轉速控制信號發(fā)出與轉速相對應的CP脈沖并給出相應轉速下對應的最佳細分等級;
正弦查表控制模塊:根據(jù)CP脈沖和細分等級進行查表產(chǎn)生參考電流,根據(jù)轉向控制信號來決定查表方向來實現(xiàn)轉向控制;
A/D電流采樣模塊:采集步進電機A、B兩相電流值;
C相電流計算模塊:根據(jù)基爾霍夫電流定律A、B、C三相電流之和為零,由A/D采集的A、B兩相的電流計算出C相電流;
PI調節(jié)模塊:將參考正弦電流與反饋電流差值進行PI調節(jié),把調節(jié)后的控制信號,為了防止IPM內上下半橋的IGBT同時導通,導致IPM短路,PI模塊內設置的了死區(qū)時間。
圖6 系統(tǒng)頂層設計圖
頂層接口說明:
AD_in_a、AD_in_b 是 AD1674轉換輸出的數(shù)字信號;
AD_CE、AD_RD、AD_STS為AD的控制信號;
clk、reset分別為系統(tǒng)時鐘輸入端口和系統(tǒng)復位端口;
enable端口是PWM發(fā)生器使能端,功率模塊溫度過高熱保護就會動作將enable置0停止發(fā)出PWM波,保護驅動器;
setspeet、rotate_dirc分別為轉速和轉向控制端口;
led_sel、speeddisplay、led_indicator為工作情況指示電路;
pl_a、ph_a、pl_b、ph_b、pl_c、ph_c為A、B、C三相橋臂的上下半橋控制端;
3.2 Nios II軟核設計
在本控制器中利用CPU控制靈活的功能用來接受并處理外界控制號再將處理過的控制信號送到各個功能模塊,因此Nios II軟核采用了經(jīng)濟型即Nios II/e,加入了用于輸入輸出端口(PIO)、片上存儲器模塊(On chip Memory)??刂破鞒绦蛄鞒虉D軟件程序工作流程如圖7所示。
圖7 CPU控制流程圖
CPU內部程序采用C++語言編寫,并對電機的控制狀態(tài)建立類。通過對電機的控制狀態(tài)對象的操作,即可輸出各種控制命令到接口模塊和CP脈沖發(fā)生模塊,控制電機狀態(tài);同時在程序主循環(huán)中監(jiān)視用戶的各種輸入,更新電機的控制狀態(tài)對象的成員變量。
3.3 CP發(fā)生器模塊和查表控制模塊
PatternGenerator模塊根據(jù)設置的電機轉速產(chǎn)生相應的CP脈沖和在該轉速下的最適宜的細分等級,并把這些信號傳送給查表控制模塊。CP發(fā)生器模塊和查表控制模塊如圖8所示。
圖8 CP 發(fā)生器模塊和查表控制模塊
查表控制模塊(interface)內部例化了一個只讀存儲器,存放一個周期的正弦數(shù)據(jù)表。正弦表數(shù)據(jù)寬度與系統(tǒng)數(shù)據(jù)流數(shù)據(jù)寬度一致,因此選擇14位寬度。正弦表深度決定了驅動器的最大細分等級,關系式表示為:NMAX=2N,當N=12時,達到最高細分等級4096細分。外部輸入CP和CCW信號后,通過順序的給出三相繞組對應的地址數(shù)據(jù),即可查得三相相電流的給定數(shù)據(jù),并同時更新三個給定數(shù)據(jù)寄存器,送入下一個環(huán)節(jié)。轉向交換也在本模塊實現(xiàn)。輸入的CCW信號將控制一個路選擇器,控制正弦表的查表方向來改變步進電機轉向。本模塊通過輸入的細分等級信號和CP脈沖信號共同決定三相繞組的地址數(shù)據(jù)的每次增量大小。當細分等級最高時,地址計數(shù)器每次增1或減1;當處于非最高細分精度時,地址計數(shù)器每次遞增2的N次冪,N由當前的細分等級確定。
3.4 AD采樣模塊與C相電流計算模塊
步進電機A、B兩相電流通過霍爾元件進行采集,AD采樣模塊通過采集采樣電阻上的電壓來將電機A、B兩相電流的模擬量轉換為數(shù)字量,C相電流模塊由基爾霍夫電流定律ia+ib+ic=0計算得到。圖9為兩模塊的端口。
圖9 AD采樣模塊與C相電流計算模塊
3.5 PI調節(jié)模塊
PI調節(jié)模塊是對給定數(shù)據(jù)和反饋數(shù)據(jù)進行離散化PI調節(jié)。模塊的數(shù)據(jù)寬度統(tǒng)一為14位,即給定數(shù)據(jù)/反饋數(shù)據(jù)/控制數(shù)據(jù)都用14位寬度無符號整型數(shù)據(jù)表示。本模塊實現(xiàn)一個PI控制器功能,如圖10所示。
圖10 PI控制邏輯框圖
PI調節(jié)離散化公式如(4)式所示。
I(K)=I(K-1)+KP*(E(K)-E(K-1))+KI*E(K) (4)
其中,1500≤I(K)≤14384,I(0) = 8192,E(K)=IREF-IOUT
模塊在收到啟動信號后,先寄存給定數(shù)據(jù)/反饋數(shù)據(jù),再對二者擴寬符號位做有符號減法,并啟動KI乘法器計算KI乘以誤差e的結果。對減法的計算結果取絕對值,并與閥值作比較(常數(shù)比較器),比較的結果存入寄存器。計算e的誤差增量,即E(K)-E(K-1) ,并用KP乘法器計算KP乘以誤差增量的結果。將KI乘法器計算的結果先送入累加器,然后再將KP乘法器計算的結果送入累加器;模塊的累加器在每次累加的時候會進行溢出處理和數(shù)據(jù)超出邊界處理,無論哪種情況都會置為邊界值(最大/最小值)。
3.6 PWM發(fā)生器模塊
PWM發(fā)生器模塊將PI調節(jié)后輸出的數(shù)據(jù)轉化為PWM波形輸出給IGBT模塊,通過IGBT的通斷切換調整相電壓,進而改變相電流按照給定進行變化。PWM波形的生成是通過將給定控制數(shù)據(jù)和載波數(shù)據(jù)比較,通過比較二者大小情況確定PWM的高低電平,實現(xiàn)PWM調制,如圖11所示。
圖11 PWM模塊總體框圖
鋸齒波作為PWM載波,驅動時鐘頻率為200MHz,14位寄存器寬度。為減少計數(shù)器的進位鏈長度,采用計數(shù)器,拆分為3位計數(shù)器和11位計數(shù)器,減少了組合邏輯延遲。死區(qū)保護發(fā)生器模塊根據(jù)給定的死區(qū)長度數(shù)據(jù),將輸入的PWM信號輸出為PH和PL信號,分別對應IGBT的上下橋臂,并在PH和PL數(shù)據(jù)的變沿插入死區(qū)保護(同時置為低電平)。插入的死區(qū)保護是通過上升計數(shù)器和下降計數(shù)器來實現(xiàn)的,保證上橋臂和下橋臂不同時導通。
4仿真結果
對PWM模塊進行功能仿真,仿真波形如圖12所示。經(jīng)分析,六路PWM波滿足時序和死區(qū)保護的要求,實現(xiàn)了設計所要達到的目。將圖12進行放大可見IGBT死區(qū)如圖13所示。
圖12 PWM功能仿真波形
圖13 IGBT控制信號死區(qū)
5電機運行波形及分析
把FPGA配置好之后,對系統(tǒng)調試電機運行時三相電流波形如圖14所示,電機換向時進行反轉查表,電機轉速反轉波形如圖15所示。
圖14 步進電機運行時三相電流
圖15 步進電機反轉時電流波形
實驗結果表明步進電機運行時三相電流相位差120度,三相電流為正弦波,電機運行平穩(wěn),電機反轉時進行反相查表,轉換方向時反應時間短,電流波動小。
6結論
本控制器采用Altera 公司嵌入Nios II處理器軟核的FPGA實現(xiàn)了步進電機正弦波可變細分控制,大大提高了系統(tǒng)的可靠性,降低了設計成本。
控制部分采用Nios II CPU軟核是系統(tǒng)控制更加方便靈活。CPU和各個控制模塊集成在單片F(xiàn)PGA內,使驅動器集成度大為提高,減小了驅動器的體積。大大提高了細分精度,實現(xiàn)了步進電機在是低轉速下的4096高細分的運行,消除了步進電機存在的低頻振蕩問題,控制精度顯著提高,在高精密數(shù)控機床中有廣泛的應用前景。
電氣符號相關文章:電氣符號大全
fpga相關文章:fpga是什么
pwm相關文章:pwm是什么
c++相關文章:c++教程
霍爾傳感器相關文章:霍爾傳感器工作原理
負離子發(fā)生器相關文章:負離子發(fā)生器原理 塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理 霍爾傳感器相關文章:霍爾傳感器原理 絕對值編碼器相關文章:絕對值編碼器原理 脈沖點火器相關文章:脈沖點火器原理
評論