萬緒偉
摘 要:本次試驗設計了一種以現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)對步進電機實現(xiàn)加減速的控制系統(tǒng),以實現(xiàn)對步進電機的控制。在步進電機控制系統(tǒng)中,以EP4CE30F23C8芯片作為核心處理器,將A3977作為步進電機驅動對象,編寫了硬件描述語言(Hardware Description Language,HDL)代碼,經(jīng)過功能仿真、綜合、布線、門級仿真,最終通過了MedolSim軟件仿真驗證,驗證了可行性。上機位將加減速算法傳輸?shù)紽PGA內(nèi)部寄存器,實現(xiàn)了對步進電機的精確控制。
關鍵詞:步進電機;FPGA;加減速算法;電機控制
中圖分類號:TM383.6 文獻標識碼:A 文章編號:1003-5168(2021)31-0028-03
Design of Stepper Motor Acceleration and Deceleration
Control System Based on FPGA
WAN Xuwei
(Yili Normal University College of Electronics and Information Engineering,Yining Xinjiang 835000)
Abstract: This experiment designed a Field-Programmable Gate Array(FPGA) on the stepper motor acceleration and deceleration control system to achieve the control of the stepper motor. In the stepper motor control system, EP4CE30F23C8 chip is used as the core processor, A3977 is used as the stepper motor drive object, and Hardware Description Language(HDL) hardware description language code is written. After functional simulation, synthesis, wiring, and gate-level simulation, it finally passed the MedolSim software simulation test, determined the feasibility. The acceleration and deceleration algorithm is transmitted to the FPGA internal register to achieve precise control of the stepper motor.
Keywords: stepper motor;Field-Programmable Gate Array(FPGA);acceleration and deceleration algorithm;motor control
步進電機具有高精度和較好的重復性,應用越來越廣泛。其采用現(xiàn)場可編程陣列(Field-Programmable Gate Array,F(xiàn)PGA)進行基本運行的啟動和控制。相比大多數(shù)單片機控制步進電機,現(xiàn)場可編程陣列(FPGA)具有并行、多參數(shù)處理和高性能優(yōu)勢,非常適合對步進電機進行控制。FPGA在空間環(huán)境具有一定的可靠性[1],自身集成了數(shù)字信號處理(Digital Signal Process,DSP)資源,擁有脈沖控制資源[2],被廣泛應用于電機領域[3]。FPGA產(chǎn)生的脈沖個數(shù)、占空比都可隨時調(diào)整[4]。為了使步進電機啟動后不會失步或過沖,在設計頻率的變化和等級時要更加精確,在一定頻率范圍內(nèi)按脈沖的要求快速啟動、停止和反轉[5]。為了實現(xiàn)高精度控制,設置了3個定時器,大大提高了系統(tǒng)穩(wěn)定性。利用FPGA的并行和可重構優(yōu)勢,實現(xiàn)了步進電機的控制[6]。EP4CE30F23C8芯片擁有豐富的資源,在系統(tǒng)較為復雜的情況下依舊可以提供可靠保障。隨著占空比的增加或減小,頻率發(fā)生了改變。脈寬調(diào)節(jié)是很有效的方式[7],F(xiàn)PGA作為輔處理器,負責發(fā)送驅動脈沖,控制步進電機控制器運動[8]。FPGA作為主控單元,具有豐富的IO口,可以同時實現(xiàn)多路電機控制[9]。
1 步進電機控制理論
復雜的機電系統(tǒng)離不開必要的控制系統(tǒng)[10]。步進電機控制系統(tǒng)在運動控制系統(tǒng)中尤為重要[11]。
1.1 步進電機工作原理
步進電機在定子和轉子上都有齒輪,轉子上的齒輪都有磁性。定子上的繞線線圈充電后,可以通過磁力作用使轉子轉動。轉子和定子的齒輪有一個角度差,不同相線圈輪流按順序通電,就能夠控制轉子的速度和轉動方向。所以,控制步進電機不僅要有周期性的波形信號,還需要有足夠的電流,不能用一般控制芯片的信號輸出直接驅動,要通過步進電機驅動器控制電機。在步進電機中,轉子在最中心,周圍圍繞著的是定子。多少拍就有多少個相圈,每通電一次,發(fā)生一次轉動。時步距角[θs]的計算公式為:
θ=360°/MT (1)
式中:M為定子相數(shù);T為轉子齒數(shù)。
1.2 加減速控制算法
在數(shù)字控制系統(tǒng)和各項電機控制系統(tǒng)中,加減速控制主要有3種。對于梯形加減速控制,加速頻率曲線呈梯形,先從0開始直線加速到最上面的一條邊,然后水平勻速運動,最后沿直線邊減速到0。指數(shù)型加減速控制與梯形不同的是加速時呈指數(shù)曲線加速到最高點,再以指數(shù)曲線減速至最低點。S形加減速控制和其他加速曲線不同的是加速時呈S形曲線加減速。它們的特性曲線如圖1所示。
圖1中,曲線a是梯形加減速控制曲線,表示為:
f(t)=f+at? (2)
式中:f(t)為步進電機正在加速頻率,f為空載時步進電機的啟動頻率,a為加速度,t為時間。若加速頻率沒有到達目標頻率,空載頻率為500 Hz,目標頻率為5 000 Hz,每經(jīng)過一個脈沖增加100 Hz,t=45 s時到達目標頻率。當沒有到達目標頻率時,可以控制電機加減頻率,在[t]不滿足時慢慢加速從而得到目標頻率。當達到目標頻率后,應該減速到停止狀態(tài),才能實現(xiàn)電機的啟動和停止。
圖1中,曲線b是指數(shù)加減速控制曲線,表示為:
f(t)-ff-f=e? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
從t=0 s開始,步進電機的啟動頻率f為0;當[t]趨于無窮大時,整體趨于常數(shù),速度保持不變,步進電機開始勻速轉動;當輸入脈沖頻率為0 Hz時,加速度為負數(shù),速度減小,步進電機開始降速。
圖1中,曲線c是S形加減速控制曲線。c曲線比a曲線、b曲線更加圓滑,加速和減速更加柔和,控制更加穩(wěn)定,是一種理想的加速減速控制系統(tǒng)。但是,c曲線被分成多段曲線控制,需要修改大量參數(shù),提高了算法的復雜性,并不適用于硬件系統(tǒng)。
2 基于FPGA步進電機控制器的設計
本控制系統(tǒng)設計由FPGA開發(fā)板、步進電機和A3977驅動電路組成。
2.1 系統(tǒng)硬件設計
FPGA核心板芯片采用Altera公司Cyclone Ⅳ系列的EP4CE30F23C8。使用JTAG下載器,把上機位的命令下載到FPGA開發(fā)板上,令驅動電機驅動芯片A3977驅動步進電機,實現(xiàn)步進電機的加減速控制。寫好的Verilog代碼通過串行方式傳輸?shù)紽PGA內(nèi)部,經(jīng)過電路傳遞,最終以并行方式輸出信號。
2.2 系統(tǒng)軟件設計
本文使用的是Quartus Prime平臺,從頂層框架往下實現(xiàn)所有實驗功能,包括輸入時鐘信號、低電平復位信號、撥碼開關信號和輸出PWM信號。FPGA開發(fā)板上的撥碼開關實現(xiàn)物理操控步進電機的正反轉,Verilog代碼命令傳遞并寄存到FPGA寄存器上,通過命令控制器控制步進電機驅動,實現(xiàn)步進電機的正反轉和加減速。步進電機可以實現(xiàn)正反轉、加速減速和啟動停止,啟動頻率為500 Hz。開始就改變速度值的大小,改變1 h的頻率,使到達啟動頻率時電機正常運轉。FPGA開發(fā)板的晶振為50 MHz,經(jīng)過分頻處理得到一個為周期clk 10 ms的頻率,以起到計時作用。在要做好脈沖觸發(fā)器上設置加速時間、勻速時間和加速時間,方便達到目標頻率。
3 試驗仿真和驗證
使用ModelSim驗證平臺,因為其仿真測試能力強大,并編寫testbench文件。為了使程序能在板卡上正常運行,要做好仿真驗證。要先寫激勵脈沖文件,然后得到波形圖進行分析。計時器啟動頻率為500 Hz,每經(jīng)過一次脈沖,頻率增加100 Hz,直到增加到目標頻率5 000 Hz,加速完成。進入勻速,計時器計時持續(xù)110 ms。進入倒計時,每經(jīng)過一個脈沖,頻率減小100 Hz,完成減速,最終停止。工況一為步進電機步數(shù)仿真,每通一次電,步距改變一次。工況二先加速再勻速最終減速到0,最終停止。
在加速階段,每10 ms頻率增大100 Hz,波形圖方波先寬后逐漸變窄,步進電機轉動逐漸變快;在勻速階段,每10 ms頻率保持不變,波形圖方波在中間一段沒有變化,步進電機轉速沒有發(fā)生改變;在減速階段,每10 ms頻率減小100 Hz,波形圖方波逐漸變寬,步進電機逐漸變慢。通過對波形圖的分析可知,波形圖試驗達到了預期效果。
4 結語
針對步進電機如何控制的問題本文,采用Verilog代碼編寫、功能仿真、HDL綜合及布線后仿真,設計了一種基于FPGA的加減速控制系統(tǒng)。各個模塊分工明確、合理,系統(tǒng)運行良好,符合各項目標需求。在本設計的基礎上可以進一步開發(fā)FPGA多路處理能力,具有極高的實用價值。
參考文獻:
[1]胡雪剛,王濤,張軍,等.基于國產(chǎn)FPGA的天線指向機構伺服控制器的設計[J].機械制造與自動化,2021(5):164-167.
[2]邱靖超.基于FPGA的步進電機多軸運動控制系統(tǒng)設計[D].太原:中北大學,2021:25.
[3]孫磊.基于FPGA的步進電機矢量控制研究[D].南京:南京航空航天大學,2018:9.
[4]侯俊杰,趙宇,李孟委.基于Zynq的步進電機控制系統(tǒng)[J].國外電子測量技術,2021(3):108-112.
[5]王瑩瑩,劉玉東,孫冬凱.基于FPGA的步進電機控制系統(tǒng)設計研究[J].電子制作,2020(16):26-27.
[6]劉佳.基于DSP+FPGA的雷達伺服控制器的設計與開發(fā)[D].西安:西安電子科技大學,2020:38.
[7]杜維康,王景存.基于FPGA和LMD18200的步進電機控制系統(tǒng)[J].現(xiàn)代電子技術,2018(13):142-146.
[8]任福.基于ARM+FPGA雕刻機控制系統(tǒng)的設計[D].哈爾濱:哈爾濱理工大學,2018:20.
[9]孫磊,張得禮.基于FPGA的步進電機伺服控制系統(tǒng)研究[J].機械與電子,2018(3):40-44.
[10]王淑嫻,彭東林,吳治嶧,等.伺服電機位置檢測技術綜述[J].儀器儀表學報,2018(8):143-153.
[11]邱靖超,劉新妹,殷俊齡,等.一種基于FPGA的多通道步進電機控制系統(tǒng)的設計[J].國外電子測量技術,2021(4):72-77.