張樹梅,高興軍,鄧子龍,王 月
(1.遼寧石油化工大學(xué) 機(jī)械工程學(xué)院,遼寧 撫順113001;2.沈陽隆基電磁科技股份有限公司,遼寧 撫順113122)
并聯(lián)機(jī)器人憑借其承載能力高、結(jié)構(gòu)穩(wěn)定等諸多突出優(yōu)點(diǎn),在多個(gè)領(lǐng)域中應(yīng)用廣泛[1-2]。并聯(lián)機(jī)器人結(jié)構(gòu)復(fù)雜,對其誤差問題的分析是一項(xiàng)關(guān)鍵內(nèi)容[3-5]。國內(nèi)外學(xué)者提出了一些解決方法。O.Masory等[6]基于D-H方法研究了Stewart并聯(lián)機(jī)器人誤差模型的建立問題。T.Ropponen等[7]分析了影響機(jī)器人位姿誤差的因素,并推導(dǎo)出運(yùn)動誤差的微分方程。劉華瑩等[8]提出利用BP神經(jīng)網(wǎng)絡(luò)的方法研究機(jī)器人誤差修正及補(bǔ)償問題。譚興強(qiáng)等[9]基于D-H方法建立了風(fēng)洞6-PUS并聯(lián)支撐機(jī)器人的位姿誤差模型。趙延治等[10]根據(jù)虛位移原理,研究了并聯(lián)機(jī)器人的靜態(tài)誤差模型及補(bǔ)償誤差和標(biāo)定問題。并聯(lián)機(jī)器人位姿誤差的主要影響因素為機(jī)械制造誤差和裝配誤差,這些誤差不能徹底消除。減小位姿誤差的主要方法是對其進(jìn)行誤差修正及補(bǔ)償[11]。
本文根據(jù)6-PTRT并聯(lián)機(jī)器人樣機(jī),建立誤差模型,分析各個(gè)驅(qū)動桿長誤差參數(shù)變化與位姿誤差之間的關(guān)系,并尋優(yōu)各個(gè)驅(qū)動桿桿長誤差參數(shù),實(shí)現(xiàn)對并聯(lián)機(jī)器人軌跡的修正,為精度標(biāo)定以及軌跡規(guī)劃奠定基礎(chǔ)。
6-PTRT并聯(lián)機(jī)器人逆解問題的解決思路為:給定并聯(lián)機(jī)器人動平臺任一末端位姿(xp,yp,zp,θ,β,γ),確定其驅(qū)動桿桿長。建立動、靜平臺坐標(biāo)系,分別為o-xyz、o′-x′y′z′,設(shè)o和o′分別為動平臺和靜平臺的中心原點(diǎn),隨機(jī)選取并聯(lián)機(jī)器人的第i個(gè)支鏈o-Pi-Bi-o′,6-PTRT并聯(lián)機(jī)器人矢量如圖1所示[12]。
圖1 6-PTRT并聯(lián)機(jī)器人坐標(biāo)系矢量
采用單支鏈閉環(huán)矢量法,6-PTRT并聯(lián)機(jī)器人的六根驅(qū)動桿由靜平臺鉸點(diǎn)位置到動平臺鉸點(diǎn)位置的矢量Li可表示為[13]:
式中,P為靜平臺坐標(biāo)系原點(diǎn)o′指向動平臺坐標(biāo)系原點(diǎn)o的矢量;ai為動平臺坐標(biāo)系原點(diǎn)o指向各個(gè)動平臺鉸點(diǎn)的矢量;bi為靜平臺坐標(biāo)系原點(diǎn)o′指向靜平臺各個(gè)鉸點(diǎn)的矢量;i表示第i個(gè)驅(qū)動桿(i=1~6);R為旋轉(zhuǎn)矩陣。
其中,θ、β、γ分別為繞x軸、y軸、z軸的旋轉(zhuǎn)角,(°)。驅(qū)動桿桿長li表示為:
將6-PTRT并聯(lián)機(jī)器人動平臺的末端機(jī)構(gòu)誤差表示為:
式中,d P為并聯(lián)機(jī)器人動平臺的位置誤差,d P=(d Px,d Py,d Pz)T;dΓ為并聯(lián)機(jī)器人動平臺的姿態(tài)誤差,dΓ=(dθ,dβ,dγ)T。
由式(2)及單位矢量的定義可得各個(gè)驅(qū)動桿的單位矢量,靜平臺鉸點(diǎn)Bi指向動平臺鉸點(diǎn)Pi的單位矢量ui為:
基于式(1)和式(4),為便于微分計(jì)算將第i個(gè)閉環(huán)矢量表示為:
設(shè)d e=δe,d l=δl,d a=δa,d b=δb,δl′=JOδQ,δl-δl′=δl″整理可得:
式中,δe為機(jī)構(gòu)位姿誤差;δl″為包含鉸鏈誤差和各個(gè)驅(qū)動桿長誤差的等效誤差。
根據(jù)并聯(lián)機(jī)器人運(yùn)動位姿誤差模型,優(yōu)化各個(gè)驅(qū)動桿的桿長誤差參數(shù),當(dāng)運(yùn)動位姿誤差值為最小時(shí),將新的各個(gè)驅(qū)動桿桿長誤差參數(shù)作為修正量,修正其位姿誤差,提高工作精度。
利用單支鏈閉環(huán)矢量方法建立6-PTRT并聯(lián)機(jī)器人的運(yùn)動位姿誤差模型,研究各驅(qū)動桿桿長誤差參數(shù)對6-PTRT并聯(lián)機(jī)器人位姿誤差的影響。利用MATLAB軟件進(jìn)行數(shù)值仿真,驅(qū)動桿桿長參數(shù)誤差與并聯(lián)機(jī)器人輸出位姿誤差的關(guān)系如圖2所示。
圖2 驅(qū)動桿桿長誤差參數(shù)與并聯(lián)機(jī)器人輸出位姿誤差的關(guān)系
從圖2可以看出,位置誤差d Px、d Py、d Pz隨驅(qū)動桿1的桿長參數(shù)變化幅度較大,而姿態(tài)誤差dθ、dβ、dγ變化幅度則較小,二者相差約10-3數(shù)量級。而且,在同一個(gè)驅(qū)動桿桿長參數(shù)下,位置誤差d Px、d Py、d Pz和姿態(tài)誤差dθ、dβ、dγ并沒有同時(shí)達(dá)到最小。根據(jù)上述結(jié)論,為更合理地減小并聯(lián)機(jī)器人的末端位姿誤差,提高并聯(lián)機(jī)器人的運(yùn)動精度,需使位置誤差和姿態(tài)誤差同時(shí)為最小值。
6-PTRT并聯(lián)機(jī)器人的位姿誤差模型具有結(jié)構(gòu)參數(shù)多、非線性強(qiáng)、強(qiáng)耦合等特點(diǎn),可將位姿誤差修正問題轉(zhuǎn)化為一個(gè)多元非線性組合的尋優(yōu)問題,本文利用一種改進(jìn)的粒子優(yōu)化算法對多元非線性組合優(yōu)化的問題進(jìn)行求解,此方法計(jì)算效率高,易收斂,不依賴初始值。
由位姿誤差模型可得誤差修正目標(biāo)函數(shù),利用粒子優(yōu)化算法計(jì)算位姿誤差最小時(shí)各個(gè)驅(qū)動桿桿長參數(shù)誤差,修正其在軌跡規(guī)劃過程中的位姿誤差,使其更大程度上接近期望軌跡,減小其運(yùn)動位姿誤差?;谏鲜龇治觯酶倪M(jìn)的粒子優(yōu)化算法對6-PTRT并聯(lián)機(jī)器人在運(yùn)動過程中的末端位姿誤差進(jìn)行修正。
根據(jù)6-PTRT并聯(lián)機(jī)器人的運(yùn)動位姿誤差模型,建立位姿誤差修正的目標(biāo)函數(shù)為:
標(biāo)準(zhǔn)粒子算法的基本原理為:在1個(gè)n維搜索空間內(nèi),m個(gè)粒子組成一個(gè)群體,其中第i個(gè)粒子的位 置 表 示 為Xi=(Xi1,Xi2,···,Xin)T,速 度 表 示 為Vi=(Vi1,Vi2,···,Vin)T。粒子在尋優(yōu)過程中,依靠局部極值Pi=(Pi1,Pi2,···,Pin)和全局極值Pg=(Pg1,Pg2,···,Pgn)更新位置和速度,公式為:
式中,c1、c2為學(xué)習(xí)因子;r1、r2為分布在(0,1)之間的隨機(jī)數(shù);t為迭代次數(shù);w為慣性權(quán)重;Vt+1id為更新的速度;Xt+1id為更新的位置;Ptgd為當(dāng)前全局極值。
根據(jù)粒子優(yōu)化算法設(shè)定其初始參數(shù)。學(xué)習(xí)因子c1=c2=2,種群數(shù)量m=2 000,種群個(gè)體數(shù)D=6,最大迭代次數(shù)t=2 000,慣性權(quán)重w=1.1。根據(jù)式(11)-(12)變換粒子的位置和速度,達(dá)到最大迭代次數(shù)或最大誤差時(shí)停止,粒子算法步驟流程如圖3所示。PSO算法修正的運(yùn)動位姿誤差曲線如圖4所示。從圖4可以看出,隨著迭代次數(shù)的增加,適應(yīng)度變??;前2次迭代時(shí),適應(yīng)度迅速減小,隨之速度變慢,當(dāng)?shù)?0次時(shí),粒子的適應(yīng)度變化曲線趨于穩(wěn)定,此時(shí)位姿誤差修正目標(biāo)函數(shù)最小值為Fv=0.031 3。綜上可知,粒子適應(yīng)度曲線沒有趨于零,因此粒子存在過早收斂現(xiàn)象。
圖3 標(biāo)準(zhǔn)粒子算法步驟流程
圖4 PSO算法修正的運(yùn)動位姿誤差曲線
采用標(biāo)準(zhǔn)粒子算法,得到6-PTRT并聯(lián)機(jī)器人優(yōu)化后的各個(gè)驅(qū)動桿桿長誤差參數(shù),并與理論值對比,其誤差參數(shù)如表1所示。
表1 6-PTRT并聯(lián)機(jī)器人各個(gè)驅(qū)動桿優(yōu)化后的誤差參數(shù)
慣性權(quán)重w決定粒子優(yōu)化算法的尋優(yōu)能力,增大w粒子全局搜索能力增強(qiáng);減小w粒子局部搜索能力增強(qiáng)。為調(diào)整粒子全局及局部尋優(yōu)能力,采用自適應(yīng)慣性權(quán)重粒子算法,慣性權(quán)重w表示為:
式中,wmax為最大慣性權(quán)重;wmin為最小慣性權(quán)重;f為粒子當(dāng)前的目標(biāo)函數(shù)值;favg為當(dāng)前所有粒子的平均目標(biāo)函數(shù)值;fmin為當(dāng)前所有粒子的最小目標(biāo)函數(shù)值。
自適應(yīng)慣性權(quán)重粒子優(yōu)化算法在標(biāo)準(zhǔn)粒子算法原理的基礎(chǔ)上,將固定值的慣性權(quán)重改為非線性的動態(tài)慣性權(quán)重系數(shù)。當(dāng)目標(biāo)函數(shù)值優(yōu)于平均目標(biāo)函數(shù)值時(shí),對應(yīng)慣性權(quán)重因子較小,保留該粒子;當(dāng)目標(biāo)函數(shù)值差于平均目標(biāo)函數(shù)值時(shí),對應(yīng)慣性權(quán)重因子較大,使粒子向較好的搜索區(qū)域靠攏。根據(jù)粒子優(yōu)化算法設(shè)定初始學(xué)習(xí)因子c1=c2=2.0,種群中個(gè)體個(gè)數(shù)D=6,種群數(shù)量m=2 000,最大迭代次數(shù)t=100,最大慣性權(quán)重wmax=0.9,最小慣性權(quán)重wmin=0.6。根據(jù)式(11)-(13)變換粒子的位置和速度,達(dá)到最大迭代次數(shù)或最大誤差時(shí)停止,自適應(yīng)權(quán)重PSO算法修正的運(yùn)動位姿誤差曲線如圖5所示。
圖5 自適應(yīng)權(quán)重PSO算法修正的運(yùn)動位姿誤差曲線
從圖5可以看出,隨著迭代次數(shù)的增加,適應(yīng)度迅速變小,最終逐漸趨于零;隨著迭代次數(shù)的增加,粒子能夠快速找到局部最優(yōu)點(diǎn);前30次迭代,適應(yīng)度迅速減小,隨之速度減緩,當(dāng)?shù)?5次時(shí),粒子的適應(yīng)度變化曲線趨于穩(wěn)定,粒子收斂于全局最優(yōu)值,位姿誤差與理論誤差相差10-6數(shù)量級,位姿誤差修正目標(biāo)函數(shù)最小值Fv=5.63×10-8,修正效果比較明顯[15]。
采用自適應(yīng)權(quán)重粒子優(yōu)化算法,得自適應(yīng)權(quán)重PSO算法優(yōu)化后驅(qū)動桿的誤差參數(shù)如表2所示。
表2 自適應(yīng)權(quán)重PSO算法優(yōu)化后驅(qū)動桿的誤差參數(shù)
帶收縮因子自適應(yīng)權(quán)重粒子算法原理為:與慣性權(quán)重系數(shù)相比,收縮因子能更有效控制粒子的更新速度,還能增強(qiáng)粒子優(yōu)化算法的局部和全局搜索能力。僅利用自適應(yīng)權(quán)重的粒子算法,后期由于慣性權(quán)值過小,會失去探索新區(qū)域的能力,而加入壓縮因子的方法則會彌補(bǔ)此不足。本文采用了一種既考慮慣性權(quán)重,又考慮收縮因子的粒子群優(yōu)化算法,這種算法既可以保持粒子活性,又可以提高粒子收斂于全局極值點(diǎn)的速度。
采用帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法,在自適應(yīng)權(quán)重粒子優(yōu)化算法原理的基礎(chǔ)上,引入收縮因子,可保證算法的收斂性。
式中,k為壓縮因子;?=c1+c2。
設(shè)定粒子優(yōu)化算法初始參數(shù)為c1=c2=2.05,種群中個(gè)體個(gè)數(shù)D=6,種群數(shù)量m=2 000,最大慣性權(quán)重wmax=0.9,最小慣性權(quán)重wmin=0.6,最大迭代次數(shù)t=100。根據(jù)式(13)-(16)變換粒子的位置和速度,達(dá)到最大迭代次數(shù)或最大誤差時(shí)停止,得到并聯(lián)機(jī)器人的運(yùn)動位姿誤差與迭代次數(shù)之間的關(guān)系,帶收縮因子的PSO算法修正的運(yùn)動位姿誤差曲線如圖6所示。
從圖6可以看出,粒子的適應(yīng)度隨著迭代次數(shù)的增大而急速減小,并且逐漸趨于零;粒子隨著迭代次數(shù)增加,快速出現(xiàn)局部最優(yōu)點(diǎn),然后繼續(xù)迭代;前20次迭代時(shí),適應(yīng)度急速減小,之后下降速度變慢,在迭代30次時(shí),粒子的適應(yīng)度變化曲線趨于穩(wěn)定,搜索空間中的粒子收斂于全局最優(yōu)值,6-PTRT并聯(lián)機(jī)器人末端的運(yùn)動位姿誤差為10-8數(shù)量級,位姿誤差修正目標(biāo)函數(shù)最小值Fv=2.19×10-15,修正效果相比自適應(yīng)權(quán)重粒子優(yōu)化算法更加明顯。同理,其余末端位姿點(diǎn)的修正方法和結(jié)果與此類似。結(jié)果表明,改進(jìn)粒子優(yōu)化算法不僅具有較快的收斂速度,還具有更強(qiáng)的局部和全局搜索能力,提高粒子收斂于全局最優(yōu)解的速度。
圖6 帶收縮因子的PSO算法修正的運(yùn)動位姿誤差曲線
針對粒子群算法(PSO)存在的過早收斂問題,采用帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法,得到6-PTRT并聯(lián)機(jī)器人優(yōu)化后的各個(gè)驅(qū)動桿桿長誤差參數(shù),并求得理論值與實(shí)際值之間的誤差,帶收縮因子的PSO算法優(yōu)化后的驅(qū)動桿誤差參數(shù)計(jì)算結(jié)果同自適應(yīng)權(quán)重PSO算法相同。
對比表1-2及圖4-6可知,標(biāo)準(zhǔn)粒子優(yōu)化算法存在粒子過早收斂現(xiàn)象,最終求解值誤差偏大;自適應(yīng)粒子慣性權(quán)重能有效避免粒子過早收斂問題,但是會失去探索新區(qū)域的能力;帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法不僅可以避免粒子過早收斂問題,還能有效增強(qiáng)粒子優(yōu)化算法的局部和全局搜索能力,且提高粒子收斂于全局的速度,求解值誤差減小。
根據(jù)表2中6-PTRT并聯(lián)機(jī)器人各個(gè)驅(qū)動桿優(yōu)化后的誤差參數(shù),得到6-PTRT并聯(lián)機(jī)器人的理論與其修正后的位姿誤差如表3所示。
從表3可以看出,帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法能夠更快速有效地減小并聯(lián)機(jī)器人的位姿誤差,對并聯(lián)機(jī)器人期望軌跡的修正具有重要的意義。
表3 6-PTRT并聯(lián)機(jī)器人的理論與其修正后的位姿誤差
令6-PTRT并聯(lián)機(jī)器人的運(yùn)動軌跡為:
式中,x、y、z為機(jī)器人在其方向的位移方程;t′為仿真時(shí)間。
設(shè)置仿真時(shí)間為10 s,步長為0.1 s,利用帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法修正6-PTRT并聯(lián)機(jī)器人的輸出位姿誤差,6-PTRT并聯(lián)機(jī)器人的運(yùn)動軌跡如圖7所示。
圖7 6-PTRT并聯(lián)機(jī)器人的運(yùn)動軌跡
從圖7可以看出,理想軌跡x、y、z方向的誤差分別為-0.028 8、-0.037 0、0.003 0 mm,修正后期望軌跡的x、y、z方向的誤差分別為-6.7×10-6、8.9×10-6、-6.0×10-6mm,說明采用帶收縮因子的自適應(yīng)權(quán)重的粒子群算法能夠有效地修正6-PTRT并聯(lián)機(jī)器人的軌跡,減小其軌跡規(guī)劃中的運(yùn)動誤差,顯著提升6-PTRT并聯(lián)機(jī)器人的工作精度。
(1)建立6-PTRT并聯(lián)機(jī)器人輸出位姿誤差模型,并基于位姿誤差模型,分析驅(qū)動桿桿長誤差參數(shù)對位姿誤差的影響。
(2)采用不同算法求解優(yōu)化后的各個(gè)驅(qū)動桿桿長誤差參數(shù),并與理論值對比。帶收縮因子的自適應(yīng)權(quán)重粒子優(yōu)化算法避免了粒子過早收斂問題,增強(qiáng)了粒子的局部和全局搜索能力,降低了求解值的誤差。
(3)利用帶收縮因子的自適應(yīng)權(quán)重粒子算法優(yōu)化各個(gè)驅(qū)動桿桿長誤差參數(shù),運(yùn)動位姿綜合誤差為10-8數(shù)量級,軌跡修正目標(biāo)函數(shù)最小值為Fv=2.19×10-15,相比其他粒子算法更加高效。