王曉強,穆春陽,馬行,張春濤
(1.北方民族大學電氣信息工程學院,寧夏銀川 750021;2.寧夏智能信息與大數據處理重點實驗室,寧夏銀川 750021;3.北方民族大學機電工程學院,寧夏銀川 750021)
隨著機器人技術的快速發展,機器人在裝配領域得到廣泛的應用[1-2]。裝配需要機器人精準地完成操作,這對機器人的力位控制[3-4]有很高要求。在機器人進行裝配時,關節摩擦力隨著其末端受力的變化而發生改變。動力學模型對機器人的運動精度起著重要作用[5],機器人關節摩擦力是動力學模型誤差的主要來源,摩擦力的影響使機器人存在難以消除的誤差,從而使控制精度降低。目前常用的摩擦力模型有庫侖-黏性模型、LuGre模型[6-7]和Stribeck模型[8]等。LuGre模型描述了大部分摩擦現象,如庫侖摩擦、黏性摩擦、預滑動和Stribeck摩擦等,因此在機器人動力學摩擦力參數辨識中,LuGre模型應用較廣泛。李智靖等[9]采用靜態LuGre模型對關節摩擦進行補償。陳東寧等[10]提出基于修正黏性摩擦的LuGre模型,減小摩擦對比例多路閥性能的影響。高鵬等人[11]提出一種改進型量子遺傳算法的LuGre模型,機器人在不同負載下運行時,為減少不適的摩擦模型對關節力矩估計的影響,采用LuGre模型進行關節摩擦力辨識。但由于實際中影響摩擦力的因素較多,該模型并不能滿足要求。SRIGANESH、MAHENDRAKAR[12]對機器人關節諧波減速器部分的波紋摩擦力進行了研究,其理論和實際摩擦力之間存在和關節角速度相關的紋波誤差,該摩擦力誤差具有非線性。
針對LuGre模型對機器人在不同負載下運行時實際摩擦力描述不準確的問題,為提高摩擦模型的精度,本文作者提出一種改進的LuGre模型。使用最小二乘法,支持向量機(Support Vector Machine,SVM)多類分類和支持向量回歸(Support Vector Regression,SVR)結合的方法對模型中的參數進行分步辨識。實驗中采集到的關節力矩含有噪聲,為了得到吻合度較好的曲線,不需要對所有數據采樣點進行訓練。因此,可以利用SVM多類分類方法對原始數據進行分類,將分類后的樣本中心數據作為訓練集進行SVR回歸擬合,實現對參數的辨識。
采用牛頓歐拉法[13]或拉格朗日方程法[14]建立機器人動力學方程:
(1)

在機器人結構確定后,慣性力矩項、哥氏力矩項和重力矩項都能夠精確計算得到,摩擦力作為動力學模型中最復雜的一項,采用改進LuGre模型描述機器人的摩擦過程。
模型假設兩個剛性體之間在微觀接觸面有大量的彈性鬃毛,模型是根據鬃毛的平均變形建立的,鬃毛的平均變形用z表示,設定鬃毛的平均變形z為常數,以關節角速度為輸入、摩擦力矩為輸出的非線性系統的LuGre摩擦模型[15]為
fu=fcz+fse(-v/vs)sgn(v)+σ2v
(2)
式中:fc表示庫侖摩擦力矩;fs表示最大靜摩擦力矩;vs表示Stribeck速度;σ2為黏性摩擦系數;σ2和vs為常數。
文中機器人關節減速器為諧波減速器。機器人在不同負載下運行時,根據諧波傳動的特性,關節摩擦力除LuGre摩擦力fu外,還有隨關節角度變化而周期性變化的部分摩擦力,稱為紋波摩擦力,用fm表示。修正后的LuGre摩擦模型:
fn=fcz+fse(-v/vs)+σ2v+fm
(3)
SRIGANESH、MAHENDRAKAR[12]對諧波減速器的摩擦力進行了研究,并對該部分波紋摩擦力進行了建模:
fm=(E+Fv)Np
(4)
式中:E和F都是常數;Np是與關節角有關的系數。
綜合LuGre摩擦模型和紋波摩擦力,完整的摩擦力模型可以表示為
(5)
式中:q為關節角;φ(q)表示Np與q的函數關系,是摩擦力辨識的主要部分。在LuGre摩擦模型上增加一個與關節位置相關的紋波摩擦力矩項,在機器人運動過程中可以更準確地描述摩擦力,得到完整的摩擦力模型后,需要對機器人關節摩擦力參數進行辨識。
從式(3)可知,為辨識得到LuGre摩擦模型中fcz、fs、1/vs和σ24個系數,可以分別控制機器人不同的關節在一定區間內進行往返運動,截取關節勻速部分進行數據處理,使用最小二乘法進行擬合。通過計算可求得各個系數的值。
SVM多類分類是VAPNIK和IZMAILOV[16]提出的按監督學習的方式對數據進行分類。在機器人關節運動過程中,采集的數據樣本很多,使用所有樣本對fm參數辨識計算量龐大。為提高SVR的訓練速度,對數據進行SVM多類分類,以得到的分類中心作為SVR的訓練數據集。
SVM多類分類的執行過程:
(1)給定含N個樣本的訓練集X={(x1,y1),…,(xN,yN)},其中K維特征向量xn∈RK,類標簽Yn={1,2,…,M},n=1,…,N。訓練集共有M類。需找到決策函數y=f(x)用于預測新數據的類別。
(2)在每兩個類之間都構造一個binary SVM,通過binary SVM對第i類和第j類數據求解二次規劃問題。

(4)第i類和第j類之間binary SVM的決策函數:
(6)

