鄭 鑫,克金超,陳亞萌,段艷旭,謝 磊
(1.中電商丘熱電有限公司,商丘 476000;2.浙江大學 控制學院,杭州 310027)
模型預測控制(MPC)是近幾十年來最具代表性的先進過程控制技術之一[1]。MPC由預測模型、反饋校正以及滾動優(yōu)化這三大基本模塊構成,其主要思想是根據(jù)一個明確的過程模型預測系統(tǒng)的未來響應。在每個控制周期內,MPC在有限的控制范圍內計算未來一段時間最優(yōu)的操縱變量增量,以優(yōu)化未來行為。相對于傳統(tǒng)的比例積分微分(PID)控制[2],MPC的優(yōu)勢在于其可以處理約束,且對于多輸入多輸出控制系統(tǒng)有著良好的控制效果。MPC為不確定性、約束、非線性廣泛存在的復雜工業(yè)過程控制提供了新的解決思路。經(jīng)過30多年的發(fā)展后,MPC已經(jīng)在工業(yè)過程控制中得到了廣泛的使用與認可,并逐步被應用至能源[3]、航空航天工程[4]、和汽車工業(yè)[5]等領域。
隨著工業(yè)過程中被控對象變量個數(shù)的增加以及工業(yè)過程中嵌入式設備的發(fā)展,實際應用中一些工廠對控制的時效性提出了更為嚴格要求[6],因此近年來對于在線MPC計算問題的關注度越來越高,在系統(tǒng)的采樣間隔內,如何在保障控制性能的條件下快速地計算獲得滿足約束的MPC解成為了研究熱點[7]。國內外眾多學者進行了相關研究以提高MPC 在線計算速度從而解決上述問題。目前主要可以分為兩類算法:其一是對 MPC 算法進行改進以簡化在線計算,代表方法是Bemporad[8]在2002年提出的顯示模型預測控制算法。該算法分為離線計算與在線優(yōu)化兩個部分。顯示模型預測控制算法首先離線地對狀態(tài)空間進行劃分,并為各個子空間設計合理的線性控制律。狀態(tài)分區(qū)與對應的控制律將被保存至存儲器并提供給在線優(yōu)化用以節(jié)省部分在線計算量。然而,隨著問題規(guī)模的增大,顯而易見的是狀態(tài)分區(qū)與控制律會隨之呈現(xiàn)指數(shù)增長趨勢,這將會對存儲量提出挑戰(zhàn)。因此,顯示模型預測控制只適用于控制維數(shù)較低的系統(tǒng)。其二則是開發(fā)高效的優(yōu)化問題求解策略從而提高在線求解速度,目前主要為有效集算法[9]、內點法[10]以及他們的衍生算法如:不可行有效集法[11],對偶有效集法[12]、懲罰函數(shù)內點算法[13]等等。
本文為多變量過程提出了基于奇異值分解的快速(SVDF)模型預測控制算法,首先利用狀態(tài)空間方程遞推獲得系統(tǒng)的預測輸出,形成二次規(guī)劃問題;隨后考慮到優(yōu)化問題Hessian矩陣的不變性,對該矩陣離線地進行SVD分解以提取特征信息,并通過矩陣變化將原優(yōu)化問題轉移到共軛空間,隨后引入SVDF方法從無約束最優(yōu)解中選取滿足約束的次優(yōu)解,結束本次在線計算。通過MATLAB仿真與將所提算法與其內置內點法計算函數(shù)進行比較以驗證算法的快速與有效性;最后,將所提算法應用于一雙輸入雙輸出的水箱系統(tǒng)液位進行控制。
考慮如下的線性模型所表示的系統(tǒng):
其中x(k)∈Rnx和u(k)∈Rnu分別是系統(tǒng)在k時刻的狀態(tài)和輸入變量。模型預測控制的目標函數(shù)為:
其中Q和R為正定矩陣,且滿足:分別是有限時域下的預測狀態(tài)集合和輸入集合,有:
其中Np表示預測時域和控制時域。
由線性模型式(1)可以遞推得到如下預測狀態(tài)與輸入之間的關系:
由于x(k)在每一個時刻已知,目標函數(shù)式(2)隨后可以使用這一關系式(5)進行替換從而消除預測狀態(tài),變?yōu)橹挥蓄A測輸入相關的函數(shù):
注意到由于模型不改變,則F矩陣在預測過程中保持不變,如果權重系數(shù)矩陣Q和R在計算過程中不更改,則該目標函數(shù)的Hessian矩陣H同樣也會保持不變。此外,H還是一個正定對稱的矩陣,目標函數(shù)是一個二次函數(shù)。假設對輸入做如下線性變換,從而將其投影到一個新的空間:
其中t是Hessian矩陣H的共軛向量集且滿足
其中σi是Hessian矩陣的特征值且滿足
P是Hessian矩陣的SVD分解得到的共軛矩陣。
則原目標函數(shù)(6)可以轉化為其共軛空間形式:
在不存在約束的情況下,共軛空間的最優(yōu)無約束解可以直接得到:
通過使用式(7)進行簡單的矩陣變換即可獲得實際空間中的無約束最優(yōu)解。
在實際應用中,系統(tǒng)往往存在著各種各樣的約束,在MPC的運行過程中需要考慮這些約束以保障設備的運行安全。由于輸入與輸出之間存在著顯式的關系,系統(tǒng)約束可以由式(12)所示:
即MPC此時應該解決一個如下的優(yōu)化問題
在處理過程約束時最簡單直觀的做法是將不可行解使得約束違反的部分移動到其邊界上,然而,這種粗暴的方式往往會使得獲得的解控制性能極差,根本達不到所需要的控制效果。因此需要考慮其他的約束處理方式。在上一節(jié)可以通過對Hessian矩陣進行SVD分解,隨后通過矩陣變化將原空間優(yōu)化問題投影到其共軛空間中。在此框架下,可以利用共軛空間中的無約束最優(yōu)解,在不需要求解優(yōu)化問題的情況下,獲得一個滿足約束條件的次優(yōu)解。首先將優(yōu)化問題中目標函數(shù)寫作的形式如式(14)所示:
基于上述分析,我們對共軛空間中的無約束最優(yōu)解執(zhí)行如下操作以實現(xiàn)對于次優(yōu)解的線性搜索。
按照特征值大小從大到小將對應的共軛空間無約束最優(yōu)解的元素置0,直至滿足約束條件,定義此時的元素編號為r,則共軛空間次優(yōu)解應該存在于Ur與Ur+1之間,其中:
λ需要滿足下述關系:
綜上,基于SVD分解的快速MPC方法總結如表2所示。
表2 基于奇異值分解的快速MPC方法 (SVDF MPC)
本文首先使用一個雙輸入雙輸出的簡化版蒸餾塔模型[14]在MATLAB上進行仿真以驗證算法的有效性與快速性。模型具體描述為:
其中u1為回流量,u2為蒸餾塔塔頂蒸汽流量。y1為該蒸餾塔第21塊塔板的溫度,y2為該蒸餾塔第7塊塔板的溫度。為了保障蒸餾塔的安全性,盡可能地增加設備使用壽命,該蒸餾塔在運行過程中存在式(20)的約束:
MPC的權重矩陣選取為Q=100,R=0.01,預測時域與控制時域均選取為100。其余仿真參數(shù)如表3所示。
表3 仿真參數(shù)
為了體現(xiàn)算法優(yōu)勢,同時使用所提算法與MATLAB內置函數(shù)quadprog對優(yōu)化問題進行計算。quadprog使用內點法對二次規(guī)劃問題計算。
仿真結果如圖1~圖5所示。
圖1 SVDF與內點法的多變量預測控制被控輸出比較
圖2 SVDF與內點法的多變量預測控制被控輸出比較
圖3 SVDF與內點法的多變量預測控制控制增量比較
圖4 SVDF與內點法的多變量預測控制迭代次數(shù)比較
圖5 GPAD與內點法的多變量預測控制執(zhí)行時間比較
可以看到所提出的快速MPC方法能夠獲得與quadprog相似的控制結果,二者都能夠跟蹤上所設定的目標值。二者在仿真時間內的平均計算時間如表4所示。
表4 實驗參數(shù)
可以看出所提的快速MPC算法計算更為迅速,體現(xiàn)出了算法的快速性。
實驗選用CS4000過程控制實驗裝置,控制器為Rockwell的PLC,對裝置中的兩個水箱進行液位控制,采用主回路調節(jié)閥與副回路變頻器兩支回路管道同時供水作為流入量,水箱結構如圖6所示。
圖6中h1表示一號水箱液位,單位為厘米,二號水箱液位用h2標注,主回路輸入到一號水箱中的流入量為Q1、輸入到二號水箱的流入量為Q2、副回路的水流只流入到二號水箱中,流入量為Q3、一號水箱的流出量為Q4、二號水箱的流出量為Q5,流量的單位為cm3/s。
圖6 雙容水箱結構圖
經(jīng)過辨識,該雙容水箱模型為:
其中:
實驗過程中算法的其他參數(shù)選擇如表4所示。
此外,為了保障設備安全性,對于本實驗施加的約束如式(21)所示:
為了驗證所提SVDF算法的有效性與快速性,對雙容水箱的液位設定值進行改變并交由算法進行跟蹤。在無外界干擾的情況下,實驗得到結果如圖7~圖9所示:
圖7 一號水箱液位變化
圖8 二號水箱液位變化
圖9 雙容水箱控制增量變化
可以看到,對雙容水箱實驗應用基于SVD的快速MPC算法同樣取得了比較好的實現(xiàn)效果,無論是一號水箱的液位h1還是二號水箱的液位h2都可以快速準確地跟蹤到給定地設定值。此外,在運行過程中,系統(tǒng)輸入都能夠保持在約束范圍之內。
本文考慮到多變量預測問題Hessian矩陣的在線不變性,基于奇異值分解提出了一種可以實現(xiàn)快速在線計算的次優(yōu)解計算算法SVDF。通過應用所提出的SVDF算法,可以極大地提高多變量預測控制問題的在線計算速度。首先使用MATLAB平臺仿真證實了所提算法相較于內點法計算方法的快速性和準確性,隨后基于PLC平臺對雙容水箱液位進行控制,可以由實驗結果看到所提算法在PLC平臺上同樣具有優(yōu)良的控制性能。