王巖
摘 要:針對現(xiàn)有步進電機控制器的不足,設計一種基于FPGA(Field-Programmable Gate Array)的SpTa自適應電機控制算法。本算法通過簡單的數(shù)學運算和極低的資源占用、利用FPGA并行執(zhí)行的特點,實現(xiàn)了多軸同步運動、加減速過程加速度可調的自適應電機控制。使用SpTa算法實現(xiàn)加速度自適應的電機加減速運動,具有很好的實用性。
關鍵詞:FPGA 電機控制算法 SpTa 多軸同步控制器
中圖分類號:TP18 文獻標識碼:A 文章編號:1672-3791(2018)09(a)-0011-02
醫(yī)療設備、工業(yè)設備的運動控制系統(tǒng)中,需要多個步進電機同步多角度的運動,以實現(xiàn)復雜的多方位控制。步進電機的驅動控制常用的有PLC、MUC、FPGA等方式,其中PLC控制成本較高,不適合在低成本的方案中使用,單一MUC無法實現(xiàn)多電機的同步運動,F(xiàn)PGA的并行執(zhí)行及低成本的特點能很好地實現(xiàn)在低成本方案中多電機的同步運動。
現(xiàn)有的電機控制技術主要通過加減速算法實現(xiàn)步進電機的平滑運動,加減速算法常用的有梯形加減速、S型加減速。梯形加減速算法加速和減速過程中加速度為一個常數(shù),在FPGA上實現(xiàn)該算法的原理比較簡單,但是該算法加速不平穩(wěn),沖量比較大,運行精度低。S型加減速算法加速和減速過程中加速度按照加加速、勻加速、減加速的過程完成整個變速過程,該算法加速平穩(wěn),沖量小,但是加速度時間比較長,在FPGA上實時計算加速過程的加速度計算量大,占用的FPGA資源比較大,耗時比較長,進而影響實時性。
根據(jù)FPGA芯片的特點及現(xiàn)有技術的不足,提出一種用于控制步進電機的基于FPGA的SpTa自適應控制算法。該算法在FPGA上使用簡單的加、減、移位運算,使用很少的資源實現(xiàn)多個步進電機的同步平穩(wěn)運動。該算法實現(xiàn)的電機控制可應用于實時性要求比較高的工業(yè)控制和自動化領域。
1 電機SpTa自適應算法原理
步進電機的整個運行過程包括空閑(停止)、加速階段、勻速階段、減速階段,當遇到停止信號后,無論是在加速階段還是勻速階段,步進電機均需要以當前的速度按照設定的加速度進行減速,直到步進電機停止運動。其流程圖如圖1所示。
電機控制算法,常見的有梯形加速算法、拋物線加速算法、S型曲線加速算法。這些算法基本是以固定的曲線進行匹配加速,SpTa算法則是以時間計算為中心,根據(jù)時間來計算運動步數(shù)相關參數(shù),它的做法是將步進電機的運動時間分割成若干個合適的時間片段,在每個時間片段計時達到后,它都將速度參數(shù)加到位置參數(shù)上,如果位置參數(shù)溢出,它就輸出一個脈沖,控制步進電機運行一步,速度參數(shù)根據(jù)加速度參數(shù)和時間而改變,隨著時間推移,速度參數(shù)越來越大,位置參數(shù)溢出頻率越來越高,則步進電機的運行頻率也越來越高。
基于SpTa算法的步進電機加速、勻速運動如圖2所示,定義3個32bit的寄存器用于實現(xiàn)數(shù)據(jù)的累加及判斷。在電機運動前,將3個寄存器復位清零,確保加速度和速度均是從零開始累加。
在速度v還未達到預設的Vo時,用于加速度累加的加法器在時間片段達到后對寄存器A的值和加速度值進行累加存入寄存器A中,同時對寄存器A的高12bit值(相當于將A右移20bit或者除以220)進行判斷,32bit位置寄存器P主要用于判斷速度的累加是否有溢出,通過該寄存器的高12bit是否有溢出來輸出步進電機運動的脈沖。在一個時間片段觸發(fā)到來時,將當前速度寄存器V與位置寄存器P相加,同時將值存儲到位置寄存器P中。對位置寄存器P的高12bit進行判斷,如果大于等于1,則認為數(shù)據(jù)溢出,此時產(chǎn)生一次步進電機運動的脈沖,同時將位置寄存器P的高12bit清零,并對電機運動步數(shù)進行累加。
根據(jù)FPGA芯片的并行運行的特點,“950ns時間片段加速過程”和“20ns時間片段加速過程”可以同時進行運算,且可以在步進電機未完成加速過程時,已經(jīng)計算出減速過程需要運行的步數(shù)。通過這樣的方式,可以實現(xiàn)加速和減速過程的加速度的不相同。對于未加入完成及進入減速過程時,此時僅僅需要按照減速過程執(zhí)行即可。
2 本算法技術帶來的有益效果
利用FPGA并行運行特點,結合SpTa算法,通過將算法優(yōu)化,在FPGA上實現(xiàn)簡單、資源占用低的高性能步進電機控制算法,實現(xiàn)了低成本高性能的控制方式。
實現(xiàn)加速和減速過程的加速度可調,可以實現(xiàn)慢速啟動,快速停止,提高了靈活性。
利用FPGA并行可實現(xiàn)多個步進電機的同步控制
3 結語
利用FPGA并行運行特點,結合SpTa算法,通過將算法優(yōu)化,在FPGA上實現(xiàn)簡單、資源占用低的高性能步進電機控制算法,實現(xiàn)了低成本高性能的控制方式。
實現(xiàn)加速和減速過程的加速度可調,可以實現(xiàn)慢速啟動,快速停止,提高了靈活性。利用FPGA并行可實現(xiàn)多個步進電機的同步控制。
參考文獻
[1] 王邦繼,劉慶想,周磊,等.步進電機速度曲線的設計與FPGA實現(xiàn)[J].微電機,2012,45(8):67-71.
[2] 張朝暉,陸玉昌,張鈸.利用神經(jīng)網(wǎng)絡發(fā)現(xiàn)分類規(guī)則[J].計算機學報,1999,12(2):108-111.
[3] 陳文偉.決策支持系統(tǒng)及其開發(fā)[M].北京:清華大學出版社,2000:12-15.