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