王 罡,郭芳澤,吳曉仁
(集美大學計算機工程學院,福建 廈門 361021)
隨著機械臂在高精制造業中的參與,機械臂控制精度要求越來越高,傳統的PID 控制難以滿足要求,而模型預測控制、前饋控制等先進控制方法的關鍵在于動力學模型能夠準確反應機械臂動態特性[1]。因此,機械臂動力學參數辨識對提高控制精度、降低控制成本意義明顯。
基于參數模型的機械臂動力學參數辨識方法可分為非智能方法和智能方法。非智能方法是指最小二乘法、最大似然法及其改進等,此類求解方法不具備算法智能性;智能方法是指遺傳算法、人工蟻群算法、粒子群算法等,此類求解方法具備算法智能性。文獻[2]設計了機械臂的持續激勵軌跡,以回歸矩陣條件數最小為指標,此方法提高了參數辨識的精度和速度。文獻[3]設計了滿足速度、加速度邊界約束的改進傅立葉級數作為激勵軌跡,使用最大似然法作為參數估計方法,該方法提高了參數辨識精度。文獻[4]針對無人機懸停過程中動力學參數辨識問題,提出了混沌蜂群算法的求解方法,提高了參數辨識精度。文獻[5]優化了機械表激勵軌跡,使用混沌粒子群算法進行參數辨識,辨識精度高于基本粒子群算法。在智能算法快速發展的今天,基于智能算法的動力學參數辨識成為熱點,主要集中于三個方面:(1)算法性能的開發,提高算法的求解質量,(2)激勵軌跡的設計,激勵出所有待辨識參數;(3)模型建立精度的提高,使模型更加符合實際。
研究了機械臂動力學參數的辨識問題,通過合理建模和改善算法性能兩個手段提高辨識精度。從理論層面分析了花授粉算法后期進化能力弱、陷入局部最優的原因,將定向變異和均勻變異融入到算法中,提出了多變異策略花授粉算法,達到了提高動力學參數辨識精度的目的。
PUMA560 機械臂的動力學參數已知,可以對后文的辨識結果進行精度評價,因此選擇PUMA560 機械臂作為研究對象。PUMA560 機械臂系統具有6 個轉動關節,前三個關節角決定腕部位置,后三個關節角決定腕部姿態[6]。PUMA560 機械臂模型,如圖1 所示。

圖1 PUMA560 機械臂模型Fig.1 PUMA560 Manipulator Model
圖中:x0y0z0坐標系—基坐標系;坐標x1y1z1~x6y6z6—轉動關節坐標系。
坐標系i 與坐標系i-1 之間的轉換關系可用4 個量實現:關節角θi、連桿偏移di、連桿扭角αi-1、連桿長度ai-1,以上4 個參數中di、αi-1、ai-1由機械臂結構和尺寸確定,關節角θi為變量,表示機械臂的活動范圍和活動能力。PUMA560 機械臂參數,如表1 所示。

表1 PUMA560 機械臂參數Tab.1 PUMA560 Manipulator Parameters
對于n 連桿機械臂,使用牛頓-歐拉法得其動力學方程為:

式中:τ=(τ1,L,τn)—各關節驅動力矩;D(q)—n×n 慣性力矩;q—關節角位置;C(q,q˙)—科氏力和離心力之和;G(q)—重力項。
參考文獻[7],使用改進的牛頓-歐拉方程可以將驅動力轉化為關于慣性參數的函數,為:

式中:Φ—n×10n 觀測矩陣,僅與關節運動數據有關,p=(p1,p2,L pn)T—慣性參數矩陣;pi—第i 個連桿的慣性參數向量,即:

式中:Ixxi,Iyyi,Izzi—相對于連桿i 質心坐標系的三維質量慣性矩;Ixyi、Ixzi、Iyzi—相對于連桿質心坐標系的三維質量慣性積;mi—連桿i 質量;mr—一階質量矩。
在此需要強調的是,式(2)中未考慮關節的摩擦力矩,而關節的摩擦是復雜非線性現象,難以進行精確建模。最常用的摩擦力矩為線性摩擦模型:

