本發(fā)明涉及一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法,屬于過程工業(yè)控制領(lǐng)域。
背景技術(shù):
分程控制是指:當(dāng)使用一個執(zhí)行機(jī)構(gòu)不能滿足過程控制的要求時,利用將控制信號范圍分成若干小段以控制兩個或兩個以上的執(zhí)行機(jī)構(gòu),每個執(zhí)行機(jī)構(gòu)在一段控制信號范圍內(nèi)起作用。分程控制可以擴(kuò)大執(zhí)行機(jī)構(gòu)的可調(diào)范圍,提高控制質(zhì)量,解決生產(chǎn)過程中的一些特殊需求。
現(xiàn)有的生產(chǎn)過程中,通常采用pid控制器實現(xiàn)具有單個分程控制功能的分程控制,當(dāng)控制系統(tǒng)為多輸入多輸出且具有多個分程控制功能時,pid控制器效果不佳,這主要是由于pid不適用于解決相互耦合的多個控制回路的協(xié)調(diào)控制。用模型預(yù)測控制對含有分程控制功能的復(fù)雜過程進(jìn)行控制時,由于分程控制包含有非線性特征,基于線性疊加原理的預(yù)測控制算法無法直接使用,基于此本發(fā)明提出了一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法,解決多輸入多輸出控制系統(tǒng)中具有多個分程控制功能的分程控制問題。
技術(shù)實現(xiàn)要素:
針對在多輸入多輸出控制系統(tǒng)中具有多個分程控制功能的分程控制問題,本發(fā)明提出了一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法。
本發(fā)明采用的技術(shù)方案如下:一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法,包括以下步驟:
對多輸入多輸出控制系統(tǒng)進(jìn)行離線初始化;
采用模型預(yù)測算法對系統(tǒng)進(jìn)行在線分程控制。
所述初始化包括參數(shù)設(shè)置、建立預(yù)測模型。
所述參數(shù)設(shè)置包括以下步驟:
(1)多輸入多輸出控制系統(tǒng)具有m個執(zhí)行機(jī)構(gòu),每個執(zhí)行機(jī)構(gòu)設(shè)定執(zhí)行范 圍的上下限,每個執(zhí)行機(jī)構(gòu)對應(yīng)1個控制輸入變量,則控制系統(tǒng)具有m個控制輸入變量;控制系統(tǒng)具有n個被控輸出變量,表示為n維列向量:y=[y1…yn]t;
(2)控制系統(tǒng)設(shè)有k個分程控制,每個分程控制用于控制2個執(zhí)行機(jī)構(gòu),在每個控制周期內(nèi)僅對一個執(zhí)行機(jī)構(gòu)進(jìn)行控制,另一個執(zhí)行機(jī)構(gòu)保持在設(shè)定的極限位置;
(3)對控制輸入變量進(jìn)行排列,排列后的控制輸入變量表示為m維列向量:
u'=[u1,0,u1,1…uk,0,uk,1,uk+1,0,…uk+1,m-2k-1]t
控制輸入變量對應(yīng)的執(zhí)行機(jī)構(gòu)為:
act=[act1,0,act1,1,…,actk,0,actk,1,actk+1,0,…actk+1,m-2k-1]t
其中,控制輸入變量u'的前k對中的第i對[ui,0,ui,1]t,i=1,…,k,表示控制系統(tǒng)中第i個分程控制對應(yīng)的兩個互斥控制輸入變量,即在每個控制周期內(nèi)僅有一個控制輸入具有控制作用,另一個控制輸入變量保持不變;控制輸入變量u'中的后m-2k個變量[uk+1,0,…uk+1,m-2k-1]t為不具備分程控制的獨立變量,在每個控制周期都具有控制作用;
(4)設(shè)置k維變量q=(q1,q2,…,qk),其中qi為二值變量,即:
qi=0,1i=1,…,k
(5)控制輸入變量u'的前k對中的每對控制輸入變量[ui,0,ui,1]t,i=1,…,k,對應(yīng)設(shè)置一個變量ui及一個中間閾值u_si,ui對應(yīng)的上、下限分別為
當(dāng)
當(dāng)
(6)通過引入變量ui,將控制系統(tǒng)轉(zhuǎn)化為具有m-k個控制輸入變量,n個被控輸出變量的控制系統(tǒng),控制輸入變量表示為u=[u1,u2…uk,uk+1,…um-k]t,其中控制輸入變量u的后m-2k個元素為控制輸入變量u'的后m-2k個元素,即,[uk+1,…,um-k]t=[uk+1,0,…uk+1,m-2k-1]t;模型預(yù)測控制的控制步長為m、預(yù)測步長為p、模型長度為n。
所述建立預(yù)測模型具體為:
第j個預(yù)測模型mdlj對被控輸出進(jìn)行預(yù)測的表達(dá)式為:
其中,
所述采用模型預(yù)測算法對系統(tǒng)進(jìn)行在線分程控制包括以下步驟:
(1)檢測控制輸入變量u的當(dāng)前時刻的實際值
(2)umv的前k個變量
(3)根據(jù)q(t)=(q1(t),q2(t),…,qk(t))計算模型編號值
(5)根據(jù)模型切換規(guī)則將模型mdlj(t-1)切換為預(yù)測模型mdlj(t);
(5)采用模型預(yù)測控制算法,計算控制輸入變量u在當(dāng)前時刻的控制輸出值u(t);
(6)將控制變量的輸出值u(t)輸出至各執(zhí)行機(jī)構(gòu)進(jìn)行控制,其中,進(jìn)行動作的執(zhí)行機(jī)構(gòu)為
所述模型切換規(guī)則具體為:
上一時刻的模型編號值為j(t-1),對應(yīng)預(yù)測模型mdlj(t-1),對被控輸出的預(yù)測表達(dá)式為
所述模型預(yù)測算法采用dmc算法,具體步驟為:
(1)在t時刻檢測各被控輸出的實際值yl(t),通過t-1時刻對當(dāng)前時刻的預(yù)測輸出
(2)利用預(yù)測誤差計算t-1時刻的預(yù)測輸出校正值
其中,h為誤差加權(quán)矩陣,
(3)通過移位矩陣s0計算t時刻的初始預(yù)測值:
其中,
(4)極小化性能指標(biāo)
其中,j=j(luò)(t),
(5)計算t時刻對未來p個控制周期的預(yù)測值:
(6)計算t時刻控制輸入值:ui(t)=ui(t-1)+δui,m(t),i=1,2,…,m-k;
(7)進(jìn)入t+1控制周期,返回步驟(1)。
本發(fā)明具有的優(yōu)點和積極效果如下:
1.采用模型預(yù)測控制技術(shù)解決了控制系統(tǒng)中包含具有非線性特征的分程控制功能的控制問題;并可對控制系統(tǒng)中具有多個分程控制功能的分程控制問題進(jìn)行推廣應(yīng)用;
2.實現(xiàn)對多個分程控制功能的分程控制,增加了多輸入多輸出控制系統(tǒng)執(zhí)行機(jī)構(gòu)的可調(diào)范圍,提高了控制品質(zhì);
3.采用的預(yù)測控制算法為優(yōu)化算法,提高控制系統(tǒng)穩(wěn)定性的同時降低了系統(tǒng)能源消耗。
附圖說明
圖1為適用于多變量預(yù)測控制的分程控制實現(xiàn)方法流程圖;
圖2為溫度分程控制系統(tǒng)示意圖;
圖3為被控輸出設(shè)定值ysp曲線;
圖4為控制輸入u曲線;
圖5為閥v1上控制輸入u1曲線;
圖6為閥v2上控制輸入u2曲線;
圖7為被控輸出曲線y1曲線。
具體實施方式
下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)解釋。
分程控制是指由控制器的一個輸出信號分別控制兩個或兩個以上執(zhí)行機(jī)構(gòu)。因分程控制包含非線性特征,基于線性疊加原理的模型預(yù)測控制技術(shù)無法直接使用。本發(fā)明提出一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法,在分程控制的各線性區(qū)間內(nèi)根據(jù)各執(zhí)行機(jī)構(gòu)不同動作組合建立預(yù)測模型,每個控制周期內(nèi)通過比較控制器的輸出控制信號值與相應(yīng)的中間閾值選擇預(yù)測模型,利用動態(tài)矩陣控制算法計算出控制增量并施加到相應(yīng)的執(zhí)行機(jī)構(gòu)執(zhí)行動作。本發(fā)明解決了控制過程中存在分程控制需求時多變量預(yù)測控制器的設(shè)計問題,提高了預(yù)測控制器的適用范圍。
本發(fā)明的主要貢獻(xiàn)是用模型預(yù)測控制來實現(xiàn)對包含分程控制功能的控制系統(tǒng)進(jìn)行控制,下面利用模型預(yù)測控制策略解決一個二分程控制的實際問題,包含更多分程功能的控制問題可按本發(fā)明所提方案進(jìn)行推廣。
如圖1所示,一種適用于多變量模型預(yù)測控制的分程控制實現(xiàn)方法,涉及一個有多輸入多輸出的控制系統(tǒng),控制系統(tǒng)中包含1個或者多個分程控制功能,每個分程控制功能一般具有2個分程區(qū)間,特殊情況下可能具有3個分程區(qū)間。本發(fā)明以一個分程控制功能具有2個分程區(qū)間的控制系統(tǒng)進(jìn)行論述,具有3個分程區(qū)間的情況可按具有2個分程區(qū)間的方法進(jìn)行推廣。包括系統(tǒng)初始化和基于模型預(yù)測控制的在線分程控制兩個步驟。
所述系統(tǒng)初始化步驟包括參數(shù)設(shè)置和建立預(yù)測模型兩個步驟。
所述參數(shù)設(shè)置具體為:
(1)控制系統(tǒng)具有m個執(zhí)行機(jī)構(gòu),每個執(zhí)行機(jī)構(gòu)設(shè)定執(zhí)行范圍的上下限,每個執(zhí)行機(jī)構(gòu)對應(yīng)1個控制輸入變量,則控制系統(tǒng)具有m個控制輸入變量;控制系統(tǒng)具有n個被控輸出變量,表示為n維列向量:y=[y1…yn]t;
(2)控制系統(tǒng)具有k個分程控制功能,每個分程控制功能控制2個執(zhí)行機(jī)構(gòu),在每個控制周期內(nèi)僅有一個執(zhí)行機(jī)構(gòu)起到控制作用,另一個執(zhí)行機(jī)構(gòu)保持在設(shè)定的極限位置處(上限或者下限);
(3)根據(jù)控制系統(tǒng)的分程控制功能特點,對控制輸入變量進(jìn)行排列,排列后的控制輸入變量表示為m維列向量:
u'=[u1,0,u1,1…uk,0,uk,1,uk+1,0,…uk+1,m-2k-1]t
控制輸入變量對應(yīng)的執(zhí)行機(jī)構(gòu)為:
act=[act1,0,act1,1,…,actk,0,actk,1,actk+1,0,…actk+1,m-2k-1]t
其中,控制輸入變量u'的前k對中的第i對[ui,0,ui,1]t,i=1,…,k,表示控制系統(tǒng)中第i個分程控制功能對應(yīng)的兩個互斥控制輸入變量,即在每個控制周期內(nèi)僅有一個控制輸入具有控制作用,另一個控制輸入變量保持不變;控制輸入變量u'中的后m-2k個變量[uk+1,0,…uk+1,m-2k-1]t為不具備分程控制功能的獨立變量,在每個控制周期都具有控制作用;
(4)設(shè)置k維變量q=(q1,q2,…,qk),其中qi為二值變量,即:
qi=0,1i=1,…,k
(5)控制輸入變量u'的前k對中的每對控制輸入變量[ui,0,ui,1]t,i=1,…,k,對應(yīng)設(shè)置一個變量ui及一個中間閾值u_si,ui對應(yīng)的上、下限分別為
當(dāng)
當(dāng)
(6)通過引入變量ui,將控制系統(tǒng)轉(zhuǎn)化為具有m-k個控制輸入變量,n個被控輸出變量的控制系統(tǒng),控制輸入變量表示為u=[u1,u2…uk,uk+1,…um-k]t,其中控制輸入變量u的后m-2k個元素為控制輸入變量u'的后m-2k個元素,即,[uk+1,…,um-k]t=[uk+1,0,…uk+1,m-2k-1]t;本發(fā)明基于模型預(yù)測控制對控制系統(tǒng)進(jìn)行控制,則設(shè)置模型預(yù)測控制的控制步長為m、預(yù)測步長為p、模型長度為n,一般p=n。
所述建立預(yù)測模型具體為:
每個控制周期,ui位于不同的區(qū)間時,qi取不同值(0或1),對應(yīng)的
其中,
所述基于模型預(yù)測控制的在線分程控制具體步驟為:
(1)檢測控制輸入變量u的當(dāng)前時刻的實際值
(2)umv的前k個變量
(3)根據(jù)q(t)=(q1(t),q2(t),l,qk(t))計算模型編號值
(6)根據(jù)模型切換規(guī)則將模型mdlj(t-1)切換為預(yù)測模型mdlj(t);
(5)采用模型預(yù)測控制算法,計算控制輸入變量u在當(dāng)前時刻的控制輸出值u(t);
(6)將控制變量的輸出值u(t)傳入各執(zhí)行機(jī)構(gòu)進(jìn)行控制實施,其中,進(jìn)行動作的執(zhí)行機(jī)構(gòu)為
所述模型切換規(guī)則具體為:
上一時刻的模型編號值為j(t-1),對應(yīng)預(yù)測模型mdlj(t-1),對被控輸出的預(yù)測 表達(dá)式為
所述模型預(yù)測算法采用dmc算法,具體步驟為:
(1)在t時刻檢測各被控輸出的實際值yl(t),通過t-1時刻對當(dāng)前時刻的預(yù)測輸出
(2)利用預(yù)測誤差計算t-1時刻的預(yù)測輸出校正值
其中,h為誤差加權(quán)矩陣,一般其元素全為1,
(3)通過移位矩陣s0計算t時刻的初始預(yù)測值:
其中,
(4)極小化性能指標(biāo)
其中,j=j(luò)(t),
(5)計算t時刻對未來p個控制周期的預(yù)測值:
(6)計算t時刻控制輸入值:ui(t)=ui(t-1)+δui,m(t),i=1,2,…,m-k;
(7)進(jìn)入t+1控制周期。
案例:在某化工生產(chǎn)過程中,冷物料的加熱方式有兩種,即通過熱交換器用熱水(工業(yè)廢水)和熱蒸汽對其進(jìn)行加熱,當(dāng)熱水加熱不能滿足出口溫度要求時,再同時使用蒸汽加熱,從而減小能源損耗,提高經(jīng)濟(jì)效益。為此設(shè)計了圖2所示的溫度分程控制系統(tǒng),在本系統(tǒng)中,蒸汽閥和熱水閥均選氣開式分程閥。
圖2中,控制器的輸出信號u分程后分別控制熱水閥v1和蒸汽閥v2,假設(shè)閥v1輸入信號對輸出y1的傳遞函數(shù)為
采用本發(fā)明解決此問題,首先進(jìn)行參數(shù)設(shè)置:
(1)控制系統(tǒng)具有2個執(zhí)行機(jī)構(gòu):熱水閥v1、蒸汽閥v2,每個分程閥對應(yīng)1個控制輸入變量,則引入2個控制輸入變量u=[u1,u2]t;控制系統(tǒng)具有1個被控輸出變量y1;
(2)在該控制系統(tǒng)中,熱水閥v1和蒸汽閥v2為一對互斥的執(zhí)行機(jī)構(gòu),在每個控制周期內(nèi)僅有一個閥執(zhí)行作用,另一個閥保持在設(shè)定的極限位置處(上限或者下限);
(3)設(shè)置2維變量q=(q1,q2),其中qi為二值變量,即:
qi=0,1i=1,2
(4)控制輸入變量u對應(yīng)互斥變量[u1,u2]t,設(shè)置變量u的中間閾值為:u_s1=2,u的上、下限分別為umin=0、umax=5,通過變量u分段分別去使控制輸入變量u1或u2起作用,進(jìn)而控制熱水閥v1或蒸汽閥v2動作,具體為:
當(dāng)umin≤u<u_s1時,令q=[0,0],u1=u,控制輸入變量u1起作用,熱水閥 v1動作,蒸汽閥v2保持不動;
當(dāng)u_s1≤u≤umax時,令q=[0,1],u2=u,控制輸入變量u2起作用,蒸汽閥v2動作,熱水閥v1保持不動;
(5)通過引入變量u1,u2,將控制系統(tǒng)轉(zhuǎn)化為具有2個控制輸入變量,1個被控輸出變量的控制系統(tǒng),控制輸入變量表示為u=[u1,u2]t;本發(fā)明基于模型預(yù)測控制對控制系統(tǒng)進(jìn)行控制,則設(shè)置模型預(yù)測控制的控制步長為5、預(yù)測步長為15、模型長度為20。
最后建立預(yù)測控制模型并按照基于模型預(yù)測控制的在線分程控制步驟實施控制,結(jié)果如圖3~圖7所示,可見當(dāng)控制輸入u的值沒有超越中間閾值u_s1(u_s1=2)時只有變量u1起控制作用,當(dāng)u的值大于中間閾值u_s1時,變量u1保持最大值(u1=u_s1=2)不變,變量u2開始起作用驅(qū)動相應(yīng)的閥動作;最終控制被控輸出達(dá)到被控輸出設(shè)定值,具體為:
1)0~50s,被控輸出設(shè)定值為1,被控輸出實際值由0增加至1并穩(wěn)定在1,控制輸入變量u從0增加至2,到達(dá)并穩(wěn)定在中間閾值,因此控制輸入變量u1起作用,u2不起作用;此時表示僅熱水閥v1打開至最大,蒸汽閥v2沒有開始動作。
2)50~100s,被控輸出設(shè)定值為3,被控輸出實際值由1增加至3并穩(wěn)定在3,控制輸入變量u從2增加至4,超越了所定義的中間閾值(u_s1=2),控制輸入變量u2開始起作用,并從2開始增加至3,u1此時不起作用,保持在最大開度u1=2;此時表示熱水閥v1開至最大也不能滿足要求,蒸汽閥v2同時開始動作并保持在一定開度;
3)100~150s,被控輸出設(shè)定值為0.5,被控輸出實際值由3減小至0.5并穩(wěn)定在0.5;控制輸入變量u減小至1,小于中間閾值u_s1,此時輸入變量u1起作用,u2不起作用;此時表示僅打開熱水閥v1至一半開度,蒸汽閥v2處于關(guān)閉狀態(tài)。
4)150~200s,被控輸出設(shè)定值為4,被控輸出實際值由0.5增加至并穩(wěn)定在4;控制輸入變量u增加至5,超過定義的中間閾值,此時u1輸出為最大值2;u2開始起作用,值由2增至5;表示熱水閥v1開至最大,同時蒸汽閥v2開始打開并保持在一定開度。