柴媛媛, 孫中波, 楊宏韜, 李 巖, 劉克平
(長春工業(yè)大學(xué) 電氣與電子工程學(xué)院, 吉林 長春 130012)
迭代學(xué)習(xí)控制(Iterative Learning Control, ILC)最早由Arimoto提出,該控制策略利用前次操作時測得的誤差信息和控制輸出信號修正當(dāng)前操作的控制輸入,實現(xiàn)輸出信號完全跟蹤上目標(biāo)軌跡[1]。因此,迭代學(xué)習(xí)控制適用于具有重復(fù)性質(zhì)的機(jī)械臂系統(tǒng)。為了保證機(jī)械臂的收斂性,通常假定每次機(jī)械臂運(yùn)行時的初始狀態(tài)與期望軌跡的初始狀態(tài)完全相同[2-4]。但在實際機(jī)械臂運(yùn)行中,很難保證一致的初始值條件。
為了解決不確定性系統(tǒng)的初始值問題,Arimoto[5]分析了當(dāng)初態(tài)誤差較小時對迭代學(xué)習(xí)控制收斂性的影響,指出系統(tǒng)誤差可以收斂于某一鄰域內(nèi)。Lee[6]提出了帶有初始值修正的ILC算法,并討論了具有固定初始值偏差的ILC算法在收斂性上優(yōu)于具有隨機(jī)初始值偏差的ILC算法。在Lee[6]分析的基礎(chǔ)上,孫明軒[7]提出了帶有初始值修正的ILC算法,但是該算法需保證初始偏差有界,不能應(yīng)對具有隨機(jī)初始值偏差系統(tǒng)的控制問題。對于具有隨機(jī)初始值偏差的系統(tǒng)控制問題,呂慶[8]提出了帶有一段修正區(qū)間的ILC算法,該修正區(qū)間隨著迭代次數(shù)增加而減少,有效地抑制了初始值偏差對系統(tǒng)輸出的影響。
機(jī)械臂系統(tǒng)在重復(fù)運(yùn)行時,每次運(yùn)行都需重置初始條件,這降低了實驗結(jié)果的實用性[9-11]。目前,Kwang-HyunPark在傳統(tǒng)的D型ILC中加入比例項和誤差積分項,用來改善初始誤差對控制結(jié)果的影響[12]。Chen[13]利用一種初始狀態(tài)學(xué)習(xí)方案,結(jié)合傳統(tǒng)的D型ILC控制律,不需要每次都重置初始條件,得到了跟蹤誤差的收斂邊界,只根據(jù)系統(tǒng)的不確定性和外部擾動確定收斂邊界,而不依賴初始誤差。
文中提出一種無需重置條件下加速抑制隨機(jī)初態(tài)誤差的迭代學(xué)習(xí)控制方法。首先,針對任意初始狀態(tài)偏差,在時間軸上設(shè)計隨迭代次數(shù)增加而縮短的修正區(qū)間。其次,利用控制算法使每次迭代時的初始值無需重置,最后采用二自由度機(jī)械臂系統(tǒng)作為仿真驗證對象,仿真結(jié)果證明文中提出的算法是可行、有效的。
考慮n自由度機(jī)械臂動力學(xué)模型:
(1)
式中:t----時間;
k----迭代學(xué)習(xí)次數(shù),非負(fù)整數(shù);
M(qk)----慣量矩陣,M(qk)∈Rn×n;
G(qk)----重力矩陣,G(qk)∈Rn;
τk(t)----輸入力矩,τk(t)∈Rn。
機(jī)械臂動力學(xué)模型(1)具有以下性質(zhì):
性質(zhì)1M(qk)正定且有界,滿足
0<β1<‖M(qk)‖<β2
0<β1<β2
(2)
性質(zhì)2M(qk)滿足全局Lipschitz連續(xù)。
‖M(qk+1)-M(qk)‖≤lm‖qk+1-qk‖
(3)
式中:lm----正數(shù)。
性質(zhì)3G(qk)滿足全局Lipschitz連續(xù)
‖G(qk+1)-G(qk)‖≤gm‖qk+1-qk‖
(4)
式中:gm----正數(shù)。
(5)
引理1考慮連續(xù)函數(shù)f(x,y),x∈X,X={x∈Rp||x|≤ρi,1≤i≤p},ρi≥0,因此存在L(y)使得
‖f(σ(x1),y)-f(σ(x2),y)‖≤L(y)‖x1-x2‖
?x1,x2∈Rp,y∈Rq
(6)
式中:‖σ(x1)-σ(x2)‖≤‖x1-x2‖。
證明 利用中值定理,存在z∈Rp,使得
因此
(7)
引理2[14]存在z(t)=[z1(t),z2(t),…,zn(t)]∈Rn,t∈[0,T],使得
(8)
文中做如下基本假設(shè):
假設(shè)1G(qk)有界:G(qk)≤lg,式中l(wèi)g從系統(tǒng)的實際限制獲得。
對于具有隨機(jī)初始值偏差的機(jī)械臂系統(tǒng),設(shè)計迭代學(xué)習(xí)控制律為
(9)
式中:
(10)
Xk(0)=Dek(0)+xk(0)-xk+1(0)
(11)
(12)
如果‖In-Kd‖<1,該閉環(huán)系統(tǒng)是穩(wěn)定的,則
(13)
其中,ek=qd-qk,Kd,Kp是對稱正定矩陣,D=‖In-Kd‖T,In∈Rn×n為單位矩陣。
證明 為了方便討論,將使M(qk)≡Mk,G(qk)≡G。
根據(jù)式(1),可得
(14)
使
(15)
根據(jù)式(14)和式(15),可得
(16)
因此
(17)
其中
對于任意τk(t),t∈[0,T],式(17)的一般解xk(t)如下
(18)
式中:eA(t-s)----系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣。
將式(9)代入式(18),有
(19)
因此
(20)
通過式(9)和式(20),可得
(21)
(22)
(23)
將式(23)代入式(22),并在兩邊同時取范數(shù)
(24)
‖ek(t)‖≤‖Ek(t)‖,‖Ek(t)-Dek(s)‖≤‖I2-D‖‖Ek(t)‖
因此
(25)
為了簡化等式,令
(26)
(27)
根據(jù)式(26)、式(27)、性質(zhì)1~性質(zhì)4、引理1和假設(shè)1~假設(shè)2,可得
(28)
因此
fk+1(t)-fk(t)≤ω‖Ek+1(t)-Ek(t)‖
(29)
根據(jù)式(25)和式(29)可得
(30)
式中:α=supt·s∈[0,T]‖eA(t-s)‖;
η=‖AD+P‖。
式(30)兩邊乘e-λt,根據(jù)引理2可得
(31)
通過‖I2-D‖≤1,因此‖In-Kd‖<1,存在足夠大λ,使得
(32)
因此,根據(jù)式(31)可得
‖Ek+1(t)‖λ≤ρ‖=Ek(t)‖λ
(33)
根據(jù)式(32)和式(33)可得
(34)
從而
(35)
(36)
為了驗證文中控制算法的可行性和有效性,利用Matlab對二自由度機(jī)械臂系統(tǒng)軌跡跟蹤問題進(jìn)行仿真實驗,機(jī)械臂模型如圖1所示。
圖1 二自由度機(jī)械臂系統(tǒng)
Matlab代碼是在Matlab R2014a環(huán)境下運(yùn)行實現(xiàn),CPU為Intel(R),3.30 GHz,4 GB內(nèi)存,采用如下動力學(xué)模型進(jìn)行仿真:
c22=0,
g1=m2lc2gsin(q1+q2)+(m1lc1+m2l1)gsin(q1),
g2=m2lc2gsin(q1+q2)。
仿真時各參數(shù)實際值為:
m1=2 kg,
m2=2 kg,
l1=0.6 m,
l2=0.6 m,
lc1=0.4,
lc2=0.4,
I1=0.1,
I2=0.1。
仿真參數(shù):
Kd=diag{0.4,0.4},
Kp=diag{3.5,3.5},
a=1.003,
h=0.1。
系統(tǒng)的初始轉(zhuǎn)態(tài)值由rand函數(shù)隨機(jī)生成。
期望軌跡為:
qd1=sin(4πt),
qd2=sin(4πt)。
由于定義機(jī)械臂每個期望軌跡相同,因此,將機(jī)械臂每個輸出軌跡與期望軌跡置于一個圖內(nèi),如圖2所示。
圖2 q1,q2跟蹤曲線
圖中,qd1,qd2為期望軌跡,q1,q2為第20次迭代學(xué)習(xí)時實時跟蹤軌跡。
從圖2可以看出,文中所給出的控制律使機(jī)械臂的每個輸出軌跡在經(jīng)過20次迭代控制后能有效地跟蹤其相應(yīng)的參考軌跡。
系統(tǒng)跟蹤誤差隨迭代學(xué)習(xí)次數(shù)變化的曲線如圖3所示。
e1為機(jī)械臂連桿1的跟蹤軌跡與期望軌跡之間的跟蹤誤差,e2為機(jī)械臂連桿2的跟蹤軌跡與期望軌跡之間的跟蹤誤差。從圖3可以看出,跟蹤誤差一直在減少,并且開始時誤差減少速度較快,在經(jīng)過10次迭代控制后跟蹤誤差已經(jīng)足夠小,表明了系統(tǒng)跟蹤誤差的收斂性。
圖3 跟蹤誤差隨迭代學(xué)習(xí)次數(shù)變化曲線
為了說明文中提出的迭代學(xué)習(xí)控制算法對隨機(jī)初態(tài)的加速抑制效果,在相同仿真條件下,二自由度機(jī)械臂系統(tǒng)在無加速抑制隨機(jī)初態(tài)的ILC條件下,跟蹤誤差隨迭代次數(shù)變化的曲線如圖4所示。
圖4 在無加速抑制隨機(jī)誤差的條件下,跟蹤誤差隨迭代學(xué)習(xí)次數(shù)變化的曲線
e1為機(jī)械臂連桿1的跟蹤軌跡與期望軌跡之間的跟蹤誤差,e2為機(jī)械臂連桿2的跟蹤軌跡與期望軌跡之間的跟蹤誤差。
對比圖3和圖4可以看出,在文中提出的加速抑制算法下,跟蹤誤差在第10次左右就可減少到零。而在無加速抑制算法下,跟蹤誤差在第25次左右減少到零。所以,文中提出的算法對加速抑制隨機(jī)誤差的效果十分明顯。
在無需重置條件下研究存在不確定性的機(jī)械臂系統(tǒng),結(jié)合PD型迭代學(xué)習(xí)控制算法提出了一種加速抑制初態(tài)誤差的迭代學(xué)習(xí)控制方法。首先,在時間軸上設(shè)計了一段隨迭代學(xué)習(xí)次數(shù)增加而減少的修正區(qū)間。迭代學(xué)習(xí)控制算法加速了對隨機(jī)初態(tài)誤差的抑制,并消除了隨機(jī)初態(tài)誤差對機(jī)械臂的影響。同時,文中提出的迭代學(xué)習(xí)控制算法使每次迭代時的初始值無需重置。其次,在λ范數(shù)意義下,證明了算法的收斂性。最后,數(shù)值結(jié)果表明,迭代學(xué)習(xí)控制算法能夠有效加速隨機(jī)初態(tài)誤差的抑制。所以,文中提出的算法是可行、有效的。