王曉強(qiáng),穆春陽(yáng),馬行,張春濤
(1.北方民族大學(xué)電氣信息工程學(xué)院,寧夏銀川 750021;2.寧夏智能信息與大數(shù)據(jù)處理重點(diǎn)實(shí)驗(yàn)室,寧夏銀川 750021;3.北方民族大學(xué)機(jī)電工程學(xué)院,寧夏銀川 750021)
隨著機(jī)器人技術(shù)的快速發(fā)展,機(jī)器人在裝配領(lǐng)域得到廣泛的應(yīng)用[1-2]。裝配需要機(jī)器人精準(zhǔn)地完成操作,這對(duì)機(jī)器人的力位控制[3-4]有很高要求。在機(jī)器人進(jìn)行裝配時(shí),關(guān)節(jié)摩擦力隨著其末端受力的變化而發(fā)生改變。動(dòng)力學(xué)模型對(duì)機(jī)器人的運(yùn)動(dòng)精度起著重要作用[5],機(jī)器人關(guān)節(jié)摩擦力是動(dòng)力學(xué)模型誤差的主要來(lái)源,摩擦力的影響使機(jī)器人存在難以消除的誤差,從而使控制精度降低。目前常用的摩擦力模型有庫(kù)侖-黏性模型、LuGre模型[6-7]和Stribeck模型[8]等。LuGre模型描述了大部分摩擦現(xiàn)象,如庫(kù)侖摩擦、黏性摩擦、預(yù)滑動(dòng)和Stribeck摩擦等,因此在機(jī)器人動(dòng)力學(xué)摩擦力參數(shù)辨識(shí)中,LuGre模型應(yīng)用較廣泛。李智靖等[9]采用靜態(tài)LuGre模型對(duì)關(guān)節(jié)摩擦進(jìn)行補(bǔ)償。陳東寧等[10]提出基于修正黏性摩擦的LuGre模型,減小摩擦對(duì)比例多路閥性能的影響。高鵬等人[11]提出一種改進(jìn)型量子遺傳算法的LuGre模型,機(jī)器人在不同負(fù)載下運(yùn)行時(shí),為減少不適的摩擦模型對(duì)關(guān)節(jié)力矩估計(jì)的影響,采用LuGre模型進(jìn)行關(guān)節(jié)摩擦力辨識(shí)。但由于實(shí)際中影響摩擦力的因素較多,該模型并不能滿足要求。SRIGANESH、MAHENDRAKAR[12]對(duì)機(jī)器人關(guān)節(jié)諧波減速器部分的波紋摩擦力進(jìn)行了研究,其理論和實(shí)際摩擦力之間存在和關(guān)節(jié)角速度相關(guān)的紋波誤差,該摩擦力誤差具有非線性。
針對(duì)LuGre模型對(duì)機(jī)器人在不同負(fù)載下運(yùn)行時(shí)實(shí)際摩擦力描述不準(zhǔn)確的問(wèn)題,為提高摩擦模型的精度,本文作者提出一種改進(jìn)的LuGre模型。使用最小二乘法,支持向量機(jī)(Support Vector Machine,SVM)多類(lèi)分類(lèi)和支持向量回歸(Support Vector Regression,SVR)結(jié)合的方法對(duì)模型中的參數(shù)進(jìn)行分步辨識(shí)。實(shí)驗(yàn)中采集到的關(guān)節(jié)力矩含有噪聲,為了得到吻合度較好的曲線,不需要對(duì)所有數(shù)據(jù)采樣點(diǎn)進(jìn)行訓(xùn)練。因此,可以利用SVM多類(lèi)分類(lèi)方法對(duì)原始數(shù)據(jù)進(jìn)行分類(lèi),將分類(lèi)后的樣本中心數(shù)據(jù)作為訓(xùn)練集進(jìn)行SVR回歸擬合,實(shí)現(xiàn)對(duì)參數(shù)的辨識(shí)。
采用牛頓歐拉法[13]或拉格朗日方程法[14]建立機(jī)器人動(dòng)力學(xué)方程:
(1)
在機(jī)器人結(jié)構(gòu)確定后,慣性力矩項(xiàng)、哥氏力矩項(xiàng)和重力矩項(xiàng)都能夠精確計(jì)算得到,摩擦力作為動(dòng)力學(xué)模型中最復(fù)雜的一項(xiàng),采用改進(jìn)LuGre模型描述機(jī)器人的摩擦過(guò)程。
模型假設(shè)兩個(gè)剛性體之間在微觀接觸面有大量的彈性鬃毛,模型是根據(jù)鬃毛的平均變形建立的,鬃毛的平均變形用z表示,設(shè)定鬃毛的平均變形z為常數(shù),以關(guān)節(jié)角速度為輸入、摩擦力矩為輸出的非線性系統(tǒng)的LuGre摩擦模型[15]為
fu=fcz+fse(-v/vs)sgn(v)+σ2v
(2)
式中:fc表示庫(kù)侖摩擦力矩;fs表示最大靜摩擦力矩;vs表示Stribeck速度;σ2為黏性摩擦系數(shù);σ2和vs為常數(shù)。
文中機(jī)器人關(guān)節(jié)減速器為諧波減速器。機(jī)器人在不同負(fù)載下運(yùn)行時(shí),根據(jù)諧波傳動(dòng)的特性,關(guān)節(jié)摩擦力除LuGre摩擦力fu外,還有隨關(guān)節(jié)角度變化而周期性變化的部分摩擦力,稱(chēng)為紋波摩擦力,用fm表示。修正后的LuGre摩擦模型:
fn=fcz+fse(-v/vs)+σ2v+fm
(3)
SRIGANESH、MAHENDRAKAR[12]對(duì)諧波減速器的摩擦力進(jìn)行了研究,并對(duì)該部分波紋摩擦力進(jìn)行了建模:
fm=(E+Fv)Np
(4)
式中:E和F都是常數(shù);Np是與關(guān)節(jié)角有關(guān)的系數(shù)。
綜合LuGre摩擦模型和紋波摩擦力,完整的摩擦力模型可以表示為
(5)
式中:q為關(guān)節(jié)角;φ(q)表示Np與q的函數(shù)關(guān)系,是摩擦力辨識(shí)的主要部分。在LuGre摩擦模型上增加一個(gè)與關(guān)節(jié)位置相關(guān)的紋波摩擦力矩項(xiàng),在機(jī)器人運(yùn)動(dòng)過(guò)程中可以更準(zhǔn)確地描述摩擦力,得到完整的摩擦力模型后,需要對(duì)機(jī)器人關(guān)節(jié)摩擦力參數(shù)進(jìn)行辨識(shí)。
從式(3)可知,為辨識(shí)得到LuGre摩擦模型中fcz、fs、1/vs和σ24個(gè)系數(shù),可以分別控制機(jī)器人不同的關(guān)節(jié)在一定區(qū)間內(nèi)進(jìn)行往返運(yùn)動(dòng),截取關(guān)節(jié)勻速部分進(jìn)行數(shù)據(jù)處理,使用最小二乘法進(jìn)行擬合。通過(guò)計(jì)算可求得各個(gè)系數(shù)的值。
SVM多類(lèi)分類(lèi)是VAPNIK和IZMAILOV[16]提出的按監(jiān)督學(xué)習(xí)的方式對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。在機(jī)器人關(guān)節(jié)運(yùn)動(dòng)過(guò)程中,采集的數(shù)據(jù)樣本很多,使用所有樣本對(duì)fm參數(shù)辨識(shí)計(jì)算量龐大。為提高SVR的訓(xùn)練速度,對(duì)數(shù)據(jù)進(jìn)行SVM多類(lèi)分類(lèi),以得到的分類(lèi)中心作為SVR的訓(xùn)練數(shù)據(jù)集。
SVM多類(lèi)分類(lèi)的執(zhí)行過(guò)程:
(1)給定含N個(gè)樣本的訓(xùn)練集X={(x1,y1),…,(xN,yN)},其中K維特征向量xn∈RK,類(lèi)標(biāo)簽Yn={1,2,…,M},n=1,…,N。訓(xùn)練集共有M類(lèi)。需找到?jīng)Q策函數(shù)y=f(x)用于預(yù)測(cè)新數(shù)據(jù)的類(lèi)別。
(2)在每?jī)蓚€(gè)類(lèi)之間都構(gòu)造一個(gè)binary SVM,通過(guò)binary SVM對(duì)第i類(lèi)和第j類(lèi)數(shù)據(jù)求解二次規(guī)劃問(wèn)題。
(4)第i類(lèi)和第j類(lèi)之間binary SVM的決策函數(shù):
(6)
SVR對(duì)帶有噪聲的數(shù)據(jù)具有較好的擬合效果[17],使用支持向量回歸對(duì)非線性的模型進(jìn)行擬合。fm中需要辨識(shí)的參數(shù)是E、F和φ(q)。由式(4)知,系數(shù)Np只和關(guān)節(jié)角度有關(guān),因此采用分步辨識(shí)的方法,先求得系數(shù)Np與關(guān)節(jié)角q的關(guān)系,使用最小二乘法求解方程組得到系數(shù)E和F。在不同速度下同一關(guān)節(jié)角度的fm之間是線性的,選取一個(gè)關(guān)節(jié)速度對(duì)應(yīng)的力矩誤差曲線進(jìn)行建模,得到位置q和系數(shù)Np的關(guān)系。q和系數(shù)Np具有非線性的關(guān)系,使用SVR對(duì)該關(guān)系進(jìn)行擬合。
(7)
式中:ω、b、ξ、ξ*、ε是SVR進(jìn)行訓(xùn)練得到的模型中的參數(shù),用來(lái)描述一個(gè)超平面,使所有的數(shù)據(jù)樣本點(diǎn)到平面上的距離之和最??;φ為q*從低維向高維映射的算子。
(8)
采用最小二乘法解出參數(shù)集[EF],就可以得到fm的完整模型。
機(jī)器人關(guān)節(jié)摩擦力實(shí)驗(yàn)平臺(tái)系統(tǒng)框圖如圖1所示,由上位機(jī)、實(shí)時(shí)仿真機(jī)、伺服驅(qū)動(dòng)器和有效負(fù)載50 N六軸機(jī)械臂組成。
圖1 實(shí)驗(yàn)平臺(tái)系統(tǒng)結(jié)構(gòu)框圖
實(shí)時(shí)仿真機(jī)采用半實(shí)物仿真控制平臺(tái),其開(kāi)發(fā)環(huán)境采用標(biāo)準(zhǔn)化的硬件模塊和分層結(jié)構(gòu)化的軟件平臺(tái)。進(jìn)行仿真時(shí),模型在裝有VxWorks實(shí)時(shí)操作系統(tǒng)的工控機(jī)上運(yùn)行,通過(guò)通信接口同上位機(jī)、伺服驅(qū)動(dòng)器連接搭建起半實(shí)物仿真環(huán)境,運(yùn)行仿真模型驗(yàn)證功能。工控機(jī)通過(guò)伺服驅(qū)動(dòng)器驅(qū)動(dòng)6個(gè)關(guān)節(jié)電機(jī),工控機(jī)和伺服驅(qū)動(dòng)器之間使用Ethercat總線進(jìn)行數(shù)據(jù)通信,機(jī)器人整體控制采用“上-下位機(jī)”架構(gòu),用戶通過(guò)上位機(jī)的MATLAB Simulink完成機(jī)器人控制系統(tǒng)設(shè)計(jì),經(jīng)自動(dòng)編譯后生成VxWorks實(shí)時(shí)操作系統(tǒng)上可直接運(yùn)行的嵌入式代碼,然后通過(guò)以太網(wǎng)部署到實(shí)時(shí)仿真機(jī)中實(shí)時(shí)運(yùn)動(dòng)作為機(jī)器人的控制器使用,控制機(jī)器人各關(guān)節(jié)的運(yùn)動(dòng)。
3.2.1 LuGre摩擦模型參數(shù)辨識(shí)
為精確對(duì)關(guān)節(jié)摩擦力進(jìn)行辨識(shí),分別控制機(jī)器人的6個(gè)關(guān)節(jié)在[-30°,30°]區(qū)間內(nèi)進(jìn)行關(guān)節(jié)往返運(yùn)動(dòng),關(guān)節(jié)1在區(qū)間[-30°,30°]內(nèi)的往返運(yùn)動(dòng)如圖2所示。
圖2 機(jī)器人實(shí)驗(yàn)平臺(tái)
實(shí)驗(yàn)中,為避免慣性力矩和哥氏力矩對(duì)辨識(shí)結(jié)果的影響,只選取機(jī)器人第一關(guān)節(jié)在[-30°,30°]區(qū)間內(nèi)40段勻速部分進(jìn)行數(shù)據(jù)處理和擬合,擬合結(jié)果如圖3所示。
圖3 基于原始摩擦模型的關(guān)節(jié)1力矩?cái)M合曲線
通過(guò)最小二乘法線性擬合,可以得到LuGre模型式(3)中的參數(shù)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參數(shù)辨識(shí)
進(jìn)一步對(duì)fm進(jìn)行辨識(shí),力矩實(shí)測(cè)值與通過(guò)式(2)計(jì)算得到的預(yù)測(cè)值的差值即為紋波摩擦力矩項(xiàng)fm。取v=3.849 5°/s對(duì)fm進(jìn)行Np(θ)參數(shù)的辨識(shí),使用binary SVM函數(shù)進(jìn)行多類(lèi)分類(lèi),得到的中心樣本作為SVR的訓(xùn)練數(shù)據(jù)集。通過(guò)對(duì)SVR模型訓(xùn)練和預(yù)測(cè)調(diào)節(jié)參數(shù),在訓(xùn)練時(shí)使用的參數(shù)如表1所示。
表1 SVR訓(xùn)練參數(shù)
(10)
將所有數(shù)據(jù)測(cè)量點(diǎn)代入式(10),可以得到一組以E和F為未知量的方程組:
(11)
通過(guò)最小二乘法解方程組得E=1.104 2、F=-0.865 1,結(jié)合式(9)得到的LuGre模型參數(shù),可以得到fn的完整模型:
(12)
根據(jù)完整的摩擦模型,選取機(jī)器人第一關(guān)節(jié)在[-30°,30°]區(qū)間內(nèi)40段勻速部分進(jìn)行數(shù)據(jù)處理和擬合,結(jié)果如圖4所示,改進(jìn)后的摩擦模型的辨識(shí)效果比改進(jìn)前的摩擦模型效果好。
圖4 基于改進(jìn)摩擦模型的關(guān)節(jié)1力矩?cái)M合曲線
3.2.3 實(shí)驗(yàn)數(shù)據(jù)分析
實(shí)驗(yàn)中數(shù)據(jù)采集間隔為0.002 s,關(guān)節(jié)數(shù)據(jù)截取時(shí)間段為133.026~141.032 s。取同一時(shí)刻機(jī)器人末端負(fù)載分別為0、4、8、12 N的數(shù)據(jù),為提高精確度,取100組不同時(shí)間點(diǎn)數(shù)據(jù),得到改進(jìn)前后模型力矩理想值和實(shí)際值之間誤差。
取133.268 s時(shí)機(jī)器人末端不同負(fù)載下改進(jìn)前后模型力矩?cái)?shù)據(jù),如表2所示。
表2 不同負(fù)載下改進(jìn)前后模型力矩值
機(jī)器人末端負(fù)載為0、4、8、12 N時(shí)計(jì)算不同速度下摩擦模型力矩誤差,數(shù)據(jù)如表3—6所示。
表3 負(fù)載為0 N時(shí)不同速度下摩擦模型力矩誤差
表4 負(fù)載為4 N時(shí)不同速度下摩擦模型力矩誤差
表5 負(fù)載為8 N時(shí)不同速度下摩擦模型力矩誤差
在不同速度下,計(jì)算改進(jìn)前后模型的摩擦力理想值,用摩擦力實(shí)際值減去理想值,得到改進(jìn)前后模型摩擦力的誤差。當(dāng)機(jī)器人末端為不同負(fù)載時(shí),摩擦模型誤差如圖5所示,其中圖5(a)機(jī)器人末端負(fù)載為0,圖5(b)機(jī)器人末端負(fù)載為4 N,圖5(c)機(jī)器人末端負(fù)載為8 N,圖5(d)機(jī)器人末端負(fù)載為12 N。
圖5 機(jī)器人末端不同負(fù)載時(shí)模型改進(jìn)前后誤差
不同負(fù)載時(shí)模型改進(jìn)后誤差降低百分比如圖6所示??梢钥闯觯耗Σ聊P驼`差降低百分比曲線整體分布在50%~82%范圍內(nèi),隨著速度的增大而增大。
圖6 不同負(fù)載時(shí)模型改進(jìn)后誤差降低百分比
從圖6還可以看出:使用改進(jìn)的摩擦力模型進(jìn)行關(guān)節(jié)摩擦力矩的計(jì)算,誤差可以降低50%以上。
為提高機(jī)器人動(dòng)力學(xué)模型的精度,克服傳統(tǒng)摩擦模型對(duì)實(shí)際摩擦力描述不準(zhǔn)確的問(wèn)題,提出一種改進(jìn)的LuGre摩擦模型,對(duì)關(guān)節(jié)摩擦力進(jìn)行單關(guān)節(jié)分步辨識(shí)。通過(guò)實(shí)驗(yàn)驗(yàn)證了提出的模型和辨識(shí)方法的有效性,在不同負(fù)載下機(jī)器人關(guān)節(jié)低速運(yùn)動(dòng)時(shí),與改進(jìn)前相比較,改進(jìn)的摩擦力模型可以將動(dòng)力學(xué)計(jì)算力矩的誤差減小50%以上。