譚人銘,張仁杰,江 濤
(重慶理工大學(xué) 機械工程學(xué)院,重慶 400054)
隨著當(dāng)代自動化產(chǎn)業(yè)的發(fā)展,運動控制已應(yīng)用于各個領(lǐng)域當(dāng)中且發(fā)揮著重要的作用[1]。步進(jìn)電機具有性價比高,應(yīng)用簡單,因此步進(jìn)電機廣泛用于各類運動控制系統(tǒng)[2-5]。但在一些開環(huán)系統(tǒng)當(dāng)中,由于系統(tǒng)本身的機械結(jié)構(gòu)或步進(jìn)電機本身的性能影響,步進(jìn)電機在運動過程中可能會出現(xiàn)丟步或越步的情況,在某些對精度要求較高的系統(tǒng)中就會導(dǎo)致嚴(yán)重的后果[6-8]。通過在直線模組上安裝光柵采集實際位移值,使用PID算法對步進(jìn)電機實現(xiàn)精確的位置控制,根據(jù)目標(biāo)值與實際值的偏差進(jìn)行比例、積分、微分運算[9-11],將運算結(jié)果用以控制輸出實現(xiàn)對步進(jìn)電機位置閉環(huán)控制。由此,本文使用STM32F103ZET6單片機、FM5756SFD04步進(jìn)電機、FMDD50D40NOM驅(qū)動器、雷尼紹RH100光柵和FSL40直線模組等構(gòu)成閉環(huán)運動控制系統(tǒng),人機交互界面采用LabVIEW圖形化編程語言,運用PID算法對系統(tǒng)進(jìn)行閉環(huán)控制以實現(xiàn)對步進(jìn)電機位置的精確控制,實驗驗證后該PID閉環(huán)控制方法提升了步進(jìn)電機運動控制系統(tǒng)精度80%以上。
針對步進(jìn)電機位置的精確控制,采用位置反饋的閉環(huán)控制方式,微控制器根據(jù)編碼器通過采樣計數(shù)獲得脈沖信號計算得到當(dāng)前滑塊的實際位置信息,將此位置數(shù)據(jù)傳遞給PID控制程序,將此值與輸入目標(biāo)位置數(shù)據(jù)進(jìn)行比較運算,修正輸出,進(jìn)而控制器輸出相應(yīng)固定脈沖來實現(xiàn)對步進(jìn)電機位置的閉環(huán)控制,硬件結(jié)構(gòu)如圖1所示。
圖1 硬件結(jié)構(gòu)
由圖2閉環(huán)系統(tǒng)原理框圖所示,開環(huán)系統(tǒng)的結(jié)構(gòu)更為簡單經(jīng)濟,缺點即無法消除干擾帶來的誤差,從而不能實現(xiàn)對步進(jìn)電機位置的精確控制;采用閉環(huán)控制系統(tǒng)具有抑制干擾的能力,有對位置誤差進(jìn)行修正的能力,提升步進(jìn)電機位置控制的精度,從而達(dá)到對步進(jìn)電機位置的精確控制。圖2中:r(t)為設(shè)定的目標(biāo)位置,與y(t)為系統(tǒng)實際位置測量值,e(t)為設(shè)定值與目標(biāo)值之差。
圖2 閉環(huán)系統(tǒng)原理框圖
控制系統(tǒng)主要分為系統(tǒng)軟件設(shè)計、硬件設(shè)計、PID位置閉環(huán)控制和上位機四個部分。控制系統(tǒng)設(shè)計方案如圖3所示。其中硬件方面,控制器選用STM32F103ZET6單片機,執(zhí)行發(fā)送脈沖指令,輸出信號作為步進(jìn)電機的輸入信號,通過驅(qū)動器控制步進(jìn)電機的轉(zhuǎn)速和驅(qū)動絲桿滑塊的位置。PID位置閉環(huán)控制方面,以雷尼紹RH100光柵為目標(biāo)數(shù)值,滑塊位移為實際值,使用PID算法讓實際位置無限逼近光柵數(shù)值,提升精度。系統(tǒng)軟件方面,使用KEIL對STM32F103ZET6進(jìn)行源程序編寫與調(diào)試;上位機使用LabVIEW與單片機進(jìn)行串口通信,實現(xiàn)啟停、方向轉(zhuǎn)變、速度變換、定點位移等功能。
圖3 控制系統(tǒng)整體結(jié)構(gòu)圖
本控制系統(tǒng)的硬件結(jié)構(gòu)主要由微控制器STM32F103ZET6芯片、USB轉(zhuǎn)串口芯片CH340、步進(jìn)電機、利用6N137光耦芯片差分信號轉(zhuǎn)單端信號、使用PC817光耦芯片將24V限位信號轉(zhuǎn)換為3.3V信號,其中微控制器完成對驅(qū)動電路的控制,與上位機的通信以及光柵編碼器的數(shù)據(jù)采集和處理。具體硬件實物圖如圖4所示。
圖4 硬件實物圖
單片機的PWM輸出和光柵編碼器信號的獲取都由定時器來實現(xiàn),以庫函數(shù)的方式配置好定時器的I/O輸出。單片機每10ms向上位機發(fā)送一次光柵數(shù)據(jù)同時發(fā)送到PID控制器,PID控制器判斷實際位置是否達(dá)到預(yù)期,若沒有達(dá)到預(yù)期則調(diào)用PID增量算法對其進(jìn)行修正,將結(jié)果加載至PWM輸出函數(shù)中調(diào)整步進(jìn)電機當(dāng)前的位置狀態(tài)。具體軟件流程圖如圖5所示。
圖5 軟件流程圖
連續(xù)控制系統(tǒng)中的理想PID控制規(guī)律如式(1)所示。
(1)
式(1)中,Kp為比例增益,Kp與比例度成倒數(shù)關(guān)系;T為積分時間常數(shù);TD為微分時間常數(shù);u(t)為PID控制器的輸出信號;e(t)為目標(biāo)值與測量值之差。
將上式離散化得到位置式PID公式如式(2)所示。
(2)
增量型PID控制器輸出的是相鄰兩次采樣時刻所計算的位置值之差,不需要對積分項進(jìn)行累加,相對位置型PID來說計算誤差對控制量計算的影響較小。因此選擇增量型PID算法,其公式如式(3)所示。
Δu(k)=Kp[e(k)-e(k-1)]+Kie(k)+
Kd[e(k)-2e(k-1)+e(k-2)]
(3)
實際PID輸出如式(4)所示。
u(k)=u(k-1)+Δu(k)
(4)
通過定時器設(shè)置采樣周期,定時采樣位置數(shù)據(jù)發(fā)送至PID控制器,PID控制器對其與目標(biāo)位置數(shù)據(jù)進(jìn)行處理,將輸出值反饋給控制系統(tǒng),實現(xiàn)位置閉環(huán)控制。
為便于電機的操作控制以及數(shù)據(jù)的可視化,故設(shè)計相應(yīng)功能的人機交互界面。
本控制系統(tǒng)上位機采用LabVIEW圖形化編程語言設(shè)計,通過VISA串口配置與下位機取得通信,事件結(jié)構(gòu)通過對不同按鍵按下進(jìn)行判斷,發(fā)送相應(yīng)的指令給下位機,下位機執(zhí)行對應(yīng)的程序??蓪崿F(xiàn)對絲杠滑塊速度、方向、位移的控制以及光柵位移數(shù)據(jù)的保存,上位機界面操作簡單,人機交互性強,上位機部分圖形程序如圖6所示,前面板操作可視化界面如圖7所示。
圖6 上位機部分圖形程序
圖7 前面板操作可視化界面
為了驗證本閉環(huán)控制系統(tǒng)精度的提升,分別對是否使用PID算法的控制系統(tǒng)進(jìn)行閉環(huán)控制進(jìn)行實驗,對實驗數(shù)據(jù)進(jìn)行誤差比對。
絲杠滑臺全量程為50.000mm,使用上位機控制步進(jìn)電機轉(zhuǎn)動,使得絲杠滑塊從零點開始每運動10.000mm采集一個數(shù)據(jù)點,全程采集6個位置值,重復(fù)5次實驗。
通過上述方案進(jìn)行實驗,分別得到使用與不使用閉環(huán)控制方式絲杠滑臺的位置數(shù)據(jù),其開環(huán)控制與閉環(huán)控制位置數(shù)據(jù)的平均值與標(biāo)準(zhǔn)差如表1所示。位置數(shù)據(jù)對比如圖8所示。
(a)目標(biāo)值與實際值曲線圖
(b)目標(biāo)值與實際值曲線局部放大圖圖8 位置數(shù)據(jù)對比圖
表1 控制精度 mm
圖8(a)中橫坐標(biāo)表示位置數(shù)據(jù)的目標(biāo)值(即控制系統(tǒng)的輸入值),縱坐標(biāo)表示絲杠滑塊的實際位移數(shù)據(jù),兩種不同的曲線分別表示在6組目標(biāo)值下開環(huán)與PID閉環(huán)控制下的實際位移值;由于兩種曲線在全行程中的數(shù)據(jù)差異表現(xiàn)不明顯,故引入局部放大圖8(b),可明顯地看出兩種控制方式的數(shù)據(jù)差異。由表1和圖8可知,采取了PID位置閉環(huán)控制方式后,其位置數(shù)據(jù)的重復(fù)度有了明顯的提升。
將上述實驗結(jié)果進(jìn)行誤差分析,分別將開環(huán)與閉環(huán)的位置數(shù)據(jù)與目標(biāo)位置作差,得到誤差數(shù)據(jù),并對誤差數(shù)據(jù)進(jìn)行分析。其誤差數(shù)據(jù)對比如圖9所示。
圖9 誤差數(shù)據(jù)對比圖
圖9中X軸表示目標(biāo)位置,Y軸表示誤差值(實際值與目標(biāo)值的差值),兩組曲線分別表示開環(huán)與PID閉環(huán)狀態(tài)下6個不同測點實際位移值與目標(biāo)值的差值。系統(tǒng)的定位精度用各測點誤差的平均值和標(biāo)準(zhǔn)差的平均值表示,計算結(jié)果如表2所示。
表2 精度
由圖9、表2可知,在開環(huán)控制系統(tǒng)中,控制步進(jìn)電機轉(zhuǎn)動越久,誤差越大,且重復(fù)度較差。在采取了PID算法閉環(huán)控制后,整個控制系統(tǒng)的定位精度與重復(fù)度都有了較大的提升,精度提升比例超過80%。
本文針對步進(jìn)電機的精確控制,提出了以STM32F103ZET6微控制器為控制系統(tǒng)的主控芯片,采用PID算法閉環(huán)控制方式,經(jīng)過實驗驗證,該控制系統(tǒng)不僅操作簡單,人機交互界面友好,還極大地提高了整個控制系統(tǒng)的定位精度,有效地解決了在開環(huán)控制下步進(jìn)電機出現(xiàn)丟步等導(dǎo)致誤差變大的問題。