林遠宗,余楚中
(重慶大學 自動化學院 控制科學與工程系,重慶 400030)
廣義預測控制是結合自適應控制技術的一種具有魯棒性的模型預測控制[1],己在系統(tǒng)控制中得到了廣泛的應用,是現(xiàn)代控制的主要方法之一。廣義預測控制的被控對象是基于未知的或慢時變的參數(shù)模型,其模型精度影響控制器的性能。在實際工業(yè)過程中,往往己知的只有被噪聲污染的可測輸入輸出數(shù)據(jù),而如何在僅有的數(shù)據(jù)信息前提下,更好地建模系統(tǒng),進行控制器的設計,提高最終的控制性能,仍是有待深入研究的問題。
本文將子空間辨識作為在線建模方法,進行完全數(shù)據(jù)驅動的廣義預測控制。針對線性系統(tǒng),在輸入輸出數(shù)據(jù)可能存在噪聲,未知系統(tǒng)先驗結構信息的情況下,利用子空間更好地消除噪聲辨識被控系統(tǒng);在不改變子空間模型辨識及廣義預測控制的性能前提下實現(xiàn)控制;最后給出仿真實例驗證算法的有效性。
廣義預測控制算法采用受控自回歸滑動平均模型(CARIMA模型),現(xiàn)代控制均以計算機為實現(xiàn)手段,因此其數(shù)學模型的建立和控制算法的推導均基于離散時間。CARIMA模型表示如下:
式中,A(z-1)=1+a1z-1+…+anaz-na;B(z-1)=b0+b1z-1+…+bnbz-nb;C(z-1)=1+c1z-1+…+cncz-nc。
為便于子空間辨識,令n=na=nb=nc,并且將CARIMA模型描述成狀態(tài)空間觀測標準型。模型如下:
其中:b=[b0,b1,…,bn-1]T,c=[1,0,…,0],d=b,b0=b+b0,A為矩陣:
式中,x(k)、y(k)、A、Δu(k)、g、w(k)、維 數(shù) n 的 定 義aˉi及 ai與的關系見參考文獻[2]。
為便于應用子空間辨識,假設d是b0的一部分,在辨識后與b0相加組成系數(shù)b0,并設w(k)恒為零。可將廣義預測控制模型看成一個純確定性系統(tǒng),本文算法就是在辨識時對輸入輸出數(shù)據(jù)集消除噪聲,更好地逼近實際模型。
在辨識模型中,使用有限時域的在線實測數(shù)據(jù),實現(xiàn)對系統(tǒng)的廣義預測控制[3]。廣義預測控制系統(tǒng)結構如圖1所示。圖中yr為參考輸出值,ε為輸出誤差,ym為預測優(yōu)化輸出值。
圖1 廣義預測控制系統(tǒng)框圖
實際工業(yè)生產(chǎn)過程中可測輸入輸出數(shù)據(jù)已經(jīng)被污染,存在于某些動態(tài)特性變化較大的系統(tǒng),即使辨識過程中采用了遺忘因子仍不能很好地描述系統(tǒng)當前特性。為了更好地反映系統(tǒng)當前特性,應隨動態(tài)特性的變化自動調(diào)整遺忘因子。當系統(tǒng)參數(shù)變化快時,選擇較小的遺忘因子,可使歷史數(shù)據(jù)權重衰減加快,縮短記憶長度,提高辨識的靈敏度;反之系統(tǒng)參數(shù)變化慢,則選擇較大的遺忘因子,使歷史數(shù)據(jù)權重衰減延遲,延長記憶長度,提高辨識的靈敏度。對于系統(tǒng)某些不可測的未知干擾,只能在其反映到輸出后,通過反饋的方式修正。因此,本文利用輸出誤差構造變遺忘因子,克服參數(shù)和不可測干擾的影響,進行在線辨識與優(yōu)化控制,使得被控對象的輸出達到期望動態(tài)特性。
相比以往基于子空間辨識的廣義預測控制器設計,本文加入變遺忘因子項。根據(jù)實際輸出值和預測輸出值之間誤差修正遺忘因子,改變采集數(shù)據(jù)在辨識過程中的權重,以達到滿足系統(tǒng)的動態(tài)特性變化。通過廣義預測控制的滾動優(yōu)化得到系統(tǒng)的最優(yōu)控制。
給定測量長度為N=2n+s-1的輸入輸出數(shù)據(jù),UN=[Δu(0) Δu(1)…Δu(N-1)]T和 YN=[y(0)y(1)…y(N-1)]T。將 UN和 YN分為 s個辨識問題,s≥n,n為預測時域,如圖 2 所示。 Upi=Up(:,i),相似 定義 Ufi,Ypi,Yfi。
圖2 子空間辨識滾動窗口
利用變遺忘因子 βk(0<βk<1)對這組測量數(shù)據(jù)加權,實現(xiàn)舊的辨識數(shù)據(jù)在辨識中的權重比當前數(shù)據(jù)小,從而建立Hankel數(shù)據(jù)矩陣[4-7]如下:
其中,Up,Uf∈Rn×s。 同理定義 Yp,Yf∈Rn×s和 Ep,Ef∈Rn×s。定義歷史輸入輸出數(shù)據(jù)的矩陣為 Wp=(YpTUpT)T。廣義預測模型的子空間辨識問題可描述為:已知過去的輸入輸出Wp和當前時刻輸入輸出數(shù)據(jù)Ui|i,Yi|i,如何更好的辨識廣義預測控制模型的參數(shù)ai,bi(p表示過去時刻,f表示未來時刻)。子空間辨識相關定義如下:
將以上處理的輸入輸出數(shù)據(jù)應用在子空間系統(tǒng)辨識[8],算法如下:
(1)首先計算斜投影
(2)計算加權斜投影的奇異值分解(SVD)
(3)檢驗S的奇異值確定階數(shù),并對奇異值分解進行分區(qū)得 U1、U2和 S1。
(4)通過以下計算得到 Гi和 Гi-1
(5)通過以下計算得到 Xi,Xi+1,其中上標“+”表示偽逆運算。
(6)解出以下線性方程組,得 A,b,c,d
至此,經(jīng)過子空間辨識得到當前被控系統(tǒng)的廣義預測模型,在每一采樣時刻更新輸入輸出數(shù)據(jù)集 (更新Hankel矩陣),實現(xiàn)模型的在線辨識。
為了使更新數(shù)據(jù)能夠更好地反映當前系統(tǒng)特性,利用當前時刻廣義預測輸出與參考輸出誤差的范數(shù)εk=||y-yr||2,構造變遺忘因子[9]。
定義時刻k的變遺忘因子為:
式中,εm為最大容許誤差。 在 εk≥ε 時,取 εk=ε;在 εk≤0.2ε 時, 取 εk=0.2ε。 變遺忘因子 βk的變化范圍為[β1,βm],并可在該范圍內(nèi)調(diào)節(jié)采集數(shù)據(jù)窗口大小。當系統(tǒng)參數(shù)變化快,輸出誤差 εk增大時,遺忘因子 βk變小,遠離當前時刻采集數(shù)據(jù)的權重衰減速度增加,相當于記憶長度減小,提高了辨識靈敏度;反之亦然,從而使辨識精度提高。
在每采樣時刻更新變遺忘因子βk及Hankel矩陣,采用新的數(shù)據(jù)取代舊的數(shù)據(jù)。
經(jīng)過以上子空間辨識步驟得到的 A,b,c,d矩陣非狀態(tài)空間能觀測標準型,并不能將 A,b,c,d矩陣中的數(shù)據(jù)直接應用在廣義預測控制算法中。因此,將此時的A,b,c,d 矩陣經(jīng)過非奇異變換成模型式(2)、式(3)中的矩陣形式,從而得到的ai、bi可直接運用在廣義預測控制算法中。
在廣義預測控制中為了得到系統(tǒng)j步后,輸出y(k+j)的最優(yōu)預測值,引入Diophantine方程:
式中:
通過求解Diophantine方程,可得j步最優(yōu)預測輸出:
則前n步的最優(yōu)預測輸出的矩陣形式為:
式中:
目標函數(shù)為:
n為最大預測時域;Nu為控制時域,表示在Nu步以后,控制量將不再發(fā)生變化。λ(j)為控制加權序列,一般取λ(j)≡λ。寫出矩陣形式:
將最優(yōu)預測輸出值代入目標函數(shù)中,使目標函數(shù)值最小,可以得到最優(yōu)控制律:
記(GTG+λI)-1GT的第一行為 pT,廣義預測控制律可寫成:
反饋校正后基于變遺忘因子的子空間辨識的廣義控制控制算法為:
(1)n為給定預測時域,Nu為控制時域,εm為最大容許誤差,β1、βm為變遺忘因子的上下限值,λ為加權常數(shù)。
(2)經(jīng)過以上子空間系統(tǒng)辨識算法,得到A(z-1),B(z-1)的 系 數(shù) ai,bi。
(3)求出 Ej(z-1),F(xiàn)j(z-1),Ej(z-1),Gj(z-1),Hj(z-1)。
(4)計算矩陣 G 及 GT(G+λI)-1。
(5)由式(13)、式(14)求解控制量 u(k)。
(6)k=k+1,返回第2步。
考慮如下單輸入單輸出系統(tǒng):
仿真中取最大容許誤差εm=0.05,遺忘因子上限值β1=0.5、下限值 βm=0.95,加權常數(shù) λ=0.3,預測時域 n=6,子空間辨識問題個數(shù)s=7,控制時域Nu=3。參考輸出設 定 為 :在[0,50]∪[100,150]時 刻 yr=0;在[50,100]∪[150,200]時刻 yr=1。
無遺忘因子辨識后的廣義預測控制效果如圖3所示,加入遺忘因子(β=0.8)的控制效果如圖 4所示,通過輸出誤差加入反饋校正的變遺忘因子控制效果如圖5所示。
圖3 無遺忘因子廣義控制效果圖
圖4 定遺忘因子廣義控制效果圖
圖5 變遺忘因子廣義控制效果圖
從圖中可以看出,無遺忘因子時的系統(tǒng)輸出波動較大,不能很好地跟蹤參考輸出;而加入定遺忘因子,控制效果大為改善。本文通過變遺忘因子得到的預測模型能夠更好的反映當前系統(tǒng)特性,跟蹤參考輸出效果較之無遺忘因子、定遺忘因子要好得多,從而證明了引進變遺忘因子的子空間系統(tǒng)辨識在廣義預測控制算法中消除噪聲的有效性。
本文針廣義預測模型辨識時輸入輸出數(shù)據(jù)可能存在噪聲和系統(tǒng)先驗結構信息未知導致的難于辨識問題,采用由輸出誤差構造的變遺忘因子,形成反饋校正控制策略,根據(jù)當前時刻輸出誤差更新所采集的歷史數(shù)據(jù)在子空間辨識中所占權重。該算法在控制時保證了子空間辨識的參數(shù)少、無需迭代運算以及廣義預測魯棒性等優(yōu)點,更能反映系統(tǒng)當前特性,提高辨識的靈敏度,因而能取得較好的優(yōu)化控制效果。最后實例仿真驗證了算法的有效性。
[1]席裕庚.預測控制 [M].北京:國防工業(yè)大學出版社,1993.
[2]王偉.廣義預測控制理論及其應用[M].北京:科學出版社,1998.
[3]楊華,李少遠.一種完全數(shù)據(jù)驅動的子空間辨識與魯棒預測控制器設計[J].控制理論與應用,2007,10(5):732-736.
[4]楊華,李少遠.一種新的基于遺忘因子的遞推子空間辨識算法[J].控制理論與應用,2009,1(1):69-72.
[5]劉洪娥.廣義預測控制及其仿真[D].北京:中國石油大學,2008.
[6]吳平.基于子空間的系統(tǒng)辨識及其應用[D].杭州:浙江大學信息學部,2009.
[7]董新.子空間辨識方法的研究及軟件包的開發(fā) [D].北京:華北電力大學,2006.
[8]OVERSCHEE P V,MOOR B D.Subspace identification for Linear systems[M].Kluwer Academic Publishers 2000.
[9]李少遠,吳永玲.時變遺忘因子的子空間辨識及預測控制器設計[J].同濟大學學報(自然科學版).2010,11(11):1651-1655.