陳洪科
(廈門大學(xué)嘉庚學(xué)院 信息科學(xué)與技術(shù)學(xué)院,福建 漳州 363105)
自上世紀(jì)七十年代被提出以來,預(yù)測控制算法因其優(yōu)良特性在復(fù)雜工業(yè)過程控制中得到廣泛應(yīng)用。經(jīng)過40年來的發(fā)展與應(yīng)用,該類算法已經(jīng)從線性、時(shí)不變、單變量系統(tǒng)的預(yù)測控制發(fā)展為非線性、時(shí)變、多變量系統(tǒng)的預(yù)測控制,極大地拓展了應(yīng)用領(lǐng)域。近年來,預(yù)測控制的思想和方法在電力電子、航空航天、能源、采礦、農(nóng)業(yè)等諸多領(lǐng)域得到應(yīng)用,表現(xiàn)出強(qiáng)勁的生命力。
在電力電子領(lǐng)域,電力電子變流器具有非線性、變結(jié)構(gòu)的特點(diǎn),傳統(tǒng)控制器難以獲得理想的性能[1],連續(xù)控制集模型預(yù)測控制和有限控制集模型預(yù)測控制算法被用于此類系統(tǒng)控制,發(fā)展前景廣闊。而針對互聯(lián)電力系統(tǒng)的分布式控制,分布式模型預(yù)測控制(Di-MPC)采用本地局部優(yōu)化控制和全局協(xié)同控制相結(jié)合的策略,局部控制故障不會影響全局系統(tǒng)運(yùn)行[2],應(yīng)用優(yōu)勢明顯。在船舶航運(yùn)領(lǐng)域,針對船舶運(yùn)動(dòng)過程中的大慣性、長時(shí)滯、非線性等特點(diǎn),預(yù)測控制算法能夠運(yùn)用在動(dòng)力定位系統(tǒng)控制、減搖水艙控制和航向航跡控制等方面[3]。在農(nóng)業(yè)領(lǐng)域,模型預(yù)測控制算法(MPC)可應(yīng)用于農(nóng)機(jī)協(xié)同控制。針對協(xié)同作業(yè)跟隨農(nóng)機(jī)行駛工況不穩(wěn)、跟隨協(xié)同響應(yīng)慢、控制困難等問題,采用兩層控制架構(gòu),上層基于模型預(yù)測控制算法獲得控制加速度的最優(yōu)控制目標(biāo),下層則基于前饋與PI反饋實(shí)施控制,跟隨效果良好[4]。在新能源領(lǐng)域,MPC算法被用于波浪能轉(zhuǎn)換裝置控制以提高海洋表面波浪運(yùn)動(dòng)能量的提取效率。這一應(yīng)用問題本質(zhì)上是一個(gè)約束優(yōu)化問題,模型預(yù)測控制器能輸出最優(yōu)化控制量,并與當(dāng)前波浪作用力作為轉(zhuǎn)換裝置的輸入實(shí)施最優(yōu)控制[5]。在采礦領(lǐng)域,MPC算法被用于瓦斯抽采智能控制[6]。首先通過對瓦斯抽采系統(tǒng)進(jìn)行分析和建模,建立了瓦斯抽采智能調(diào)控模型,將瓦斯抽采濃度、純量、負(fù)壓及抽采泵效能比作為被控量,將抽采鉆孔的閥門開度和抽采泵功率作為控制量,利用MPC對控制量進(jìn)行智能控制。為了獲得被控量目標(biāo)值,采用了簡單循環(huán)神經(jīng)網(wǎng)絡(luò)分析和學(xué)習(xí)被控量歷史數(shù)據(jù)的時(shí)間變化規(guī)律,進(jìn)而得到被控量的時(shí)間變化擬合曲線。經(jīng)實(shí)踐應(yīng)用證實(shí),MPC算法能夠使被控量很好地跟隨參考值,且能克服環(huán)境及非線性因素的干擾,調(diào)控效果良好。
預(yù)測控制算法的廣泛應(yīng)用證明了其有效性。本文首先對模型預(yù)測控制算法理論進(jìn)行介紹,然后通過仿真討論其算法特征與控制性能的關(guān)系。
預(yù)測控制算法根據(jù)預(yù)測輸出和期望輸出來計(jì)算控制量。給定設(shè)定值r,被控對象當(dāng)前時(shí)刻(k=0)的輸出值到給定值的期望轉(zhuǎn)移過程用yr(k)表示。由已知的被控對象模型可以預(yù)測對象在未來P個(gè)時(shí)刻的輸出,記為yM(k)(k=1, 2, ..., P)。預(yù)測控制算法以預(yù)測輸出與期望輸出的偏差e(k)為最小化優(yōu)化目標(biāo),由此計(jì)算出當(dāng)前及未來共計(jì)L個(gè)時(shí)刻的控制量u(k)(k=0, 1, 2, ..., L-1)。模型預(yù)測控制算法是一種基于模型的優(yōu)化控制算法,由預(yù)測模型、模型校正、參考軌跡和滾動(dòng)優(yōu)化四個(gè)部分組成,如圖1所示。

