鄭 鑫,克金超,陳亞萌,段艷旭,謝 磊
(1.中電商丘熱電有限公司,商丘 476000;2.浙江大學(xué) 控制學(xué)院,杭州 310027)
模型預(yù)測控制(MPC)是近幾十年來最具代表性的先進(jìn)過程控制技術(shù)之一[1]。MPC由預(yù)測模型、反饋校正以及滾動(dòng)優(yōu)化這三大基本模塊構(gòu)成,其主要思想是根據(jù)一個(gè)明確的過程模型預(yù)測系統(tǒng)的未來響應(yīng)。在每個(gè)控制周期內(nèi),MPC在有限的控制范圍內(nèi)計(jì)算未來一段時(shí)間最優(yōu)的操縱變量增量,以優(yōu)化未來行為。相對于傳統(tǒng)的比例積分微分(PID)控制[2],MPC的優(yōu)勢在于其可以處理約束,且對于多輸入多輸出控制系統(tǒng)有著良好的控制效果。MPC為不確定性、約束、非線性廣泛存在的復(fù)雜工業(yè)過程控制提供了新的解決思路。經(jīng)過30多年的發(fā)展后,MPC已經(jīng)在工業(yè)過程控制中得到了廣泛的使用與認(rèn)可,并逐步被應(yīng)用至能源[3]、航空航天工程[4]、和汽車工業(yè)[5]等領(lǐng)域。
隨著工業(yè)過程中被控對象變量個(gè)數(shù)的增加以及工業(yè)過程中嵌入式設(shè)備的發(fā)展,實(shí)際應(yīng)用中一些工廠對控制的時(shí)效性提出了更為嚴(yán)格要求[6],因此近年來對于在線MPC計(jì)算問題的關(guān)注度越來越高,在系統(tǒng)的采樣間隔內(nèi),如何在保障控制性能的條件下快速地計(jì)算獲得滿足約束的MPC解成為了研究熱點(diǎn)[7]。國內(nèi)外眾多學(xué)者進(jìn)行了相關(guān)研究以提高M(jìn)PC 在線計(jì)算速度從而解決上述問題。目前主要可以分為兩類算法:其一是對 MPC 算法進(jìn)行改進(jìn)以簡化在線計(jì)算,代表方法是Bemporad[8]在2002年提出的顯示模型預(yù)測控制算法。該算法分為離線計(jì)算與在線優(yōu)化兩個(gè)部分。顯示模型預(yù)測控制算法首先離線地對狀態(tài)空間進(jìn)行劃分,并為各個(gè)子空間設(shè)計(jì)合理的線性控制律。狀態(tài)分區(qū)與對應(yīng)的控制律將被保存至存儲(chǔ)器并提供給在線優(yōu)化用以節(jié)省部分在線計(jì)算量。然而,隨著問題規(guī)模的增大,顯而易見的是狀態(tài)分區(qū)與控制律會(huì)隨之呈現(xiàn)指數(shù)增長趨勢,這將會(huì)對存儲(chǔ)量提出挑戰(zhàn)。因此,顯示模型預(yù)測控制只適用于控制維數(shù)較低的系統(tǒng)。其二則是開發(fā)高效的優(yōu)化問題求解策略從而提高在線求解速度,目前主要為有效集算法[9]、內(nèi)點(diǎn)法[10]以及他們的衍生算法如:不可行有效集法[11],對偶有效集法[12]、懲罰函數(shù)內(nèi)點(diǎn)算法[13]等等。
本文為多變量過程提出了基于奇異值分解的快速(SVDF)模型預(yù)測控制算法,首先利用狀態(tài)空間方程遞推獲得系統(tǒng)的預(yù)測輸出,形成二次規(guī)劃問題;隨后考慮到優(yōu)化問題Hessian矩陣的不變性,對該矩陣離線地進(jìn)行SVD分解以提取特征信息,并通過矩陣變化將原優(yōu)化問題轉(zhuǎn)移到共軛空間,隨后引入SVDF方法從無約束最優(yōu)解中選取滿足約束的次優(yōu)解,結(jié)束本次在線計(jì)算。通過MATLAB仿真與將所提算法與其內(nèi)置內(nèi)點(diǎn)法計(jì)算函數(shù)進(jìn)行比較以驗(yàn)證算法的快速與有效性;最后,將所提算法應(yīng)用于一雙輸入雙輸出的水箱系統(tǒng)液位進(jìn)行控制。
考慮如下的線性模型所表示的系統(tǒng):

