吳經緯,謝志江,吳小勇
(重慶大學 機械傳動國家重點實驗室, 重慶 400044)
在探月工程第3期工程中巡回探測并帶回采樣是主要的任務[1],為了檢查鉆取、表取等設備安裝位置的正確性,需要在地面對采樣封裝過程中的各種情況進行模擬實驗,為此設計了一套實驗裝置來對設備的著陸姿態進行模擬[2]。該裝置需要滿足月面坡度為水平面兩個方向-10°~10°的轉動和豎直方向上-200~250 mm的移動。由于在采樣封裝專項實驗過程中著陸姿態的準確性至關重要,所以需要一種具有高精度的運動學正解算法來保證實驗結果的精確性。
解析法和數值法是求解并聯機構的運動學正解的兩種常見方法[3]。郭宗環等[4]采用Newton-Raphson法求解了該機構的運動學正解,該算法的特點是在每一次迭代時都計算雅可比矩陣和它的逆矩陣,并且該算法的精度隨不同初始取值而波動,初始取值不同會使結果誤差很大。
近年來,智能優化算法發展迅速,如粒子群算法(particle swarm optimization,PSO)[5-8]、遺傳算法(genetic algorithm)[9-11]等都開始被運用在機器人運動學解算上。粒子群算法的優點是計算能力強,無需梯度信息,尤其是其先天的實數編碼特點在解決實優化問題方面優勢極為突出,計算時需要進行調整的參數較少,結構簡單,算法容易應用,但缺點在于其全局尋優能力差,且缺乏速度的動態調整,陷入小區域最優值的概率很大,會導致其精度降低。遺傳算法先搜索問題解的串集,采用全局同步搜索的方法,但一般的算法容易出現收斂過慢或者會過早陷入局部最優值問題,導致無法進行精確尋優[12]。20世紀90年代DORIGO等[13]提出蟻群算法用來解決旅行商旅問題(TSP),并得到了較好的實驗結果。Bilchev G A等[14]首先使用了一種適用于連續空間解最優值的連續蟻群算法,該算法采用遺傳算法與蟻群算法相結合思想,先利用遺傳算法對整個可行域完成初步搜索計算,完成可行域整體搜索后再在局部使用蟻群算法對所得到結果進一步優化從而獲得最終結果。DREO等[15-16]提出了一種改進后的交流式蟻群算法,該算法修改了激素信息的保留方式以及螞蟻的移動規則,并通過激素信息溝通和直接溝通的規則來進行引導蟻群尋優。高尚等[17]運用了一種在空間劃分思想基礎上的連續蟻群算法,相比于空間劃分法在求解時需要利用空間每一個節點的內容,該算法只利用了最小值的信息,所以該方法的搜索空間雖然較大,但是精度卻不高。Pourtakdoust S H等[18]提出了一種只依賴激素信息的連續蟻群算法,該算法蟻群無犯錯概率,最優解求解精度不高。
本文先把求解非線性方程組的難題改變成為多元優化的求解,再采用權和法將多元優化的求解改變成為單目標的求解,最后再使用優化后的連續蟻群算法完成該單目標的求解。
根據Stewart并聯機構特征,通過構型演化得到如圖1所示能夠實現月壤采樣實驗的月面著陸位姿模擬3-UPS/PU機構,實現3自由度姿態的調整。
機構模型簡圖如圖1所示,該機構由上平臺、下平臺以及中間的3根UPS分支和1根支撐PU分支構成。UPS分支的下端由虎克鉸U與下平臺連接,3根UPS分支在下平臺上分布安裝,上端由球鉸S與上平臺連接,安裝方式與下平臺相似,中心位置的支撐PU分支一端和下平臺固定連接,另一端由虎克鉸U與上平臺連接,最終能完成在空間上兩個角度的轉動以及沿著垂直方向上的移動。
圖2為該并聯機構的結構簡圖,在3個虎克鉸中心所在平面建立定坐標系Oxyz,以3個虎克鉸形成的平面的幾何中心為O點,x軸即在直線OA1上,z軸的方向垂直于3個虎克鉸形成的平面,方向向上,y軸平行于A2A3。以中間虎克鉸的中心為原點來構建坐標系O1x1y1z1,x1軸定義為由中間虎克鉸中心O1指向B1,y1軸方向定義為平行于B2B3,則z1軸垂直于上平臺,方向向上。上平臺繞x軸、y軸、z軸的轉動角分別依次定義為α、β、γ,則上平臺上的動坐標系Oxyz關于下平臺上的定坐標系O1x1y1z1的坐標轉換旋轉矩陣R為

(1)
由于該機構的上平臺和下平臺在z方向上沒有相對旋轉,即γ=0,代入式(1)得