圖1 模型預(yù)測控制算法組成
設(shè)被控線性對象的單位脈沖響應(yīng)采樣值為h1, h2,…,則其輸入輸出關(guān)系可以表示為

對于漸近穩(wěn)定對象,階躍響應(yīng)在某一時(shí)刻k=N后趨于平穩(wěn),即有hN+1=hN+2=…=0,所以對象的動(dòng)態(tài)信息可以用有限集合{h1, h2, ..., hN}加以近似描述。那么,該對象的預(yù)測模型可以表示為

由此可得被控對象在P個(gè)預(yù)測步程內(nèi)的預(yù)測輸出為

式中,i=1, 2, ..., P。

在式(3)的基礎(chǔ)上進(jìn)一步考慮模型誤差和干擾,采用前一時(shí)刻預(yù)測值與實(shí)際值的偏差來校正預(yù)測模型,同時(shí)采用校正后的預(yù)測值代替實(shí)際測量值,則有式中,i=1,2, ..., P。將校正后的模型預(yù)測結(jié)果記為向量形式y(tǒng)c =[ yc(k+1), yc(k+2), ..., yc(k+P)]T。
為使輸出變量平穩(wěn)過渡,被控對象的期望輸出是從當(dāng)前時(shí)刻的實(shí)際輸出y(k)到設(shè)定值光滑過渡的一條參考軌跡。在k時(shí)刻的參考軌跡可由其在未來采樣時(shí)刻的值yr(k+i) (i=1, 2, ...)描述,通常取一階指數(shù)函數(shù)形式,即有

式中,τ是參考軌跡的時(shí)間常數(shù),T是采樣周期。令α=e -T/τ,則有

可見,τ值越小,α(0≤α≤1)值越小,參考軌跡能越快地到達(dá)設(shè)定值r。參考軌跡亦可以簡記為矩陣形式,即

式中,yr =[ yr(k+1), yr(k+2), ..., yr(k+P) ]T,α1 =[ α, α2, …, αP ]T,α2 =[ 1-α, 1-α2, …,1-αP ]T。
根據(jù)前述模型預(yù)測和參考軌跡的向量形式,可以寫出二者誤差的向量形式,即有e=yr - yc。滾動(dòng)優(yōu)化的目的是在每一步控制中,找到當(dāng)前到未來由近及遠(yuǎn)的L個(gè)時(shí)刻的控制量,使未來P個(gè)時(shí)刻的預(yù)測輸出盡可能地接近參考軌跡。因此,優(yōu)化目標(biāo)函數(shù)可以表示為:

式中,Q1和Q2是系數(shù)對角矩陣,Q1=diag{q2 11, q2 12, ..., q2 1P},Q2=diag{q2 21, q2 22, ..., q2 2L}。對于多輸入多輸出(MIMO)系統(tǒng),還需考慮不同變量之間的權(quán)重[7],優(yōu)化目標(biāo)函數(shù)為

式中,Nu和Ny分別是控制變量、輸出變量的個(gè)數(shù),ws和vt表示權(quán)重。求解?J / ?Δu=0即可得到所需的控制增量Δu。
借助Matlab軟件的模型預(yù)測控制工具箱(Model Predictive Control Toolbox)可以方便地進(jìn)行模型預(yù)測控制算法的仿真。該工具箱提供了GUI界面,可以對被控對象、MPC控制器和仿真條件進(jìn)行建模或設(shè)置,其中控制器的設(shè)置包括基本的步程信息、變量約束、權(quán)重調(diào)整和干擾信號估計(jì)等,仿真條件則包括被控對象、控制器、開/閉環(huán)、參考值、不可測干擾等。該工具箱也支持代碼模式。
本文以連續(xù)攪拌釜式反應(yīng)器作為被控對象實(shí)施仿真,示意圖如圖2所示。CAi、Tc、T、CA分別為進(jìn)料反應(yīng)物濃度、冷卻液溫度、反應(yīng)器內(nèi)部溫度和釜內(nèi)主要反應(yīng)物濃度。顯然,CAi、Tc屬于輸入變量,T、CA屬于輸出變量。但由于反應(yīng)物濃度通常難以測量,因此將CAi、CA分別定義為不可測干擾、不可測輸出,Tc和T則分別是控制量和可測量輸出。

圖2 連續(xù)攪拌釜式反應(yīng)器模型
該反應(yīng)器的線性化狀態(tài)空間模型為:

為了考察輸入變量、輸出變量權(quán)重對控制性能的影響,以表1所示兩組權(quán)重進(jìn)行仿真和對比。仿真結(jié)果如圖3所示。

