譚人銘,張仁杰,江 濤
(重慶理工大學 機械工程學院,重慶 400054)
隨著當代自動化產業的發展,運動控制已應用于各個領域當中且發揮著重要的作用[1]。步進電機具有性價比高,應用簡單,因此步進電機廣泛用于各類運動控制系統[2-5]。但在一些開環系統當中,由于系統本身的機械結構或步進電機本身的性能影響,步進電機在運動過程中可能會出現丟步或越步的情況,在某些對精度要求較高的系統中就會導致嚴重的后果[6-8]。通過在直線模組上安裝光柵采集實際位移值,使用PID算法對步進電機實現精確的位置控制,根據目標值與實際值的偏差進行比例、積分、微分運算[9-11],將運算結果用以控制輸出實現對步進電機位置閉環控制。由此,本文使用STM32F103ZET6單片機、FM5756SFD04步進電機、FMDD50D40NOM驅動器、雷尼紹RH100光柵和FSL40直線模組等構成閉環運動控制系統,人機交互界面采用LabVIEW圖形化編程語言,運用PID算法對系統進行閉環控制以實現對步進電機位置的精確控制,實驗驗證后該PID閉環控制方法提升了步進電機運動控制系統精度80%以上。
針對步進電機位置的精確控制,采用位置反饋的閉環控制方式,微控制器根據編碼器通過采樣計數獲得脈沖信號計算得到當前滑塊的實際位置信息,將此位置數據傳遞給PID控制程序,將此值與輸入目標位置數據進行比較運算,修正輸出,進而控制器輸出相應固定脈沖來實現對步進電機位置的閉環控制,硬件結構如圖1所示。

圖1 硬件結構
由圖2閉環系統原理框圖所示,開環系統的結構更為簡單經濟,缺點即無法消除干擾帶來的誤差,從而不能實現對步進電機位置的精確控制;采用閉環控制系統具有抑制干擾的能力,有對位置誤差進行修正的能力,提升步進電機位置控制的精度,從而達到對步進電機位置的精確控制。圖2中:r(t)為設定的目標位置,與y(t)為系統實際位置測量值,e(t)為設定值與目標值之差。

圖2 閉環系統原理框圖
控制系統主要分為系統軟件設計、硬件設計、PID位置閉環控制和上位機四個部分。控制系統設計方案如圖3所示。其中硬件方面,控制器選用STM32F103ZET6單片機,執行發送脈沖指令,輸出信號作為步進電機的輸入信號,通過驅動器控制步進電機的轉速和驅動絲桿滑塊的位置。PID位置閉環控制方面,以雷尼紹RH100光柵為目標數值,滑塊位移為實際值,使用PID算法讓實際位置無限逼近光柵數值,提升精度。系統軟件方面,使用KEIL對STM32F103ZET6進行源程序編寫與調試;上位機使用LabVIEW與單片機進行串口通信,實現啟停、方向轉變、速度變換、定點位移等功能。

圖3 控制系統整體結構圖
本控制系統的硬件結構主要由微控制器STM32F103ZET6芯片、USB轉串口芯片CH340、步進電機、利用6N137光耦芯片差分信號轉單端信號、使用PC817光耦芯片將24V限位信號轉換為3.3V信號,其中微控制器完成對驅動電路的控制,與上位機的通信以及光柵編碼器的數據采集和處理。具體硬件實物圖如圖4所示。

圖4 硬件實物圖
單片機的PWM輸出和光柵編碼器信號的獲取都由定時器來實現,以庫函數的方式配置好定時器的I/O輸出。單片機每10ms向上位機發送一次光柵數據同時發送到PID控制器,PID控制器判斷實際位置是否達到預期,若沒有達到預期則調用PID增量算法對其進行修正,將結果加載至PWM輸出函數中調整步進電機當前的位置狀態。具體軟件流程圖如圖5所示。

圖5 軟件流程圖
連續控制系統中的理想PID控制規律如式(1)所示。
(1)
式(1)中,Kp為比例增益,Kp與比例度成倒數關系;T為積分時間常數;TD為微分時間常數;u(t)為PID控制器的輸出信號;e(t)為目標值與測量值之差。
將上式離散化得到位置式PID公式如式(2)所示。
(2)
增量型PID控制器輸出的是相鄰兩次采樣時刻所計算的位置值之差,不需要對積分項進行累加,相對位置型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)
通過定時器設置采樣周期,定時采樣位置數據發送至PID控制器,PID控制器對其與目標位置數據進行處理,將輸出值反饋給控制系統,實現位置閉環控制。
為便于電機的操作控制以及數據的可視化,故設計相應功能的人機交互界面。
本控制系統上位機采用LabVIEW圖形化編程語言設計,通過VISA串口配置與下位機取得通信,事件結構通過對不同按鍵按下進行判斷,發送相應的指令給下位機,下位機執行對應的程序。可實現對絲杠滑塊速度、方向、位移的控制以及光柵位移數據的保存,上位機界面操作簡單,人機交互性強,上位機部分圖形程序如圖6所示,前面板操作可視化界面如圖7所示。

圖6 上位機部分圖形程序

圖7 前面板操作可視化界面
為了驗證本閉環控制系統精度的提升,分別對是否使用PID算法的控制系統進行閉環控制進行實驗,對實驗數據進行誤差比對。
絲杠滑臺全量程為50.000mm,使用上位機控制步進電機轉動,使得絲杠滑塊從零點開始每運動10.000mm采集一個數據點,全程采集6個位置值,重復5次實驗。
通過上述方案進行實驗,分別得到使用與不使用閉環控制方式絲杠滑臺的位置數據,其開環控制與閉環控制位置數據的平均值與標準差如表1所示。位置數據對比如圖8所示。

(a)目標值與實際值曲線圖

(b)目標值與實際值曲線局部放大圖圖8 位置數據對比圖

表1 控制精度 mm
圖8(a)中橫坐標表示位置數據的目標值(即控制系統的輸入值),縱坐標表示絲杠滑塊的實際位移數據,兩種不同的曲線分別表示在6組目標值下開環與PID閉環控制下的實際位移值;由于兩種曲線在全行程中的數據差異表現不明顯,故引入局部放大圖8(b),可明顯地看出兩種控制方式的數據差異。由表1和圖8可知,采取了PID位置閉環控制方式后,其位置數據的重復度有了明顯的提升。
將上述實驗結果進行誤差分析,分別將開環與閉環的位置數據與目標位置作差,得到誤差數據,并對誤差數據進行分析。其誤差數據對比如圖9所示。

圖9 誤差數據對比圖
圖9中X軸表示目標位置,Y軸表示誤差值(實際值與目標值的差值),兩組曲線分別表示開環與PID閉環狀態下6個不同測點實際位移值與目標值的差值。系統的定位精度用各測點誤差的平均值和標準差的平均值表示,計算結果如表2所示。

表2 精度
由圖9、表2可知,在開環控制系統中,控制步進電機轉動越久,誤差越大,且重復度較差。在采取了PID算法閉環控制后,整個控制系統的定位精度與重復度都有了較大的提升,精度提升比例超過80%。
本文針對步進電機的精確控制,提出了以STM32F103ZET6微控制器為控制系統的主控芯片,采用PID算法閉環控制方式,經過實驗驗證,該控制系統不僅操作簡單,人機交互界面友好,還極大地提高了整個控制系統的定位精度,有效地解決了在開環控制下步進電機出現丟步等導致誤差變大的問題。