劉曉飛 高興華 郭慶東 崔金鵬
(北華大學(xué)機(jī)械工程學(xué)院,吉林省吉林市 132021)
機(jī)械手臂作為機(jī)器人的末端執(zhí)行機(jī)構(gòu)[1-4]已在一些流水線生產(chǎn)中得到廣泛應(yīng)用[5]。在智能化生產(chǎn)中,步進(jìn)電機(jī)是主要的驅(qū)動(dòng)部件之一[6],作業(yè)時(shí)其運(yùn)行的精確性和響應(yīng)速度尤為重要。由于步進(jìn)電機(jī)受脈沖頻率控制,其高速時(shí)的運(yùn)動(dòng)特性易對(duì)生產(chǎn)線上的裝配動(dòng)作如抓、卡、擰工件等產(chǎn)生沖擊,從而造成位置錯(cuò)移,甚至結(jié)構(gòu)變形等。為確保生產(chǎn)線正常運(yùn)轉(zhuǎn),通常采用降低生產(chǎn)線速度的方式以避免問題的發(fā)生,但因此會(huì)影響生產(chǎn)效率[7]。針對(duì)以上問題,劉靜等[8-11]對(duì)步進(jìn)電機(jī)的應(yīng)用特性進(jìn)行了研究與改進(jìn),以提高智能化生產(chǎn)效率。
合理控制頻率可為步進(jìn)電機(jī)提供平穩(wěn)的工作特性,頻率過低或過高均會(huì)影響步進(jìn)電機(jī)輸出特性,產(chǎn)生低頻振蕩或高頻振動(dòng)。步進(jìn)電機(jī)低頻振蕩是由于電機(jī)的轉(zhuǎn)子達(dá)到穩(wěn)定平衡位置時(shí)具有多余的動(dòng)能[12]。當(dāng)控制脈沖的頻率等于自由振蕩頻率時(shí),就會(huì)發(fā)生低頻振蕩。而當(dāng)控制脈沖的頻率很高時(shí),脈沖間隔的時(shí)間很短,電機(jī)轉(zhuǎn)子尚未到達(dá)第一次振蕩幅值,下一個(gè)脈沖就到來,如此會(huì)產(chǎn)生失步,甚至還會(huì)產(chǎn)生高頻振動(dòng)。
為提高步進(jìn)電機(jī)在智能生產(chǎn)線裝配中的工作性能,消除振蕩與振動(dòng)的產(chǎn)生,研究適合不同生產(chǎn)需求的輸出特性,本文采用正交兩指機(jī)械手臂,以步進(jìn)電機(jī)為動(dòng)力,研究以S曲線算法作為機(jī)械手臂控制算法的運(yùn)動(dòng)控制,通過合理設(shè)計(jì)每一個(gè)脈沖的升、降頻,保證步進(jìn)電機(jī)不堵轉(zhuǎn)、不失步、不過沖,使機(jī)械手臂以最少的時(shí)間精確運(yùn)行至指定位置。
機(jī)械手臂由步進(jìn)電機(jī)、氣滑環(huán)、滑臺(tái)氣缸和機(jī)械手指組成,如圖1 所示。
圖1 正交兩指機(jī)械手臂結(jié)構(gòu)圖Fig.1 Structural drawing of orthogonaltwo-finger manipulator
步進(jìn)電機(jī)為機(jī)械手臂提供旋轉(zhuǎn)動(dòng)力,帶動(dòng)氣滑環(huán)、滑臺(tái)氣缸和機(jī)械手作旋轉(zhuǎn)運(yùn)動(dòng)。氣滑環(huán)在旋轉(zhuǎn)的同時(shí)傳遞氣路,通過氣動(dòng)回路控制機(jī)械手作夾持動(dòng)作。
常見的步進(jìn)電機(jī)速度控制算法有梯形曲線算法、指數(shù)型曲線算法以及S曲線算法。
梯形曲線具有運(yùn)算簡(jiǎn)單[13]等特性,但存在加速突變、運(yùn)行不穩(wěn)定等問題,適用于低精度場(chǎng)合。指數(shù)控制算法曲線實(shí)現(xiàn)繁瑣[14-15],適用于高精度場(chǎng)合。S曲線算法的核心在于防止加速度產(chǎn)生突變,減小沖擊,并使步進(jìn)電機(jī)運(yùn)動(dòng)具有快速平穩(wěn)的特性,常被應(yīng)用于精確控制[16];以低頻啟動(dòng),高頻率降頻實(shí)現(xiàn)減速[17],以此達(dá)到快速響應(yīng)的要求。
步進(jìn)電機(jī)轉(zhuǎn)矩與輸入的脈沖頻率在電流等參數(shù)不變的情況下一一對(duì)應(yīng),為實(shí)現(xiàn)輸出特性的柔順平滑,利用數(shù)字控制器將連續(xù)S曲線函數(shù)轉(zhuǎn)換為離散S曲線函數(shù),使步進(jìn)電機(jī)的每個(gè)控制脈沖成為頻率可調(diào)的S離散信號(hào),從而達(dá)到對(duì)步進(jìn)電機(jī)輸出特性的良好控制。
S曲線的函數(shù)為L(zhǎng)ogistic函數(shù),Logistic函數(shù)是一個(gè)嚴(yán)格的遞增函數(shù),圖形為一個(gè)連續(xù)光滑的 S 形,其函數(shù)定義式為:
式中:a為控制曲線傾斜的斜率參數(shù)[18-19]。設(shè)脈沖頻率為f(kHz),則
式中:n為電機(jī)轉(zhuǎn)速,r/s ;P為細(xì)分倍數(shù)。
由式(2)可得出步進(jìn)電機(jī)最小啟動(dòng)頻率fmin(kHz),以及運(yùn)行最大頻率A(kHz)。
設(shè)步進(jìn)電機(jī)運(yùn)行頻率為f(t)(kHz),則
式中:a為斜率常數(shù),是決定運(yùn)動(dòng)快慢時(shí)間的關(guān)鍵因素;t為電機(jī)運(yùn)行時(shí)間,s;k為達(dá)到A的時(shí)間,s;C為常數(shù)。
步進(jìn)電機(jī)是一種數(shù)字電動(dòng)機(jī),可作為數(shù)字控制系統(tǒng)中的執(zhí)行元件,步進(jìn)電機(jī)將輸入的脈沖電信號(hào)變換為階躍性的角位移或直線位移[20-21]。其角位移與脈沖數(shù)成正比,電機(jī)的轉(zhuǎn)速和脈沖信號(hào)成正比,通過改變頻率的高低即可改變電機(jī)的轉(zhuǎn)速[22-25]。
根據(jù)步進(jìn)電機(jī)的轉(zhuǎn)矩頻率特性曲線可知,在電流不變的情況下,當(dāng)脈沖頻率增加時(shí),電機(jī)鐵芯中的渦流損耗隨之增加,輸出功率和轉(zhuǎn)矩下降,使步進(jìn)電機(jī)頻率隨輸出轉(zhuǎn)矩的增大而減小。當(dāng)輸入脈沖頻率增加到一定值時(shí),步進(jìn)電機(jī)將無法帶動(dòng)任何負(fù)載,而且只要受到很小的擾動(dòng),就會(huì)振蕩、失步,甚至停轉(zhuǎn)。
步進(jìn)電機(jī)的運(yùn)動(dòng)方程,即
式中: Te為步進(jìn)電機(jī)的電磁轉(zhuǎn)矩,Nm;J為步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)慣量,kg·m2;D為系統(tǒng)粘性阻尼系數(shù);T為輸出轉(zhuǎn)矩,Nm;ω為電機(jī)瞬時(shí)角速度,rad/s。
ω與f成正比關(guān)系,即
式中:Q為線性系數(shù),Q=2π。
電機(jī)從靜止開始加速,即t=0 時(shí),ω=0,則聯(lián)立式(3)(4)(5)得:
以正轉(zhuǎn)90°為例,根據(jù)步進(jìn)電機(jī)的參數(shù)以及不同的斜率常數(shù)a計(jì)算得出多組頻率曲線,如圖2 所示。
圖2 不同斜率常數(shù)a下的頻率曲線Fig.2 Frequency curve under diあerent time constant a
圖3 不同斜率常數(shù)a下的轉(zhuǎn)矩曲線Fig.3 Torque curve under diあerent time constant a
轉(zhuǎn)矩曲線如圖3 所示,在不同斜率參數(shù)a下轉(zhuǎn)矩的單位時(shí)間變化率不同,電機(jī)分別在13、22 ms與28 ms時(shí),頻率達(dá)到最大,轉(zhuǎn)速最快,轉(zhuǎn)矩最小,符合電機(jī)運(yùn)動(dòng)規(guī)律。
一般情況下S曲線分為 “三段”,即加速、勻速和減速階段,但當(dāng)步進(jìn)電機(jī)轉(zhuǎn)過的角度很小時(shí),運(yùn)動(dòng)曲線只需要兩段,即加速和減速階段。電機(jī)先加速再減速,此曲線為前半段加速曲線;減速階段和加速階段類似,可以分別單獨(dú)在軟件編程中做一個(gè)數(shù)組,也可以和加速階段共用一個(gè)數(shù)組。
輸入步進(jìn)電機(jī)參數(shù),得到頻率曲線,并利用改進(jìn)歐拉遞推方法獲得離散頻率。設(shè)微分方程為:
設(shè)時(shí)間區(qū)間為[a,b],從區(qū)間中取離散的點(diǎn)
取k=0,1,2,…,N,從t0開始,逐漸遞推求解t1時(shí)的y1,t2時(shí)的y2,…,直至tn時(shí)的yn。
其改進(jìn)歐拉遞推公式為:
式中:h=tn+1-tn。
設(shè)置優(yōu)化曲線的約束參數(shù)條件,細(xì)分倍數(shù)P、最小啟動(dòng)頻率fmin、最大運(yùn)行頻率A,時(shí)間區(qū)間為[0,30],離散點(diǎn)數(shù)為100。得到a=0.44 時(shí)的離散頻率曲線如圖4所示。
圖4 連續(xù)頻率曲線與對(duì)應(yīng)的優(yōu)化離散頻率曲線Fig.4 Continuous frequency curve and the corresponding discrete frequency curve
確定定時(shí)器的自動(dòng)重裝值。本試驗(yàn)機(jī)械手臂的控制器為STM32,將STM32 的定時(shí)器設(shè)置為溢出中斷模式, 定時(shí)器的溢出中斷周期由時(shí)鐘預(yù)分頻數(shù)和自動(dòng)重裝值決定,固定預(yù)分頻數(shù)后,中斷周期由自動(dòng)重裝值決定。
將計(jì)算得到的離散頻率值處理為數(shù)組保存于控制器中,控制器按順序讀取數(shù)組里的頻率值進(jìn)行定時(shí)器計(jì)數(shù)值重裝載。根據(jù)不同時(shí)刻的頻率,對(duì)應(yīng)不同的自動(dòng)重裝載值,從而實(shí)現(xiàn)S曲線離散化。
本試驗(yàn)的機(jī)械手臂使用86 系列步進(jìn)電機(jī),選用HB860 驅(qū)動(dòng)器。氣缸選用型號(hào)MHF2-8D1R的滑臺(tái)氣缸,行程為260 mm。試驗(yàn)所用三階魔方為市面比賽專用魔方,材料為ABS塑料,摩擦系數(shù)為0.48,邊長(zhǎng)為57 mm。手臂模型如圖5 所示。
圖5 正交兩指機(jī)械臂三維建模圖Fig.5 3D modeling diagram of orthogonal two-finger manipulator
機(jī)械臂控制核心采用STM32F407,通過定時(shí)器輸出PWM波調(diào)控電機(jī)運(yùn)動(dòng),利用I/O口控制電磁閥換向,實(shí)現(xiàn)機(jī)械手爪動(dòng)作。
建立步進(jìn)電機(jī)平衡方程,并在MATLAB中搭建仿真模型,如圖6 所示。
圖6 系統(tǒng)仿真建模Fig.6 System simulation modeling
頻率發(fā)生器輸出離散的頻率數(shù)組,通過PWM得到不同頻率的方波,輸入到驅(qū)動(dòng),驅(qū)動(dòng)電機(jī)輸出轉(zhuǎn)矩仿真結(jié)果。根據(jù)不同斜率系數(shù)a得到相應(yīng)的轉(zhuǎn)矩曲線圖,如圖7 所示。
圖7 不同斜率常數(shù)所對(duì)應(yīng)的轉(zhuǎn)矩曲線圖Fig.7 Torque curve corresponding to diあerent slope constants
仿真結(jié)果表明,電機(jī)在22 ms,頻率達(dá)到最大,轉(zhuǎn)矩達(dá)到最小,此時(shí)轉(zhuǎn)速最大,加速度最大;當(dāng)a為0.3 時(shí),頻率與轉(zhuǎn)矩的單位時(shí)間變化率較小,因此加速時(shí)間較長(zhǎng),如圖7a所示;當(dāng) a為0.8 時(shí),頻率與轉(zhuǎn)矩的單位時(shí)間變化率較大,導(dǎo)致電機(jī)發(fā)生失步,如圖7c所示。理論計(jì)算輸出的轉(zhuǎn)矩曲線與仿真曲線擬合度基本一致,其中誤差由軟件處理所致。
將機(jī)械手臂應(yīng)用于魔方機(jī)器人上進(jìn)行測(cè)試,機(jī)械手臂試驗(yàn)平臺(tái)如圖8 所示。
圖8 魔方機(jī)器人試驗(yàn)平臺(tái)Fig.8 Rubik's cube robot test platform
以帶載正轉(zhuǎn)90°為例,采用2.2 章節(jié)計(jì)算優(yōu)化后的3 組離散S曲線,其中a=0.44 時(shí)的曲線如圖9 所示。
圖9 優(yōu)化后的S曲線圖Fig.9 The optimized S-curve
離散點(diǎn)數(shù)為100,分別輸入到控制器中,讀取試驗(yàn)數(shù)據(jù),與仿真數(shù)據(jù)進(jìn)行對(duì)比。對(duì)比結(jié)果如表1 所示。
表1 仿真用時(shí)與試驗(yàn)用時(shí)對(duì)比Tab.1 Comparison of simulation time and experiment time
測(cè)試結(jié)果表明:電機(jī)帶載正轉(zhuǎn)90°時(shí),斜率常數(shù)等于0.3 時(shí),電機(jī)運(yùn)行時(shí)間并未達(dá)到最短;斜率常數(shù)等于0.44 時(shí),運(yùn)行平穩(wěn),時(shí)間短,且不發(fā)生失步及過沖;而斜率常數(shù)等于0.8 時(shí),由于頻率提升快,導(dǎo)致失步,嚴(yán)重時(shí)堵轉(zhuǎn),致使電機(jī)平穩(wěn)后并未達(dá)到期望轉(zhuǎn)角。
本文結(jié)合實(shí)際需求,研究將離散S曲線算法用于步進(jìn)電機(jī)輸出平滑轉(zhuǎn)矩控制,算法在還原魔方機(jī)械臂調(diào)控中應(yīng)用,達(dá)到了速度快、精度高的效果。該方法通過合理設(shè)計(jì)每個(gè)脈沖頻率的升、降,有效防止了步進(jìn)電機(jī)失步、過沖等現(xiàn)象,并且使步進(jìn)電機(jī)能以最快的響應(yīng)速度執(zhí)行動(dòng)作。算法理論可推廣應(yīng)用于不同的步進(jìn)電機(jī),通過優(yōu)化理論方程中的參數(shù),確定適用于不同環(huán)境下步進(jìn)電機(jī)的S曲線,經(jīng)過離散處理后控制步進(jìn)電機(jī)的運(yùn)動(dòng),可以實(shí)現(xiàn)不失步、不過沖,達(dá)到快速、精準(zhǔn)控制的目的。S曲線算法是一種全新的步進(jìn)電機(jī)調(diào)速算法,適用于機(jī)械手裝配柔性動(dòng)作等控制。