吳經(jīng)緯,謝志江,吳小勇
(重慶大學(xué) 機(jī)械傳動(dòng)國(guó)家重點(diǎn)實(shí)驗(yàn)室, 重慶 400044)
在探月工程第3期工程中巡回探測(cè)并帶回采樣是主要的任務(wù)[1],為了檢查鉆取、表取等設(shè)備安裝位置的正確性,需要在地面對(duì)采樣封裝過(guò)程中的各種情況進(jìn)行模擬實(shí)驗(yàn),為此設(shè)計(jì)了一套實(shí)驗(yàn)裝置來(lái)對(duì)設(shè)備的著陸姿態(tài)進(jìn)行模擬[2]。該裝置需要滿足月面坡度為水平面兩個(gè)方向-10°~10°的轉(zhuǎn)動(dòng)和豎直方向上-200~250 mm的移動(dòng)。由于在采樣封裝專項(xiàng)實(shí)驗(yàn)過(guò)程中著陸姿態(tài)的準(zhǔn)確性至關(guān)重要,所以需要一種具有高精度的運(yùn)動(dòng)學(xué)正解算法來(lái)保證實(shí)驗(yàn)結(jié)果的精確性。
解析法和數(shù)值法是求解并聯(lián)機(jī)構(gòu)的運(yùn)動(dòng)學(xué)正解的兩種常見(jiàn)方法[3]。郭宗環(huán)等[4]采用Newton-Raphson法求解了該機(jī)構(gòu)的運(yùn)動(dòng)學(xué)正解,該算法的特點(diǎn)是在每一次迭代時(shí)都計(jì)算雅可比矩陣和它的逆矩陣,并且該算法的精度隨不同初始取值而波動(dòng),初始取值不同會(huì)使結(jié)果誤差很大。
近年來(lái),智能優(yōu)化算法發(fā)展迅速,如粒子群算法(particle swarm optimization,PSO)[5-8]、遺傳算法(genetic algorithm)[9-11]等都開(kāi)始被運(yùn)用在機(jī)器人運(yùn)動(dòng)學(xué)解算上。粒子群算法的優(yōu)點(diǎn)是計(jì)算能力強(qiáng),無(wú)需梯度信息,尤其是其先天的實(shí)數(shù)編碼特點(diǎn)在解決實(shí)優(yōu)化問(wèn)題方面優(yōu)勢(shì)極為突出,計(jì)算時(shí)需要進(jìn)行調(diào)整的參數(shù)較少,結(jié)構(gòu)簡(jiǎn)單,算法容易應(yīng)用,但缺點(diǎn)在于其全局尋優(yōu)能力差,且缺乏速度的動(dòng)態(tài)調(diào)整,陷入小區(qū)域最優(yōu)值的概率很大,會(huì)導(dǎo)致其精度降低。遺傳算法先搜索問(wèn)題解的串集,采用全局同步搜索的方法,但一般的算法容易出現(xiàn)收斂過(guò)慢或者會(huì)過(guò)早陷入局部最優(yōu)值問(wèn)題,導(dǎo)致無(wú)法進(jìn)行精確尋優(yōu)[12]。20世紀(jì)90年代DORIGO等[13]提出蟻群算法用來(lái)解決旅行商旅問(wèn)題(TSP),并得到了較好的實(shí)驗(yàn)結(jié)果。Bilchev G A等[14]首先使用了一種適用于連續(xù)空間解最優(yōu)值的連續(xù)蟻群算法,該算法采用遺傳算法與蟻群算法相結(jié)合思想,先利用遺傳算法對(duì)整個(gè)可行域完成初步搜索計(jì)算,完成可行域整體搜索后再在局部使用蟻群算法對(duì)所得到結(jié)果進(jìn)一步優(yōu)化從而獲得最終結(jié)果。DREO等[15-16]提出了一種改進(jìn)后的交流式蟻群算法,該算法修改了激素信息的保留方式以及螞蟻的移動(dòng)規(guī)則,并通過(guò)激素信息溝通和直接溝通的規(guī)則來(lái)進(jìn)行引導(dǎo)蟻群尋優(yōu)。高尚等[17]運(yùn)用了一種在空間劃分思想基礎(chǔ)上的連續(xù)蟻群算法,相比于空間劃分法在求解時(shí)需要利用空間每一個(gè)節(jié)點(diǎn)的內(nèi)容,該算法只利用了最小值的信息,所以該方法的搜索空間雖然較大,但是精度卻不高。Pourtakdoust S H等[18]提出了一種只依賴激素信息的連續(xù)蟻群算法,該算法蟻群無(wú)犯錯(cuò)概率,最優(yōu)解求解精度不高。
本文先把求解非線性方程組的難題改變成為多元優(yōu)化的求解,再采用權(quán)和法將多元優(yōu)化的求解改變成為單目標(biāo)的求解,最后再使用優(yōu)化后的連續(xù)蟻群算法完成該單目標(biāo)的求解。
根據(jù)Stewart并聯(lián)機(jī)構(gòu)特征,通過(guò)構(gòu)型演化得到如圖1所示能夠?qū)崿F(xiàn)月壤采樣實(shí)驗(yàn)的月面著陸位姿模擬3-UPS/PU機(jī)構(gòu),實(shí)現(xiàn)3自由度姿態(tài)的調(diào)整。
機(jī)構(gòu)模型簡(jiǎn)圖如圖1所示,該機(jī)構(gòu)由上平臺(tái)、下平臺(tái)以及中間的3根UPS分支和1根支撐PU分支構(gòu)成。UPS分支的下端由虎克鉸U與下平臺(tái)連接,3根UPS分支在下平臺(tái)上分布安裝,上端由球鉸S與上平臺(tái)連接,安裝方式與下平臺(tái)相似,中心位置的支撐PU分支一端和下平臺(tái)固定連接,另一端由虎克鉸U與上平臺(tái)連接,最終能完成在空間上兩個(gè)角度的轉(zhuǎn)動(dòng)以及沿著垂直方向上的移動(dòng)。
圖2為該并聯(lián)機(jī)構(gòu)的結(jié)構(gòu)簡(jiǎn)圖,在3個(gè)虎克鉸中心所在平面建立定坐標(biāo)系Oxyz,以3個(gè)虎克鉸形成的平面的幾何中心為O點(diǎn),x軸即在直線OA1上,z軸的方向垂直于3個(gè)虎克鉸形成的平面,方向向上,y軸平行于A2A3。以中間虎克鉸的中心為原點(diǎn)來(lái)構(gòu)建坐標(biāo)系O1x1y1z1,x1軸定義為由中間虎克鉸中心O1指向B1,y1軸方向定義為平行于B2B3,則z1軸垂直于上平臺(tái),方向向上。上平臺(tái)繞x軸、y軸、z軸的轉(zhuǎn)動(dòng)角分別依次定義為α、β、γ,則上平臺(tái)上的動(dòng)坐標(biāo)系Oxyz關(guān)于下平臺(tái)上的定坐標(biāo)系O1x1y1z1的坐標(biāo)轉(zhuǎn)換旋轉(zhuǎn)矩陣R為
(1)
由于該機(jī)構(gòu)的上平臺(tái)和下平臺(tái)在z方向上沒(méi)有相對(duì)旋轉(zhuǎn),即γ=0,代入式(1)得
(2)
圖2 結(jié)構(gòu)簡(jiǎn)圖
圖3為該機(jī)構(gòu)的封閉矢量圖,各矢量物理意義如下:ai(i=1,2,3)分別是下平臺(tái)上虎克鉸中心點(diǎn)Ai(i=1,2,3)在Oxyz下的位置矢量,αi=(xai,yai,zai)T;bi(i=1,2,3)為上平臺(tái)球鉸S球心位置點(diǎn)Bi(i=1,2,3)在O1x1y1z1下的位置矢量,bi=(xbi,ybi,zbi)T;ui為直線驅(qū)動(dòng)桿上的單位矢量;p為上平臺(tái)上的O點(diǎn)在下平臺(tái)上Oxyz下的位置矢量,p=(0,0,h);li為第i根直線桿的桿長(zhǎng);ai、Rbi、liui、p四個(gè)矢量構(gòu)成閉環(huán)。
圖3 封閉矢量圖
由矢量圖3可得:
liui=Rbi-ai+p,i=1,2,3
(3)
則可得出該機(jī)構(gòu)的位置逆解數(shù)學(xué)模型
(4)
將各矢量值代入化簡(jiǎn)得
(5)
將機(jī)構(gòu)的逆解記為
li=g(α,β,z),i=1,2,3
(6)
并聯(lián)機(jī)構(gòu)求解其運(yùn)動(dòng)學(xué)正解的一般辦法是解析法和數(shù)值法。解析法能得到該運(yùn)動(dòng)學(xué)方程的所有解,但是求解一個(gè)一元高次方程的過(guò)程相當(dāng)復(fù)雜,而且隨著機(jī)構(gòu)不同解法也不同,通用性很差,求解耗時(shí)也多。數(shù)值法的運(yùn)算量比較大,而且通常情況下不能保證求出全部的解,所以本文采用一種優(yōu)化后的蟻群算法進(jìn)行求解。
由式(4)可知該方程組為
i=1,2,3
(7)
然后將該組非線性方程解算問(wèn)題改變成多元最優(yōu)值尋找,即求出式(8)最小值
i=1,2,3
(8)
權(quán)和法可以根據(jù)各項(xiàng)目標(biāo)的相對(duì)重要程度把多元尋優(yōu)問(wèn)題改變成對(duì)所有各項(xiàng)的加權(quán)求和的整體評(píng)估問(wèn)題:
(9)
式中ωi為權(quán)重系數(shù)。
把式(8)的各項(xiàng)代入式(9),即得到了可用于蟻群算法的運(yùn)動(dòng)學(xué)正解模型:
i=1,2,3
(10)
將所有各項(xiàng)的權(quán)重系數(shù)取為同一數(shù)值,為了方便求解,取ωi=1。
蟻群算法最先被運(yùn)用在解決著名的TSP商旅問(wèn)題上[19]。該算法使用多目標(biāo)同時(shí)作業(yè)的計(jì)算方法,主要用于求解離散性問(wèn)題,這種蟻群算法的尋優(yōu)機(jī)制包括適應(yīng)階段和協(xié)作階段兩個(gè)基本階段[20-21]。在t時(shí)刻時(shí)某個(gè)螞蟻k從空間某一點(diǎn)i移動(dòng)到另一點(diǎn)j的概率為:
(11)
式中:τij為位置i,j間的蟻群激素信息值;ηij為能見(jiàn)度系數(shù),反映從位置i到位置j的啟發(fā)程度;ak為螞蟻k下一步能選擇的位置;α、β為螞蟻在運(yùn)動(dòng)過(guò)程中所積累的信息和啟發(fā)信息在螞蟻選擇路徑中的相對(duì)重要性。
運(yùn)動(dòng)過(guò)程中的激素信息強(qiáng)度隨著螞蟻的移動(dòng)發(fā)生變化,螞蟻進(jìn)行一輪運(yùn)動(dòng)循環(huán)后,各條運(yùn)動(dòng)路徑上的激素信息強(qiáng)度的更新規(guī)則為:
τij(t+1) =ρτij(t)+Δτij(t,t+1)
(12)
(13)
式中:Δτij(t,t+1)為在該次循環(huán)中(i,j) 位置上的激素信息改變量;為螞蟻k時(shí)刻(t,t+1) 留在(i,j)位置上的激素信息量,其值大小取決于不同的螞蟻;ρ為殘留激素信息濃度,ρ<1。
搜索時(shí)間長(zhǎng)、易陷入局部最優(yōu)解是蟻群算法最為突出的缺點(diǎn)[22]。再者基本蟻群算法適用于解決離散問(wèn)題,而本文的最優(yōu)值求解屬于在連續(xù)區(qū)域的求解問(wèn)題,因此必須對(duì)基本蟻群算法進(jìn)行改進(jìn)。吳小勇等[23]提出了一種適合在在連續(xù)域進(jìn)行最優(yōu)解求解的優(yōu)化蟻群算法,但其精度不高?;谝陨衔墨I(xiàn)的研究,本文針對(duì)該驗(yàn)證機(jī)構(gòu)提出了一種相對(duì)簡(jiǎn)單的優(yōu)化蟻群算法,具體方案如下:
根據(jù)實(shí)驗(yàn)技術(shù)要求設(shè)定機(jī)構(gòu)的各自由度取值范圍,采用隨機(jī)分布的方法將螞蟻隨機(jī)分布在該范圍內(nèi),計(jì)算各個(gè)螞蟻在起始坐標(biāo)位置的激素信息值,并取出最優(yōu)激素信息值。每只螞蟻由移動(dòng)規(guī)則來(lái)決定每一次的移動(dòng)是進(jìn)行整體搜索還是局部搜索,螞蟻每完成一次轉(zhuǎn)移后就進(jìn)行一次激素信息值更新,并刷新最優(yōu)激素信息值,經(jīng)過(guò)反復(fù)循環(huán)直到符合迭代終止約束要求即得到了最優(yōu)結(jié)果。具體實(shí)現(xiàn)步驟如下:
1) 將蟻群隨機(jī)分散在由各個(gè)變量定義域組成的區(qū)域內(nèi)的任意位置當(dāng)作其起始位置。
2) 激素信息的大小可以由目標(biāo)函數(shù)來(lái)確定,激素信息可以表示為
τ= -f(α,β,z)
(14)
由于目標(biāo)函數(shù)與激素信息的變化情況相反,式(14)的目的是求解目標(biāo)函數(shù)的最小值,而根據(jù)激素信息值與目標(biāo)函數(shù)的關(guān)系即得到了蟻群激素信息的最大值。
由于當(dāng)目標(biāo)函數(shù)由正向開(kāi)始逐漸逼近0時(shí),其激素信息值是由負(fù)向漸漸接近于0的,因此在該種情況下不方便準(zhǔn)確評(píng)估激素信息的濃度,所以提出用平均激素信息值對(duì)激素信息進(jìn)行評(píng)估。平均激素信息值的計(jì)算公式如式(15) 所示。
τm=mean(-f(α,β,z))
(15)
式中mean( )為取平均值函數(shù)。
根據(jù)式(14)得到蟻群起始時(shí)的激素信息值的大小,并在所有激素信息值中進(jìn)行篩選選取最佳值τbest,同時(shí)根據(jù)式(15)求出平均激素信息值τm。
4) 蟻群整體是做全定義域?qū)?yōu)或者做部分區(qū)域?qū)?yōu)是由蟻群轉(zhuǎn)移概率決定的,表達(dá)式為式(16)。
(16)
式中:i代表蟻群遷徙序列數(shù);j代表螞蟻編號(hào);τi, j代表蟻群中第j只螞蟻在進(jìn)行第i次遷徙之后的激素信息值。
5) 每只螞蟻在完成一次整個(gè)定義域搜索或者部分區(qū)域搜索后,更新該螞蟻的激素信息值,激素信息局部更新計(jì)算規(guī)則為
τ(i,j) =(1-ρ)τ(i,j)+ρΔ′τ(i,j)
(17)
6) 在每只螞蟻完成一次遷徙后,按式(18)對(duì)整個(gè)蟻群的激素信息值進(jìn)行更新計(jì)算。
τi+1, j=(1-α)τi, j+αΔ(i,j)
(18)
式中:Δτ(i,j)=(Lbest)-1,(i,j)?全局最佳路線;α?(0,1);Lbest表示該次計(jì)算過(guò)程當(dāng)中全部螞蟻遍歷的最短路線的線段長(zhǎng)度。
7) 經(jīng)過(guò)多次迭代計(jì)算后,當(dāng)出現(xiàn)循環(huán)次數(shù)n不超過(guò)規(guī)定的最大允許循環(huán)次數(shù)時(shí),跳轉(zhuǎn)至步驟 4),當(dāng)次數(shù)超過(guò)最大循環(huán)次數(shù)時(shí)則跳出循環(huán),并輸出最終結(jié)果。
定義上平臺(tái)的初始高度為p=(0,0,1090),機(jī)構(gòu)各自由度工作區(qū)間為α,β?[-15°,15°],z?[890 mm,1 340 mm]。本文以計(jì)算動(dòng)平臺(tái)三自由度位姿在α=10°,β=10°,z=1 090 mm位置時(shí)的正解具體實(shí)例為例,運(yùn)用本文提出的改進(jìn)后優(yōu)化蟻群算法求解出該機(jī)構(gòu)的運(yùn)動(dòng)學(xué)正解并在現(xiàn)場(chǎng)進(jìn)行實(shí)測(cè)對(duì)算法準(zhǔn)確性進(jìn)行驗(yàn)證。根據(jù)該機(jī)構(gòu)的位置逆解求得在上述空間位姿時(shí)3條支鏈的長(zhǎng)度為:d1=1 208.3 mm,d2=1 564.3 mm,d3=1 341.4 mm,可得目標(biāo)函數(shù)f(α,β,z) 在工作空間內(nèi)的值域。于是機(jī)構(gòu)的運(yùn)動(dòng)學(xué)正解求解問(wèn)題就轉(zhuǎn)化為尋找該空間范圍內(nèi)目標(biāo)函數(shù)的最小值,所以首先將螞蟻隨機(jī)安排在圖4區(qū)域內(nèi)。
采用優(yōu)化后的連續(xù)蟻群算法使所有螞蟻聚集在f(α,β,z)最小值處,螞蟻在運(yùn)動(dòng)100次和200次后的分布情況如圖5、6所示。
圖4 螞蟻初始位置分布
圖5 螞蟻遷徙100次后所處位置
圖6 螞蟻遷徙200次后所處位置
如圖7所示,可以通過(guò)激素信息以及平均激素信息值的變化看出該算法的收斂速度。
圖7 平均激素信息值和最大激素信息值收斂曲線
計(jì)算可得,目標(biāo)函數(shù)f(α,β,z)取最小值時(shí)α=10.001 0,β=10.001 4,z=1 090.000 1,計(jì)算精度滿足要求。而基本Newton-Raphson受初值的影響,同一位姿在不同初始值的情況下的計(jì)算結(jié)果如表1所示。
另取3組桿長(zhǎng)值,利用傳統(tǒng)Newton-Raphson法求解出的機(jī)構(gòu)正解并與采用本文優(yōu)化后的連續(xù)蟻群算法求解出的機(jī)構(gòu)正解進(jìn)行對(duì)比。
根據(jù)以上3組驅(qū)動(dòng)桿桿長(zhǎng),利用蟻群算法解出機(jī)構(gòu)的正解,與傳統(tǒng)Newton-Raphson法取最優(yōu)初始值下的正解結(jié)果比較見(jiàn)表2、3。
表1 Newton-Raphson法計(jì)算結(jié)果
對(duì)機(jī)構(gòu)按著初始值(表2)輸入數(shù)據(jù)后,利用激光跟蹤儀對(duì)運(yùn)動(dòng)后的平臺(tái)進(jìn)行檢測(cè)(圖8),得到動(dòng)平臺(tái)的位姿,實(shí)驗(yàn)數(shù)據(jù)如表4所示。
表3 機(jī)構(gòu)正解輸出
圖8 利用激光跟蹤測(cè)量裝置進(jìn)行現(xiàn)場(chǎng)驗(yàn)證
表4 正解實(shí)例檢測(cè)數(shù)據(jù)
由以上數(shù)據(jù)可以看出:采用Newton-Raphson法計(jì)算的結(jié)果在取不同初始值時(shí)偏差很大,并且得到的最優(yōu)解誤差較大,而本文的連續(xù)蟻群算法則避免了初始值對(duì)計(jì)算結(jié)果的影響,且精度更高。
本文將3-UPS/PU的運(yùn)動(dòng)學(xué)正解非線性方程組的求解問(wèn)題改變?yōu)榍蠼饽繕?biāo)函數(shù)的最優(yōu)值,運(yùn)用了一種優(yōu)化的蟻群算法,使計(jì)算結(jié)果不受不同初始值的影響,將逆解求得的桿長(zhǎng)輸入機(jī)構(gòu)后調(diào)整得到的姿態(tài)與計(jì)算所得正解結(jié)果對(duì)比可得:α、β最大誤差為 0.012°,z最大誤差為0.002 4 mm,與采用Newton-Raphson法相比計(jì)算結(jié)果具有更高的精度。該優(yōu)化后的算法在全區(qū)域搜索過(guò)程中結(jié)合了局部搜索,在局部搜索過(guò)程中又嵌入了確定性搜索,從而獲得了更快的收斂速度和尋優(yōu)能力,為采樣實(shí)驗(yàn)順利進(jìn)行提供了保障。