SVR對帶有噪聲的數據具有較好的擬合效果[17],使用支持向量回歸對非線性的模型進行擬合。fm中需要辨識的參數是E、F和φ(q)。由式(4)知,系數Np只和關節角度有關,因此采用分步辨識的方法,先求得系數Np與關節角q的關系,使用最小二乘法求解方程組得到系數E和F。在不同速度下同一關節角度的fm之間是線性的,選取一個關節速度對應的力矩誤差曲線進行建模,得到位置q和系數Np的關系。q和系數Np具有非線性的關系,使用SVR對該關系進行擬合。
(7)
式中:ω、b、ξ、ξ*、ε是SVR進行訓練得到的模型中的參數,用來描述一個超平面,使所有的數據樣本點到平面上的距離之和最小;φ為q*從低維向高維映射的算子。

(8)
采用最小二乘法解出參數集[EF],就可以得到fm的完整模型。
機器人關節摩擦力實驗平臺系統框圖如圖1所示,由上位機、實時仿真機、伺服驅動器和有效負載50 N六軸機械臂組成。

圖1 實驗平臺系統結構框圖
實時仿真機采用半實物仿真控制平臺,其開發環境采用標準化的硬件模塊和分層結構化的軟件平臺。進行仿真時,模型在裝有VxWorks實時操作系統的工控機上運行,通過通信接口同上位機、伺服驅動器連接搭建起半實物仿真環境,運行仿真模型驗證功能。工控機通過伺服驅動器驅動6個關節電機,工控機和伺服驅動器之間使用Ethercat總線進行數據通信,機器人整體控制采用“上-下位機”架構,用戶通過上位機的MATLAB Simulink完成機器人控制系統設計,經自動編譯后生成VxWorks實時操作系統上可直接運行的嵌入式代碼,然后通過以太網部署到實時仿真機中實時運動作為機器人的控制器使用,控制機器人各關節的運動。
3.2.1 LuGre摩擦模型參數辨識
為精確對關節摩擦力進行辨識,分別控制機器人的6個關節在[-30°,30°]區間內進行關節往返運動,關節1在區間[-30°,30°]內的往返運動如圖2所示。

圖2 機器人實驗平臺
實驗中,為避免慣性力矩和哥氏力矩對辨識結果的影響,只選取機器人第一關節在[-30°,30°]區間內40段勻速部分進行數據處理和擬合,擬合結果如圖3所示。

圖3 基于原始摩擦模型的關節1力矩擬合曲線
通過最小二乘法線性擬合,可以得到LuGre模型式(3)中的參數fcz=7.099 8,fs=2.536 1,1/vs=0.458 9,σ2=0.296 0。所以式(3)摩擦力矩可表示為
fn=7.099 8+2.536 1e(-0.458 9v)+0.296v+(E+Fv)Np
(9)
3.2.2 摩擦力fm參數辨識
進一步對fm進行辨識,力矩實測值與通過式(2)計算得到的預測值的差值即為紋波摩擦力矩項fm。取v=3.849 5°/s對fm進行Np(θ)參數的辨識,使用binary SVM函數進行多類分類,得到的中心樣本作為SVR的訓練數據集。通過對SVR模型訓練和預測調節參數,在訓練時使用的參數如表1所示。

表1 SVR訓練參數

(10)
將所有數據測量點代入式(10),可以得到一組以E和F為未知量的方程組:
(11)
通過最小二乘法解方程組得E=1.104 2、F=-0.865 1,結合式(9)得到的LuGre模型參數,可以得到fn的完整模型:

(12)
根據完整的摩擦模型,選取機器人第一關節在[-30°,30°]區間內40段勻速部分進行數據處理和擬合,結果如圖4所示,改進后的摩擦模型的辨識效果比改進前的摩擦模型效果好。

圖4 基于改進摩擦模型的關節1力矩擬合曲線
3.2.3 實驗數據分析
實驗中數據采集間隔為0.002 s,關節數據截取時間段為133.026~141.032 s。取同一時刻機器人末端負載分別為0、4、8、12 N的數據,為提高精確度,取100組不同時間點數據,得到改進前后模型力矩理想值和實際值之間誤差。
取133.268 s時機器人末端不同負載下改進前后模型力矩數據,如表2所示。

表2 不同負載下改進前后模型力矩值
機器人末端負載為0、4、8、12 N時計算不同速度下摩擦模型力矩誤差,數據如表3—6所示。

表3 負載為0 N時不同速度下摩擦模型力矩誤差

表4 負載為4 N時不同速度下摩擦模型力矩誤差

表5 負載為8 N時不同速度下摩擦模型力矩誤差
在不同速度下,計算改進前后模型的摩擦力理想值,用摩擦力實際值減去理想值,得到改進前后模型摩擦力的誤差。當機器人末端為不同負載時,摩擦模型誤差如圖5所示,其中圖5(a)機器人末端負載為0,圖5(b)機器人末端負載為4 N,圖5(c)機器人末端負載為8 N,圖5(d)機器人末端負載為12 N。

圖5 機器人末端不同負載時模型改進前后誤差
不同負載時模型改進后誤差降低百分比如圖6所示。可以看出:摩擦模型誤差降低百分比曲線整體分布在50%~82%范圍內,隨著速度的增大而增大。

圖6 不同負載時模型改進后誤差降低百分比
從圖6還可以看出:使用改進的摩擦力模型進行關節摩擦力矩的計算,誤差可以降低50%以上。
為提高機器人動力學模型的精度,克服傳統摩擦模型對實際摩擦力描述不準確的問題,提出一種改進的LuGre摩擦模型,對關節摩擦力進行單關節分步辨識。通過實驗驗證了提出的模型和辨識方法的有效性,在不同負載下機器人關節低速運動時,與改進前相比較,改進的摩擦力模型可以將動力學計算力矩的誤差減小50%以上。