武 松,馬永光
(華北電力大學(xué)自動化系,河北 保定 071003)
燃煤電站是我國電力生產(chǎn)工業(yè)的主體,同時也是NOx等大氣污染物重大排放源。尤其是隨著“雙碳”目標(biāo)的提出,我國近年來不斷提高燃煤電站NOx的排放標(biāo)準(zhǔn)。如何有效降低電站鍋爐NOx等污染物排放成為了企業(yè)面臨的一個重要難題。為了降低NOx的排放,建立準(zhǔn)確的NOx排放預(yù)測模型是基礎(chǔ)。準(zhǔn)確預(yù)測NOx排放量有利于優(yōu)化鍋爐燃燒過程,降低選擇性催化還原(Selective Catalytic Reduction,SCR)煙氣脫硝成本[1-2]。
NOx生成機(jī)理十分復(fù)雜,傳統(tǒng)的機(jī)理分析建模難以準(zhǔn)確估計NOx的排放量[3]?;跀?shù)據(jù)驅(qū)動和智能算法的建模因其不涉及復(fù)雜的過程機(jī)理計算而受到研究人員越來越多的重視[4]。智能建模算法主要包括人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)[5]、支持向量機(jī)(Support Vector Machine,SVM)[6]、深度學(xué)習(xí)網(wǎng)絡(luò)(Deep Learning Network,DNN)[7]等。劉岳[8]等人提出了一種基于特征優(yōu)化的長短期記憶(Long Short-Term Memory,LSTM)的NOx建模方法,并使用通過網(wǎng)格搜索和改進(jìn)粒子群算法確定 LSTM神經(jīng)網(wǎng)絡(luò)的超參數(shù),但是該模型收斂速度慢,容易發(fā)生過擬合。LI[9]等人使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)對鍋爐NOx排放進(jìn)行預(yù)測,但并未利用數(shù)據(jù)的時間依賴特征。王英男[10]建立了一種結(jié)合注意力機(jī)制(Attention Mechanism, AM)與LSTM的混合預(yù)測模型AM-LSTM,所建立的模型預(yù)測精度高,泛化能力好。李楠[11]設(shè)計了基于深層自動編碼網(wǎng)絡(luò)(Deep De-noising Auto-Encoder Network,DDAEN)的NOx預(yù)測算法,但是深度學(xué)習(xí)框架結(jié)構(gòu)復(fù)雜,特征學(xué)習(xí)較為耗時。
針對以上問題,本文基于某電站鍋爐歷史運(yùn)行數(shù)據(jù),提出了一種融合全局注意力機(jī)制(Global Attention Mechanism, GAM)與CNN、雙向長短期記憶(Bi-directional Long Short-Term Memory,BiLSTM)的混合深度學(xué)習(xí)模型來預(yù)測未來時刻電站鍋爐出口NOx排放量。首先對歷史數(shù)據(jù)進(jìn)行預(yù)處理,去除離群值和噪聲,然后確定模型輸入變量并估計輸入變量與NOx排放量之間的時間延遲,重構(gòu)數(shù)據(jù)序列,實(shí)現(xiàn)輸入輸出數(shù)據(jù)序列在時間維度的對齊。然后基于Matlab平臺構(gòu)建CNN-BiLSTMGAM模型,CNN用于提取序列數(shù)據(jù)的局部空間結(jié)構(gòu)特征,BiLSTM可以利用其前后兩個方向的時間依賴特性,GAM可以自動分配神經(jīng)元隱藏狀態(tài)輸出權(quán)重,突出重要信息的影響,進(jìn)一步提高模型預(yù)測精度。另外還采用了正則化技術(shù)(Dropout)結(jié)合Adam優(yōu)化算法提高模型收斂速度并防止過擬合。最后將所提出模型的預(yù)測效果與其他幾種典型預(yù)測模型進(jìn)行對比,以說明所提出模型的有效性。
CNN是一種前饋神經(jīng)網(wǎng)絡(luò),主要用于從原始數(shù)據(jù)中提取特征,具有很好的非線性學(xué)習(xí)能力。它的主要特點(diǎn)體現(xiàn)在稀疏連接與權(quán)值共享,這種網(wǎng)絡(luò)結(jié)構(gòu)更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。
CNN網(wǎng)絡(luò)具有多層結(jié)構(gòu),卷積層是CNN的核心,用來提取對象局部特征。池化層在卷積層之后,通過最大池化或平均池化操作對卷積層所得特征圖(Feature Maps)再次提取其更深一層的特征。全連接層將池化層提取的特征進(jìn)行匯總,把池化層輸出的張量重新拼接成一個一維向量,形成最終輸出[12]。CNN結(jié)構(gòu)見圖1。
圖1 CNN網(wǎng)絡(luò)結(jié)構(gòu)圖
CNN網(wǎng)絡(luò)卷積層計算過程為:
f(·)——激活函數(shù),這里選擇ReLU;
Mi——計算的輸入特征圖子集;
“*”——卷積;
LSTM是一種循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),通過其內(nèi)部的門結(jié)構(gòu)可以解決RNN在處理較長的時間序列時出現(xiàn)的梯度消失和梯度爆炸問題,是對RNN的一種改進(jìn),每個LSTM神經(jīng)元細(xì)胞一般包括遺忘門(Forget gate)、輸入門(Input gate)和輸出門(Output gate)[13-14]。LSTM 神經(jīng)元細(xì)胞結(jié)構(gòu)如圖2所示。
圖2 LSTM細(xì)胞結(jié)構(gòu)圖
圖2中,LSTM網(wǎng)絡(luò)計算過程為:
式中:Xt——當(dāng)前輸入;
ht-1——上一時刻神經(jīng)元細(xì)胞輸出;
ft、it、ot——當(dāng)前時刻細(xì)胞遺忘門、輸入門、輸出門的輸出;
W——權(quán)重系數(shù)矩陣;
b——偏置項(xiàng)向量;
ct-1——上一時刻神經(jīng)元細(xì)胞狀態(tài);
——當(dāng)前時刻細(xì)胞更新量;
ct——當(dāng)前時刻細(xì)胞最終狀態(tài)更新;
ht——當(dāng)前時刻細(xì)胞最終輸出;
“?”—— 矩陣對應(yīng)位置元素相乘(Hadamard乘積);
δ(sigmoid)和tanh——激活函數(shù)。
BiLSTM 由兩個方向相反的LSTM層組成,可以獲取序列前后兩個方向的信息。BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 BiLSTM結(jié)構(gòu)圖
全局注意力機(jī)制由Luong等在2015年提出,它是對傳統(tǒng)注意力機(jī)制的改進(jìn)。它在經(jīng)典Seq2Seq編碼器—解碼器(Encoder-Decoder)結(jié)構(gòu)基礎(chǔ)上構(gòu)造一個注意力層(Attention Layer),通過計算網(wǎng)絡(luò)隱含層神經(jīng)元?dú)v史時刻隱藏狀態(tài)與當(dāng)前時刻隱藏狀態(tài)之間的關(guān)聯(lián)程度,將更多的注意權(quán)重分配到關(guān)聯(lián)程度大的部分,實(shí)現(xiàn)對數(shù)據(jù)特征的自適應(yīng)關(guān)注[15]。計算過程如下:
式中:ats——神經(jīng)元?dú)v史時刻隱藏狀態(tài)輸出對當(dāng)前時刻隱藏狀態(tài)輸出的注意力權(quán)重;
score——評分函數(shù);
hs——神經(jīng)元?dú)v史隱藏狀態(tài);
ht——神經(jīng)元當(dāng)前隱藏狀態(tài);
ct——中間變量;
——經(jīng)注意力加權(quán)計算后的神經(jīng)元當(dāng)前時刻最終隱藏狀態(tài)輸出。
本文數(shù)據(jù)來自某2×300 MW電站超臨界鍋爐分散控制系統(tǒng)(Distributed Control System,DCS),采樣周期10 s,從中篩選了一段負(fù)荷變化范圍大(84~300 MW)的連續(xù)運(yùn)行數(shù)據(jù),共10 069條數(shù)據(jù)樣本。
基于數(shù)據(jù)驅(qū)動的模型對數(shù)據(jù)精度十分敏感,建模之前首先對數(shù)據(jù)中的離群點(diǎn)和噪聲進(jìn)行預(yù)處理,消除其對模型精度的不利影響。對于離群點(diǎn),使用箱線圖法(Box-whisker Plot)進(jìn)行篩選,然后使用均值填充進(jìn)行修正;對于噪聲,使用小波半軟閾算法(Wavelet Semi-soft Threshold Denoising, WSTD)進(jìn)行處理,半軟閾值介于軟閾和硬閾之間,可以均衡硬閾值去噪帶來的信號局部抖動以及軟閾值去噪峰值信噪比低的問題。
鍋爐燃燒過程中影響NOx生成的變量有很多,通過對NOx生成機(jī)理分析并充分結(jié)合電站運(yùn)行人員的實(shí)際經(jīng)驗(yàn),共篩選了包含總風(fēng)量、爐膛氧含量、燃燒器擺角、給煤機(jī)給煤量等26個特征變量的歷史數(shù)據(jù)作為模型的輸入,詳見表1。
表1 模型輸入變量
電站鍋爐具有大延遲、大慣性的特點(diǎn),且各個輸入特征變量的測量和NOx測量值之間存在不同的時間延遲,導(dǎo)致DCS 記錄的同一時刻運(yùn)行數(shù)據(jù)中的各相關(guān)參數(shù)之間未形成準(zhǔn)確對應(yīng)關(guān)系,DCS原始數(shù)據(jù)并不能反應(yīng)變量之間真實(shí)的時序關(guān)系。因此建模之前還需要校準(zhǔn)輸入變量與輸出NOx之間的時間延遲,重構(gòu)數(shù)據(jù)序列,實(shí)現(xiàn)建模數(shù)據(jù)在時間維度對齊。
互信息(Mutual Information, MI)是一種對信息的量化表達(dá),能夠反應(yīng)變量之間的相關(guān)程度。定義兩個離散隨機(jī)變量X與Y之間的互信息為:
式中:p(x,y)——X與Y的聯(lián)合概率分布,
p(x),p(y)——X與Y的邊緣概率分布。
為了計算各輸入變量與輸出NOx之間的互信息值,設(shè)輸入變量數(shù)據(jù)序列矩陣為X:
式中:n——時間序列長度或時間步長(1個時間步長度為采樣周期10 s);
k——輸入變量個數(shù)。
τi(τi∈[τmin,τmax])為第i個輸入變量Xi(i∈(1,k))與Y之間的時間遲延,X可以重構(gòu)為:
其中,第i個變量Xi重構(gòu)為:
根據(jù)現(xiàn)場實(shí)際運(yùn)行情況,變量延遲時間范圍一般在 0~300 s之間,采樣周期為 10 s,因此選擇τmin=0,τmax=30。為了求每個輸入變量Xi的最佳延遲時間,計算過程為:
1)分別計算式(17)中等號右側(cè)矩陣每一列與式(15)輸出Y之間的互信息值,其中互信息值最大的那一列對應(yīng)的τ就是該變量的延遲時間估計。
2)重復(fù)步驟1)得到所有變量的延遲時間。
輸入變量的延遲時間計算如表2所示。
表2 輸入變量延遲時間估計
在得到各輸入變量的時間延遲后,對原始數(shù)據(jù)序列進(jìn)行重構(gòu),實(shí)現(xiàn)輸入變量與輸出NOx之間在時間維度的對齊。
為了進(jìn)一步提高模型預(yù)測的準(zhǔn)確性,考慮到數(shù)據(jù)序列的時間依賴特性,在所選26個變量歷史時刻數(shù)據(jù)的基礎(chǔ)上,又加入了鍋爐出口NOx排放量歷史時刻數(shù)據(jù)共27個變量的歷史時刻數(shù)據(jù)形成模型最終輸入,輸出為未來1個時間步的鍋爐出口NOx排放量,即輸入輸出之間相差1個時間步。
CNN-BiLSTM-GAM混合模型結(jié)構(gòu)圖如圖4所示。其中CNN有一個一維卷積層和一個最大池化層,對序列數(shù)據(jù)每個時間步輸入都進(jìn)行一次卷積池化運(yùn)算,經(jīng)全連接層后將結(jié)果輸入到后兩個含Dropout的BiLSTM層,之后由GAM層計算第二個BiLSTM層神經(jīng)元隱藏狀態(tài)輸出權(quán)重分配,經(jīng)全連接得到最終輸出結(jié)果。
圖4 CNN-BiLSTM-GAM結(jié)構(gòu)圖
本文實(shí)驗(yàn)環(huán)境為Matlab R2020b,經(jīng)過反復(fù)多次實(shí)驗(yàn),模型最優(yōu)超參數(shù)設(shè)置如表3所示。
表3 超參數(shù)設(shè)置
該混合模型串聯(lián)過程中,上一層的輸出是下一層的輸入。CNN卷積層先接受某一個時刻數(shù)據(jù)樣本序列的輸入(一個維度為特征變量個數(shù)的列向量),然后進(jìn)入模型的下一層進(jìn)行運(yùn)算直到最終輸出,之后CNN卷積層再次接受下一時刻的輸入,以此類推。各層輸入輸出數(shù)據(jù)格式如表4所示。
對2.2中最后得到的數(shù)據(jù)序列取其前10 000條作為最終實(shí)驗(yàn)數(shù)據(jù)并進(jìn)行數(shù)據(jù)集劃分,將這10 000條數(shù)據(jù)中前9 000組作為模型訓(xùn)練數(shù)據(jù),后1 000組為測試數(shù)據(jù),用以驗(yàn)證模型的性能。
將實(shí)驗(yàn)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,將其轉(zhuǎn)化為無量綱的表達(dá)式,提升模型的收斂速度。這里使用ZScore方法對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。
式中:μ——數(shù)據(jù)樣本均值;
σ——標(biāo)準(zhǔn)差;
x——原數(shù)據(jù);
x′——標(biāo)準(zhǔn)化數(shù)據(jù)。
本次實(shí)驗(yàn)選擇均方根誤差(Root Mean Square Error,RMSE)、平均絕對百分比誤差 (Mean Absolute Percentage Error,MAPE)、決定系數(shù)(R-square,r2)作為檢驗(yàn)?zāi)P蜏?zhǔn)確性的評價指標(biāo)。其中,RMSE和MAPE值越接近0說明模型越精確,r2越接近1(r2∈(0,1))說明輸入變量對輸出變量的解釋程度越高,變化曲線擬合優(yōu)度越好。
式中:yi——NOx實(shí)測值;
——模型預(yù)測值;
——NOx實(shí)測平均值;
n——樣本總數(shù)。
4.3.1 變量延遲時間估計對模型精度的影響
為了說明2.2中變量延遲時間估計的有效性,分別選取未進(jìn)行時延估計的數(shù)據(jù)與校正時延后的數(shù)據(jù)作為所提出的混合深度神經(jīng)網(wǎng)絡(luò)模型CNNBiLSTM-GAM的建模數(shù)據(jù),同時使用3.2中設(shè)置的超參數(shù)對模型進(jìn)行訓(xùn)練,并預(yù)測鍋爐NOx輸出,最后計算預(yù)測結(jié)果的性能指標(biāo)。性能指標(biāo)計算結(jié)果對比如表5所示。
由表5可以看出,模型使用含有時延估計的數(shù)據(jù),其預(yù)測結(jié)果的三個性能指標(biāo)均比使用不含時延估計數(shù)據(jù)所得結(jié)果要好,充分說明了對變量的延遲時間估計提高了建模數(shù)據(jù)的精度,從而提高模型的預(yù)測精度。
4.3.2 模型預(yù)測結(jié)果的對比驗(yàn)證
利用3.2中設(shè)置的超參數(shù)對所提出混合網(wǎng)絡(luò)模型CNN-BiLSTM-GAM進(jìn)行訓(xùn)練,并預(yù)測鍋爐NOx輸出。
為更好說明所提出模型的預(yù)測效果,使用相同的實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)條件,選取另外三個預(yù)測模型即BiLSTM、BiLSTM-GAM、CNN-BiLSTM進(jìn)行對比實(shí)驗(yàn),為了使各個模型的總體結(jié)構(gòu)復(fù)雜度盡可能接近,所選三個對比模型中的BiLSTM層均采用三層設(shè)計,各層神經(jīng)元數(shù)量分別為128、116、96;且CNNBiLSTM中的CNN層與所提出混合模型CNNBiLSTM-GAM中CNN層結(jié)構(gòu)相同。學(xué)習(xí)率等其他超參數(shù)設(shè)置也均相同。
四個模型的預(yù)測結(jié)果評價指標(biāo)對比如表6所示,時間耗費(fèi)情況對比見表7。
表6 模型評價指標(biāo)對比
表7 模型時間耗費(fèi)情況對比
由表6可以看出,CNN-BiLSTM-GAM模型的RMSE和MAPE值最小,說明該模型的預(yù)測精度最高,且該模型的r2系數(shù)最大,說明該模型的數(shù)據(jù)跟蹤能力最好;BiLSTM-GAM模型的指標(biāo)計算結(jié)果比不含GAM的BiLSTM要好,說明GAM的使用可以在一定程度上提高模型的預(yù)測精度;CNNBiLSTM要比BiLSTM的計算結(jié)果好,說明CNN的使用可以深入提取對象的特征,提高特征學(xué)習(xí)效果,從而提高預(yù)測精度;所提出模型的預(yù)測效果最好,說明三種不同算法的結(jié)合使用實(shí)現(xiàn)了三種算法之間的優(yōu)勢互補(bǔ),提高了模型性能。
考慮到模型耗時與其內(nèi)部因素(模型本身結(jié)構(gòu)復(fù)雜度)以及外部因素(數(shù)據(jù)量大小、計算機(jī)硬件環(huán)境等)有關(guān),對于外部因素,表7中模型時間耗費(fèi)數(shù)據(jù)都是在Intel Core i5-2400 CPU(主頻3.1 GHz),內(nèi)存4 GB,集成顯存2 GB的硬件環(huán)境下取得的,其他實(shí)驗(yàn)條件也都相同。由表7可以看出,無論是訓(xùn)練時間還是預(yù)測時間,四個模型之間相差并不大,且CNN-BiLSTM-GAM耗時最少。CNN-BiLSTM-GAM之所以比CNN-BiLSTM耗時少,是因?yàn)镚AM計算開銷很小,不會過多增加額外計算量,而CNNBiLSTM比CNN-BiLSTM-GAM多一個BiLSTM層,其網(wǎng)絡(luò)權(quán)重參數(shù)數(shù)量要比CNN-BiLSTMGAM多,導(dǎo)致訓(xùn)練過程網(wǎng)絡(luò)學(xué)習(xí)速度低,耗時增加;CNN-BiLSTM-GAM相比于 BiLSTM、BiLSTMGAM耗時少,除了因?yàn)镚AM計算開銷小的緣故,還因?yàn)镃NN-BiLSTM-GAM串聯(lián)了一個CNN層代替了一個BiLSTM層,CNN權(quán)重參數(shù)數(shù)量比BiLSTM少,計算效率高,且CNN通過卷積核池化操作可以充分提取對象的特征,加快特征學(xué)習(xí)速度,從而減少模型所耗費(fèi)的時間。另外,所有模型的訓(xùn)練時間都要比其預(yù)測時間大得多,是因?yàn)橛?xùn)練過程要不斷學(xué)習(xí)特征以更新網(wǎng)絡(luò)各個權(quán)重參數(shù),因此比較耗時,模型一旦訓(xùn)練好其網(wǎng)絡(luò)權(quán)重也就固定下來了,進(jìn)行預(yù)測時只需與輸入進(jìn)行常規(guī)代數(shù)運(yùn)算即可,因此耗時很少。
CNN-BiLSTM-GAM預(yù)測結(jié)果如圖5所示,四個模型的預(yù)測結(jié)果對比見圖6。
圖5 CNN-BiLSTM-GAM模型預(yù)測結(jié)果
圖6 四種模型預(yù)測結(jié)果對比
由圖 5可以看出,CNN-BiLSTM-GAM模型NOx預(yù)測值與實(shí)測值之間差距極小,曲線幾乎完全重合;由圖6可以看出,四個模型的NOx預(yù)測值都可以很好地跟蹤實(shí)測值變化,且CNN-BiLSTMGAM模型最貼近實(shí)測數(shù)據(jù)。
為了進(jìn)一步分析對比模型的泛化能力,分別將四個模型的預(yù)測結(jié)果進(jìn)行線性擬合,見圖7。
圖7 四種模型線性擬合結(jié)果對比
如圖7所示,四個模型預(yù)測值和實(shí)際值散點(diǎn)基本都均勻分布在擬合直線附近,擬合直線均比較接近理想直線(直線方程:x-y=0),且CNN-BiLSTMGAM模型擬合直線最接近理想直線,擬合效果最好。
本文提出一種基于數(shù)據(jù)驅(qū)動的融合CNN與BiLSTM并引入全局注意力機(jī)制GAM的混合學(xué)習(xí)模型來預(yù)測未來時刻電站鍋爐NOx排放量,所提出的模型能充分提取數(shù)據(jù)序列的空間和時序特征,自適應(yīng)分配網(wǎng)絡(luò)隱含層狀態(tài)輸出權(quán)重,收斂速度快,且不容易發(fā)生過擬合。實(shí)驗(yàn)驗(yàn)證該模型與其他典型預(yù)測模型相比,RMSE僅有1.886,而r2系數(shù)達(dá)到0.983,模型預(yù)測精度高,誤差小,泛化能力好。在今后的研究中計劃尋找一種優(yōu)化算法對模型的超參數(shù)進(jìn)行自動尋優(yōu)而不是通過經(jīng)驗(yàn)手動調(diào)節(jié),以提高工作效率,進(jìn)一步提高模型的性能。