劉臻博,金 鑫,李 平
(遼寧石油化工大學 信息與控制工程學院,遼寧 撫順 113001)
模型預測控制(MPC)[1]作為一類基于計算機控制的算法,因其控制性能良好、魯棒性強的特點,越來越多地被應用在流程工業(yè)中[2]。隨著工業(yè)過程的日益復雜,傳統(tǒng)的集中式預測控制難以滿足其控制性能的要求[3]。因此,提出了分散式預測控制算法,將大系統(tǒng)轉(zhuǎn)化為若干個相互獨立的子系統(tǒng)再進行求解[4‐5]。這種算法的優(yōu)勢在于結(jié)構(gòu)簡單、控制器之間無需通信,但當各子系統(tǒng)之間的耦合影響比較強烈時,分散式控制系統(tǒng)就無法達到滿意的控制性能[6‐7]。近年來,隨著計算機網(wǎng)絡技術(shù)的創(chuàng)新與發(fā)展,分布式模型預測控制(DMPC)應運而生,并且得到了廣泛的關(guān)注與研究。
A.Conley等[8]基于雅可比方法引進了合作式DMPC算法[9],該算法能夠有效地解決輸出反饋下耦合輸入約束的問題,但不能保證算法收斂速度。針對系統(tǒng)間通信問題,劉袁龍[10]提出了一種基于層次分解的DMPC算法,將子系統(tǒng)劃分在不同的連通集內(nèi),在求解時,子系統(tǒng)只與連通集內(nèi)的子系統(tǒng)通信,再將控制信息傳入下一連通集,從而有效地減少各個子系統(tǒng)間的通信次數(shù)。
以上研究在解決DMPC算法中存在的收斂速度不夠、通信復雜、穩(wěn)定性條件復雜等問題時,很少考慮到系統(tǒng)分解對這類問題的影響,系統(tǒng)分解方式可以有效緩解系統(tǒng)間通信負擔,還能提升DMPC在線實施效率[11]。針對DMPC的系統(tǒng)分解存在動態(tài)預測耦合的問題,文獻[12—13]提出了一種基于遺傳算法(GA)的分布式預測控制系統(tǒng)結(jié)構(gòu)分解方法,該方法分為輸入分組(ICD)和輸入輸出配對(IOPD)兩個階段,并采用GA算法來求解這一組合優(yōu)化問題,從而有效地減小子系統(tǒng)之間的耦合,提高DMPC算法的效率。但是,GA算法作為一種一般的尋優(yōu)算法,存在局部搜索能力差和“早熟”等缺陷,不能保證算法收斂速度,同時該方法不能有效解決子系統(tǒng)之間一些無法消除的耦合問題。
本文提出一種基于免疫算法(IA)求解系統(tǒng)結(jié)構(gòu)分解的分布式模型預測算法。該方法分為兩個部分。第一部分沿用文獻[13]的方法,將系統(tǒng)結(jié)構(gòu)分解問題分成ICD和IOPD兩個階段來求解,并采用IA算法來優(yōu)化這兩個階段的目標函數(shù)。IA算法是一種帶有全局搜索能力的優(yōu)化算法,具有自適應性、隨機性、種群多樣性的特點,能夠克服一般尋優(yōu)過程中不可避免的“早熟”問題。第二部分采用DMPC算法,在約束條件下對分解后的系統(tǒng)進行分布式控制。最后,對重油分餾化工過程進行實驗研究,驗證該方法的有效性。
分解大系統(tǒng)時需要考慮ICD和IOPD兩個問題。ICD是找到每個子系統(tǒng)對應的輸入問題;IOPD是解決ICD問題后,根據(jù)得到的每個系統(tǒng)對應的輸入再考慮對應的輸出問題。
1.1.1 ICD問題 根據(jù)文獻[13],定義一個輸入分組矩陣H和一個表示子系統(tǒng)間耦合程度的目標函數(shù)Jcoupling,矩陣H定義為:
式中,m為子系統(tǒng)的個體數(shù)量;M為子系統(tǒng)的個數(shù),滿足M≤m。矩陣H滿足:
子系統(tǒng)間系統(tǒng)耦合程度的目標函數(shù)定義為:
通過求解最小化Jcoupling,對給出的大系統(tǒng)的輸入進行分組。
1.1.2 IOPD問題 ICD問題已經(jīng)將系統(tǒng)的輸入分成M個子系統(tǒng),IOPD問題的目標是找到各子系統(tǒng)中輸入對應的輸出,與式(1)輸入分組矩陣類似,定義一個輸出分組矩陣H′為:
矩陣H′應該滿足:
子系統(tǒng)間輸入輸出耦合程度的目標函數(shù)定義為:
通過求解最小化J′coupling,對系統(tǒng)輸入輸出進行配對。
求解ICD問題和IOPD問題,實質(zhì)上就是求解式(3)和式(6)的過程。矩陣H和矩陣H′中的元素都為0或1,采用免疫遺傳算法(IGA)[14]來求解。因為免疫遺傳算法源于遺傳算法,很容易對0和1進行編碼。
為了把IGA應用到目標函數(shù)的求解過程中,需要對編碼、免疫選擇、克隆、變異等IGA的操作進行重新定義。
1.2.1 應用IGA求解ICD問題
(1)編碼。用一個二進制的具有M個子系統(tǒng)的行向量來表示每個抗體,即表示系統(tǒng)輸入的分組情況。例如,將一個八輸入的系統(tǒng)分為兩個組(子系統(tǒng)),分組情況可以表示為:
其中,輸入1—4分到子系統(tǒng)1中,輸入5—8分到子系統(tǒng)2中。每個抗體的染色體可以分為M個組中,相應位置上的變量1表示該輸入被選入當前小組。
(2)初始種群。初始種群就是抗原識別后產(chǎn)生的初始抗體種群。每個種群都要滿足相應的約束條件,即每個輸入只能存在于一個小組中。
(3)親和度函數(shù)。親和度表示免疫細胞(如B細胞)與抗體的匹配強度。在產(chǎn)生種群之后,每個抗體作為親和度函數(shù)的輸入,輸出即為親和度評價結(jié)果。針對最小化問題(3),抗體的親和度函數(shù)可以寫成目標函數(shù)的倒數(shù):
式中,fICD為ICD問題的目標函數(shù);δ為一個不為0的小數(shù),保證公式的分母不為0??梢?,目標函數(shù)越小,親和度函數(shù)越大。
(4)抗體濃度函數(shù)。抗體濃度表示產(chǎn)生抗體形成的種群多樣性優(yōu)劣程度??贵w濃度過高,說明種群中類似的抗體大量存在,使尋優(yōu)搜索局限化。因此,在IGA算法中需要對濃度過高的抗體進行處理和抑制,從而確??贵w在種群中的多樣性??贵w濃度通常定義為:
式中,N為抗體種群規(guī)模;S(ai,aj)為抗體間的相似度,可以表示為:
式中,ai、aj分別為種群的第i及第j個抗體;ξs為相似閾值;α(ai,aj)為抗體i與抗體j的親和度,即對0?1編碼的算法,抗體與抗體間親和度基于海明距離的計算方法進行求解。基于海明距離的抗體‐抗體親和度計算方法的表達式為:
(5)激勵度函數(shù)??贵w激勵度函數(shù)是對抗體質(zhì)量的最終評價結(jié)果,其目的是為了保留親和度大、濃度低的抗體??贵w激勵度函數(shù)可以表示為:
式中,sim(ai)為抗體ai的激勵度;n為計算參數(shù)。
(6)克隆。由抗體激勵度來決定哪些有效抗體能進行克隆選擇操作,在抗體種群中激勵度高的有效抗體具有更好的品質(zhì),大概率會被選入克隆選擇工作??寺『瘮?shù)可以表示為:
式中,clone(ai)為wi個與ai相同的克隆抗體的集合,wi為抗體克隆數(shù)目。
(7)變異。變異操作是為了擴展搜索尋優(yōu)的空間,從而產(chǎn)生一個新的抗體。對于0?1編碼IGA算法,其變異策略是從變異源抗體中隨機選取一個或多個位置取反。這里定義的變異就是將抗體中某個表示相應輸入位置的變量1置換為0,剩余的其他相應位置0置換為1。例如:
其中,子系統(tǒng)1中括號內(nèi)變量1置換為0,表示輸入4不包含在子系統(tǒng)1中,那么在子系統(tǒng)2中相應的第4個位置的變量0置換為1,表示輸出4包含在子系統(tǒng)2中。
在求解最小化問題(3)的尋優(yōu)過程中,免疫選擇、克隆、變異都能產(chǎn)生新的抗體,需要不斷迭代這些操作來最終滿足一個收斂條件,從而得到一個最優(yōu)解H?,進而構(gòu)造ICD問題的最優(yōu)分組矩陣。
1.2.2 應用IGA求解IOPD問題 在IOPD問題中,IGA的操作基本與ICD問題相同,只在編碼和親和度函數(shù)的定義上略有不同。
(1)編碼。用一個具有M個數(shù)的二進制的向量表示抗體,即表示系統(tǒng)輸入輸出配對的狀態(tài)。一個六輸出的系統(tǒng)被分為3個組,那么分組情況可以表示為:
其中,輸出1和輸出2被分到子系統(tǒng)1中,輸出3和輸出4被分到子系統(tǒng)2中,輸出5和輸出6被分到子系統(tǒng)3中??偟膩碚f,每個抗體的染色體可以被分為M個子系統(tǒng),相應位置上的變量1表示該輸出被選入當前小組。
(2)親和度函數(shù)。針對最小化問題(6),抗體的親和度函數(shù)可以寫成目標函數(shù)的倒數(shù)。
式中,fIOPD為IOPD問題的目標函數(shù)。
根據(jù)式(16)可知,分母即目標函數(shù)越小,親和度函數(shù)越大。
當求解IOPD問題后,得到的最優(yōu)解可以表示為IOPD的最優(yōu)分解矩陣(H′)?。
因此,ICD問題和IOPD問題都得到相應的解決,從而得到兩個分組矩陣,即和(H′)?=[(h1′)?,…,(hM′)?]。
針對多個子系統(tǒng)間存在無法消除的耦合問題,需要采用DMPC算法來解決。在系統(tǒng)結(jié)構(gòu)已經(jīng)分解完成的前提下,介紹DMPC中各子系統(tǒng)的狀態(tài)空間預測模型以及基于IGA系統(tǒng)結(jié)構(gòu)分解的DMPC算法實現(xiàn)流程。
一個包含M個子系統(tǒng)的分布式系統(tǒng)S,其子系統(tǒng)Si(i=1,…,M)的狀態(tài)空間模型為:
式中,Ci為輸出矩陣;Ai為系統(tǒng)矩陣;Bij(i≠j)為子系統(tǒng)Sj對子系統(tǒng)Si的耦合輸入矩陣;uj為子系統(tǒng)Sj在k時刻的輸入序列。
對k時刻子系統(tǒng)的狀態(tài)向量及輸出向量進行預測,由式(17)表示的模型可以推導出以下矩陣‐矢量形式:
式中,Xi(k)為狀態(tài)變量的集合;ηi為系統(tǒng)矩陣的集合。
式中,Ui(k)、Uj(k)為控制變量的集合。令:
結(jié)合式(22),目標函數(shù)(23)的最優(yōu)解問題可以寫成:
子系統(tǒng)i在k時刻的最優(yōu)控制序列Ui由二次規(guī)劃算法求解得到。
提出了基于IGA系統(tǒng)結(jié)構(gòu)分解的DMPC算法,其具體實現(xiàn)流程為:
步驟1給定具有m個輸入和p個輸出的大系統(tǒng),在已知系統(tǒng)需要被分為M個子系統(tǒng)的前提下,利用IGA算法求解目標函數(shù)式(8)的最大值,從而解決ICD問題,得到最優(yōu)輸入分組矩陣H?;根據(jù)最優(yōu)輸入分組矩陣H?,利用IGA算法求解目標函數(shù)式(16)的最大值,從而解決IOPD問題,得到最優(yōu)輸入輸出配對分組矩陣(H′)?。根據(jù)求解的結(jié)果,確定每一個子系統(tǒng)中輸入輸出的數(shù)量。
步驟2在k時刻,獲取每一個子系統(tǒng)i的狀態(tài)空間模型和輸出方程式(17),并給定抗體種群規(guī)模N、狀態(tài)變量權(quán)值Qi、控制變量權(quán)值Ri、權(quán)重γi、系統(tǒng)控制變量的初值ui,0(k)。
步驟3子系統(tǒng)i將控制變量通過網(wǎng)絡傳遞給其他子系統(tǒng),同時獲取其他子系統(tǒng)的控制變量。
步驟4并行求解采用迭代求解方式。在迭代時刻q(q≥1),根據(jù)式(19)—(22)和式(24)—(28),在滿足約束條件的情況下并行求解各子系統(tǒng)最優(yōu)控制序列(k),給定收斂精度ξ及迭代最大次數(shù)qmax。若各子系統(tǒng)控制輸入均滿足不等式或迭代次數(shù)滿足q>qmax,則進入步驟5;否則,令q=q+1,轉(zhuǎn)步驟3。
步驟5取子系統(tǒng)的最優(yōu)控制序列(k)的第一項為控制輸入:
式中,I為單位矩陣。將式(29)應用于各子系統(tǒng)。
步驟6令k=k+1,并將上述控制變量求解過程滾動優(yōu)化到下一時刻,返回步驟2。
以重油分餾塔模型為對象,驗證所提IGA‐DMPC算法的有效性[15]。重油分餾塔模型如圖1所示。
圖1 重油分餾塔模型
圖中,T為回油口;A為出油口;LC為液位控制器;PC壓力控制器;FC流量控制器??刂七^程中的輸入變量:頂部采出u1、側(cè)線采出u2、中部回流量u3、頂部回流量u4。輸出變量:頂部產(chǎn)品干點y1、側(cè)線產(chǎn)品干點y2、中部回流溫度y3、頂部回流溫度y4。系統(tǒng)的模型為:
3.1.1 ICD問題 已知系統(tǒng)有4個輸入,給定系統(tǒng)被分為2個子系統(tǒng),預測時域為K=20,采樣時間Ts=1 s。輸入輸出的權(quán)重矩陣分別為Q=I和R=I。每一代抗體種群NIND=30,最大代數(shù)GENMax=100,免疫選擇抗體數(shù)量為15,變異發(fā)生的概率為0.5,克隆個數(shù)為10。
ICD分解每代最優(yōu)目標函數(shù)曲線如圖2所示。由圖2可以看出,分解目標函數(shù)的初代的起始親和度為1.060,在經(jīng)歷4代以后最優(yōu)親和度為0.850。
圖2 ICD分解每代最優(yōu)目標函數(shù)曲線
ICD分解每代的最優(yōu)親和度的分組情況圖3所示。圖中,兩種顏色表示兩個小組。
圖3 ICD分解每代的最優(yōu)親和度的分組情況
最終得到的分組情況可以用0?1向量表示為:
輸入1?2被分為一組,輸入3?4被分為一組。
3.1.2 IOPD問題 完成輸入分組后,對IOPD問題進行求解。根據(jù)式(30)輸入分組的結(jié)果,輸入分組矩陣H可表示為:
由此矩陣求解IOPD問題得到輸入輸出配對的分組矩陣H′。IOPD分解每代最優(yōu)目標函數(shù)曲線如圖4所示。由圖4可以看出,分解目標函數(shù)的初代起始親和度為0.455,經(jīng)歷4代以后最優(yōu)親和度為0.436。
圖4 IOPD分解每代最優(yōu)目標函數(shù)曲線
IOPD分解每代的最優(yōu)親和度的分組情況如圖5所示。
圖5 IOPD分解每代的最優(yōu)親和度的分組情況
最終得到的分組情況可以用0?1向量表示:
根據(jù)式(32)輸出分組的結(jié)果,輸出分組矩陣H′表示為:
根據(jù)矩陣H和H′,系統(tǒng)的輸入輸出最終配對可以表示為:
已知重油分餾過程的系統(tǒng)結(jié)構(gòu)被分解為分別含有輸入1?2、輸出1?3的子系統(tǒng)1和含有輸入3?4、輸出4的子系統(tǒng)2。采用DMPC算法對分解后的系統(tǒng)進行分布式控制,主要控制參數(shù)為:
(1)采樣時間Ts=1 s。
(2)N=200,M=5,預測時域P=20。
(3)各子系統(tǒng)中的權(quán)重矩陣Ri為單位矩陣,矩陣Qi的取值為:
式中,qi=I;q?i為終端加權(quán)矩陣,目的是確保該控制子系統(tǒng)的穩(wěn)定性。
(4)在DMPC仿真中,兩個子系統(tǒng)的權(quán)重分別為γ1=0.8、γ2=0.2。
(5)各子系統(tǒng)Si的優(yōu)化命題為:
IGA‐DPMC算法子系統(tǒng)的輸出及輸入曲線如圖6?7所示。集中式MPC算法子系統(tǒng)的輸出及輸 入 曲 線 如 圖8?9所 示。圖6?9中,下 標i為1、2、3、4。
圖6 IGA‐DPMC算法子系統(tǒng)的輸出曲線
圖7 IGA‐DPMC算法子系統(tǒng)的輸入曲線
圖8 集中式MPC算法子系統(tǒng)的輸出曲線
圖9 集中式MPC算法子系統(tǒng)的輸入曲線
為了更好地對比兩種算法的控制性能,以頂部產(chǎn)品干點為分析數(shù)據(jù),引入最大超調(diào)量、上升時間、平均迭代時間為指標進行分析。CMPC和IGA‐DMPC控制性能如表1所示。
表1 CMPC和IGA‐DMPC控制性能
由圖6?9及表1可以看出,IGA‐DMPC算法在重油分餾過程中有很好的控制效果。例如,子系統(tǒng)1的頂部采出量和側(cè)線采出量對反應器中頂部產(chǎn)品干點、側(cè)線產(chǎn)品干點和頂部回流量有至關(guān)重要的作用;子系統(tǒng)2的中部回流量和頂部回流量對中部回流溫度有很大作用。在IGA‐DMPC算法中,相關(guān)聯(lián)的信息都在各子系統(tǒng)內(nèi)部進行交換,大大減小了系統(tǒng)的通信負擔,而CMPC算法沒有考慮到系統(tǒng)中控制量彼此之間的相互作用。在控制效果大致相同的情況下,IGA‐DMPC算法的迭代時間明顯少于CMPC算法,大大提高了工作效率。綜上,采用本文提出的算法可以更有效地控制實際的化工過程。
近些年來,DMPC算法得到了廣泛關(guān)注和研究。但是,以往研究在DMPC算法中子系統(tǒng)間存在強烈耦合影響時,很少考慮到將系統(tǒng)結(jié)構(gòu)分解結(jié)合到DMPC算法中。所提方法首先采用IA算法對DMPC系統(tǒng)進行結(jié)構(gòu)分解,再利用DMPC算法對分解后的系統(tǒng)進行分布式控制。為了解決系統(tǒng)結(jié)構(gòu)分解的問題,對IA中的編碼、免疫選擇、變異、克隆等操作進行了重新定義。通過仿真研究,驗證了算法的有效性。在未來的研究中,考慮將本算法應用到非線性的DMPC系統(tǒng)中。