圖3 不同變量權(quán)重仿真結(jié)果

表1 變量權(quán)重參數(shù)
反應(yīng)器對象包含一個(gè)控制變量Tc和兩個(gè)輸出變量T、CA。在A組權(quán)重中,兩個(gè)輸出變量權(quán)重均為1.0,這表示對二者實(shí)施均衡控制,即都盡可能接近設(shè)定值。然而由于只通過一個(gè)控制變量實(shí)施控制,因此很難保證這一控制目標(biāo)。在圖3(a)中,可以看到兩個(gè)輸出變量均偏離設(shè)定值,無法取得預(yù)期控制效果。在B組權(quán)重中,僅輸出變量T的權(quán)重為1.0,而CA的權(quán)重為0.0,這表示優(yōu)先保證T的控制效果。在圖3(a)中,可以看到反應(yīng)器內(nèi)部溫度T能夠正確跟隨設(shè)定值變化,而反應(yīng)物濃度CA則偏離了零值。
輸入變量權(quán)重用于控制輸入量與初始值保持一致,適用于輸入量個(gè)數(shù)多于輸出量個(gè)數(shù)的情形。本文所示仿真例不屬于這種情況,因此將該權(quán)重設(shè)置為0.0,即輸入量無需跟隨初始值。輸入變量變化率權(quán)重則用于限定輸入變量變化率的大小,如式(9)中的vt所示——當(dāng)增大vt時(shí),在最小化J的前提下,控制增量Δu勢必會減小;反之,Δu會增大。在圖3(b)中,可以看到B組中冷卻液溫度Tc的增量絕對值大小比A組小,這便于控制動(dòng)作的施行,但帶來的影響是輸出變量的上升時(shí)間增大。
模型預(yù)測控制算法可以對變量設(shè)置約束,使之更符合實(shí)際被控對象或被控過程的物理屬性。在表1中B組條件基礎(chǔ)上,對控制量Tc及其增量分別設(shè)置[-10, 10]、[-3,3]的變化范圍約束,仿真結(jié)果如圖4所示。從圖中可以看出,Tc的最大值被限制在了10,其每一步的變化量也未超過3,約束設(shè)置起到了作用。但與圖3(a)相比可以發(fā)現(xiàn),限制控制變量后會導(dǎo)致輸出變量的上升時(shí)間增長,對控制性能有一定影響。

圖4 具有變量約束的仿真結(jié)果
在模型預(yù)測控制算法中,有三類干擾信號,包括不可測輸入干擾、不可測輸出干擾以及可測噪聲。算法允許對被控對象受到的干擾與噪聲進(jìn)行預(yù)先估計(jì)和建模,以便使控制器更符合實(shí)際工況,提高控制性能。
針對釜式反應(yīng)器給定兩個(gè)控制器設(shè)計(jì):控制器A將不可測輸入干擾(進(jìn)料反應(yīng)物濃度CAi)建模為幅度為1的階躍信號,控制器B則將輸出變量之一的反應(yīng)器內(nèi)部溫度T的不可測輸出干擾建模為幅度為1的階躍信號。二者分別在不可測干擾CAi為單位階躍信號的條件下仿真,結(jié)果如圖5所示。從圖中可以看出,當(dāng)單位階躍干擾信號CAi出現(xiàn)時(shí),兩個(gè)控制器控制下的輸出變量均會發(fā)生偏離;但對于可測輸出變量T,控制器A的控制效果更佳——超調(diào)量更小,且相比控制器B只需要約1/4的時(shí)間就能使變量重新跟蹤到設(shè)定值上來。導(dǎo)致這種差異的原因在于控制器A準(zhǔn)確地估計(jì)和建模了系統(tǒng)的干擾信號。

圖5 不同干擾建模與估計(jì)下的仿真結(jié)果
本文介紹了模型預(yù)測控制算法的基本理論,以Matlab軟件的模型預(yù)測控制工具箱和連續(xù)攪拌釜式反應(yīng)器為基礎(chǔ)討論了該算法的仿真方法和算法性能。從仿真結(jié)果可以看到,為了提升算法控制性能,必須注意以下幾點(diǎn):
(1)需要根據(jù)輸入變量與輸出變量的個(gè)數(shù)關(guān)系,合理設(shè)置輸入變量權(quán)重、輸出變量權(quán)重使得輸入、輸出變量有選擇性的實(shí)現(xiàn)設(shè)定值跟蹤,同時(shí)通過輸入變量變化率權(quán)重控制控制增量的大小;
(2)根據(jù)實(shí)際被控對象或被控過程的物理屬性合理設(shè)置輸入、輸出變量約束;
(3)對被控對象受到的干擾與噪聲進(jìn)行估計(jì)和建模,可以使控制器更符合實(shí)際工況,提高控制性能。