摘 要: 根據(jù)LuGre摩擦模型辨識理論,以伺服電機驅動軸與伺服電機內(nèi)部的摩擦模擬機器人關節(jié)摩擦,建立LuGre摩擦模型。對伺服電機做基于固高卡的模擬量控制,通過C++編程,從編碼器中讀取角度、轉速值、加速度值。正轉速度和對應的驅動力矩,以及反轉速度和對應的驅動力矩,分別構成靜態(tài)參數(shù)辨識的兩組數(shù)據(jù)。位移、速度、加速度和驅動力矩構成動態(tài)參數(shù)辨識數(shù)據(jù)。在Matlab中編寫粒子群算法辨識程序,對以上數(shù)據(jù)進行處理,最終得到LuGre模型的6個參數(shù)的辨識值。
關鍵詞: LuGre;摩擦模型;模擬量控制;粒子群算法
0 引言
機器人的控制性能與動力學模型建立的精確度密切相關。由于摩擦而產(chǎn)生的關節(jié)阻尼是存在于機器人機構各構件之間的主要耗能因素,通??闯筛赡Σ磷枘帷τ诟赡Σ磷枘岬拿枋?,近幾十年來提出了許多數(shù)學模型,其中,LuGre摩擦模型全面而簡潔地描述了摩擦力的動靜態(tài)特性,受到了很大的重視。
LuGre摩擦模型將微觀下接觸表面看成是大量的具有隨機行為的彈性鬃毛,其數(shù)學描述為:
其中,參數(shù)Fc,F(xiàn)s ,Vs,σ2為靜態(tài)摩擦參數(shù),用來描述運動副接觸面間發(fā)生滑動后的摩擦現(xiàn)象,而參數(shù)σ0、σ1為動態(tài)摩擦參數(shù),用來描述運動副處于粘著狀態(tài)下(即處于預滑動摩擦區(qū)域)的摩擦力與預滑動之間的關系。這6個參數(shù)可精確詮釋摩擦力粘滑運動、摩擦滯后、預滑動位移、穩(wěn)態(tài)振蕩環(huán)等。
1 國內(nèi)外研究現(xiàn)狀
參考文獻[1]和參考文獻[2]分別采用遺傳算法和粒子群算法對LuGre模型分靜力參數(shù)及動力參數(shù)兩步來實現(xiàn)參數(shù)的辨識。但是在辨識動力參數(shù)時,上述兩文獻利用帶有PID控制器穩(wěn)態(tài)振蕩環(huán)辨識參數(shù),存在實現(xiàn)振蕩環(huán)需根據(jù)經(jīng)驗來調(diào)節(jié)PID控制的比例因子﹑微分因子以及積分因子的問題。
參考文獻[3]利用改進遺傳算法和粒子群算法對摩擦力LuGre模型的6個參數(shù)進行辨識。靜力參數(shù)辨識方法同參考文獻[1-2],但在動力參數(shù)辨識時采用傳感器輸出的位移或加速度以及輸出的控制剪切力直接進行參數(shù)辨識,在辨識過程中把控制剪切力作為目標逼近值,進而辨識出兩個動力參數(shù)。此動力參數(shù)辨識過程與參考文獻[1-2]的精度和效率相比具有更快的參數(shù)辨識速度和更好的魯棒性能,同時避免了PID選取過程。參考文獻[4]提供了具體程序編制,但沒有開展實驗研究工作。本文的目的是通過實驗研究來獲取摩擦參數(shù)。
2 單自由度機器人轉動關節(jié)LuGre摩擦模型的建立
由參考文獻[4]可知,進行靜態(tài)參數(shù)辨識時,需要多組機器人轉動關節(jié)在已知的驅動力矩作用下對應的正轉速度值和反轉速度值。進行動態(tài)參數(shù)辨識時,需要多組機器人轉動關節(jié)在已知的驅動力矩作用下對應的位移、轉速、加速度值。在搭建實驗平臺時,電機和卷筒構成單自由度系統(tǒng),電機輸出軸與電機固定本體構成一個轉動關節(jié),卷筒通過聯(lián)軸器與電機輸出軸相連,模擬機器人轉動關節(jié)的運動,建立機器人轉動關節(jié)LuGre摩擦模型。上述靜、動態(tài)參數(shù)辨識所需要的數(shù)據(jù)即是伺服電機在已知驅動力矩作用下的相關數(shù)據(jù)。
建立LuGre摩擦模型后,加以輔助和控制裝置。該實驗平臺主要包括機架、伺服電機與驅動器、運動控制卡以及用于控制的上位機等,如圖1所示。本實驗選用的伺服電機為松下A5系列的MHMD082G1V,功率為750 W,驅動器型號為MCDHT3520。
關節(jié)所受的電機驅動力(或力矩)與關節(jié)所受的摩擦力之間的關系可用下面的微分方程表示:
其中, (J1+J2 )是電機和絞盤的轉動慣量之和;x是電機輸出軸的轉角;u是關節(jié)所受的電機驅動力矩;F是摩擦力矩。
當系統(tǒng)運動處于穩(wěn)態(tài),取常數(shù)時,,由前文LuGre摩擦模型的數(shù)學描述得:
則穩(wěn)態(tài)運動時摩擦力F為:
3 LuGre摩擦模型參數(shù)辨識理論
3.1 靜態(tài)參數(shù)辨識理論
目標函數(shù)定義為:,辨識靜態(tài)參數(shù)即是最小化目標函數(shù)J1。
3.2 動態(tài)參數(shù)辨識理論
在動態(tài)參數(shù)辨識時利用伺服系統(tǒng)輸出的位移(或加速度)以及輸出的控制剪切力直接進行參數(shù)辨識,在辨識過程中把控制剪切力作為目標逼近值。假定需要辨識的動態(tài)參數(shù),辨識誤差定義為:
其中,u(ti)為伺服系統(tǒng)控制剪切力,u(xd,ti)為模型參數(shù)系統(tǒng)辨識輸出控制力。由上式可得:
在預滑動區(qū),質(zhì)量塊所受的外力F小于最大臨界靜摩擦力,可以近似認為鬃毛的平均變形等于質(zhì)量塊的位移,即,此時系統(tǒng)摩擦力F簡化為:
目標函數(shù)定義為:,辨識動態(tài)參數(shù)即是最小化目標函數(shù)J2。
3.3 粒子群算法(PSO)參數(shù)設置及程序編寫
PSO 參數(shù)包括: 種群大小PopSize 、種群維數(shù)Dim、慣性權重ω ,學習因子c1和c2,最大速度Vmax、最大迭代數(shù)Gmax、種群搜索空間等。
本文采用的參數(shù)值為:種群大小PopSize=35,種群維數(shù)Dim=4,采用Shi Yuhui等提出的方法[5],將ω設置為從0.9線性下降至0.4,使得PSO能更好控制全局搜索能力和局部搜索能力,加快收斂速度,提高算法的性能。學習因子一般設置是c1=c2∈[1,2.5],設置學習因子c1=c2=2。最大速度Vmax=100,最大迭代數(shù)Gmax=1 500,參數(shù)種群搜索空間設置為Fc=[0,100],F(xiàn)s=[0,100], Vs=[0,0.1], σ2=[0,50]。
在正確設置算法參數(shù)的基礎上,以J1和J2分別作為靜態(tài)和動態(tài)參數(shù)辨識程序的目標函數(shù),進行Matlab粒子群優(yōu)化算法程序的編寫。
4 實驗研究過程
4.1 參數(shù)調(diào)整
模擬量控制是向伺服單元輸入模擬量指令形式的力矩指令,利用與輸入電壓成正比的力矩來控制伺服電機運行的方法。硬件連接完成后,開始調(diào)試電機并對電機參數(shù)進行設定。
首先選擇模擬量控制(模擬量指令)的控制方式并調(diào)整輸入增益。然后調(diào)整指令偏置量,用以消除模擬量指令為0 V時伺服電機可能的微速旋轉帶來的指令電壓的微小偏差。最后對電機轉速進行限制,以防止電機轉速過大而產(chǎn)生不必要的振動。
4.2 控制程序的編寫
本實驗采用固高卡GTS-800-PV來控制電機運動,需要基于固高公司提供的運動控制器的動態(tài)鏈接庫來使用,利用Visual C++編制位置、轉速、加速度測量程序,其中讀取編碼器位置、轉速、加速度的命令分別為:GT_GetAxisEncPos、GT_GetAxisEncVel、GT_GetAxisEncAcc。
4.3 參數(shù)辨識實驗
辨識參數(shù)時,在測量程序界面中依次輸入35個驅動力矩,從電機使能開始直至電機轉速趨于穩(wěn)態(tài)之后,每隔10 ms讀取一次對應的正轉速度值和反轉速度值、位置值、加速度值。其中35個驅動力矩、正轉穩(wěn)態(tài)速度、反轉穩(wěn)態(tài)速度構成靜態(tài)參數(shù)辨識數(shù)據(jù),35個驅動力矩及其對應的電機轉速未達到穩(wěn)態(tài)時的轉速、位置、加速度,構成動態(tài)參數(shù)辨識數(shù)據(jù)。
4.4 數(shù)據(jù)處理
程序中讀取的伺服電機編碼器的位置值、轉速值、加速度值均為脈沖值(單位為Pulse),根據(jù)換算關系,將它們的單位轉換為rad、rad/min、rad/s2。
5 實驗結果及驗證
LuGre模型共有6個參數(shù)Fc,F(xiàn)s ,Vs,σ2,σ0,σ1。其中Fc,F(xiàn)s ,Vs,σ2 4個參數(shù)在電機正轉和反轉時有不同的數(shù)值,正轉時,上述4個參數(shù)值表示為F+c,F(xiàn)+s,V+s,σ+2,反轉時表示為F-c,F(xiàn)-s,V-s,σ-2,辨識結果如表1所示。
為驗證實驗結果的準確性,根據(jù)辨識結果,分別對35組驅動力矩下的伺服電機轉速變化過程進行推導,并與實測轉速作比較。僅以驅動力矩為0.069 6 Nmissing image filem時,伺服電機的轉速變化過程為例進行說明,而其他驅動力矩下具有相似結論。
如圖2所示,在伺服電機轉動加速階段,即本文中LuGre摩擦模型處于預滑動區(qū)域時,實測轉速與擬合轉速基本吻合,僅在較高轉速時,有少量誤差,從而可以證明本文辨識的LuGre摩擦模型動態(tài)參數(shù)辨識結果的準確性。在伺服電機勻速轉動階段,即本文中LuGre摩擦模型接觸面間發(fā)生滑動后,實測轉速穩(wěn)定在180.7 r/min,擬合轉速穩(wěn)定在177.2 r/min,絕對誤差為3 r/min,相對誤差為1.6%,可以證明本文靜態(tài)參數(shù)辨識結果的準確性。
6 結論
本文在辨識LuGre摩擦模型參數(shù)時,以伺服電機驅動軸與電機內(nèi)部的摩擦模擬機器人關機轉動摩擦,建立LuGre摩擦模型。對伺服電機做基于固高卡的模擬量控制,通過C++編程,從編碼器中讀取相關數(shù)據(jù)。在Matlab中編寫粒子群算法辨識程序,對以上數(shù)據(jù)進行處理,最終得到LuGre模型的6個參數(shù)的辨識值。通過對實驗結果的驗證,說明辨識結果是比較準確的。實驗中的誤差可能是由轉速較高時試驗臺的機械振動造成的。
參考文獻
[1] Liu Deping. Genetic algorithms based parameter identification for nonlinear mechanical servo systems[C]. 2006 1st IEEE Conference on Industrial Electronics and Applications, 2006: 1-5.
[2] ZHANG Wenjing. Parameter identification of LuGre friction model in servo system based on improved particle swarm optimization algorithm[C]. Proceedings of the 26th Chinese Control Conference, 2007: 135-139.
[3] 孫洪鑫,王修勇,陳政清.辯識 LuGre 摩擦模型參數(shù)的兩 種智能算法[C].第五屆全國電磁流變液及其應用學術會議論文集,長沙,2008.
[4] Zheng Yaqing. Parameter identification of LuGre friction model for robot joints[C]. Proceedings of the 3rd International Conference on Manufacturing Science and Engineering (ICMSE 2012), Xiamen, China, 2012:27-29.
[5] SHI Yuhui, Eberhart R. A modified particle swarm optimizer[C]. In: IEEE Word Congress on Computational Intelligence,1998:69-73.