時維國 閆小宇 王家勝
(大連交通大學(xué)電氣信息學(xué)院 大連 116028)
隨著網(wǎng)絡(luò)化技術(shù)的不斷發(fā)展,基于以太網(wǎng)的網(wǎng)絡(luò)控制系統(tǒng)(Networked Control System,NCS)得到了廣泛的應(yīng)用。但是以太網(wǎng)固有的CSMA/CD機制[1~2]的隨機性對信號傳輸有不確定性的時延影響,且時延分布范圍廣。系統(tǒng)的延遲抖動在很寬的范圍內(nèi)產(chǎn)生,當(dāng)系統(tǒng)發(fā)生設(shè)備過載并且由于發(fā)送數(shù)據(jù)排隊而延遲時,導(dǎo)致數(shù)據(jù)包丟失,使延遲變大,甚至是系統(tǒng)出現(xiàn)不穩(wěn)定現(xiàn)象。針對上述問題,許多學(xué)者對NCS進(jìn)行了預(yù)測控制:Liu GP等[3]提出了具有隨機延遲的網(wǎng)絡(luò)預(yù)測控制系統(tǒng)的穩(wěn)定性標(biāo)準(zhǔn)。文獻(xiàn)[4~5]使用預(yù)測值代替在一定范圍內(nèi)未發(fā)送的數(shù)據(jù),從而減少網(wǎng)絡(luò)延遲和空抽樣對NCS系統(tǒng)控制性能的影響。Mu J X等[6]使用預(yù)測控制算法的冗余控制來提高控制性能,并使用改進(jìn)的史密斯預(yù)測器和模型預(yù)測器來補償反饋信道中的延遲。文獻(xiàn)[7~8]提出了一種約束模型預(yù)測控制算法,通過滾動控制時域優(yōu)化對應(yīng)終端性能的上限和下限,使用執(zhí)行器中的緩沖器來保存時延補償控制量。
雖然上述提出的網(wǎng)絡(luò)控制系統(tǒng)的方法可以對隨機延遲進(jìn)行合理的補償。然而,實際工業(yè)體系中的模型更復(fù)雜,有必要重復(fù)多步預(yù)測。由于需要對Diophantine方程求解和矩陣求逆,基本的廣義預(yù)測控制算法導(dǎo)致在線計算過大,使得網(wǎng)絡(luò)控制系統(tǒng)難以達(dá)到理想的控制效果[9]?;诖耍闹袑⒏倪M(jìn)的廣義預(yù)測控制(The generalized predictive control,GPC)算法應(yīng)用于以太網(wǎng)NCS網(wǎng)絡(luò)延遲的補償。使用基于最小方差控制的廣義預(yù)測控制算法來避免Diophantine方程,以確保網(wǎng)絡(luò)控制系統(tǒng)的實時性。將傳統(tǒng)的廣義預(yù)測控制算法和改進(jìn)的廣義預(yù)測控制算法在Matlab仿真平臺上驗證算法的優(yōu)越性。仿真結(jié)果表明,改進(jìn)的廣義預(yù)測控制算法可以在隨機延遲較大的以太網(wǎng)控制環(huán)境中使用,可以補償延遲對系統(tǒng)性能的影響,大大提高系統(tǒng)的控制精度。
廣義預(yù)測控制是隨著自適應(yīng)控制的研究而發(fā)展起來的一種預(yù)測控制方法。它采用受控自回歸積分滑動平均模型(Controlled Auto-Regressive Integrated Moving-Average,CARIMA),該模型本身具備的預(yù)測功能,使其能夠?qū)⑾到y(tǒng)過去的數(shù)據(jù)信息和未來的輸入數(shù)據(jù)放在一起進(jìn)行分析,從而估算出系統(tǒng)未來的預(yù)測輸出值[10]。它采用多步預(yù)測、滾動優(yōu)化和反饋校正等策略,且具有對模型精度要求低,能控制參數(shù)突變和魯棒性強等優(yōu)點,而這些恰恰都是復(fù)雜控制系統(tǒng)所急需的特征。因此,在對網(wǎng)絡(luò)控制系統(tǒng)的設(shè)計與應(yīng)用中,將廣義預(yù)測控制算法應(yīng)用其中,用以解決其時延問題,有著重要的意義,預(yù)測控制的基本結(jié)構(gòu)如下圖所示:
圖1 預(yù)測控制的基本結(jié)構(gòu)
從圖1中可以看出,在每個采樣時刻K,基于對象的某種預(yù)測模型,利用過去、當(dāng)前和將來的控制輸入以及過去和當(dāng)前的系統(tǒng)輸出,對系統(tǒng)未來某段時間內(nèi)的輸出序列進(jìn)行預(yù)測(多步預(yù)測),如圖1中[y(k+1),y(k+2),…,y(k+N)],未來輸出預(yù)測與平滑后的未來設(shè)定值進(jìn)行對比,并通過極小化某一性能指標(biāo)的方式來得到最優(yōu)控制序列。
傳統(tǒng)廣義預(yù)測控制有很多優(yōu)點,在延時波動不大的網(wǎng)絡(luò)環(huán)境中可以取得很好的控制效果,但是傳統(tǒng)GPC算法,在網(wǎng)絡(luò)延時波動較大時,卻無法滿足系統(tǒng)要求。因為傳統(tǒng)預(yù)測算法迭代部署固定后,需要多次利用Diophantine方程進(jìn)行求解運算,而過大的運算量會在網(wǎng)絡(luò)延時波動較大,數(shù)據(jù)丟失步數(shù)超過預(yù)測步數(shù),便無法補償對系統(tǒng)的控制性能造成直接的影響,降低系統(tǒng)的控制品質(zhì)[11]。因此本文提出在傳統(tǒng)GPC算法的基礎(chǔ)上,引入最小方差控制算法,這樣可以避免對Diophantine方程的求解,省掉了大量的計算。
設(shè)被控對象采用下列CARIMA模型描述:
其中,d為被控系統(tǒng)時滯,并且假設(shè) A(z-1)、B(z-1)和C(z-1)的所有零點都在單位圓內(nèi),即系統(tǒng)是穩(wěn)定的、最小相位系統(tǒng),ξ(k)是均值為0,方差為0.01的標(biāo)準(zhǔn)白噪聲序列。
在以上幾個假設(shè)都成立的基礎(chǔ)上,可以根據(jù)k時刻及之前時刻的輸出,得到k+d時刻預(yù)測值y?(k+d|k)。
若使預(yù)測的誤差平方最小,則將目標(biāo)函數(shù)表示為
系統(tǒng)預(yù)測誤差為
最小方差控制的目的是要確定u(k),使得系統(tǒng)輸出方差為最小,由于u(k)最早只能影響到y(tǒng)(k+d),因此選擇性能指標(biāo):
則使性能指標(biāo)J最小的充分條件是Ey?+d|k)}2=0 。
因此最小方差控制律為
式中,w(k)為選定的參考軌跡,且被定義為w(k)=αy(k)+(1-α)yr,P為系統(tǒng)實際輸出加權(quán)多項式,R為參考輸入加權(quán)多項式,Q為控制輸入加權(quán)多項式。
可以明顯看出,由于三個加權(quán)多項式的引入,此算法不僅保持了原有最小方差的特點,還可以通過多項式P和多項式R使得系統(tǒng)的輸出跟蹤參考輸入w(k),通過多項式Q約束控制量u(k)的幅值和頻率變化,從而有效解決了上一節(jié)算法研究中出現(xiàn)的問題[14]。
在k時刻對k+d時刻進(jìn)行最優(yōu)預(yù)測,得到k+d時刻的最優(yōu)預(yù)測值為
在上一小節(jié)的算法研究中,直接將網(wǎng)絡(luò)時延d的影響考慮了進(jìn)去,建立了被控對象的CARIMA模型,并通過不斷地預(yù)測、調(diào)節(jié)使得輸出量的穩(wěn)態(tài)方差保持了最小。但是,單純地追求最小方差暴露了其算法的兩點重要缺陷:其一,系統(tǒng)的輸出失去了對給定的參考輸入的跟蹤作用;其二,對控制量u(k)的控制作用沒有加以約束,可能會由于其出現(xiàn)巨大波動而對儀器儀表產(chǎn)生影響[12-13]。
基于以上分析,本小節(jié)提出了廣義最小方差預(yù)測控制算法。在改進(jìn)之后的GPC算法中,采用如下指標(biāo)函數(shù):
最小誤差可表示為
又以上公式經(jīng)過一系列推導(dǎo)可得廣義最小方差(GMVC)控制律為
對比傳統(tǒng)的GPC算法可以明顯看出,本文提出的改進(jìn)的GPC算法在保留了原算法CARIMA模型的基礎(chǔ)上,引入了最小方差思想并從原理上簡化了求解過程,避免了Diophantine方程求解和大量的矩陣求逆運算。另外,在一般廣義預(yù)測算法推導(dǎo)過程中,大多為了突出原理和推導(dǎo)簡單起見而直接令C(z-1)=1,但實際情況是,當(dāng)計算C(z-1)=1和C(z-1)≠1時的系統(tǒng)輸出量和控制量時,需要分開進(jìn)行,而該方法同樣從原理上避免了兩種情況下的分開計算,從而大大減少了計算量[15]。
改進(jìn)的GPC算法對控制系統(tǒng)的具體求解步驟如下:
步驟一:給定CARIMA模型階次na,nb,nc,控制步長m,預(yù)測步長n,控制多項式P,R,Q;
步驟二:采樣當(dāng)前時刻的實際輸出 y(k)及參考軌跡w(k+j);
步驟三:根據(jù)計算控制矩陣向量;
步驟四:組建參考軌跡向量w,計算向量Ym;
步驟五:計算當(dāng)前控制量u(k);
步驟六:返回步驟二,滾動優(yōu)化[16]。
為了驗證本文所采用的改進(jìn)的GPC算法的有效性,本文利用Simulink/TrueTime工具箱進(jìn)行仿真。其中采用的通信網(wǎng)絡(luò)類型為CDMA/CD(Ethernet),仿真中所采用的被控對象為直流電機,被控對象的傳遞函數(shù)為。仿真中分別采用3個TrueTime Kernel模塊來表示相應(yīng)傳感器節(jié)點、控制器節(jié)點和執(zhí)行器節(jié)點,采用1個TrueTime Network模塊來模擬真實的網(wǎng)絡(luò)通信介質(zhì),系統(tǒng)的采樣周期為T=6ms。
當(dāng)網(wǎng)絡(luò)控制系統(tǒng)時延小于一個采樣周期時,即τ∈[0,T]時,仿真結(jié)果如下:
圖2 傳統(tǒng)GPC算法下的響應(yīng)曲線
圖3 改進(jìn)GPC算法下的響應(yīng)曲線
當(dāng)網(wǎng)絡(luò)控制系統(tǒng)時延τ∈[T,3T]時,仿真結(jié)果如下:
圖4 傳統(tǒng)GPC算法下的響應(yīng)曲線
圖5 改進(jìn)GPC算法下的響應(yīng)曲線
當(dāng)網(wǎng)絡(luò)控制系統(tǒng)時延τ∈[3T,5T]時,仿真結(jié)果如下:
圖6 傳統(tǒng)GPC算法下的響應(yīng)曲線
圖7 改進(jìn)GPC算法下的響應(yīng)曲線
從以上的仿真結(jié)果可以看出,當(dāng)網(wǎng)絡(luò)控制系統(tǒng)時延小于一個系統(tǒng)采樣周期時,傳統(tǒng)GPC算法和改進(jìn)的GPC算法都可以對網(wǎng)絡(luò)時延起到良好的補償效果;當(dāng)時延τ∈[T,3T]時,傳統(tǒng)GPC算法能夠跟上設(shè)定值,但時延補償效果相比于改進(jìn)的GPC算法開始顯現(xiàn)出了一定的差距;當(dāng)時延τ∈[3T,5T]時,傳統(tǒng)GPC算法雖然勉強能夠跟蹤上設(shè)定值,但是需要的時間較長,相比之下,改進(jìn)的GPC算法依然能夠平穩(wěn)快速地跟蹤上設(shè)定值。
針對直流電機控制系統(tǒng),通過改進(jìn)前后的廣義預(yù)測控制,分析仿真結(jié)果可知,改進(jìn)后系統(tǒng)的暫態(tài)特性和穩(wěn)態(tài)特性良好。特別是在延時較小的的情況下,網(wǎng)絡(luò)的延時和丟包對系統(tǒng)幾乎不產(chǎn)生影響。當(dāng)延時有所增大時,基于最小方差的廣義預(yù)測控制方法能使系統(tǒng)又回到可控狀態(tài)。但傳統(tǒng)的廣義預(yù)測控制方法下的系統(tǒng)將視具體的延時情況而定,很可能無法達(dá)到預(yù)期效果,甚至進(jìn)入不可控狀態(tài)??v觀改進(jìn)的GPC算法在設(shè)定的不同時延范圍中的表現(xiàn),其控制效果要明顯好于傳統(tǒng)GPC算法,尤其是對于基于以太網(wǎng)NCS中容易出現(xiàn)的大時延問題,改進(jìn)的GPC算法證明了其能夠有效地補償時延對系統(tǒng)造成的影響,減小了系統(tǒng)的超調(diào)量和調(diào)節(jié)時間,提高了系統(tǒng)的控制精度。
本文針對基于以太網(wǎng)網(wǎng)絡(luò)控制系統(tǒng)中的時延問題,提出了采用改進(jìn)的GPC算法補償時延的方法。文中詳細(xì)分析推導(dǎo)了傳統(tǒng)的GPC算法,然后在此基礎(chǔ)上針對傳統(tǒng)算法的缺點與不足,采用最小方差的控制思想對其進(jìn)行改進(jìn)。實驗仿真表明,改進(jìn)的GPC算法避免了Diophantine方程復(fù)雜的求解過程,減少了計算時間,對NCS時延及時準(zhǔn)確地進(jìn)行了補償,保證了網(wǎng)絡(luò)控制系統(tǒng)的實時性,提高了系統(tǒng)的控制精度。