式中:τf—各關節的摩擦力矩矩陣;sign()—符號函數;fe,fv—庫倫摩擦系數和粘性摩擦系數。
融合式(2)與式(3),得到考慮關節摩擦的動力學模型為:

式中:Φdyn—n×12n 觀測矩陣;pdyn—考慮摩擦的動力學參數向量,
即:

pdyn即為考慮摩擦情況下的待辨識動力學參數向量。
根據式(4),每給出一組動力學參數向量估計值p^dyn,則依據采集的關節角位置、關節角速度、關節角加速度可以反算出此時的驅動力矩τm。當驅動力矩實際值τ 與反算值τm間誤差最小時,對應的動力學參數估計值即為最優辨識結果。
根據以上分析,設計動力學參數辨識的優化模型(目標函數)為:

式中:N—樣本數據長度;k1~k6—[0,1]間權重系數;τ1i~τ6i—6 個關節的實際驅動力矩;τm1i~τm6i—6 個關節的力矩反算值。
在式(4)中,觀測矩陣Φdyn一般為不滿秩矩陣,這是因為有些動力學參數對動力學模型沒有影響。另外,參數的可辨識性與激勵軌跡密切相關,必須設計合適的軌跡激勵,來激勵整個機械臂系統,達到提高可辨識性與辨識精度的目的。最優激勵軌跡為有限項傅里葉級數[8],此時關節軌跡表達式為:

式中:qi0—關節角位置偏移量;N′—傅里葉級數諧波數量;ωj—基頻;aik、bjk—正弦幅度和余弦幅度;t—時間。式(6)中的參數需要通過反復實驗確定。
根據第2 節的分析和模型建立,將機械臂動力學參數辨識問題轉化為以式(5)為目標函數的優化問題,本節提出了基于定向變異與均勻變異的改進花授粉算法對優化問題進行求解。
花授粉算法是模擬花粉的自花授粉和異花授粉過程提出的[9]。自花授粉的傳播范圍較小,類似于尋優算法的局部搜索;異花授粉的傳播范圍較大,類似于尋優算法的全局搜索。花授粉算法核心思想為:設置一個轉換概率p 和隨機數rand∈(0,1),當rand>p則進行全局搜索,若rand≤p 則進行局部搜索。算法核心內容包括以下4 個方面。
(1)全局搜索。全局搜索模擬Levy 飛行方式進行位置更新,方法為:

(4)算法結束條件。當所有花粉完成一次迭代時進入下一輪迭代,當迭代次數達到最大迭代次數Tmax時算法停止,輸出全局最優即為花粉最優位置。
3.2.1 融入隨機機制的定向變異策略

使用隨機機制將定向進化策略與傳統局部搜索方式進行融合,設置一個隨機數w,當rand<w,則使用定向變異策略,當rand≤w,則使用傳統局部搜索方法。將w 設置為黃金比例系數。
3.2.2 均勻變異策略

將定向變異策略和均勻變異策略融入到花授粉算法中,得到多變異策略花授粉算法流程,如圖2 所示。

圖2 多變異策略花授粉算法流程Fig.2 Flow of Multiple Mutation Strategies Flower Pollination Algorithm
在實驗前首先給出參數辨識的優劣評判標準。一是辨識的相對誤差,由于PUMA560 機械臂的動力學參數已知,因此可以使用辨識值與真實值的相對誤差進行判斷。二是使用真實力矩序列與反算力矩序列的相關系數進行判斷,兩個序列的相關系數越接近于1,說明兩個序列的相似性越高,則辨識結果越精確;兩序列的相關系數越接近于0,說明兩個序列相似性越差,則辨識結果精度越差。實際力矩{τi}與反算力矩序列{τmi}的相關系數為:


