對(duì)于某個(gè)被控變量而言,那些會(huì)影響它的變量的當(dāng)前值和近期值決定了其未來(lái)的軌跡。本系列前幾期所介紹的解耦控制和前饋控制的概念,就運(yùn)用了這一控制思想,但它們都只局限于穩(wěn)態(tài)關(guān)系。比如在前饋控制系統(tǒng)的設(shè)計(jì)中,就沒(méi)有包括不同變量的動(dòng)態(tài)歷史記錄。過(guò)程對(duì)象的動(dòng)態(tài)特性?xún)H僅是通過(guò)簡(jiǎn)單的超前/滯后功能加以描述。
通過(guò)預(yù)測(cè)被控變量的未來(lái)趨勢(shì)而獲得的優(yōu)勢(shì)非常明顯。如果能夠提前一定的時(shí)間并且在合理的精度范圍內(nèi)預(yù)測(cè)出被控變量的軌跡,那么控制問(wèn)題就可以簡(jiǎn)化為如下的基本問(wèn)題:
在給定了操縱變量及擾動(dòng)變量近期的歷史記錄以后,我們當(dāng)前需要怎樣的控制動(dòng)作,才能達(dá)到被控變量未來(lái)的預(yù)期行為?
圖1:目標(biāo)反應(yīng)器的輸入輸出模型,顯示了產(chǎn)品溫度對(duì)于蒸汽流量的響應(yīng)特性。
在每個(gè)執(zhí)行周期,控制算法都將應(yīng)用被控變量的預(yù)測(cè)值來(lái)校正當(dāng)前的控制作用,使被控變量可以沿著期望的軌跡運(yùn)動(dòng)。控制算法以特定的間隔周期不斷地重復(fù)執(zhí)行,其典型頻率為:每五分鐘一次;這具體取決于過(guò)程的動(dòng)態(tài)特性和變量的數(shù)目。盡管上述思想很簡(jiǎn)單,但真正實(shí)施起來(lái)并不容易。要決定一系列操縱變量的最佳當(dāng)前值,最起碼需要以下三個(gè)基本要素:
■ 過(guò)程的動(dòng)態(tài)模型-用于從當(dāng)前和近期的輸入變量預(yù)測(cè)出未來(lái)的過(guò)程行為;
■ 控制算法-用于預(yù)測(cè)和評(píng)價(jià)所有可能的系統(tǒng)軌跡,并選擇其中一個(gè)最佳方案;
■ 控制平臺(tái)-需要有足夠的運(yùn)算能力,以在較短的控制間隔內(nèi)完成相關(guān)的預(yù)測(cè)和評(píng)估。
模型預(yù)測(cè)控制(MPC)并非一種新的控制技術(shù)。從上世紀(jì)九十年代初期就已經(jīng)開(kāi)始付諸使用了,其應(yīng)用領(lǐng)域最初是在油氣工業(yè)。起初,由于MPC只能在大型計(jì)算機(jī)上才能實(shí)現(xiàn),無(wú)法輕易集成到DCS的平臺(tái)之上,因此也就限制了MPC的廣泛應(yīng)用。但最近幾年,更為小型廉價(jià)的計(jì)算機(jī)的運(yùn)算能力已經(jīng)呈現(xiàn)出爆炸性的增長(zhǎng),同時(shí)網(wǎng)絡(luò)的開(kāi)放性也幾乎達(dá)到了完全透明的程度。在這種背景下,MPC正迅速成為一種平?;墓ぞ?,正所謂“昔日王謝堂前燕,飛入尋常百姓家”,如今,即便是對(duì)于最平常的控制、哪怕是像單回路控制器這樣的應(yīng)用場(chǎng)合,MPC也都變得適用。
現(xiàn)在,過(guò)去,未來(lái)
本文討論MPC,也將與本系列先前那些文章一樣,從傳統(tǒng)的(無(wú)相關(guān)控制)PID算法開(kāi)始分析:
Output(控制量) =
此處:Output(控制量)=控制器的輸出信號(hào)值;
e = 控制器的偏差(測(cè)量值-設(shè)定值);
c = 控制器的測(cè)量信號(hào)值;
K
P = 比例增益;
K
I = 積分增益;以及
K
D = 微分增益。
本文將從另一種觀點(diǎn)考察上述算法——即從過(guò)程變量的過(guò)去、現(xiàn)在和未來(lái)狀況,決定相應(yīng)的控制作用。
PID算法的三種作用,將定時(shí)檢查一個(gè)時(shí)段上的控制偏差。比例環(huán)節(jié)對(duì)當(dāng)前時(shí)刻的偏差值做出響應(yīng)——即以算法執(zhí)行當(dāng)時(shí)的瞬時(shí)條件為依據(jù),校正作用立即對(duì)當(dāng)前的偏差做出正比例響應(yīng)。
積分環(huán)節(jié)對(duì)被控變量的歷史偏差做出響應(yīng)。積分環(huán)節(jié)產(chǎn)生的控制作用,其數(shù)值上等于從控制器切換到自動(dòng)模式后所有偏差對(duì)于時(shí)間的積分值。積分環(huán)節(jié)對(duì)整個(gè)控制性能的影響是非常關(guān)鍵的,其原因在于積分環(huán)節(jié)在系統(tǒng)負(fù)荷變化的情況下,都可以消除穩(wěn)態(tài)控制偏差。
微分環(huán)節(jié)則著眼于過(guò)程變量未來(lái)的發(fā)展趨勢(shì),測(cè)量變量的導(dǎo)數(shù)dc/dt,其實(shí)就是測(cè)量值變化的斜率。該導(dǎo)數(shù)的符號(hào)正負(fù),表明了測(cè)量量增長(zhǎng)或減小的趨勢(shì),而其數(shù)值大小又表明了測(cè)量值變化的快慢程度。簡(jiǎn)而言之,控制器將根據(jù)測(cè)量量的變化來(lái)進(jìn)行控制。由于微分環(huán)節(jié)考慮到了過(guò)程變量未來(lái)的發(fā)展趨勢(shì),因此對(duì)于整個(gè)控制是大有裨益的,但其優(yōu)勢(shì)在兩個(gè)重要方面受到限制。首先,在所有投用的PID控制器中,大約只有不到5%的控制器使用了微分功能,這是由于相對(duì)于比例和積分環(huán)節(jié),微分環(huán)節(jié)的作用并未被普遍認(rèn)識(shí),而且更難進(jìn)行整定;并且微分環(huán)節(jié)對(duì)于測(cè)量信號(hào)的噪聲非常敏感,而幾乎所有的控制回路在沒(méi)有微分環(huán)節(jié)的情況下也工作得不錯(cuò),因此微分環(huán)節(jié)常常被大家所忽略。其次,微分環(huán)節(jié)僅僅對(duì)算法執(zhí)行瞬間的測(cè)量量的改變方向做出響應(yīng),而這對(duì)于預(yù)測(cè)被控變量的整個(gè)未來(lái)趨勢(shì)及其終值,是遠(yuǎn)遠(yuǎn)不夠的。
然而,充分考慮被控對(duì)象的未來(lái)發(fā)展趨勢(shì),對(duì)實(shí)現(xiàn)控制目標(biāo)和進(jìn)行控制決策很有幫助,正如我們?cè)谌粘I钪凶鰶Q策一般。
多變量過(guò)程的建模
有很多種方法對(duì)過(guò)程進(jìn)行建模。在此處,我們并不討論模型的形式、復(fù)雜性及其精度。一般來(lái)說(shuō),模型的概念只是表明過(guò)程的輸入變量(操縱變量和干擾變量)與過(guò)程的輸出變量(被控變量)之間存在的某種確定關(guān)系。
這種關(guān)系既可以用前饋控制這樣的穩(wěn)態(tài)方程來(lái)表示,也可以用動(dòng)態(tài)函數(shù)來(lái)表示。動(dòng)態(tài)模型可以用來(lái)預(yù)測(cè)一段時(shí)間上過(guò)程變量的暫態(tài)行為及其穩(wěn)態(tài)值。
過(guò)程模型從特性上可以分成兩類(lèi)——“機(jī)理模型”和“經(jīng)驗(yàn)?zāi)P汀?。機(jī)理模型是基于基本的物理定律建立,通常表示為微分方程,描述操作區(qū)域內(nèi)的物質(zhì)與能量的平衡關(guān)系。相反地,經(jīng)驗(yàn)?zāi)P蛣t是基于過(guò)程的操作數(shù)據(jù)而建立。經(jīng)驗(yàn)?zāi)P涂梢员硎緸閿?shù)學(xué)形式,例如通過(guò)回歸或曲線擬合的方法建立;或以非數(shù)學(xué)的形式構(gòu)造。
對(duì)于過(guò)程控制而言,經(jīng)驗(yàn)?zāi)P鸵话銇?lái)說(shuō)會(huì)更好一些。由于此類(lèi)模型直接從實(shí)際的過(guò)程數(shù)據(jù)建立,因此更為準(zhǔn)確。對(duì)于有數(shù)學(xué)模型的情形,數(shù)據(jù)一般都是按照預(yù)先給定的數(shù)學(xué)形式(如純時(shí)延+一階慣性)進(jìn)行擬合,因此這始終只是一種近似,而非數(shù)學(xué)的模型則常常更有優(yōu)勢(shì)。
在MPC軟件包中所使用的模型,一般都是經(jīng)驗(yàn)?zāi)P秃头菙?shù)學(xué)的模型。這種控制方案通常是將一套系數(shù)應(yīng)用于近期的系統(tǒng)輸入值,從而預(yù)測(cè)出系統(tǒng)未來(lái)的輸出值。這里模型要么是有限脈沖響應(yīng)模型(FIR),要么是帶有外部輸入的自回歸模型(ARX)。FIR模型僅僅使用獨(dú)立的變量——操縱變量和擾動(dòng)變量作為系統(tǒng)的輸入;而ARX模型同時(shí)將被控變量的歷史數(shù)據(jù)也作為其輸入。
圖1顯示了目標(biāo)反應(yīng)器的一種輸入/輸出模型,該圖具體給出的是產(chǎn)品溫度對(duì)蒸汽流量的響應(yīng)模型。
該模型中的120個(gè)系數(shù)均以豎條的形式表示。每個(gè)系數(shù)都定義了一項(xiàng)用于某一特定歷史輸入采樣值的增益。在本模型中,兩次采樣的間隔時(shí)間為4秒,則120個(gè)系數(shù)就代表了總共480秒或8分鐘的采樣時(shí)間。換言之,該模型使用了最近8分鐘的蒸汽流量數(shù)據(jù),來(lái)預(yù)測(cè)未來(lái)4秒后的產(chǎn)品溫度值。蒸汽流量的最近12個(gè)采樣值對(duì)應(yīng)的系數(shù)(可以從左到右讀?。缀醵嫉扔诹悖麄儗?duì)系統(tǒng)未來(lái)的輸出基本沒(méi)有任何影響。這恰恰反映了過(guò)程響應(yīng)中的純時(shí)延環(huán)節(jié)——蒸汽流量最近的數(shù)值,還沒(méi)來(lái)得及對(duì)產(chǎn)品溫度產(chǎn)生影響。但是,我們可以發(fā)現(xiàn)那個(gè)最大、最具影響力的系數(shù),剛好緊跟著該純時(shí)延環(huán)節(jié)出現(xiàn),其原因在于剛剛脫離純時(shí)延區(qū)域的那個(gè)蒸汽流量值,對(duì)改變當(dāng)前的產(chǎn)品溫度影響最大。相比之下,比此更早的蒸汽流量值,對(duì)當(dāng)前產(chǎn)品溫度的影響就要弱一些,因此其系數(shù)又將逐步趨向于零。而8分鐘之前的采樣值對(duì)產(chǎn)品溫度就幾乎沒(méi)有任何影響了。
線性與非線性
過(guò)程對(duì)象的模型,既可以是線性的,也可以是非線性的。當(dāng)我們說(shuō)某個(gè)模型是線性的時(shí)候意味著兩件事。首先,如果該模型是數(shù)學(xué)模型,那么這個(gè)模型中沒(méi)有任何一個(gè)變量是以?xún)缧问皆鲩L(zhǎng)的,或者說(shuō)方程中沒(méi)有任何指數(shù)項(xiàng)。其次,模型關(guān)系中存在多個(gè)輸入時(shí),其作用是通過(guò)加減運(yùn)算綜合在一起,而不是通過(guò)乘除運(yùn)算。
非線性經(jīng)驗(yàn)?zāi)P屯ǔJ巧窠?jīng)網(wǎng)絡(luò)模型。這類(lèi)模型將分布在一層或多層結(jié)構(gòu)中的節(jié)點(diǎn)函數(shù)進(jìn)行交叉求和,以反映多輸入多輸出變量之間的關(guān)系。對(duì)動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)模型而言,每一個(gè)歷史采樣時(shí)刻都對(duì)應(yīng)相應(yīng)的輸入,而每一個(gè)預(yù)測(cè)時(shí)刻都會(huì)產(chǎn)生相應(yīng)的輸出。神經(jīng)網(wǎng)絡(luò)模型有時(shí)可能變得非常得龐大并且復(fù)雜,其程度取決于模型中變量的總數(shù),每一變量的歷史數(shù)據(jù)總量,以及對(duì)未來(lái)進(jìn)行預(yù)測(cè)的區(qū)間數(shù)目。
MPC本身并不要求其使用的模型必須是線性的或是非線性的。商用軟件包一般都可以使用一定范圍的線性或非線性,數(shù)學(xué)或非數(shù)學(xué)形式的模型。從使用歷史來(lái)看,該項(xiàng)技術(shù)一般都采用獨(dú)立輸入輸出關(guān)系的線性組合,絕大多數(shù)原因是由于非線性動(dòng)態(tài)模型比較復(fù)雜,并且需要很強(qiáng)的運(yùn)算能力。但隨著計(jì)算機(jī)運(yùn)算能力的日益增強(qiáng),對(duì)非線性模型的應(yīng)用也正變得越來(lái)越普遍 ,并且這種趨勢(shì)一定還會(huì)繼續(xù)下去。
關(guān)于線性與非線性模型的優(yōu)缺點(diǎn),已經(jīng)有很多的討論。不少討論認(rèn)為,如果過(guò)程對(duì)象完全是非線性的,那么控制器也必須是非線性的,否則控制性能將會(huì)變得無(wú)法接受。然而只有很少情況下,上述說(shuō)法才是正確的。
事實(shí)上在大多數(shù)情況下,生產(chǎn)過(guò)程中操作點(diǎn)的變化并不是很大,沒(méi)有達(dá)到非線性變得非常關(guān)鍵的程度。在操作點(diǎn)附近使用線性技術(shù),往往就能夠得到滿(mǎn)意的效果了。只有對(duì)某些特殊的過(guò)程,如pH值控制,由于其過(guò)程對(duì)象的嚴(yán)重非線性,即使使用本系列第二篇文章所討論的線性化技術(shù),線性控制器的控制效果也難以令人滿(mǎn)意?,F(xiàn)在,幾乎所有的MPC軟件包都可以實(shí)現(xiàn)上述技術(shù)。
一直以來(lái),建立非線性模型都比線性模型更困難、更昂貴、也更耗費(fèi)時(shí)間。通常神經(jīng)網(wǎng)絡(luò)建模需要多得多的建模數(shù)據(jù),這是因?yàn)閷?duì)于測(cè)試數(shù)據(jù)條件以外的情形,其預(yù)測(cè)精度將變得很差。眾所周知,神經(jīng)網(wǎng)絡(luò)模型常常發(fā)生“過(guò)擬合”的現(xiàn)象——即該模型與測(cè)試數(shù)據(jù)擬合得非常好,但在實(shí)際應(yīng)用中的性能卻并不滿(mǎn)意。
自學(xué)習(xí)模型的精度取決于輸入數(shù)據(jù)的質(zhì)量。除非數(shù)據(jù)對(duì)于輸入的變化和過(guò)程響應(yīng)極為充分,否則,系統(tǒng)將會(huì)試圖對(duì)那些由過(guò)程噪聲引起的隨機(jī)信號(hào)也進(jìn)行建模。而這樣的話,訓(xùn)練得到的模型性能自然很差。
相反,建立線性模型就要簡(jiǎn)單得多、便宜得多,并且實(shí)際應(yīng)用中的魯棒性也更好。事實(shí)上,本系列中目標(biāo)反應(yīng)器的預(yù)測(cè)控制所使用的也正是這種方案。
控制目標(biāo)
多變量控制器的性能指標(biāo)受到自由度的嚴(yán)格限制。由這一概念又可以得到如下的結(jié)論:一套系統(tǒng)所能達(dá)到的控制目標(biāo)的最大數(shù)量,將受限于可用的操縱變量的數(shù)量。
控制目標(biāo)一般來(lái)說(shuō)不外乎下面的其中一種:
■ 將被控變量控制在特定的設(shè)定值或保持在預(yù)先設(shè)定的范圍以?xún)?nèi);或
■ 將操縱變量操控到最終的目標(biāo)值
例如,本系列中的目標(biāo)反應(yīng)器總共有三個(gè)操縱變量,因此最多只能達(dá)到三個(gè)控制目標(biāo)。該控制器中,這三個(gè)控制目標(biāo)分別是將產(chǎn)品的流量、產(chǎn)品的組成以及產(chǎn)品的溫度控制在相應(yīng)的設(shè)定值上。
基本的PID控制回路的固有結(jié)構(gòu)肯定符合以上原理。一個(gè)單回路控制器僅有一個(gè)測(cè)量量,并且同時(shí)也只操縱一個(gè)控制量輸出。然而對(duì)一個(gè)多變量控制器而言,情況就大大不同了,它同時(shí)會(huì)有多個(gè)測(cè)量量和控制量。此外,測(cè)量量與控制量的數(shù)目并不一定相等。事實(shí)上,測(cè)量量的數(shù)目總是比控制量多。
許多模型預(yù)測(cè)控制器都具有一定的優(yōu)先結(jié)構(gòu),用于決定哪些控制目標(biāo)需要優(yōu)先被滿(mǎn)足,哪些控制目標(biāo)可以隨時(shí)被忽略。與此類(lèi)似的是,當(dāng)控制目標(biāo)維持在預(yù)先設(shè)定的范圍內(nèi)、并且沒(méi)有超出原有設(shè)定界限的趨勢(shì)時(shí),許多預(yù)測(cè)控制器往往會(huì)忽略“將被控變量控制在某個(gè)特定設(shè)定值”這一目標(biāo)。
此外,大多數(shù)多變量控制器都采用一種二次規(guī)劃算法,以便在無(wú)法滿(mǎn)足所有控制目標(biāo)時(shí),能夠?qū)⑺锌刂颇繕?biāo)進(jìn)行折衷。該算法一般都包含了重要性因子,用以對(duì)上述折衷方案中的各個(gè)控制目標(biāo)進(jìn)行權(quán)重分配。
選擇控制響應(yīng)
從根本上講,控制器的任務(wù)都是使過(guò)程變量由當(dāng)前值趨向于期望的操作點(diǎn)。但是,有無(wú)數(shù)的路徑都可以實(shí)現(xiàn)從一點(diǎn)到達(dá)另一點(diǎn)。
圖2表明了引起測(cè)量值偏離設(shè)定值的兩個(gè)普遍原因:設(shè)定值的改變或者是過(guò)程的擾動(dòng)。其中有無(wú)數(shù)的控制路徑可以選擇,使其隨著時(shí)間的運(yùn)行而消除如上誤差,每一條路徑也對(duì)應(yīng)了不同的操縱變量軌跡。
情形1反映了一種較強(qiáng)的控制動(dòng)作,在此情形下,測(cè)量量更快地趨向于設(shè)定值,但同時(shí)也帶來(lái)了更大的超調(diào)量以及更大的閥門(mén)動(dòng)作。情形3反映了一種較弱的控制作用,此時(shí)測(cè)量變量較慢地趨于設(shè)定值,且閥門(mén)動(dòng)作也較小。情形2則反映了一種折衷的方案,它介于“快速減少誤差”及“將控制閥的動(dòng)作幅度降到最低”之間。
基于模型預(yù)測(cè)控制器,每個(gè)執(zhí)行周期都將會(huì)把一系列用戶(hù)定義的權(quán)重因子應(yīng)用于被控變量的誤差、操縱變量的變化以及操縱變量的目標(biāo)誤差,并以此來(lái)評(píng)價(jià)每一條路徑的控制指標(biāo)。其中評(píng)價(jià)指標(biāo)或成本最低的路徑方案,就是本執(zhí)行周期將會(huì)采用的。通過(guò)改變相對(duì)權(quán)重因子,用戶(hù)可以改變每個(gè)因素的貢獻(xiàn)程度,以及控制器所選擇的期望軌跡。這與傳統(tǒng)控制方案中的控制器整定是類(lèi)似的。