周宇飛, 李中燦, 李 毅, 崔靖凱, 賀順鋒, 盛展翊, 朱明超*
(1. 中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2. 中國科學院大學,北京 100049;3. 寧夏大學 機械工程學院,寧夏 銀川 750021)
機械臂的動力學模型可用于先進控制算法設計[1-2]、碰撞檢測[3]、人機交互[4]、多臂協(xié)作[5]等領域。高精度的動力學模型能夠提高機械臂的控制性能。然而,機械臂制造商通常不提供機械臂的動力學參數(shù),從三維建模軟件中導出的動力學參數(shù)往往與實際模型相差很大,實驗辨識是獲得動力學參數(shù)的可靠途徑[6]。
典型的實驗辨識過程主要包含以下幾個步驟:動力學建模、激勵軌跡設計、參數(shù)辨識和模型驗證。動力學建模常用的方法是牛頓-歐拉法,通過將關節(jié)角相關部分和待辨識參數(shù)分離實現(xiàn)動力學線性化。為了減少辨識參數(shù)提高辨識精度,Khalil 等人剔除了動力學冗余參數(shù),將全參數(shù)集線性組合成最小參數(shù)集[7],建立了與最小參數(shù)集對應的回歸矩陣。動力學建模還包括關節(jié)摩擦建模,傳統(tǒng)的方法是使用庫倫-黏性摩擦模型來擬合關節(jié)摩擦,但是該方法無法描繪關節(jié)速度非常低時的摩擦特性,與摩擦的非線性特性不符[8]。為了更好地擬合關節(jié)摩擦,改進庫倫-黏性摩擦模型[9]和Stribeck 模型[10]被應用于動力學辨識,提高了辨識精度。本文為了提高整體動力學辨識精度,采用迭代方法優(yōu)化關節(jié)摩擦模型。
激勵軌跡的設計對提高辨識精度至關重要。常用的激勵軌跡衡量指標有回歸矩陣條件數(shù)[11-12],子回歸矩陣條件數(shù)[17],回歸矩陣的log{det(?)}值等[6,13]。因此激勵軌跡的設計重點在于滿足約束的情況下盡可能降低回歸矩陣條件數(shù)和子回歸矩陣條件數(shù),從而使動力學模型中的慣性項、重力項、摩擦力項都得到充分激發(fā)。Atkeson 提出了采用關節(jié)五次多項式作為激勵軌跡[14],但是實驗過程中采集的關節(jié)角和關節(jié)力矩存在噪聲與誤差,影響數(shù)據(jù)采集精度。為了降低數(shù)據(jù)采集誤差,基于傅立葉級數(shù)[15]和改進傅立葉級數(shù)的激勵軌跡模型被提出[16],這種周期性激勵軌跡的好處是能夠重復激勵機械臂走激勵軌跡,通過多次采樣取平均降低數(shù)據(jù)采集誤差,提高數(shù)據(jù)采集信噪比。
目前最簡單常見的動力學參數(shù)估計方法有最小二乘法[18]、加權最小二乘法[19]、最大似然估計[20]、卡爾曼濾波[21]等。在進行算法識別之前通常會首先對采集的關節(jié)角進行濾波和中心差分,得到關節(jié)速度和關節(jié)加速度。將濾波之后的數(shù)據(jù)利用最小二乘算法和加權最小二乘算法進行處理辨識動力學參數(shù),其優(yōu)點是處理速度快,簡單高效,但是缺點也很明顯:對異常數(shù)據(jù)敏感、辨識的參數(shù)不滿足物理可行性約束、模型泛化能力差。因此,一些學者提出了機械臂動力學參數(shù)物理可行性約束概念,建立了最小參數(shù)集和全參數(shù)集之間的雙向映射,提出了快速判別辨識最小參數(shù)集是否滿足物理可行性約束的方法[22-24]。針對異常數(shù)據(jù)問題,韓勇[4]根據(jù)辨識殘差對數(shù)據(jù)集進行加權剔除異常數(shù)據(jù),并且建立了三層循環(huán)網(wǎng)絡來優(yōu)化辨識過程,提高了辨識精度。
機械臂動力學模型辨識方法總體上可以分為三類:全參數(shù)動力學辨識、半?yún)?shù)動力學辨識和無模型動力學辨識。無模型動力學辨識是指不依賴動力學模型進行模型識別,如Arjan 利用增強稀疏譜高斯過程回歸進行實時模型學習[25],這種方法需要大量的數(shù)據(jù)集進行訓練,增加了訓練成本。全參數(shù)動力學辨識只利用動力學模型擬合數(shù)據(jù)集,這種方法在關節(jié)速度很低時,辨識誤差較大,這是因為摩擦力模型無法完全擬合靜摩擦力,給動力學辨識結果帶來了較大偏差。半?yún)?shù)動力學模型辨識是指在參數(shù)化模型擬合的基礎上再利用無參數(shù)模型進行補償,整體動力學辨識由參數(shù)化模型和無參數(shù)模型兩部分組成,如Jin hu 利用剛體動力學模型和多層感知器辨識機械臂動力學模型[26],該方法的優(yōu)點是結合了模型的泛化能力和無模型辨識方法的非線性擬合能力,能夠有效地提高辨識精度。
本文針對九自由度超冗余模塊化機械臂,使用迭代學習和神經網(wǎng)絡補償?shù)姆椒ū孀R超冗余機械臂半?yún)?shù)動力學模型。創(chuàng)新之處在于:(1)在保證辨識精度的基礎上,提出使用兩層迭代優(yōu)化學習網(wǎng)絡辨識機械臂動力學參數(shù),相比于三層迭代優(yōu)化網(wǎng)絡縮短了辨識時間;(2)本文將辨識殘差輸入給BP 神經網(wǎng)絡進行模型補償,利用半?yún)?shù)模型進一步提高了辨識精度。一系列實驗結果表明,本文的半?yún)?shù)動力學辨識方法相比與傳統(tǒng)的動力學辨識方法,辨識精度更高。
超冗余機械臂總共包含9 個關節(jié),每個關節(jié)都是模塊化結構設計。圖1 為超冗余機械臂的關節(jié)坐標系圖。該機械臂的改進DH 建模參數(shù)如表1 所示。每個關節(jié)都包含一個增量式編碼器和一個絕對式編碼器,增量式編碼器用于實時獲取機械臂的關節(jié)角速度,絕對式編碼器用于實時獲取機械臂的關節(jié)位置。通過對關節(jié)速度進行濾波和中心差分可以獲得關節(jié)角加速度。該九自由度超冗余機械臂沒有關節(jié)力矩傳感器,因此關節(jié)力矩通過減速比η和電機的額定力矩系數(shù)K計算得到,如式(1)所示。每個關節(jié)都安裝了柔輪減速器,以此來保證關節(jié)輸出端能夠以較大的驅動力矩驅動關節(jié)運動,柔輪減速器減速比為160。該機械臂關節(jié)電機參數(shù)如表2 所示。
表1 超冗余機械臂改進DH 建模參數(shù)Tab.1 Hyper-redundant modular manipulator modified DH parameters
表2 超冗余機械臂關節(jié)電機參數(shù)Tab.2 Hyper-redundant modular manipulator joint motor parameters
圖1 超冗余機械臂結構示意圖Fig.1 Structure of hyper-redundant modular manipulator
超冗余機械臂的動力學模型如公式(2)所示:
其中:M(q)?為關節(jié)空間下的連桿慣性項,C(q,?)?為關節(jié)空間下的連桿離心力和科里奧力項,G(q)為關節(jié)空間連桿重力項。q,?,?分別為關節(jié)位置、關節(jié)速度和關節(jié)加速度。Ff(?)為關節(jié)摩擦力,F(xiàn)e為外力。如果沒有外力的情況下,可以去除外力部分,式(2)可以變?yōu)槿缦滦问剑?/p>
針對關節(jié)摩擦,傳統(tǒng)的摩擦力模型為庫倫-粘滯摩擦力模型,其摩擦力模型如下所示:
其中:fci代表關節(jié)i的庫倫摩擦系數(shù),fvi代表關節(jié)i的黏滯摩擦系數(shù),Si為關節(jié)摩擦偏置。
為了更好地擬合實際的關節(jié)摩擦力,本文采用一種非線性摩擦模型,如公式(5)所示。黏滯摩擦力和關節(jié)速度并不是線性關系,而是與關節(jié)速度的α次冪成線性關系,這種非線性關系能夠更好地擬合實際的關節(jié)摩擦力,提高辨識精度。
注意到,公式(5)中的機器人動力學模型并不是線性的,機器人的動力學參數(shù)以非線性的方式隱藏在M(q),C(q,?),G(q)和Ff(?)中。通常的做法是通過線性變換,將機器人動力學模型中與關節(jié)角、關節(jié)速度和關節(jié)加速度相關的項放到一個矩陣中,這個矩陣稱為回歸矩陣,同時將待辨識參數(shù)放到一個參數(shù)矩陣中,從而將動力學模型線性化,便于后續(xù)的辨識。動力學線性化的形式為:
其中:Y(q,?,?)∈Rn*i×N為回歸矩陣,n代表關節(jié)個數(shù),i代表采樣次數(shù),N代表機械臂動力學全參數(shù)個數(shù),Φb為全參數(shù)集,Φb∈RN×1。Φb中每個關節(jié)i包含14 個參數(shù)個數(shù),如下所示:
其中:Iixx,Iixy,Iixz,Iiyy,Iiyz,Iizz代表關節(jié)i在坐標系原點下的慣性參數(shù),pix,piy,piz代表關節(jié)質心在關節(jié)坐標系下的位置,代表關節(jié)電機轉子的轉動慣量,mi代表關節(jié)質量。
通過公式(6)和公式(7)推導的回歸矩陣Y中的列向量并不是完全相互獨立的。為了減少辨識參數(shù)的個數(shù),提高辨識精度,Khalil 等人[20]提出了最小參數(shù)集的概念,通過提取回歸矩陣中的最大線性無關組,可以得到一個與最小參數(shù)集匹配的回歸矩陣Y*。
其中,Φmin為最小參數(shù)集向量。
本文辨識的九自由度超冗余模塊化機械臂共有126 個動力學參數(shù),通過使用symPybotics 工具箱可以導出最小參數(shù)集,一共有91 個待辨識參數(shù),因此Φmin∈R91×1。動力學辨識目標就是通過采集的力矩和關節(jié)角信息辨識Φmin矩陣。
激勵軌跡的設計包括激勵軌跡模型的選取和激勵軌跡參數(shù)的優(yōu)化。為了提高數(shù)據(jù)的信噪比,本文選取由五階傅里葉級數(shù)組成的周期性激勵軌跡,通過讓機械臂重復多次走激勵軌跡并對數(shù)據(jù)取平均值,可以降低數(shù)據(jù)采集誤差,同時也便于后期處理數(shù)據(jù)時選擇合適的濾波頻率。激勵軌跡模型如公式(10)所示:
其中:q0i是激勵軌跡的初始化關節(jié)角,qi,,分別為關節(jié)i的激勵軌跡角度、角速度和角加速度,l為激勵軌跡系數(shù),ωf是激勵軌跡的基頻,ial,ibl是激勵軌跡中待優(yōu)化參數(shù),t為激勵軌跡運行時間。
在上述五階傅里葉級數(shù)組成的激勵軌跡中,一個關節(jié)包含11 個待優(yōu)化參數(shù),因此超冗余機械臂的激勵軌跡總共包含99 個待優(yōu)化參數(shù)。在優(yōu)化過程中,為了保證機械臂的安全性,必須保證激勵軌跡的關節(jié)角度、關節(jié)速度和關節(jié)加速度在可行性范圍內。另外,為了保證機械臂啟停時刻的安全性,激勵軌跡還必須滿足在啟停時刻的關節(jié)速度和關節(jié)加速度為0。因此可以得出以下激勵軌跡優(yōu)化約束條件:
超冗余機械臂的關節(jié)運動范圍極限如表3 所示。本文設計的激勵軌跡周期為25 s,即tf=25 s。激勵頻率為f=0.04 Hz,基礎頻率ωf=2πf。實際實驗采樣周期為200 Hz,在優(yōu)化激勵軌跡過程中,為了提高計算速度,采樣頻率可以適當降低,本文在優(yōu)化激勵軌跡過程中的采樣頻率設計為20 Hz。
表3 超冗余機械臂關節(jié)運動極限Tab.3 Hyper-redundant manipulator joint motion restriction
表4 激勵軌跡參數(shù)Tab.4 Identification trajectory parameters for hyper-redundant manipulator
在激勵軌跡優(yōu)化目標的選取上,采用經典的回歸矩陣條件數(shù)作為優(yōu)化目標,優(yōu)化目標函數(shù)如公式(12)所示?;貧w矩陣條件數(shù)越低,機械臂沿著激勵軌跡運動所覆蓋范圍就越大,從而可以提高辨識精度。
激勵軌跡優(yōu)化問題屬于帶約束條件下非線性優(yōu)化問題。為了得到最優(yōu)激勵軌跡,通過使用Matlab 自帶的遺傳算法工具箱進行激勵軌跡優(yōu)化。激勵軌跡經過遺傳算法優(yōu)化后的條件數(shù)為341,最優(yōu)激勵軌跡關節(jié)角位置曲線、激勵軌跡關節(jié)角速度曲線和激勵軌跡關節(jié)角加速度曲線分別如圖2~圖4 所示。從圖中可以看出關節(jié)角、關節(jié)角速度和關節(jié)角加速度都在約束范圍內,同時也實現(xiàn)了啟停時刻關節(jié)角速度和關節(jié)角加速度為0 的約束目標。機械臂末端運動軌跡圖如圖5所示。
圖2 最優(yōu)激勵軌跡關節(jié)角位置曲線Fig.2 Joint angle position of optimal excitation trajectory
圖3 最優(yōu)激勵軌跡關節(jié)角速度曲線Fig.3 Joint angle velocity of optimal excitation trajectory
圖4 最優(yōu)激勵軌跡關節(jié)角加速度曲線Fig.4 Joint angle acceleration of optimal excitation trajectory
圖5 最優(yōu)激勵軌跡下機械臂末端運動軌跡Fig.5 Trajectory of manipulator’s end-effector in world coordinate system
完成激勵軌跡設計之后,通過讓機械臂沿著激勵軌跡運動,采集到關節(jié)角和關節(jié)力矩信息構建超正定方程:
上述公式中ti代表采樣時間點,在一個激勵軌跡周期內包含M次數(shù)據(jù)采樣。根據(jù)采樣電流和關節(jié)運動信息可以計算出τ*和Y*,根據(jù)最小二乘方法可以計算出最小參數(shù)集,如公式(14)所示:
使用最小二乘方法辨識誤差為ε*=τ*-Y*ΦLS,辨識方差為,為了使辨識方差最小,Gautier[17]提出了加權最小二乘方法,如下所示:
其中,G=diag(Λ1,Λ2,…,Λn),根據(jù)各個關節(jié)辨識的殘差計算得到。
上述最小二乘算法和迭代加權最小二乘算法雖然簡單高效,能夠快速辨識得到最小參數(shù)集,但是存在一系列缺陷使得辨識結果不夠準確,主要包括以下幾個方面:(1)沒有對數(shù)據(jù)集中的異常值進行處理,辨識結果容易受到異常值的干擾;(2)辨識得到的最小參數(shù)集可能不符合物理可行性;(3)泛化能力差,擬合別的運動軌跡時誤差較大。為了解決上述問題,需要在使用迭代優(yōu)化辨識算法之前建立機械臂動力學參數(shù)的物理可行性約束。
對于單關節(jié)i,每個關節(jié)的質量和轉動慣量必須大于0,電機轉子轉動慣量、關節(jié)庫倫摩擦系數(shù)和粘滯摩擦系數(shù)也必須大于0,物理可行性約束可以表述為:
公式(18)和公式(19)是基于全參數(shù)集推導得到的物理可行性約束,但是方程(13)構建的是基于最小參數(shù)集的回歸矩陣,辨識得到的是最小參數(shù)集,為了判斷辨識的最小參數(shù)集是否滿足物理可行性約束,首先對回歸矩陣和參數(shù)集進行分解[20]。
上述方程中Yd代表回歸矩陣中與最小參數(shù)集計算無關的列。Pb,Pd代表Y矩陣的前b列和最后d列。Φd代表冗余參數(shù)。最小參數(shù)集和全參數(shù)集有如下關系:
其中:K是系數(shù)矩陣并且不唯一,且。
判斷辨識得到的最小參數(shù)集是否符合物理可行性約束需要滿足D(Φmin,Φd)>0,所有滿足物理可行性約束的集合Ω定義為如下所示:
超冗余機械臂半?yún)?shù)動力學辨識整體算法流程如圖6 所示。首先需要對采集數(shù)據(jù)進行預處理。本文采用四階巴特沃斯濾波器對采集的關節(jié)力矩信息和關節(jié)角度信息進行濾波,再利用RLOESS 方法進行平滑處理。采用中心差分算法通過采集的關節(jié)角計算得到關節(jié)角速度和關節(jié)角加速度,如公式(24)所示:
圖6 迭代優(yōu)化算法流程框圖Fig.6 Overall procedure of the iterative optimization algorithm
迭代優(yōu)化整體包含兩層循環(huán),內層循環(huán)更新權重W是為了剔除異常值,外層循環(huán)是為了擬合關節(jié)摩擦力。首先為了估計出加權最小二乘的權重,需要在最小二乘的基礎上計算出殘差,即辨識誤差,如式(25)所示:
其中:機械臂采樣點為M,每次采樣包含n個關節(jié)的信息,因此R中包含M×n個元素。迭代加權最小二乘的加權系數(shù)為G=diag(Λ1,Λ2,…,Λn),Λi為機械臂的關節(jié)殘差,根據(jù)下面公式計算得到:
其中:Zi為關節(jié)i的辨識殘差,為關節(jié)i的最小參數(shù)集個數(shù)。加權最小二乘算法如下所示:
由于采樣過程中不可避免會產生異常點,這些異常點對辨識結果有較大影響。為了剔除異常點,在回歸矩陣和力矩中添加加權函數(shù)W,加權函數(shù)與辨識殘差有關,如式(28)所示:
每次計算出一組最小慣性集參數(shù),都會進行殘差計算,如果加權函數(shù)沒有收斂,那么將重新更新回歸矩陣和對應的力矩值,更新完之后再重新計算知道加權函數(shù)W收斂?;貧w矩陣的更新如下所示:
需要注意的是,在使用迭代加權最小二乘算法辨識最小參數(shù)集的過程中,需要添加上一小節(jié)提出的物理可行性約束。這是一個帶約束的凸優(yōu)化問題,使用CVX 工具箱能夠快速得到最優(yōu)解。
相比于文獻[3]中提出的迭代學習算法,本文將其第一層循環(huán)和第二層循環(huán)合二為一,不再計算協(xié)方差,不再判斷協(xié)方差是否收斂,直接使用加權最小二乘替代協(xié)方差循環(huán)。后續(xù)通過實驗結果可以驗證,本文提出的迭代優(yōu)化網(wǎng)絡在保證辨識精度的基礎上,具有更快的收斂速度。
迭代優(yōu)化的外層循環(huán)是為了保證摩擦模型的準確性,通過將關節(jié)摩擦力相關的動力學參數(shù)置為0 可以計算關節(jié)摩擦力,如式(31)所示:
其中,Φb代表將摩擦力參數(shù)置為0 的最小參數(shù)集。
根據(jù)計算得到的關節(jié)摩擦力以及關節(jié)角速度信息,可以辨識關節(jié)摩擦模型參數(shù)。關節(jié)摩擦模型總共包含4 個待辨識參數(shù):fci,fvi,Si,αi,本文使用matlab 中的非線性多元函數(shù)最小值求解fmincon 函數(shù)進行關節(jié)摩擦模型優(yōu)化。
為了進一步減少模型誤差,使用BP 神經網(wǎng)絡來對建模非線性誤差進行補償。BP 神經網(wǎng)絡的結構如圖7 所示。該神經網(wǎng)絡包含輸入層、隱藏層和輸出層。本文使用關節(jié)速度作為訓練輸入,訓練輸出為動力學辨識誤差。隱藏層選用雙曲正切函數(shù)作為激活函數(shù):,隱藏層層數(shù)為36。神經網(wǎng)絡補償量記為τBPNN=N(q?)??傮w辨識的超冗余機械臂半?yún)?shù)動力學模型包含兩部分:剛體動力學模型組成的線性部分和神經網(wǎng)絡補償組成的非線性部分,可以表達為如式(33)所示的形式:
圖7 BP 神經網(wǎng)絡結構圖Fig.7 Architectural graph of the BP neural network
為了驗證本文提出的基于迭代優(yōu)化的動力學辨識算法的有效性,使用實驗室自主研發(fā)的九自由度超冗余模塊化機械臂進行動力學模型辨識。整體辨識實驗平臺如圖8 所示。其中硬件平臺包括PC 上位機、倍??刂破鳌⑼ㄓ嵍俗幽K,電機驅動器和機械臂。軟件平臺包括TwinCAT運動控制系統(tǒng)和EtherCAT 通訊協(xié)議。實驗中,通過上位機將激勵軌跡編寫在VS 環(huán)境Twin-CAT 3 軟件中,并且將關節(jié)角與NC 軸綁定,通過編譯將控制程序導入到倍??刂破黩寗雨P節(jié)沿著激勵軌跡運動。倍??刂破髯鳛橹髡?,其余模塊作為從站,通過主站發(fā)報文實現(xiàn)電機伺服控制,通信周期為5 ms,保證了通信的實時信。
圖8 超冗余機械臂動力學辨識實驗平臺Fig.8 Experiment platform of hyper-redundant manipulator dynamic model identification
本文優(yōu)化的激勵軌跡運行一個周期時間為25 s,實驗時讓機械臂連續(xù)走五遍激勵軌跡,通過取平均值的方法降低數(shù)據(jù)采集誤差和數(shù)據(jù)噪聲。因此,一次實驗持續(xù)時間為125 s,總共采集25 000 組關節(jié)角和關節(jié)電流信息,機械臂的運動軌跡如圖9 所示??紤]到神經網(wǎng)絡進行模型補償需要大量的數(shù)據(jù)集進行訓練,因此實際中讓機械臂連續(xù)走了五組軌跡,其中一組實驗數(shù)據(jù)用來辨識參數(shù)化動力學模型,一組軌跡用來驗證模型的準確性,其余數(shù)據(jù)用來訓練神經網(wǎng)絡。
圖9 機械臂運行軌跡Fig.9 Experimental trajectory of the manipulator
辨識過程中,摩擦模型α的初始值設置為1,加權函數(shù)初始值也為1。實驗中采用零相位巴特沃斯濾波器對采集的關節(jié)角和關節(jié)力矩進行濾波,通帶截止頻率和阻帶截止頻率分別設置為0.12 Hz 和0.2 Hz。
為了驗證本文提出算法的有效性,使用自主研發(fā)的九自由度超冗余機械臂進行動力學模型辨識。分別將本文提出的兩層迭代優(yōu)化算法和迭代優(yōu)化與神經網(wǎng)絡補償?shù)陌雲(yún)?shù)辨識算法與傳統(tǒng)的最小二乘算法、加權最小二乘算法、文獻[3]算法進行對比,從而驗證提出的算法的有效性和優(yōu)越性。
圖10 記錄了內層循環(huán)迭代收斂情況。內層循環(huán)函數(shù)W中的元素為0 或1,1 代表該數(shù)據(jù)有效,反之0 代表無效數(shù)據(jù)。為了判斷內層循環(huán)的收斂情況,本文選用‖ΔW‖2作為判斷依據(jù),其中ΔW=Wt-Wt-1,ΔW能夠說明加權函數(shù)的變化幅度,當加權函數(shù)基本不發(fā)生變化時,就可以認為內層迭代已經收斂。從圖10 中可以看出,初始時刻‖ΔW‖2=31.225,這個值之所以這么大,是因為辨識得到的動力學模型與實際模型具有較大偏差,不能很好地擬合實際模型。隨著迭代的進行,‖ΔW‖2不斷減小直至收斂穩(wěn)定。穩(wěn)定時刻,‖ΔW‖2大概維持在7.81 左右,這說明每次迭代權重系數(shù)已經變化很小,參數(shù)趨于穩(wěn)定。內層循環(huán)想要達到穩(wěn)定需要迭代20~30 次。
圖10 內層循環(huán)迭代收斂情況Fig.10 Iteration convergence of inner loop
外層循環(huán)收斂判斷依據(jù)是Δα,圖12 反映了外層摩擦模型α的收斂情況。從圖中可以看出,初始時刻各個關節(jié)的摩擦模型參數(shù)α=1,隨著迭代的進行,摩擦模型參數(shù)逐漸收斂到穩(wěn)定值并且不再變化。在這個過程中,摩擦模型能夠更好地匹配采集到的數(shù)據(jù),逐步提高模型辨識精度。摩擦力擬合結果如圖11 所示。從圖中可以觀察到,在低速情況下摩擦力不穩(wěn)定,摩擦模型也無法完全擬合關節(jié)摩擦。這是因為低速屬于預滑動區(qū)域,靜摩擦力不穩(wěn)定,受溫度、負載、構型、噪聲等因素的影響摩擦力具有較大誤差,這個誤差屬于非線性影響因素。經過迭代,算法找到了最能夠反映關節(jié)摩擦模型的系數(shù)α,并且也趨于穩(wěn)定。
圖11 各關節(jié)摩擦力擬合結果Fig.11 Fitting results of joint friction force
圖12 關節(jié)摩擦系數(shù)迭代收斂情況Fig.12 Convergence of the joint friction model α
各個關節(jié)的辨識力矩殘差均方根(RMS)值如表5 所示。使用本文提出的二層迭代優(yōu)化網(wǎng)絡辨識得到的最小參數(shù)集如表6 所示,該辨識結果均采用國際單位制。為了驗證本文提出的算法的優(yōu)越性,與傳統(tǒng)的最小二乘算法、加權最小二乘算法和文獻[3]的辨識算法進行了比較。不加神經網(wǎng)絡補償,本文提出的算法關節(jié)RMS 值之和為35.606 3 N·m,最小二乘算法和加權最小二乘算法的辨識結果分別為52.998 9 N·m 和46.704 8 N·m,本文的算法相較于傳統(tǒng)的這兩種算法RMS 值之和分別提高了32.81% 和23.76%文獻[3]中的算法辨識結果為35.564 7 N·m,本文提出的算法辨識結果與文獻[3]提出的三層迭代優(yōu)化網(wǎng)絡相比,辨識的結果幾乎一樣。然而,本文的算法解算時間只需要20 min,文獻[3]提出的算法的解算時間需要兩個小時,這是因為本文提出的算法少了文獻[3]中的協(xié)方差內層循環(huán),通過使用加權最小二乘算法能夠實現(xiàn)協(xié)方差循環(huán)層幾乎一樣的效果,因此本文提出的算法具有更高的計算效率。
表5 不同方法辨識的力矩殘差均方根(RMS)值1*Tab.5 Identify torque residual root mean square (RMS) values by various methods
表6 動力學參數(shù)辨識結果 1*Tab.6 Dynamic parameter identification results
為了提高動力學模型辨識精度,本文使用BP 神經網(wǎng)絡對參數(shù)化辨識結果進行進一步補償。實驗過程中總共跑了五組軌跡,采集了25 000 組實驗數(shù)據(jù),使用其中的20 000 組實驗數(shù)據(jù)訓練BP 神經網(wǎng)絡,剩余5 000 組實驗數(shù)據(jù)用來驗證神經網(wǎng)絡補償?shù)挠行浴I窠浘W(wǎng)絡的輸入層數(shù)為9,隱藏層層數(shù)36,輸出層為9。訓練的輸入集為關節(jié)角速度,輸出集為模型辨識誤差。
經過神經網(wǎng)絡補償之后,各個關節(jié)的力矩殘差均方根之和由原來的35.606 3 N·m 提高到了27.216 7 N·m,總共提高了23.56%。由此說明了模型補償?shù)挠行??;诒疚奶岢龅陌雲(yún)?shù)動力學模型算法辨識得到的模型驗證結果如圖13 所示,從上到下依次為1~9 關節(jié)。從圖中可以看到,辨識的關節(jié)力矩與實驗采集的關節(jié)力矩重合程度較好,驗證了辨識結果的準確性。
本文針對九自由度超冗余模塊化機械臂,設計了基于迭代優(yōu)化和神經網(wǎng)絡補償?shù)陌雲(yún)?shù)動力學辨識算法。分別使用最小二乘算法、加權最小二乘算法、三層網(wǎng)絡迭代優(yōu)化算法和本文提出的算法進行了參數(shù)辨識,并對辨識結果進行了討論分析。實驗結果表明,相比于傳統(tǒng)的最小二乘算法和加權最小二乘算法,本文的算法辨識結果關節(jié)辨識力矩殘差均方根(RMS)之和分別提高了32.81%和23.76%,半?yún)?shù)動力學模型相比于全參數(shù)動力學模型力矩殘差均方根之和提高了23.56%。所提出的辨識算法能夠有效準確地辨識機械臂的動力學模型。