蘇 燁,凌路加,段亞燦,董 澤
(1.國(guó)網(wǎng)浙江省電力有限公司電力科學(xué)研究院,浙江 杭州 310014;2.華北電力大學(xué)河北省發(fā)電過程仿真與優(yōu)化控制技術(shù)創(chuàng)新中心,河北 保定 071003)
隨著現(xiàn)代社會(huì)的急速發(fā)展,我國(guó)對(duì)電力的需求量也越來越大,對(duì)電力部門的要求也越來越嚴(yán)格。除了最基本的要求發(fā)電機(jī)組能夠滿足電力負(fù)荷的變化要求,更重要的是要保證電力機(jī)組安全經(jīng)濟(jì)運(yùn)行。為了滿足這些嚴(yán)格的要求,現(xiàn)階段我國(guó)火電廠正在向智能控制[1]的方向發(fā)展。
在發(fā)電廠發(fā)電過程中,鍋爐是一個(gè)非常重要的設(shè)施,并且鍋爐也是一種非常復(fù)雜的研究對(duì)象,而在電廠鍋爐運(yùn)行過程中的主蒸汽溫度[2]又是主要參數(shù)之一。主蒸汽溫度的控制就是維持過熱出口蒸汽溫度在允許范圍內(nèi),并保護(hù)過熱器,使管壁溫度不超過允許的工作溫度。主蒸汽溫度過高的話,容易燒壞過熱器,也會(huì)使蒸汽管道、汽輪機(jī)內(nèi)某些零件產(chǎn)生過大的熱膨脹變形而損壞,影響機(jī)組的安全運(yùn)行。相反,主蒸汽溫度過低的話,又會(huì)降低全廠的熱效率,增加燃料消耗量,浪費(fèi)能源。
此外,如果過熱蒸汽溫度變化過大,還會(huì)引起汽輪機(jī)轉(zhuǎn)子和汽缸的漲差變化,甚至?xí)a(chǎn)生劇烈震動(dòng),影響機(jī)組安全運(yùn)行。
總之,為保證火電機(jī)組安全運(yùn)行,必須嚴(yán)格控制主蒸汽溫度在額定值附近。
預(yù)測(cè)控制的產(chǎn)生是工業(yè)實(shí)踐向控制提出的挑戰(zhàn)。由于工業(yè)控制系統(tǒng)復(fù)雜,結(jié)構(gòu)、參數(shù)和環(huán)境具有很大的不確定性,以及對(duì)于控制手段經(jīng)濟(jì)性的考慮,提出了預(yù)測(cè)控制這種新型的算法。
預(yù)測(cè)控制主要基于以下三個(gè)基本原理
1)預(yù)測(cè)模型
預(yù)測(cè)模型的功能是根據(jù)對(duì)象的歷史信息和未來的輸入預(yù)測(cè)其未來的輸出。
2)滾動(dòng)優(yōu)化
預(yù)測(cè)控制不是用一個(gè)全局相同的優(yōu)化性能指標(biāo),而是在每個(gè)時(shí)刻有一個(gè)相對(duì)該時(shí)刻的優(yōu)化性能指標(biāo),優(yōu)化是反復(fù)在線進(jìn)行的。
3)反饋校正
預(yù)測(cè)控制采用輸出的實(shí)測(cè)值與模型的預(yù)測(cè)值的偏差進(jìn)行在線校正,使系統(tǒng)具有負(fù)反饋調(diào)節(jié)的功能,提高了系統(tǒng)的魯棒性。
2.2.1 RNN
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)是一類以序列數(shù)據(jù)為輸入,在序列的演進(jìn)方向進(jìn)行遞歸且所有節(jié)點(diǎn)(循環(huán)單元)按鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò)。
RNN模式的原理是將神經(jīng)元的輸出再接回神經(jīng)元的輸入。這樣的設(shè)計(jì)使神經(jīng)網(wǎng)絡(luò)具備“記憶”功能。
由于RNN模型在訓(xùn)練時(shí)會(huì)遇到梯度消失或梯度爆炸的問題,訓(xùn)練時(shí)計(jì)算和反向傳播,梯度傾向于在每一時(shí)刻遞增或遞減,經(jīng)過一段時(shí)間后,會(huì)發(fā)散到無窮大或者收斂為零。簡(jiǎn)單來說,就是在每一個(gè)時(shí)間的間隔不斷增大時(shí),RNN會(huì)喪失學(xué)習(xí)到連接到遠(yuǎn)處的信息的能力。
圖1是RNN簡(jiǎn)單結(jié)構(gòu),說明如下:
● X是神經(jīng)網(wǎng)絡(luò)的輸入
● O是神經(jīng)網(wǎng)絡(luò)的輸出
● (U,V,W)都是神經(jīng)網(wǎng)絡(luò)的參數(shù)
● S是隱藏狀態(tài),代表神經(jīng)網(wǎng)絡(luò)的“記憶”
圖1 RNN原理圖
2.2.2 LSTM
長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)也是一種遞歸神經(jīng)網(wǎng)絡(luò),專門解決RNN的長(zhǎng)期依賴問題。
LSTM是最早被提出的循環(huán)神經(jīng)網(wǎng)絡(luò)門控算法,其對(duì)應(yīng)的循環(huán)單元,LSTM單元包含3個(gè)門控:輸入門、遺忘門、和輸出門。相對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)系統(tǒng)狀態(tài)建立的遞歸計(jì)算,3個(gè)門控對(duì)LSTM單元的內(nèi)部狀態(tài)建立了自循環(huán)。具體地,輸入門決定當(dāng)前時(shí)間步的輸入和前一個(gè)時(shí)間步的系統(tǒng)狀態(tài)對(duì)內(nèi)部狀態(tài)的更新;遺忘門決定前一個(gè)時(shí)間步內(nèi)部狀態(tài)對(duì)當(dāng)前時(shí)間步內(nèi)部狀態(tài)的更新;輸出門決定內(nèi)部狀態(tài)對(duì)系統(tǒng)狀態(tài)的更新。
圖2 LSTM單元內(nèi)部結(jié)構(gòu)
LSTM單元更新方式如下
(1)
fh和fs是系統(tǒng)內(nèi)部激勵(lì)函數(shù),g是隨著時(shí)間步更新的門控,本質(zhì)是以Sigmoid函數(shù)為激勵(lì)函數(shù)的前饋神經(jīng)網(wǎng)絡(luò)。角標(biāo)i,f,o表示輸入門、遺忘門、輸出門。
神經(jīng)網(wǎng)絡(luò)能夠以任意精度逼近復(fù)雜函數(shù),對(duì)不確定對(duì)象具有自適應(yīng)和自學(xué)習(xí)能力。神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制系統(tǒng)包含被控對(duì)象、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型、反饋校正和滾動(dòng)優(yōu)化控制器組成。
圖3 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制結(jié)構(gòu)圖
神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型根據(jù)系統(tǒng)當(dāng)前的和歷史的輸入輸出信息預(yù)測(cè)未來的輸出值;反饋校正器的作用是校正預(yù)測(cè)輸出ym(k+j)與實(shí)際輸出y(k)的誤差,提高模型的準(zhǔn)確性;滾動(dòng)優(yōu)化的作用是根據(jù)預(yù)測(cè)輸出yp(k+j)與參考軌跡yr(k+j)的差計(jì)算最優(yōu)控制量u(k)。
神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制算法[3]過程如下:
1)取被控對(duì)象一定輸入輸出范圍內(nèi)的樣本,建立神經(jīng)網(wǎng)絡(luò)的初始學(xué)習(xí)樣本數(shù)據(jù)集;
2)根據(jù)控制對(duì)象選擇神經(jīng)網(wǎng)絡(luò)的初始參數(shù),包括層數(shù)和節(jié)點(diǎn)數(shù);神經(jīng)網(wǎng)絡(luò)的初始化主要是網(wǎng)絡(luò)權(quán)值和閾值初始化;
3)計(jì)算期望輸入?yún)⒖架壽E
yr(k+j)
(2)
4)由神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型輸出,經(jīng)反饋校正生成預(yù)測(cè)輸出yp(k);
5)計(jì)算預(yù)測(cè)誤差
e(k+j)=yr(k+j)-yp(k+j)
(3)
6)求二次型性能函數(shù)minJ,獲得最優(yōu)控制解Δu(k+j),采用u(k)作為第一個(gè)控制信號(hào),作為受控對(duì)象的輸入,然后轉(zhuǎn)至第(3)步,從而不斷地調(diào)整控制信號(hào)。
如圖4是主汽溫神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制結(jié)構(gòu)圖。
圖4 主汽溫預(yù)測(cè)控制結(jié)構(gòu)圖
其中,Tr是主汽溫給定值,u是系統(tǒng)控制量輸入值,T是主汽溫實(shí)際輸出值,Tp為L(zhǎng)STM預(yù)測(cè)模型的主汽溫預(yù)測(cè)輸出值,e為模型預(yù)測(cè)輸出值與實(shí)際值得誤差。
設(shè)單輸入單輸出的鍋爐主汽溫控制系統(tǒng)模型為
T(k)=f[T(k-1),…,T(k-n),
u(k-1),…,u(k-m)]
(4)
其中:u(k),T(k)分別是控制量輸入、被控量輸出;m,n分別為系統(tǒng)輸入、輸出階次;
f(·)為未知非線性函數(shù),用LSTM神經(jīng)網(wǎng)絡(luò)來擬合。
Tp(k)=fNN[T(k-1),…,T(k-n),
u(k-1),…,u(k-m)]
(5)
其中fNN是神經(jīng)網(wǎng)絡(luò)擬合函數(shù),Tp(k)是預(yù)測(cè)模型輸出值,LSTM訓(xùn)練的結(jié)果是使Tp(k)接近于T(k)。
這里使用遞推多步預(yù)測(cè)模型,可以得到系統(tǒng)N步超前預(yù)測(cè)輸出,其中假設(shè)遲延d=0。
Tp(k+1)=fNN[T(k),…,T(k-n+1),
u(k), …,u(k-m+1)]
?
Tp(k+i)=fNN[Tp(k),…,Tp(k-n+i),
u(k), …,u(k-m+i)]
?
Tp(k+N)=fNN[Tp(k),…,Tp(k-n+N),
u(k), …,u(k-m+N)]
(6)
這里k時(shí)刻之后的預(yù)測(cè)值為
Tp(k+i),i=1,…N-1
(7)
對(duì)于k時(shí)刻和k時(shí)刻以前的預(yù)測(cè)值,用真實(shí)值代替
Tp(k+i-t)=T(k+i-t),k≤t,t=1,…,n
(8)
設(shè)置LSTM模型參數(shù)為:
輸出維度100;輸入維度8640;輸入每組樣本時(shí)間步數(shù)為8640;激活函數(shù)設(shè)置為linear。
圖5 預(yù)測(cè)模型的誤差曲線
如圖5所示是LSTM模型訓(xùn)練和驗(yàn)證的結(jié)果曲線,訓(xùn)練輪數(shù)設(shè)置為20輪,批處理量為150,從曲線可以看出神經(jīng)網(wǎng)絡(luò)輸出的訓(xùn)練誤差和驗(yàn)證誤差基本已經(jīng)接近零,表示LSTM預(yù)測(cè)模型的泛化能力很好。
對(duì)于主汽溫控制系統(tǒng)[4],控制過程產(chǎn)生的隨機(jī)干擾很大,為了提高預(yù)測(cè)精度,使用反饋校正進(jìn)行修正。在神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制算法中,每一步都要檢測(cè)實(shí)際輸出,并與模型構(gòu)成誤差信息并對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行修正。
校正算法如下:
1)預(yù)測(cè)誤差比較大時(shí),分為兩級(jí)校正。
第一級(jí)為神經(jīng)網(wǎng)絡(luò)輸出校正
(9)
第二級(jí)為主汽溫系統(tǒng)的預(yù)測(cè)輸出校正:
(10)
其中:φ1(·),φ2(·)為非線性函數(shù)。
k+1時(shí)刻對(duì)象未來的輸出值未知,所以根據(jù)當(dāng)前時(shí)刻和歷史信息進(jìn)行校正
(11)
(12)
2)預(yù)測(cè)誤差比較小時(shí),通過一級(jí)校正滿足要求,校正公式為
TN(k+1)=Tp(k+1)+h2(T(k)-Tp(k))
(13)
h1,h2分別是修正神經(jīng)網(wǎng)絡(luò)模型輸出和主汽溫控制系統(tǒng)的輸出,其值得選取目前還沒有有效的方法,可采用經(jīng)驗(yàn)試湊,通過多次仿真得到一個(gè)合適的值。
本文運(yùn)用一維黃金分割法實(shí)現(xiàn)主汽溫控制系統(tǒng)的滾動(dòng)優(yōu)化。
設(shè)二次性能目標(biāo)函數(shù)為
(14)
式中:N是預(yù)測(cè)時(shí)域的長(zhǎng)度;
M是控制時(shí)域的長(zhǎng)度;
c是控制權(quán)系數(shù)。
Δu(k+i-1)=u(k+i-1)-u(k+i-2)
(15)
其中J是關(guān)于Δu(k+i-1)的二次式。
一維黃金分割法實(shí)現(xiàn)過程為:
r1-α1+(1-0.618)(β1-α1)
(16)
3.4.1 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制仿真
建立了LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制模型[5]之后,并且對(duì)預(yù)測(cè)模型的輸出進(jìn)行反饋校正,然后建立主汽溫優(yōu)化控制器,得到完整的主汽溫預(yù)測(cè)控制系統(tǒng)。
預(yù)測(cè)控制系統(tǒng)參數(shù)設(shè)置為:
預(yù)測(cè)時(shí)域P=18;權(quán)重系數(shù)ku=0.3;誤差校正系數(shù)ke=0.1;控制量(噴水流量)調(diào)節(jié)范圍0~100kg/s;控制量最大變化量10kg/s。
使用75%負(fù)荷下的主汽溫對(duì)象連續(xù)工況進(jìn)行仿真。被控對(duì)象傳遞函數(shù)為:
(17)
圖6 預(yù)測(cè)控制器預(yù)測(cè)值和實(shí)際輸出值的變化
由圖6可以看出,預(yù)測(cè)控制輸出值能在較短的步數(shù)內(nèi)跟蹤系統(tǒng)實(shí)際輸出值,幾乎沒有超調(diào)和振蕩,并且快速進(jìn)入穩(wěn)定狀態(tài),主汽溫?zé)o明顯的變化,始終跟蹤系統(tǒng)實(shí)際輸出值,說明了神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制系統(tǒng)的優(yōu)越性。
圖7 預(yù)測(cè)模型輸出與系統(tǒng)實(shí)際輸出誤差
圖7所示仿真結(jié)果,為系統(tǒng)實(shí)際輸出與預(yù)測(cè)模型計(jì)算的誤差的變化曲線,可以看到經(jīng)過預(yù)測(cè)模型不斷地修正,模型輸出值和系統(tǒng)實(shí)際輸出值的誤差最終幾乎減小為零。
3.4.2 預(yù)測(cè)控制與常規(guī)串級(jí)PID控制對(duì)比仿真
考慮無擾動(dòng)的條件下,對(duì)常規(guī)PID串級(jí)主汽溫控制系統(tǒng)和神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制主汽溫控制系統(tǒng)進(jìn)行對(duì)比仿真。在相同的75%負(fù)荷被控對(duì)象條件下,仿真時(shí)間調(diào)整為1500s。如圖8和圖9所示是PID串級(jí)控制系統(tǒng)[6]和神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型控制系統(tǒng)的被控量和控制量的響應(yīng)曲線,可以看出預(yù)測(cè)控制系統(tǒng)控制品質(zhì)[7]要明顯優(yōu)于PID控制。
圖8 被控量響應(yīng)曲線
圖9 控制量響應(yīng)曲線
3.4.3 預(yù)測(cè)控制系統(tǒng)魯棒性分析
為了對(duì)預(yù)測(cè)控制系統(tǒng)進(jìn)行魯棒性分析,將之前75%負(fù)荷的被控對(duì)象換成50%負(fù)荷和100%負(fù)荷的被控對(duì)象,仿真時(shí)間不變,依然設(shè)置為1500s,其它條件不變,分別對(duì)相同條件下50%、75%、100%負(fù)荷下的被控量(主蒸汽溫度)和控制量(噴水流量)進(jìn)行仿真,得到如圖10和圖11的響應(yīng)曲線。
50%負(fù)荷下傳遞函數(shù)
(18)
100%負(fù)荷下傳遞函數(shù)
(19)
圖10 被控量響應(yīng)曲線
圖11 控制量響應(yīng)曲線
由圖10和圖11可以看出當(dāng)被控對(duì)象改變后,預(yù)測(cè)控制器依然可以調(diào)節(jié)被控量達(dá)到給定值,可見預(yù)測(cè)控制器魯棒性很好。預(yù)測(cè)控制是一種基于模型的控制方法,當(dāng)被控模型與預(yù)測(cè)模型存在偏差時(shí),系統(tǒng)的控制品質(zhì)會(huì)受到一定影響,但是由于反饋校正環(huán)節(jié)的存在,預(yù)測(cè)控制仍然可以實(shí)現(xiàn)無差調(diào)節(jié)。
電廠鍋爐過熱蒸汽是一個(gè)典型的復(fù)雜的工業(yè)被控對(duì)象,具有多變量、時(shí)變、非線性、大慣性和純滯后等特點(diǎn),使用常規(guī)PID串級(jí)控制系統(tǒng)難以實(shí)現(xiàn)系統(tǒng)安全運(yùn)行。本文把預(yù)測(cè)控制與神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出建立LSTM長(zhǎng)短期記憶遞歸神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型,同時(shí)利用一維黃金分割的方法實(shí)現(xiàn)主汽溫控制系統(tǒng)的滾動(dòng)優(yōu)化,最后對(duì)預(yù)測(cè)模型的輸出進(jìn)行反饋校正。通過系統(tǒng)的仿真表明這種控制策略在解決蒸汽溫度存在大滯后、特性時(shí)變等熱工方面控制難題的有效性,對(duì)電廠機(jī)組安全運(yùn)行提供了很好的借鑒。