其中x(k)∈Rnx和u(k)∈Rnu分別是系統(tǒng)在k時(shí)刻的狀態(tài)和輸入變量。模型預(yù)測控制的目標(biāo)函數(shù)為:


其中Q和R為正定矩陣,且滿足:分別是有限時(shí)域下的預(yù)測狀態(tài)集合和輸入集合,有:

其中Np表示預(yù)測時(shí)域和控制時(shí)域。
由線性模型式(1)可以遞推得到如下預(yù)測狀態(tài)與輸入之間的關(guān)系:

由于x(k)在每一個(gè)時(shí)刻已知,目標(biāo)函數(shù)式(2)隨后可以使用這一關(guān)系式(5)進(jìn)行替換從而消除預(yù)測狀態(tài),變?yōu)橹挥蓄A(yù)測輸入相關(guān)的函數(shù):

注意到由于模型不改變,則F矩陣在預(yù)測過程中保持不變,如果權(quán)重系數(shù)矩陣Q和R在計(jì)算過程中不更改,則該目標(biāo)函數(shù)的Hessian矩陣H同樣也會(huì)保持不變。此外,H還是一個(gè)正定對稱的矩陣,目標(biāo)函數(shù)是一個(gè)二次函數(shù)。假設(shè)對輸入做如下線性變換,從而將其投影到一個(gè)新的空間:

其中t是Hessian矩陣H的共軛向量集且滿足

其中σi是Hessian矩陣的特征值且滿足

P是Hessian矩陣的SVD分解得到的共軛矩陣。
則原目標(biāo)函數(shù)(6)可以轉(zhuǎn)化為其共軛空間形式:

在不存在約束的情況下,共軛空間的最優(yōu)無約束解可以直接得到:

通過使用式(7)進(jìn)行簡單的矩陣變換即可獲得實(shí)際空間中的無約束最優(yōu)解。
在實(shí)際應(yīng)用中,系統(tǒng)往往存在著各種各樣的約束,在MPC的運(yùn)行過程中需要考慮這些約束以保障設(shè)備的運(yùn)行安全。由于輸入與輸出之間存在著顯式的關(guān)系,系統(tǒng)約束可以由式(12)所示:

即MPC此時(shí)應(yīng)該解決一個(gè)如下的優(yōu)化問題

在處理過程約束時(shí)最簡單直觀的做法是將不可行解使得約束違反的部分移動(dòng)到其邊界上,然而,這種粗暴的方式往往會(huì)使得獲得的解控制性能極差,根本達(dá)不到所需要的控制效果。因此需要考慮其他的約束處理方式。在上一節(jié)可以通過對Hessian矩陣進(jìn)行SVD分解,隨后通過矩陣變化將原空間優(yōu)化問題投影到其共軛空間中。在此框架下,可以利用共軛空間中的無約束最優(yōu)解,在不需要求解優(yōu)化問題的情況下,獲得一個(gè)滿足約束條件的次優(yōu)解。首先將優(yōu)化問題中目標(biāo)函數(shù)寫作的形式如式(14)所示:

基于上述分析,我們對共軛空間中的無約束最優(yōu)解執(zhí)行如下操作以實(shí)現(xiàn)對于次優(yōu)解的線性搜索。
按照特征值大小從大到小將對應(yīng)的共軛空間無約束最優(yōu)解的元素置0,直至滿足約束條件,定義此時(shí)的元素編號(hào)為r,則共軛空間次優(yōu)解應(yīng)該存在于Ur與Ur+1之間,其中:

λ需要滿足下述關(guān)系:

綜上,基于SVD分解的快速M(fèi)PC方法總結(jié)如表2所示。

表2 基于奇異值分解的快速M(fèi)PC方法 (SVDF MPC)
本文首先使用一個(gè)雙輸入雙輸出的簡化版蒸餾塔模型[14]在MATLAB上進(jìn)行仿真以驗(yàn)證算法的有效性與快速性。模型具體描述為:

其中u1為回流量,u2為蒸餾塔塔頂蒸汽流量。y1為該蒸餾塔第21塊塔板的溫度,y2為該蒸餾塔第7塊塔板的溫度。為了保障蒸餾塔的安全性,盡可能地增加設(shè)備使用壽命,該蒸餾塔在運(yùn)行過程中存在式(20)的約束:

