馬良玉,王永軍
(華北電力大學(xué)控制與計算機工程學(xué)院,保定 071003)
汽輪機熱耗率是指每產(chǎn)生1 kW·h電能消耗的熱量,通常作為反映機組運行熱經(jīng)濟性的一項重要指標(biāo)[1]。目前,汽輪機熱耗率作為監(jiān)測機組性能的重要方式得到了各電廠的普遍重視,準(zhǔn)確預(yù)測熱耗率對汽輪機組的安全、經(jīng)濟運行和優(yōu)化控制具有重要的工程意義。汽輪機熱耗率在機組運行過程中受到眾多因素的影響,且各因素之間具有較強的耦合性和非線性,傳統(tǒng)的機理建模方法很難滿足現(xiàn)場的實際需求。隨著人工智能技術(shù)的發(fā)展,汽輪機熱耗率預(yù)測模型的研究取得了顯著成果。張文琴等[2]采用偏最小二乘算法建立了汽輪機熱耗率回歸模型。牛培峰等[3-4]采用各種智能優(yōu)化算法對快速學(xué)習(xí)網(wǎng)等建模算法的參數(shù)進行優(yōu)化,并建立相應(yīng)的熱耗率預(yù)測模型。王惠杰等[5]采用偏相關(guān)分析法確定了汽輪機熱耗率的主要影響因素,并將其作為黑箱模型的輸入?yún)?shù),建立了基于FOA-LSSVM算法的熱耗率預(yù)測模型。李輝[6]采用在線支持向量回歸算法建立了汽輪機熱耗率回歸模型,能夠很好地適應(yīng)在線應(yīng)用。這些建模方法都取得了一定的預(yù)測效果,但由于沒有充分考慮時序數(shù)據(jù)的時間相關(guān)性,對模型的預(yù)測精度產(chǎn)生了一定影響。
人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN) 具有很強的非線性函數(shù)擬合和自適應(yīng)學(xué)習(xí)能力,有效解決了機理建模過程中計算量大和精度低等問題[7]。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法具有易陷入局部最優(yōu)解、出現(xiàn)過擬合以及處理時序數(shù)據(jù)能力較弱等不足。循環(huán)神經(jīng)網(wǎng)絡(luò)[8](recurrent neural network,RNN)具有獨特的自循環(huán)機制,能夠?qū)⑦^去的信息用于當(dāng)前的預(yù)測,有效解決了時間序列的依賴問題。門控循環(huán)單位(gated recurrent unit,GRU)網(wǎng)絡(luò)是一種改進的循環(huán)神經(jīng)網(wǎng)絡(luò),其特殊的網(wǎng)絡(luò)結(jié)構(gòu)能夠有效保證信息在網(wǎng)絡(luò)自循環(huán)中的傳遞,緩解傳統(tǒng)循環(huán)網(wǎng)絡(luò)因梯度消失帶來的性能損失[9]。
火電廠機組運行是一個動態(tài)過程,針對傳統(tǒng)建模方法沒有充分考慮時序數(shù)據(jù)時間相關(guān)性的問題,借助某1 000 MW火電機組采集的真實歷史數(shù)據(jù)建立汽輪機熱耗率的雙向GRU神經(jīng)網(wǎng)絡(luò)預(yù)測模型,并通過與其他算法建立的預(yù)測模型進行對比驗證該模型的預(yù)測精度和魯棒性。
BP(back propagation)神經(jīng)網(wǎng)絡(luò)等前饋神經(jīng)網(wǎng)絡(luò)中的信息為單向傳遞,沒有考慮數(shù)據(jù)之間的時序相關(guān)性,在一定程度上限制了網(wǎng)絡(luò)模型的預(yù)測性能[10-11]。循環(huán)神經(jīng)網(wǎng)絡(luò)具有短期記憶功能,能夠反映歷史信息對當(dāng)前狀態(tài)的影響,更符合生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。圖1為典型的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。圖1中,xt和ot分別表示t時刻的網(wǎng)絡(luò)輸入和輸出;ht為隱含層t時刻的狀態(tài);A為RNN的神經(jīng)元。
o為網(wǎng)絡(luò)輸出;W、U分別為各層對應(yīng)的權(quán)值圖1 典型循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Typical recurrent neural network structure
數(shù)據(jù)樣本的信息在循環(huán)神經(jīng)網(wǎng)絡(luò)中有兩條傳遞方向:①由輸入層到隱含層再到輸出層的單向傳遞;②由隱藏層到隱含層形成的閉環(huán)傳遞,構(gòu)成自連接的記憶單元。RNN 的計算公式如式(1)、式(2)所示:
ht=tanh(Uxt+Wht-1+bt)
(1)
ot=softmax(Vht)
(2)
式中:U、W和V分別為各層對應(yīng)的權(quán)值,b為偏置;tanh( )和softmax( )為非線性激活函數(shù)。
理論上傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)θ我忾L度的時序數(shù)據(jù)進行處理,但當(dāng)實際應(yīng)用中的時間間隔較大時,RNN可能會出現(xiàn)梯度爆炸或梯度消失等結(jié)果導(dǎo)致建模失敗[12]。
圖2 GRU循環(huán)單元結(jié)構(gòu)Fig.2 GRU recurrent unit structure
GRU網(wǎng)絡(luò)神經(jīng)元通過式(3)~式(6)更新狀態(tài)。
rt=σ(Urxt+Wrht-1+br)
(3)
zt=σ(Uzxt+Wzht-1+bz)
(4)
(5)
(6)
式中:σ為sigmoid函數(shù);○表示兩個矩陣相應(yīng)元素的乘積。rt為重置門;Ur和Wr為重置門的權(quán)重矩陣;br為重置門的偏置矩陣;zt為更新門;Uz和Wz為更新門的權(quán)重矩陣;bz為更新門的偏置矩陣;bh為隱含層的偏置。
由式(3)~式(6)可知,當(dāng)rt=1、zt=0時,GRU神經(jīng)網(wǎng)絡(luò)即為傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)。
在處理實際問題時,當(dāng)前時刻的狀態(tài)可能不只與歷史信息相關(guān),未來的信息也會對其產(chǎn)生一定影響,只考慮單向信息會影響網(wǎng)絡(luò)模型的預(yù)測性能。雙向GRU神經(jīng)網(wǎng)絡(luò)[8,14](bidirectional gated recurrent unit,BGRU)由兩層信息傳遞方向不同的循環(huán)網(wǎng)絡(luò)組成,即在原GRU網(wǎng)絡(luò)基礎(chǔ)上增加一個按時間逆序傳遞信息的網(wǎng)絡(luò)層,充分利用輸入序列的上下文信息。按時間展開的BGRU神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,其使用兩個隱含層來提取過去和未來的信息,兩個隱含層連接到同一輸出層,當(dāng)前狀態(tài)的最終輸出如式(7)所示。
圖3 按時間展開的BGRU神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 BGRU structure expanded by time
(7)
以某1 000 MW超超臨界火電機組為研究對象,從現(xiàn)場分散控制系統(tǒng)(distributed control system,DCS)數(shù)據(jù)庫中按采樣周期為1 min選取正常工作時連續(xù)的2 500組歷史運行數(shù)據(jù)進行仿真實驗。
考慮到汽輪機熱耗率的影響因素眾多,為提高預(yù)測模型的訓(xùn)練速度與精度,建模時應(yīng)選取與熱耗率關(guān)聯(lián)度更高的因素。汽輪機熱耗率的計算公式為
HR=3 600[Dmshms+Dhrhhr-Dcrhcr-Dfwhfw-
Dshhsh-Drhhrh]/Pe
(8)
式(8)中:HR為汽輪機熱耗率;Dms為主蒸汽流量;hms為主蒸汽焓值;Dhr為再熱器出口蒸汽流量;hhr為再熱器出口焓值;Dcr為再熱器入口蒸汽流量;hcr為再熱器入口焓值;Dfw為鍋爐給水流量;hfw為鍋爐給水焓值;Dsh為過熱蒸汽減溫水流量;hsh為過熱蒸汽減溫水焓值;Drh為再熱蒸汽減溫水流量;hrh為再熱蒸汽減溫水焓值;Pe為機組發(fā)電負(fù)荷。
由于該機組正常運行時過、再熱蒸汽減溫水流量很少,對機組熱耗率影響較小,可忽略不計。此時給水流量近似等于鍋爐主蒸汽流量,再熱器入口蒸汽流量近似等于再熱器出口蒸汽流量。因此可將式(8)簡化為式(9):
HR=3 600[Dms(hms-hfw)+Drh(hhr-hcr)]/Pe
(9)
主蒸汽和再熱器入口、出口蒸汽的焓值均可由相應(yīng)的壓力和溫度表示,鍋爐給水焓值也可采用其壓力和溫度來表示[4,15]。部分參數(shù)之間具有較強的相關(guān)性,選作輸入變量對模型精度影響不大,反而會增加模型的訓(xùn)練時間。因此,結(jié)合式(9)最終選取表1所示的9個變量作為模型的輸入變量,汽輪機熱耗率為模型輸出變量[16]。
表1 模型的輸入與輸出變量Table 1 Input and output variables of the model
SG(Savitzky-Golay)濾波器是一種廣泛應(yīng)用于數(shù)據(jù)平滑降噪的低通濾波器,通過最小二乘卷積實現(xiàn)局部區(qū)間的多項式擬合,能夠有效去除數(shù)據(jù)的高頻噪聲。該方法有兩個關(guān)鍵的參數(shù):滑動窗寬N和多項式擬合階數(shù)k。若N太長,會導(dǎo)致有效信號丟失;若N太短,則會影響降噪性能。k過高時可能會致使新噪聲出現(xiàn);k過低時則可能會導(dǎo)致信號失真。因此,應(yīng)合理選取N和k的取值以實現(xiàn)隨機降噪和保持有效信號的平衡[17]。SG濾波器實現(xiàn)數(shù)據(jù)降噪的基本原理如式(10)所示:
(10)
式(10)中:S為原始信號;s*為降噪后的信號;Ci為第i次的降噪系數(shù);N為(2m+1)組數(shù)據(jù)的滑動窗寬;j為數(shù)據(jù)樣本集中的第j個樣本。
現(xiàn)場DCS中獲取的數(shù)據(jù)樣本往往具有較大的噪聲,故采用SG濾波器對原始數(shù)據(jù)進行降噪處理。經(jīng)過多次實驗確定:SG濾波器的滑動窗寬N取31,多項式擬合階數(shù)k取3。以汽輪機熱耗率為例,其采用SG濾波器降噪的結(jié)果如圖4所示。由圖4可以看出,處理后數(shù)據(jù)的異常值明顯減少,降噪效果顯著。
圖4 汽輪機熱耗率降噪結(jié)果Fig.4 Noise reduction results of steam turbine heat rate
采用Windows 10系統(tǒng)下的Python語言進行編程,通過人工神經(jīng)網(wǎng)絡(luò)開發(fā)庫Pytorch實現(xiàn)BGRU網(wǎng)絡(luò)模型的搭建。模型優(yōu)化方法采用Adam算法[18];損失函數(shù)選用均方誤差(MSE);非線性激活函數(shù)選用ReLU函數(shù);初始學(xué)習(xí)率取0.01;訓(xùn)練次數(shù)為2 000次。采用dropout機制避免過擬合現(xiàn)象,其值設(shè)置為0.2。由表1可知,BGRU神經(jīng)網(wǎng)絡(luò)模型的輸入和輸出節(jié)點的個數(shù)分別為9和1。經(jīng)過多次實驗,隱藏單元設(shè)置2個GRU層,每層取12個節(jié)點。
為防止模型訓(xùn)練時各變量因量綱不同而影響模型的精度和泛化能力,在建模前先對數(shù)據(jù)樣本進行標(biāo)準(zhǔn)化處理,轉(zhuǎn)換為[0,1]的數(shù)。將標(biāo)準(zhǔn)化后的2 500組數(shù)據(jù)中的前2 000組作為訓(xùn)練樣本建立BGRU神經(jīng)網(wǎng)絡(luò)汽輪機熱耗率預(yù)測模型,并與傳統(tǒng)RNN預(yù)測模型作對比。兩種模型的預(yù)測結(jié)果及相對誤差曲線如圖5所示。由圖5可以看出,兩種神經(jīng)網(wǎng)絡(luò)模型的預(yù)測值都能以較高的精度逼近真實值,BGRU的誤差曲線波動范圍更小。
圖5 模型預(yù)測結(jié)果及相對誤差曲線Fig.5 Model prediction results and relative error curves
為測試BGRU神經(jīng)網(wǎng)絡(luò)熱耗率預(yù)測模型的泛化能力,采用剩余500組樣本數(shù)據(jù)作為測試集,將該模型的預(yù)測結(jié)果與BP神經(jīng)網(wǎng)絡(luò)、傳統(tǒng)RNN等預(yù)測模型進行對比分析,得到測試集的預(yù)測結(jié)果如圖6所示。由圖6可以看出,與其他2種算法相比,BGRU神經(jīng)網(wǎng)絡(luò)汽輪機熱耗率預(yù)測模型能夠更好地跟蹤熱耗率真實值的變化趨勢,泛化能力更強。
圖6 模型測試結(jié)果對比Fig.6 Model test result comparison
為進一步分析BGRU神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測精度與泛化能力,采用平均相對誤差(MAPE)、平均絕對誤差(MAE)以及相關(guān)系數(shù)(R2)等作為評價指標(biāo)對3種模型測試集的預(yù)測結(jié)果進行評價,評價結(jié)果記錄如表2所示。
由表2可知,針對測試集,BGRU神經(jīng)網(wǎng)絡(luò)熱耗率模型預(yù)測結(jié)果的各項指標(biāo)均比其他2種預(yù)測模型更好。其中,相關(guān)系數(shù)更是高達(dá)0.941 9。綜上所述,BGRU模型的泛化能力更強、預(yù)測精度更高。
表2 3種模型的測試集性能對比Table 2 Comparison of performance of 3 models
汽輪機熱耗率預(yù)測模型應(yīng)該具有較高的魯棒性,即當(dāng)輸入變量發(fā)生小幅度隨機擾動時,預(yù)測模型應(yīng)該依然能夠保持一定的預(yù)測精度[5]。因此,采用在輸入變量原始數(shù)據(jù)上增加擾動的方法測試BGRU神經(jīng)網(wǎng)絡(luò)汽輪機熱耗率預(yù)測模型的魯棒性。
給測試樣本集的主蒸汽流量和給水溫度分別附加5%的擾動量,預(yù)測模型的相對誤差曲線如圖7所示。
圖7 模型預(yù)測相對誤差曲線Fig.7 Model prediction relative error curves
由圖7可知,主蒸汽流量和給水溫度分別附加5%的擾動后,BGRU神經(jīng)網(wǎng)絡(luò)預(yù)測模型的計算值仍然能夠以較高的精度跟蹤真實值的變化。兩組擾動實驗的預(yù)測相對誤差均在±2%以內(nèi),主蒸汽流量擾動對預(yù)測模型的影響更大。因此,小幅度擾動對BGRU神經(jīng)網(wǎng)絡(luò)模型的影響較小,該模型具有較強的魯棒性。
(1) 建立了基于雙向GRU神經(jīng)網(wǎng)絡(luò)的汽輪機熱耗率預(yù)測模型,該模型的建立為汽輪機組的運行經(jīng)濟性優(yōu)化奠定了基礎(chǔ)。
(2) 采用Savitzky-Golay濾波器對所選輸入、輸出變量的現(xiàn)場真實數(shù)據(jù)進行降噪處理,降噪后的數(shù)據(jù)異常值明顯減少。
(3) 利用處理后的數(shù)據(jù)建立汽輪機熱耗率預(yù)測模型,并與BP神經(jīng)網(wǎng)絡(luò)及傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)等不同算法建立的預(yù)測模型進行對比,驗證了雙向GRU網(wǎng)絡(luò)模型的建模精度與泛化能力。
(4) 在主蒸汽流量和給水溫度兩個變量原始數(shù)據(jù)的基礎(chǔ)上分別附加5%的擾動量進行測試,表明雙向GRU神經(jīng)網(wǎng)絡(luò)熱耗率預(yù)測模型對擾動具有良好的魯棒性。