劉曉飛 高興華 郭慶東 崔金鵬
(北華大學機械工程學院,吉林省吉林市 132021)
機械手臂作為機器人的末端執行機構[1-4]已在一些流水線生產中得到廣泛應用[5]。在智能化生產中,步進電機是主要的驅動部件之一[6],作業時其運行的精確性和響應速度尤為重要。由于步進電機受脈沖頻率控制,其高速時的運動特性易對生產線上的裝配動作如抓、卡、擰工件等產生沖擊,從而造成位置錯移,甚至結構變形等。為確保生產線正常運轉,通常采用降低生產線速度的方式以避免問題的發生,但因此會影響生產效率[7]。針對以上問題,劉靜等[8-11]對步進電機的應用特性進行了研究與改進,以提高智能化生產效率。
合理控制頻率可為步進電機提供平穩的工作特性,頻率過低或過高均會影響步進電機輸出特性,產生低頻振蕩或高頻振動。步進電機低頻振蕩是由于電機的轉子達到穩定平衡位置時具有多余的動能[12]。當控制脈沖的頻率等于自由振蕩頻率時,就會發生低頻振蕩。而當控制脈沖的頻率很高時,脈沖間隔的時間很短,電機轉子尚未到達第一次振蕩幅值,下一個脈沖就到來,如此會產生失步,甚至還會產生高頻振動。
為提高步進電機在智能生產線裝配中的工作性能,消除振蕩與振動的產生,研究適合不同生產需求的輸出特性,本文采用正交兩指機械手臂,以步進電機為動力,研究以S曲線算法作為機械手臂控制算法的運動控制,通過合理設計每一個脈沖的升、降頻,保證步進電機不堵轉、不失步、不過沖,使機械手臂以最少的時間精確運行至指定位置。
機械手臂由步進電機、氣滑環、滑臺氣缸和機械手指組成,如圖1 所示。

圖1 正交兩指機械手臂結構圖Fig.1 Structural drawing of orthogonaltwo-finger manipulator
步進電機為機械手臂提供旋轉動力,帶動氣滑環、滑臺氣缸和機械手作旋轉運動。氣滑環在旋轉的同時傳遞氣路,通過氣動回路控制機械手作夾持動作。
常見的步進電機速度控制算法有梯形曲線算法、指數型曲線算法以及S曲線算法。
梯形曲線具有運算簡單[13]等特性,但存在加速突變、運行不穩定等問題,適用于低精度場合。指數控制算法曲線實現繁瑣[14-15],適用于高精度場合。S曲線算法的核心在于防止加速度產生突變,減小沖擊,并使步進電機運動具有快速平穩的特性,常被應用于精確控制[16];以低頻啟動,高頻率降頻實現減速[17],以此達到快速響應的要求。
步進電機轉矩與輸入的脈沖頻率在電流等參數不變的情況下一一對應,為實現輸出特性的柔順平滑,利用數字控制器將連續S曲線函數轉換為離散S曲線函數,使步進電機的每個控制脈沖成為頻率可調的S離散信號,從而達到對步進電機輸出特性的良好控制。
S曲線的函數為Logistic函數,Logistic函數是一個嚴格的遞增函數,圖形為一個連續光滑的 S 形,其函數定義式為:

式中:a為控制曲線傾斜的斜率參數[18-19]。設脈沖頻率為f(kHz),則

式中:n為電機轉速,r/s ;P為細分倍數。
由式(2)可得出步進電機最小啟動頻率fmin(kHz),以及運行最大頻率A(kHz)。
設步進電機運行頻率為f(t)(kHz),則

式中:a為斜率常數,是決定運動快慢時間的關鍵因素;t為電機運行時間,s;k為達到A的時間,s;C為常數。
步進電機是一種數字電動機,可作為數字控制系統中的執行元件,步進電機將輸入的脈沖電信號變換為階躍性的角位移或直線位移[20-21]。其角位移與脈沖數成正比,電機的轉速和脈沖信號成正比,通過改變頻率的高低即可改變電機的轉速[22-25]。
根據步進電機的轉矩頻率特性曲線可知,在電流不變的情況下,當脈沖頻率增加時,電機鐵芯中的渦流損耗隨之增加,輸出功率和轉矩下降,使步進電機頻率隨輸出轉矩的增大而減小。當輸入脈沖頻率增加到一定值時,步進電機將無法帶動任何負載,而且只要受到很小的擾動,就會振蕩、失步,甚至停轉。
步進電機的運動方程,即

式中: Te為步進電機的電磁轉矩,Nm;J為步進電機的轉動慣量,kg·m2;D為系統粘性阻尼系數;T為輸出轉矩,Nm;ω為電機瞬時角速度,rad/s。
ω與f成正比關系,即

式中:Q為線性系數,Q=2π。
電機從靜止開始加速,即t=0 時,ω=0,則聯立式(3)(4)(5)得:

以正轉90°為例,根據步進電機的參數以及不同的斜率常數a計算得出多組頻率曲線,如圖2 所示。

圖2 不同斜率常數a下的頻率曲線Fig.2 Frequency curve under diあerent time constant a