(2)

圖2 結構簡圖
圖3為該機構的封閉矢量圖,各矢量物理意義如下:ai(i=1,2,3)分別是下平臺上虎克鉸中心點Ai(i=1,2,3)在Oxyz下的位置矢量,αi=(xai,yai,zai)T;bi(i=1,2,3)為上平臺球鉸S球心位置點Bi(i=1,2,3)在O1x1y1z1下的位置矢量,bi=(xbi,ybi,zbi)T;ui為直線驅動桿上的單位矢量;p為上平臺上的O點在下平臺上Oxyz下的位置矢量,p=(0,0,h);li為第i根直線桿的桿長;ai、Rbi、liui、p四個矢量構成閉環。

圖3 封閉矢量圖
由矢量圖3可得:
liui=Rbi-ai+p,i=1,2,3
(3)
則可得出該機構的位置逆解數學模型
(4)
將各矢量值代入化簡得
(5)
將機構的逆解記為
li=g(α,β,z),i=1,2,3
(6)
并聯機構求解其運動學正解的一般辦法是解析法和數值法。解析法能得到該運動學方程的所有解,但是求解一個一元高次方程的過程相當復雜,而且隨著機構不同解法也不同,通用性很差,求解耗時也多。數值法的運算量比較大,而且通常情況下不能保證求出全部的解,所以本文采用一種優化后的蟻群算法進行求解。
由式(4)可知該方程組為
i=1,2,3
(7)
然后將該組非線性方程解算問題改變成多元最優值尋找,即求出式(8)最小值
i=1,2,3
(8)
權和法可以根據各項目標的相對重要程度把多元尋優問題改變成對所有各項的加權求和的整體評估問題:
(9)
式中ωi為權重系數。
把式(8)的各項代入式(9),即得到了可用于蟻群算法的運動學正解模型:
i=1,2,3
(10)
將所有各項的權重系數取為同一數值,為了方便求解,取ωi=1。
蟻群算法最先被運用在解決著名的TSP商旅問題上[19]。該算法使用多目標同時作業的計算方法,主要用于求解離散性問題,這種蟻群算法的尋優機制包括適應階段和協作階段兩個基本階段[20-21]。在t時刻時某個螞蟻k從空間某一點i移動到另一點j的概率為:
(11)
式中:τij為位置i,j間的蟻群激素信息值;ηij為能見度系數,反映從位置i到位置j的啟發程度;ak為螞蟻k下一步能選擇的位置;α、β為螞蟻在運動過程中所積累的信息和啟發信息在螞蟻選擇路徑中的相對重要性。
運動過程中的激素信息強度隨著螞蟻的移動發生變化,螞蟻進行一輪運動循環后,各條運動路徑上的激素信息強度的更新規則為:
τij(t+1) =ρτij(t)+Δτij(t,t+1)
(12)
(13)
式中:Δτij(t,t+1)為在該次循環中(i,j) 位置上的激素信息改變量;為螞蟻k時刻(t,t+1) 留在(i,j)位置上的激素信息量,其值大小取決于不同的螞蟻;ρ為殘留激素信息濃度,ρ<1。
搜索時間長、易陷入局部最優解是蟻群算法最為突出的缺點[22]。再者基本蟻群算法適用于解決離散問題,而本文的最優值求解屬于在連續區域的求解問題,因此必須對基本蟻群算法進行改進。吳小勇等[23]提出了一種適合在在連續域進行最優解求解的優化蟻群算法,但其精度不高?;谝陨衔墨I的研究,本文針對該驗證機構提出了一種相對簡單的優化蟻群算法,具體方案如下:
根據實驗技術要求設定機構的各自由度取值范圍,采用隨機分布的方法將螞蟻隨機分布在該范圍內,計算各個螞蟻在起始坐標位置的激素信息值,并取出最優激素信息值。每只螞蟻由移動規則來決定每一次的移動是進行整體搜索還是局部搜索,螞蟻每完成一次轉移后就進行一次激素信息值更新,并刷新最優激素信息值,經過反復循環直到符合迭代終止約束要求即得到了最優結果。具體實現步驟如下:
1) 將蟻群隨機分散在由各個變量定義域組成的區域內的任意位置當作其起始位置。
2) 激素信息的大小可以由目標函數來確定,激素信息可以表示為
τ= -f(α,β,z)
(14)
由于目標函數與激素信息的變化情況相反,式(14)的目的是求解目標函數的最小值,而根據激素信息值與目標函數的關系即得到了蟻群激素信息的最大值。
由于當目標函數由正向開始逐漸逼近0時,其激素信息值是由負向漸漸接近于0的,因此在該種情況下不方便準確評估激素信息的濃度,所以提出用平均激素信息值對激素信息進行評估。平均激素信息值的計算公式如式(15) 所示。
τm=mean(-f(α,β,z))
(15)
式中mean( )為取平均值函數。
根據式(14)得到蟻群起始時的激素信息值的大小,并在所有激素信息值中進行篩選選取最佳值τbest,同時根據式(15)求出平均激素信息值τm。
4) 蟻群整體是做全定義域尋優或者做部分區域尋優是由蟻群轉移概率決定的,表達式為式(16)。
(16)
式中:i代表蟻群遷徙序列數;j代表螞蟻編號;τi, j代表蟻群中第j只螞蟻在進行第i次遷徙之后的激素信息值。
5) 每只螞蟻在完成一次整個定義域搜索或者部分區域搜索后,更新該螞蟻的激素信息值,激素信息局部更新計算規則為
τ(i,j) =(1-ρ)τ(i,j)+ρΔ′τ(i,j)
(17)
6) 在每只螞蟻完成一次遷徙后,按式(18)對整個蟻群的激素信息值進行更新計算。
τi+1, j=(1-α)τi, j+αΔ(i,j)
(18)
式中:Δτ(i,j)=(Lbest)-1,(i,j)?全局最佳路線;α?(0,1);Lbest表示該次計算過程當中全部螞蟻遍歷的最短路線的線段長度。
7) 經過多次迭代計算后,當出現循環次數n不超過規定的最大允許循環次數時,跳轉至步驟 4),當次數超過最大循環次數時則跳出循環,并輸出最終結果。
定義上平臺的初始高度為p=(0,0,1090),機構各自由度工作區間為α,β?[-15°,15°],z?[890 mm,1 340 mm]。本文以計算動平臺三自由度位姿在α=10°,β=10°,z=1 090 mm位置時的正解具體實例為例,運用本文提出的改進后優化蟻群算法求解出該機構的運動學正解并在現場進行實測對算法準確性進行驗證。根據該機構的位置逆解求得在上述空間位姿時3條支鏈的長度為:d1=1 208.3 mm,d2=1 564.3 mm,d3=1 341.4 mm,可得目標函數f(α,β,z) 在工作空間內的值域。于是機構的運動學正解求解問題就轉化為尋找該空間范圍內目標函數的最小值,所以首先將螞蟻隨機安排在圖4區域內。
采用優化后的連續蟻群算法使所有螞蟻聚集在f(α,β,z)最小值處,螞蟻在運動100次和200次后的分布情況如圖5、6所示。

