劉漢忠,周伯榮,李宏勝
(南京工程學(xué)院 自動化學(xué)院, 南京 211167)
目前運動控制器主要有兩種,一種主要是以專用運動控制芯片或CPLD、FPGA方式存在,通常結(jié)合DSP、ARM一起使用。第二種采用了基于PC標準總線的運動控制器,在硬件設(shè)計上采用板卡方式,這種結(jié)構(gòu)的運動控制器不宜長期工作在環(huán)境惡劣的工業(yè)現(xiàn)場,另外與PC機一起使用增加了應(yīng)用成本,且增大了控制系統(tǒng)的體積[1,2]。
本文介紹了一款簡易單軸運動控制器,其僅用一芯片實現(xiàn)插補和IO管理,提供多種運動方式,位移、速度、加速度等參數(shù)任意設(shè)置,適用于步進電機的精確定位控制。
簡易單軸運動控制器僅采用Microchip公司的dsPIC30F2010完成顯示、按鍵、單軸插補等任務(wù),顯示采用6位數(shù)碼管,段碼數(shù)據(jù)通過dsPIC的SPI接口輸出至74LS164,后并行輸出至數(shù)碼管,位選數(shù)據(jù)通過74LS138譯碼后輸入74LS244,其輸出引腳接數(shù)碼管位控腳。按鍵采用獨立式鍵盤,分別有模式、設(shè)定、移位、位加、運行、停止、復(fù)位。剩余IO引腳接限位、原點開關(guān)等以備擴充。
dsPIC30F2010采用12M外部晶振,內(nèi)部8倍頻,由于時鐘周期是4倍的振蕩周期,所以時鐘周期是1/24 us,允許情況下盡可能提高振蕩周期,這樣可以提高輸出脈沖頻率,由于dsPIC30F2010完成顯示、按鍵、單軸插補等任務(wù),故主程序循環(huán)掃描按鍵,顯示由定時器T1完成,定時器T0做單軸插補運算以及脈沖輸出。由于dsPIC30F芯片可以實現(xiàn)中斷欠套,這樣把定時器T0設(shè)置為最高中斷優(yōu)先級,并使能中斷欠套功能。
按鍵掃描可以在定時器中斷程序執(zhí)行,也可以在主程序的while循環(huán)部分(程序采用C語言開發(fā))執(zhí)行,這里相比較而言,后者更合適,因為若在定時器執(zhí)行的話,中斷會由于變量的壓出棧而影響最高輸出頻率。while循環(huán)部分按鍵掃描流程如圖1所示。顯示程序在T1中斷程序執(zhí)行,T1定時時間為3ms,具體過程不再詳述。
步進電機加減速通常有三種方法:直線加減速、指數(shù)加減速、拋物線加減速,后兩種方法,步進電機可能因為升降速太快而丟步,影響定位精度,下文介紹了精確定位過程中實現(xiàn)任意直線加減速的方法,如圖2所示,設(shè)位移設(shè)定值是已Pn、最大速度是Vmax、加速度是Acc,根據(jù)公式=2×Acc×Pn,為實時速度,可得=
圖2 同步啟動加速曲線-脈沖圖
定時器T0中斷程序中根據(jù)式(3)實時計算下一時刻脈沖頻率所對應(yīng)的定時時間值,按此公式,dsPIC根本無法實時計算出該值。這里介紹一種延時啟動直線加減速脈沖生成方法。如圖3所示
圖3 延時啟動加速曲線-脈沖圖
曲線1表示速度加速曲線,現(xiàn)把該設(shè)定曲線延時 時間,即曲線2,在曲線2初始時刻發(fā)首個脈沖,此時速度值
t0取值越小,則實際加速曲線越逼近給定加速曲線,這里為計算方便取t0為0.1s,由式 (4) 很容易求出初始時刻v1(一般將v1放大10倍,以避免浮點數(shù)乘除運算),根據(jù)式 (8)、(5)分別求出vi、ti,由ti求出裝載定時器T0的初始值。同樣可以分析得出減速過程中
勻減速初始時刻vi-1就是加速過程中達到的速度最大值。
在加減速過程中,用戶設(shè)置的位移值、加速度值可能較小,最大速度值又可能較大,所以DSP在運算過程中要判斷是否有勻速運動過程,如圖4、圖5所示,具體方法如下:
圖4 有勻速過程的速度位移曲線
圖5 無勻速過程的速度位移曲線
首先計算中間位移點Pm=Ps/2,并對定時器T0輸出脈沖數(shù)進行計數(shù),設(shè)計數(shù)變量為j,當j<Pm時,實時判斷當前速度是否到達設(shè)定的最大速度值,若到達,則記錄當前輸出脈沖數(shù)P1,根據(jù)對稱性,可知在第(Ps-P1)個脈沖開始減速。若j=Pm時,當前速度依舊小于設(shè)定的最大速度值,則系統(tǒng)隨即開始減速,兩者都直至輸出Ps個脈沖后停止。綜上所述,定時器T0流程如圖6所示,右側(cè)是加速段流程,中間是勻速段流程,左側(cè)是減速段流程。
運動控制器參數(shù)根據(jù)實際需要設(shè)定,試驗中,位移設(shè)定為40000脈沖,最大速度為4000脈沖/s,加速度為4000脈沖/s2,加速過程捕獲的輸出脈沖波形如圖7所示,其脈寬不到40us,該脈寬時間主要是計算公式(8)、(5)所消耗的時間,根據(jù)對稱性,在減速段脈寬時間相同,勻速段不需實時計算下一時刻輸出脈沖頻率大小,其脈寬可以通過延時來獲得,由此可見,用該方法,控制器在加減速段輸出最大脈沖頻率至少可達25k。
圖6 定時器T0中斷程序流程圖
圖7 加速段輸出脈沖波形
步進電機在較高速度下運行要取得較好的定位精度必須考慮加減速過程,本文介紹的單軸單芯片運動控制器,成本低、性能好,運動方式多,參數(shù)設(shè)置靈活、方便,能在不同位移、速度、加速度下實現(xiàn)步進電機精確、快速、有效的定位控制,有一定市場應(yīng)用價值。目前該運動控制器在某小型鉆孔設(shè)備上得到了較好的應(yīng)用。
[1] 楊凱峰. 單軸運動控制器的設(shè)計[D]. 華中科技大學(xué). 2008.
[2] 王文斌. 一種新型獨立式運動控制器的研究[J]. 制造技術(shù)與機床. 2008, 12:75-78.
[3] 王強. 基于ARM的開放式數(shù)字運動控制器的設(shè)計[J]. 機械設(shè)計與制造. 2010, 3:15-17.
[4] 宋蓓. 基于DSP的開放式運動控制器的設(shè)計[J]. 電機與控制應(yīng)用. 2009, 36(4): 23-25.
[5] 詹海菊. 基于DSP的運動控制器的研究與開發(fā)[J]. 微計算機信息. 2008, 24(8-2):202-204.
[6] 范慶彬. 基于DSP的伺服運動控制器研究與開發(fā)[J]. 自動化技術(shù)與應(yīng)用. 2008, 27(6): 32-34.