鄭銘躍,張方,蔣祺,蒙奎全,朱偉
(1.南京航空航天大學(xué)機械結(jié)構(gòu)力學(xué)及控制國家重點實驗室,江蘇南京 210016;2.昆山華恒焊接股份有限公司,江蘇昆山 215300)
機械臂的軌跡跟蹤問題指的是通過給定機械臂一條期望的工作軌跡,在確定好機械臂的各個參數(shù)并設(shè)定好控制器的參數(shù)之后,使得機械臂能按給定的期望軌跡工作。然而現(xiàn)實中的機械臂卻是一個具有不確定性、強耦合和非線性等特點的復(fù)雜系統(tǒng),而在機械臂建模過程中同樣有許多不確定因素,且工業(yè)機械臂的制造過程中同樣存在制造誤差,因此難以建立準確的機械臂動力學(xué)模型。而機械臂的控制品質(zhì)依賴于機械臂模型的準確性,所以國內(nèi)外學(xué)者不斷尋求新的理論及控制方法以提高機械臂的控制精度。目前應(yīng)用于機械臂軌跡跟蹤的控制方法有傳統(tǒng)的比例積分微分控制算法(PID)、計算力矩法,以及較為先進的模糊控制算法、自適應(yīng)控制、滑??刂扑惴ǖ取a槍I(yè)中機械臂在工作中經(jīng)常重復(fù)運行,發(fā)展出了迭代學(xué)習(xí)控制ILC(Iterative Learning Control)。
迭代學(xué)習(xí)算法最早是在1978年由日本學(xué)者UCHIYAMA創(chuàng)立,并于1984年被ARIMOTO正式提出。ARIMOT根據(jù)線性時變連續(xù)系統(tǒng)設(shè)計了微分(D)型迭代學(xué)習(xí)策略,并基于此策略演化出了比例(P)型、比例積分(PI)型、比例積分微分(PID)型迭代學(xué)習(xí)策略。目前,BOUAKRIF提出了一種具有初始態(tài)算法的微分(D)型迭代學(xué)習(xí)算法,避免了每次迭代時需要選擇初始狀態(tài)值;郭文雅對迭代學(xué)習(xí)算法中的收斂速度進行研究,讓算法的收斂速度加快。通過可調(diào)節(jié)區(qū)間證明Lebesgue-p范數(shù)下的加速迭代學(xué)習(xí)控制,蘭天一和林輝基于比例微分(PD)控制算法,提出了變增益加速迭代學(xué)習(xí)控制算法,并證明了該算法的收斂性。H B WANG、Y WANG將相鄰迭代次數(shù)同一時刻的迭代誤差添加到了傳統(tǒng)的比例(P)迭代學(xué)習(xí)中,提出了新型快速迭代學(xué)習(xí)算法,改善了機械臂迭代學(xué)習(xí)過程中的初態(tài)偏移問題,缺點是收斂速度較慢。何熊熊等將自適應(yīng)控制與迭代學(xué)習(xí)控制結(jié)合在一起,提高了該算法的魯棒性。
本文作者為提高某焊接機械臂的軌跡跟蹤精度,基于傳統(tǒng)比例微分(PD)迭代學(xué)習(xí)控制算法,提出一種指數(shù)變增益迭代學(xué)習(xí)算法,并驗證了該算法的收斂性。利用ADAMS對機械臂進行參數(shù)辨識得到機械臂的慣性參數(shù)。針對機械臂的前3個控制空間坐標的關(guān)節(jié),建立了動力學(xué)模型,利用MATLAB中的Simulink功能,以及函數(shù)的使用,對這3個關(guān)節(jié)進行軌跡跟蹤仿真,并與傳統(tǒng)的迭代學(xué)習(xí)控制進行了比較。
表1為該焊接機器人的DH參數(shù),將SolidWorks中機器人的3D模型導(dǎo)入到ADAMS中,模型如圖1所示。
表1 機器人DH參數(shù)
圖1 機器人ADAMS模型
其中:為機械臂的桿件長度;為機械臂的桿件扭角;為機械臂關(guān)節(jié)距離。通過ADAMS軟件,讓機器人在最優(yōu)軌跡下運行,對機器人進行參數(shù)辨識,得到機器人模型的慣性參數(shù),再利用所得到的慣性參數(shù),進行機器人動力學(xué)模型的建模。
文中利用第二類拉格朗日法(Lagrange)對機器人進行動力學(xué)建模,并令控制器輸出力矩以對機器人各個關(guān)節(jié)實現(xiàn)軌跡跟蹤。其中Lagrange方程的表達式為
(1)
式中:為系統(tǒng)的動能;為廣義力;為廣義坐標。由Lagrange函數(shù)定義可得:
=-
(2)
其中:為系統(tǒng)的勢能。由于勢能僅與位置有關(guān),是關(guān)于的函數(shù),因此勢能對關(guān)節(jié)速度的導(dǎo)數(shù)為0,因此有:
(3)
對于串聯(lián)機器人,式子中的廣義坐標對應(yīng)于機器人關(guān)節(jié)角度,而廣義力對應(yīng)為作用于關(guān)節(jié)的力,該焊接機器人各關(guān)節(jié)均為轉(zhuǎn)動關(guān)節(jié),因此廣義力為關(guān)節(jié)力矩。機器人桿上任意一點上的動能為
(4)
(5)
式中:用來刻畫桿的質(zhì)量分布情況,它包含了桿的質(zhì)心以及質(zhì)心對3個軸的轉(zhuǎn)動慣量和慣性積,這些都可由ADAMS求得。由桿的動能可進一步求得整個機器人的動能:
(6)
其中:()為×的矩陣,稱為機器人慣性矩陣,是一個正定矩陣。桿的勢能為
(7)
(8)
將式(6)和式(8)代入拉格朗日方程,得到:
(9)
寫成簡潔的矩陣形式為
(10)
該機械臂動力學(xué)模型滿足如下性質(zhì):
性質(zhì)1:()是一個有界的正定矩陣,且滿足
(11)
性質(zhì)2:()、()滿足全局Lipschitz連續(xù)條件:
(12)
其中:是正數(shù)。
(13)
對于連續(xù)變量有引理:
(14)
其中:為實數(shù)。
對機械臂模型作出如下假設(shè):
對于考慮重力項的該焊接機器人,文中設(shè)計了一種指數(shù)變增益的迭代控制率,控制率為
(15)
其中:=-,為第次迭代軌跡跟蹤誤差;、分別為系統(tǒng)的比例增益矩陣與微分增益矩陣;為增益修正因子。
設(shè)置狀態(tài)變量:
(16)
于是可得狀態(tài)方程:
(17)
式(17)可簡化為
(18)
對式(18)進行求解,代入控制率[式(15)]可得:
+1()-()=()e-+
(19)
+1()-()=-()e--
(20)
整理式(20)并取范數(shù)得:
(21)
其中:
由式(18)可以得到:
+1()-()=-[(+1)-()]()-
(+1)[(+1)-()]-[(+1)-
(22)
由式(22)以及性質(zhì)1—3和機械臂系統(tǒng)的假設(shè),可以得到:
(23)
在式(23)兩邊同時乘以e-,可得:
(24)
由式(24)可得,當足夠大時有:
(25)
于是可以得到:
(26)
從而有:
(27)
即:
(28)
因此該控制算法在迭代次數(shù)足夠多時,可以追蹤到期望軌跡。
文中通過MATLAB來驗證控制算法的有效性,使用MATLAB中的Simulink以及S函數(shù)模塊來完成對該焊接機器人的軌跡跟蹤仿真。MATLAB代碼于MATLAB R2017a的環(huán)境下運行。機器人模型簡圖如圖2所示。由于機器人后3個關(guān)節(jié)主要控制機器人末端的姿態(tài),因此仿真時只對機器人的前3個關(guān)節(jié)進行討論,將后3個關(guān)節(jié)的質(zhì)量與第3個關(guān)節(jié)結(jié)合在一起,將它們看作一個整體。機器人的動力學(xué)模型見式(10)。
圖2 機械臂DH簡圖
仿真時機械臂參數(shù)由ADAMS參數(shù)辨識得到。其中關(guān)節(jié)1質(zhì)量=778.945 kg,關(guān)節(jié)2質(zhì)量=656.701 kg,關(guān)節(jié)3質(zhì)量=483.232 kg。
傳統(tǒng)迭代學(xué)習(xí)控制的學(xué)習(xí)率為
(29)
圖3 關(guān)節(jié)1實際軌跡與期望軌跡(傳統(tǒng)算法) 圖4 關(guān)節(jié)2實際軌跡與期望軌跡(傳統(tǒng)算法)
圖5 關(guān)節(jié)3實際軌跡與期望軌跡(傳統(tǒng)算法) 圖6 各關(guān)節(jié)隨迭代次數(shù)誤差變化(傳統(tǒng)算法)
從圖3—圖5中可以看出:傳統(tǒng)迭代學(xué)習(xí)算法經(jīng)過30次迭代后能夠完全地追蹤期望軌跡。而從圖6可以看出:經(jīng)過第一次控制算法控制后,3個關(guān)節(jié)的誤差已經(jīng)縮小到1°左右,前3次迭代誤差減小速度較快,而經(jīng)過第4次迭代之后,3個關(guān)節(jié)的誤差已經(jīng)基本為0°,實際軌跡已經(jīng)完全追蹤到期望軌跡。
為了更好地對比指數(shù)增益迭代學(xué)習(xí)算法與傳統(tǒng)迭代學(xué)習(xí)算法,將比例增益系數(shù)和微分增益系數(shù)設(shè)置得和傳統(tǒng)迭代學(xué)習(xí)相同,而修正系數(shù)取0.1,圖7—圖9為機械臂3個關(guān)節(jié)在迭代30次后的實時軌跡與期望軌跡的對比圖。圖10為機械臂3個關(guān)節(jié)軌跡跟蹤誤差隨著迭代次數(shù)的變化。
從圖7—圖9中可以看出:指數(shù)增益迭代學(xué)習(xí)算法經(jīng)過30次迭代后能夠完全地追蹤期望軌跡,證明了指數(shù)增益迭代學(xué)習(xí)控制算法的收斂性。通過圖10可以看出:在前2次迭代過程中,指數(shù)增益迭代學(xué)習(xí)算法收斂速度很快,并在第3次將誤差減小到0的鄰域內(nèi),之后的誤差穩(wěn)定在0鄰域附近。相比于傳統(tǒng)的迭代學(xué)習(xí)算法,指數(shù)增益迭代學(xué)習(xí)算法收斂更快,且第3關(guān)節(jié)的誤差在迭代過程中逐漸縮小,沒有出現(xiàn)浮動,充分說明文中提出的指數(shù)變增益迭代學(xué)習(xí)算法的效果。
圖7 關(guān)節(jié)1實際軌跡與期望軌跡(文中算法) 圖8 關(guān)節(jié)2實際軌跡與期望軌跡(文中算法)
圖9 關(guān)節(jié)3實際軌跡與期望軌跡(文中算法) 圖10 各關(guān)節(jié)隨迭代次數(shù)誤差變化(文中算法)
文中針對某六自由度焊接機器人,建立了簡易的動力學(xué)模型,并針對其前3個關(guān)節(jié)提出了一種指數(shù)變增益迭代學(xué)習(xí)控制算法,通過在控制率的微分增益上添加修正系數(shù)來達到加快控制算法收斂的效果。利用MATLAB進行仿真,將提出的指數(shù)變增益迭代學(xué)習(xí)控制算法與傳統(tǒng)的迭代學(xué)習(xí)算法進行了比較,證明了提出的算法收斂更快。缺點是三關(guān)節(jié)機械臂的計算量較大,且迭代次數(shù)的增加也會增大計算量,計算機需要花費更多的時間去計算。今后的研究可以著重放在加快該算法的運算速度等問題上。