圖4 螞蟻初始位置分布

圖5 螞蟻遷徙100次后所處位置

圖6 螞蟻遷徙200次后所處位置
如圖7所示,可以通過激素信息以及平均激素信息值的變化看出該算法的收斂速度。

圖7 平均激素信息值和最大激素信息值收斂曲線
計算可得,目標函數f(α,β,z)取最小值時α=10.001 0,β=10.001 4,z=1 090.000 1,計算精度滿足要求。而基本Newton-Raphson受初值的影響,同一位姿在不同初始值的情況下的計算結果如表1所示。
另取3組桿長值,利用傳統Newton-Raphson法求解出的機構正解并與采用本文優化后的連續蟻群算法求解出的機構正解進行對比。
根據以上3組驅動桿桿長,利用蟻群算法解出機構的正解,與傳統Newton-Raphson法取最優初始值下的正解結果比較見表2、3。

表1 Newton-Raphson法計算結果
對機構按著初始值(表2)輸入數據后,利用激光跟蹤儀對運動后的平臺進行檢測(圖8),得到動平臺的位姿,實驗數據如表4所示。

表3 機構正解輸出

圖8 利用激光跟蹤測量裝置進行現場驗證

表4 正解實例檢測數據
由以上數據可以看出:采用Newton-Raphson法計算的結果在取不同初始值時偏差很大,并且得到的最優解誤差較大,而本文的連續蟻群算法則避免了初始值對計算結果的影響,且精度更高。
本文將3-UPS/PU的運動學正解非線性方程組的求解問題改變為求解目標函數的最優值,運用了一種優化的蟻群算法,使計算結果不受不同初始值的影響,將逆解求得的桿長輸入機構后調整得到的姿態與計算所得正解結果對比可得:α、β最大誤差為 0.012°,z最大誤差為0.002 4 mm,與采用Newton-Raphson法相比計算結果具有更高的精度。該優化后的算法在全區域搜索過程中結合了局部搜索,在局部搜索過程中又嵌入了確定性搜索,從而獲得了更快的收斂速度和尋優能力,為采樣實驗順利進行提供了保障。