PUMA560 機械臂具有6 個轉動關節,每個轉動關節具有12個動力學參數,共有72 個參數待辨識。為了減小參數辨識規模,采取分批次辨識方法,首先將后3 個關節鎖死,通過實驗對前3個關節的動力學參數進行辨識;而后將前3 個關節鎖死,使用實驗對后3 個關節的動力學參數進行辨識。在此以前3 個關節的動力學參數辨識為例進行說明。
最優激勵使用的傅里葉基頻為ω=0.05Hz,由5 項傅里葉級數組成,3 個關節的最優激勵軌跡,如圖3 所示。為了減小測量誤差,將總測試時間設置為60s,相當于3 個周期的激勵函數,每次實驗時重復跟蹤最優激勵,當機械臂瞬態效應消失后采集關節角數據,共采集300 組數據。

圖3 最優激勵軌跡Fig.3 Optimal Incentive Trajectory
關節的驅動力矩通過采集力矩電機的電流獲得,通過力矩與電流的轉換關系τ=KI 得到驅動力矩,其中τ 為驅動力矩,I 為電機電流,K 為比例系數。采集到的3 個關節驅動力矩,如圖4 所示。

圖4 關節驅動力矩Fig.4 Joint Driving Moment
使用多變異策略花授粉算法與花授粉算法同時對式(5)給出的優化問題進行求解,算法參數設置為:轉換概率p=0.8,種群規模為40,花粉維度為36,最大迭代次數設置為100。為了避免隨機性影響,兩種算法各自獨立運行20 次,選取20 次的最優解迭代過程進行展示,結果如圖5 所示。從圖5 可以看出,多變異策略花授粉算法迭代至30 次時搜索到全局最優解,傳統花授粉算法迭代至35 次時陷入局部最優,目標函數值不再下降。從解的質量看,多變異策略花授粉算法搜索的最優解質量明顯優于傳統花授粉算法。這是因為算法后期傳統花授粉算法的進化能力較差,陷入局部最優后沒有跳出手段,加入定向變異策略和均勻變異策略后,不僅能夠使花授粉算法跳出局部最優,而且在跳出后能夠朝更優方向進化。為了進一步說明兩種算法對動力學參數的辨識精度,選擇部分動力學參數進行展示,結果如表2 所示。

圖5 最優解迭代過程Fig.5 Optimal Solution Iteration Process
從表2 中辨識結果可以看出,多變異策略花授粉算法的辨識相對誤差遠小于花授粉算法,有些相對誤差甚至相差一個數量級。使用兩種算法的最優辨識結果反算驅動力矩序列,計算驅動反算值與實際值之間的相關系數,結果如表3 所示。由表3 可知,使用多變異策略花授粉算法得到的參數最優值反算的力矩序列,與真實力矩序列的相關系數更大,說明此力矩反算序列與真實序列更相似,進一步說明改進花授粉算法搜索的動力學參數精度更高。綜合表2 和表3,從辨識精度和力矩序列相關性兩個角度,均說明了多變異策略花授粉算法對動力學參數的辨識結果更優。這是因為多變異策略不僅可以使算法有效跳出局部最優,而且在跳出后可以朝著最優方向進化,最終搜索到全局最優解。綜合以上分析,多變異策略花授粉算法可以有效辨識出機械臂的動力學參數。

表2 部分動力學參數辨識結果Tab.2 Some Dynamic Parameters Identification Result

表3 力矩反算值與真實值相關系數Tab.3 Correlation Coefficient of Moment Identification Value and Real Value
針對機械臂動力學參數的辨識問題,在實驗的基礎上,以驅動力矩實際序列與反算序列誤差最小為評價標準,提出了多變異策略花授粉算法搜索參數最優值,經過驗證得出了以下結論:(1)多變異策略可以使花授粉算法跳出局部最優,并在跳出后向全局最優進化;(2)多變異搜索策略辨識出的動力學參數相對誤差小于傳統花授粉算法。