圖3 不同斜率常數a下的轉矩曲線Fig.3 Torque curve under diあerent time constant a
轉矩曲線如圖3 所示,在不同斜率參數a下轉矩的單位時間變化率不同,電機分別在13、22 ms與28 ms時,頻率達到最大,轉速最快,轉矩最小,符合電機運動規律。
一般情況下S曲線分為 “三段”,即加速、勻速和減速階段,但當步進電機轉過的角度很小時,運動曲線只需要兩段,即加速和減速階段。電機先加速再減速,此曲線為前半段加速曲線;減速階段和加速階段類似,可以分別單獨在軟件編程中做一個數組,也可以和加速階段共用一個數組。
輸入步進電機參數,得到頻率曲線,并利用改進歐拉遞推方法獲得離散頻率。設微分方程為:

設時間區間為[a,b],從區間中取離散的點
取k=0,1,2,…,N,從t0開始,逐漸遞推求解t1時的y1,t2時的y2,…,直至tn時的yn。
其改進歐拉遞推公式為:

式中:h=tn+1-tn。
設置優化曲線的約束參數條件,細分倍數P、最小啟動頻率fmin、最大運行頻率A,時間區間為[0,30],離散點數為100。得到a=0.44 時的離散頻率曲線如圖4所示。

圖4 連續頻率曲線與對應的優化離散頻率曲線Fig.4 Continuous frequency curve and the corresponding discrete frequency curve
確定定時器的自動重裝值。本試驗機械手臂的控制器為STM32,將STM32 的定時器設置為溢出中斷模式, 定時器的溢出中斷周期由時鐘預分頻數和自動重裝值決定,固定預分頻數后,中斷周期由自動重裝值決定。
將計算得到的離散頻率值處理為數組保存于控制器中,控制器按順序讀取數組里的頻率值進行定時器計數值重裝載。根據不同時刻的頻率,對應不同的自動重裝載值,從而實現S曲線離散化。
本試驗的機械手臂使用86 系列步進電機,選用HB860 驅動器。氣缸選用型號MHF2-8D1R的滑臺氣缸,行程為260 mm。試驗所用三階魔方為市面比賽專用魔方,材料為ABS塑料,摩擦系數為0.48,邊長為57 mm。手臂模型如圖5 所示。

圖5 正交兩指機械臂三維建模圖Fig.5 3D modeling diagram of orthogonal two-finger manipulator
機械臂控制核心采用STM32F407,通過定時器輸出PWM波調控電機運動,利用I/O口控制電磁閥換向,實現機械手爪動作。
建立步進電機平衡方程,并在MATLAB中搭建仿真模型,如圖6 所示。

圖6 系統仿真建模Fig.6 System simulation modeling
頻率發生器輸出離散的頻率數組,通過PWM得到不同頻率的方波,輸入到驅動,驅動電機輸出轉矩仿真結果。根據不同斜率系數a得到相應的轉矩曲線圖,如圖7 所示。


圖7 不同斜率常數所對應的轉矩曲線圖Fig.7 Torque curve corresponding to diあerent slope constants
仿真結果表明,電機在22 ms,頻率達到最大,轉矩達到最小,此時轉速最大,加速度最大;當a為0.3 時,頻率與轉矩的單位時間變化率較小,因此加速時間較長,如圖7a所示;當 a為0.8 時,頻率與轉矩的單位時間變化率較大,導致電機發生失步,如圖7c所示。理論計算輸出的轉矩曲線與仿真曲線擬合度基本一致,其中誤差由軟件處理所致。
將機械手臂應用于魔方機器人上進行測試,機械手臂試驗平臺如圖8 所示。

圖8 魔方機器人試驗平臺Fig.8 Rubik's cube robot test platform
以帶載正轉90°為例,采用2.2 章節計算優化后的3 組離散S曲線,其中a=0.44 時的曲線如圖9 所示。

圖9 優化后的S曲線圖Fig.9 The optimized S-curve
離散點數為100,分別輸入到控制器中,讀取試驗數據,與仿真數據進行對比。對比結果如表1 所示。

表1 仿真用時與試驗用時對比Tab.1 Comparison of simulation time and experiment time
測試結果表明:電機帶載正轉90°時,斜率常數等于0.3 時,電機運行時間并未達到最短;斜率常數等于0.44 時,運行平穩,時間短,且不發生失步及過沖;而斜率常數等于0.8 時,由于頻率提升快,導致失步,嚴重時堵轉,致使電機平穩后并未達到期望轉角。
本文結合實際需求,研究將離散S曲線算法用于步進電機輸出平滑轉矩控制,算法在還原魔方機械臂調控中應用,達到了速度快、精度高的效果。該方法通過合理設計每個脈沖頻率的升、降,有效防止了步進電機失步、過沖等現象,并且使步進電機能以最快的響應速度執行動作。算法理論可推廣應用于不同的步進電機,通過優化理論方程中的參數,確定適用于不同環境下步進電機的S曲線,經過離散處理后控制步進電機的運動,可以實現不失步、不過沖,達到快速、精準控制的目的。S曲線算法是一種全新的步進電機調速算法,適用于機械手裝配柔性動作等控制。