MPC的權(quán)重矩陣選取為Q=100,R=0.01,預(yù)測時(shí)域與控制時(shí)域均選取為100。其余仿真參數(shù)如表3所示。

表3 仿真參數(shù)
為了體現(xiàn)算法優(yōu)勢,同時(shí)使用所提算法與MATLAB內(nèi)置函數(shù)quadprog對優(yōu)化問題進(jìn)行計(jì)算。quadprog使用內(nèi)點(diǎn)法對二次規(guī)劃問題計(jì)算。
仿真結(jié)果如圖1~圖5所示。

圖1 SVDF與內(nèi)點(diǎn)法的多變量預(yù)測控制被控輸出比較

圖2 SVDF與內(nèi)點(diǎn)法的多變量預(yù)測控制被控輸出比較

圖3 SVDF與內(nèi)點(diǎn)法的多變量預(yù)測控制控制增量比較

圖4 SVDF與內(nèi)點(diǎn)法的多變量預(yù)測控制迭代次數(shù)比較

圖5 GPAD與內(nèi)點(diǎn)法的多變量預(yù)測控制執(zhí)行時(shí)間比較
可以看到所提出的快速M(fèi)PC方法能夠獲得與quadprog相似的控制結(jié)果,二者都能夠跟蹤上所設(shè)定的目標(biāo)值。二者在仿真時(shí)間內(nèi)的平均計(jì)算時(shí)間如表4所示。

表4 實(shí)驗(yàn)參數(shù)
可以看出所提的快速M(fèi)PC算法計(jì)算更為迅速,體現(xiàn)出了算法的快速性。
實(shí)驗(yàn)選用CS4000過程控制實(shí)驗(yàn)裝置,控制器為Rockwell的PLC,對裝置中的兩個(gè)水箱進(jìn)行液位控制,采用主回路調(diào)節(jié)閥與副回路變頻器兩支回路管道同時(shí)供水作為流入量,水箱結(jié)構(gòu)如圖6所示。
圖6中h1表示一號(hào)水箱液位,單位為厘米,二號(hào)水箱液位用h2標(biāo)注,主回路輸入到一號(hào)水箱中的流入量為Q1、輸入到二號(hào)水箱的流入量為Q2、副回路的水流只流入到二號(hào)水箱中,流入量為Q3、一號(hào)水箱的流出量為Q4、二號(hào)水箱的流出量為Q5,流量的單位為cm3/s。

圖6 雙容水箱結(jié)構(gòu)圖
經(jīng)過辨識(shí),該雙容水箱模型為:

其中:

實(shí)驗(yàn)過程中算法的其他參數(shù)選擇如表4所示。
此外,為了保障設(shè)備安全性,對于本實(shí)驗(yàn)施加的約束如式(21)所示:

為了驗(yàn)證所提SVDF算法的有效性與快速性,對雙容水箱的液位設(shè)定值進(jìn)行改變并交由算法進(jìn)行跟蹤。在無外界干擾的情況下,實(shí)驗(yàn)得到結(jié)果如圖7~圖9所示:

圖7 一號(hào)水箱液位變化

圖8 二號(hào)水箱液位變化

圖9 雙容水箱控制增量變化
可以看到,對雙容水箱實(shí)驗(yàn)應(yīng)用基于SVD的快速M(fèi)PC算法同樣取得了比較好的實(shí)現(xiàn)效果,無論是一號(hào)水箱的液位h1還是二號(hào)水箱的液位h2都可以快速準(zhǔn)確地跟蹤到給定地設(shè)定值。此外,在運(yùn)行過程中,系統(tǒng)輸入都能夠保持在約束范圍之內(nèi)。
本文考慮到多變量預(yù)測問題Hessian矩陣的在線不變性,基于奇異值分解提出了一種可以實(shí)現(xiàn)快速在線計(jì)算的次優(yōu)解計(jì)算算法SVDF。通過應(yīng)用所提出的SVDF算法,可以極大地提高多變量預(yù)測控制問題的在線計(jì)算速度。首先使用MATLAB平臺(tái)仿真證實(shí)了所提算法相較于內(nèi)點(diǎn)法計(jì)算方法的快速性和準(zhǔn)確性,隨后基于PLC平臺(tái)對雙容水箱液位進(jìn)行控制,可以由實(shí)驗(yàn)結(jié)果看到所提算法在PLC平臺(tái)上同樣具有優(yōu)良的控制性能。