侯君虹
(陸軍步兵學(xué)院 石家莊校區(qū),石家莊 050000)
在現(xiàn)代工業(yè)生產(chǎn)控制過程中,主要的被控量通常為:液位、流量、溫度和壓力4 種。其中,液位作為這4 種常見被控量中最容易測量和直接觀察的被控量,理所應(yīng)當(dāng)受到的關(guān)注也是最多[1]。而雙容水箱作為最常見的液位控制對象,工業(yè)上很多復(fù)雜的被控對象常常抽象為它的數(shù)學(xué)模型來研究。所以,對雙容水箱的液位控制研究具有很廣泛的應(yīng)用背景和很重要的研究價值。
可是雙容水箱系統(tǒng)一般呈非線性,并且存在著容積延遲,液位變化緩慢,系統(tǒng)慣性比較大等問題[2]。實踐證明,傳統(tǒng)PID 系統(tǒng)對雙容水箱的調(diào)節(jié)時間比較長且控制效果并不是很好。
迭 代 學(xué) 習(xí) 控 制(Iterative Learning Control,ILC)由Uchiyama 于1978 年首先提出[3],影響較小,后來Arimoto等[4]又于1984 年用英文發(fā)表。該方法的基本策略是,針對一類在有限區(qū)間上重復(fù)運行的非線性動態(tài)系統(tǒng),通過前一次或前幾次運行得到的誤差信息和控制輸入信息來修正當(dāng)前的控制輸入信息,以便可以使得整個重復(fù)任務(wù)可以取得更好的效果,如此不斷重復(fù),知道在整個時間區(qū)間上,系統(tǒng)的輸出完全跟蹤期望軌跡[5,6]。
本文為雙容水箱的液位控制提供了一種利用I/O 數(shù)據(jù)的控制方式——ILC。首先對ILC 進行了詳細的研究,然后利用控制系統(tǒng)的I/O 數(shù)據(jù)得到一次迭代的控制量,進而對雙容水箱的液位進行控制,最后在MATLAB 中進行仿真,得到多次迭代后的仿真圖,通過這些仿真圖可以看出ILC的有效性。
考慮如下連續(xù)被控系統(tǒng):
其中,x∈Rn,u∈Rr,y∈Rm,x為系統(tǒng)的狀態(tài)向量,u為系統(tǒng)的控制向量,y為系統(tǒng)的輸出向量。假設(shè)系統(tǒng)在時間區(qū)間[0,T]不斷重復(fù),最終使得y(t)→yd(t)。
在第k 次運行時,式(1)表示為:
輸出誤差為:
迭代學(xué)習(xí)控制的目標(biāo):對給定的控制對象,在規(guī)定的時間t∈[0,T],尋找優(yōu)化的控制輸入uk(t),使得當(dāng)?shù)螖?shù)k 趨于無窮時,系統(tǒng)的輸出信號yk(t)與期望軌跡yd(t)之間的偏差為零[7,8]。
關(guān)于目前已有的迭代學(xué)習(xí)控制的學(xué)習(xí)律包括P 型、D 型、PID 型、高階學(xué)習(xí)算法以及帶遺忘因子的學(xué)習(xí)算法[9-11],本文將詳細介紹PID 型學(xué)習(xí)律。
PID 型學(xué)習(xí)律可以描述為:
由于PID 型學(xué)習(xí)律算法簡單有效、計算量小,且需要極少的系統(tǒng)先驗知識,從而得到了廣泛和深入的研究,是最成熟的迭代學(xué)習(xí)控制算法之一[12]。
閉環(huán)迭代學(xué)習(xí)控制的迭代效果要好于開環(huán)迭代學(xué)習(xí)控制,因為在迭代的過程,它使用的是本次操作時的輸出誤差,而不是上一次迭代的輸出誤差。開環(huán)迭代學(xué)習(xí)控制采用的是離線的計算方法,對系統(tǒng)的計算要求不高;閉環(huán)迭代學(xué)習(xí)控制存在部分在線計算量,對系統(tǒng)的要求更高。
每一次迭代結(jié)束時,需要檢驗是否滿足停止條件。若滿足,則停止運行。設(shè)ε 為設(shè)定的允許跟蹤精度,一般的停止條件為:
迭代學(xué)習(xí)控制算法具體算法流程[8]如下所述,設(shè)t∈[0,T]:
1)k=0 時,給定期望輸出yd(t),初始輸入u0(t)。
2)對被控對象施加輸入uk(t),采集并存儲yk(t)。
3)計算輸出誤差ek(t)=yd-yk(t),根據(jù)迭代學(xué)習(xí)律,計算出下一次控制輸入量,存入存儲器中。
4)檢驗停止條件,若滿足,停止迭代;若不滿足,則k=k+1,跳入第二步重復(fù)運行。
開環(huán)PID 型迭代學(xué)習(xí)控制器參數(shù)優(yōu)化的過程是基于對迭代過程收斂性分析得出的[13,14]。
設(shè)被控對象為線性時不變的離散系統(tǒng),其傳遞函數(shù)為:
其中,z-1為標(biāo)準(zhǔn)的時間延遲算子,參數(shù)hi為系統(tǒng)H(z)的標(biāo)準(zhǔn)Markov 參數(shù)。并且該系統(tǒng)在時間[0,T]上不斷重復(fù)運行,k 表示迭代次數(shù)。定義下列向量:
則受控系統(tǒng)(6)可以表示為:
則Hp為由被控對象Markov 參數(shù)構(gòu)成的矩陣為:
則受控系統(tǒng)的離散PID 型迭代學(xué)習(xí)控制律為:
其中,kp,ki, kd為PID 型迭代學(xué)習(xí)控制器的參數(shù)。
式(6)采用向量的形式為:
其中,Ti=T([1,1,…,1]T),Td=T([1,-1,…,0]T)。
由(6)式可得:
經(jīng)計算可以得到:
整個迭代過程的收斂條件為:
由于He是一個下三角的Toelitz 矩陣,可知:
且有He=T(he),所以條件∥He∥<1 是Ek的1-范數(shù)和∞-范數(shù)收斂的充分條件,這樣ILC 參數(shù)的設(shè)計就會轉(zhuǎn)換成求解合適的kp,ki,kd使得∥He∥<1。從而,使得應(yīng)用簡單的數(shù)學(xué)計算方法來完成ILC 參數(shù)的設(shè)計成為可能。
定義下面優(yōu)化設(shè)計的性能指標(biāo):
令H=[hi:h:hd]∈RN×3和gPID=[kp,ki,kd]T,并對g 求導(dǎo),經(jīng)過一系列計算可得:
式(14)就是求得學(xué)習(xí)控制器最優(yōu)參數(shù),采用此數(shù)據(jù)結(jié)果可以緩解收斂速度慢的問題,加快學(xué)習(xí)收斂速度。
圖1 輸出跟蹤曲線Fig.1 Output tracking curve
圖2 誤差變化圖Fig.2 Error variation chart
關(guān)于連續(xù)系統(tǒng)迭代學(xué)習(xí)控制器參數(shù)優(yōu)化的方法可以借鑒離散系統(tǒng)的求法,但條件是連續(xù)系統(tǒng)必須保證在整個仿真過程中采樣時間(仿真步長)不變。
通過對雙容水箱進行機理建模[2],可以得出其傳遞函數(shù)為:
其中,A1=A2=2m2,R1=0.3656,R2=0.305[15]。
根據(jù)開環(huán) PID 型迭代學(xué)習(xí)控制器參數(shù)優(yōu)化的方法可以得出:Kp=1.4005,Ki=0.0084,Kd=12.5495。
另外,通過實驗試湊法得出閉環(huán)PID 型迭代學(xué)習(xí)控制器參數(shù)如下:Kp=4.5,Ki=1,Kd=20??梢缘贸龅鷮W(xué)習(xí)控制的輸出跟蹤曲線和誤差變化曲線分別如圖1、圖2 所示。
具體部分?jǐn)?shù)據(jù)見表1。
從圖1 的(a)(b)可以看出,開環(huán)PID 型迭代學(xué)習(xí)和閉環(huán)PID 型迭代學(xué)習(xí)都可以實現(xiàn)對雙容水箱的控制。從圖2 和表1 可以看出閉環(huán)迭代學(xué)習(xí)控制只需要較少迭代次數(shù)便可以實現(xiàn)精確地跟蹤,這是因為開環(huán)迭代學(xué)習(xí)控制只利用了系統(tǒng)的前一次信息,而閉環(huán)迭代學(xué)習(xí)在系統(tǒng)前一次信息的基礎(chǔ)上更好地利用了系統(tǒng)的當(dāng)前信息。但是,由于閉環(huán)迭代學(xué)習(xí)控制系統(tǒng)學(xué)習(xí)律參數(shù)是通過實驗試湊得到的,過程往往復(fù)雜卻得不到理想的控制效果。在本文中閉環(huán)迭代學(xué)習(xí)控制系統(tǒng)對雙容水箱的跟蹤速度更快。
表1 誤差eTable 1 Error e
將迭代學(xué)習(xí)算法應(yīng)用于雙容水箱的液位控制中,通過仿真結(jié)果表明:不管是開環(huán)PID 型迭代學(xué)習(xí)還是閉環(huán)迭代學(xué)習(xí)都可以取得較好的控制效果,達到了較高精度的跟蹤控制要求。在本文中對開環(huán)PID 型迭代學(xué)習(xí)的學(xué)習(xí)律參數(shù)進行了優(yōu)化設(shè)計,使其參數(shù)可以通過簡單的數(shù)學(xué)計算得到,不需要進行反復(fù)的試湊,這也是開環(huán)迭代學(xué)習(xí)優(yōu)于閉環(huán)迭代學(xué)習(xí)的地方。因此,對閉環(huán)迭代學(xué)習(xí)的學(xué)習(xí)律參數(shù)需要做進一步的研究,得出一個更加便捷的方法。