張國興, 王世朋
(國能寧夏鴛鴦湖第一發(fā)電有限公司,寧夏 銀川 750011)
目前以煤炭為燃料的火力發(fā)電仍為我國發(fā)電的主要方式,而發(fā)電過程中氮氧化物(NOx)的排放又是大氣中的NOx污染的主要源頭之一[1]。為控制燃煤電廠發(fā)電過程中NOx的過量排放,減少大氣污染,我國大多數電廠采用的是氨催化的選擇性催化還原技術(SCR)對鍋爐燃燒煙氣進行脫硝,其效率可達90%以上。因鍋爐燃燒過程運行工況復雜,反應延遲較大,致使SCR入口NOx濃度無法準確即時地測量,導致SCR反應過程中因噴氨量少使得NOx無法完全反應或者氨逃逸的現(xiàn)象發(fā)生[2]。故建立精準高效的預測模型以滿足對NOx排放濃度的實時監(jiān)測具有重要意義。
模型預測精度好壞有多個影響因素,其中,建模方法的選擇是主要影響因素之一。近年來,人工智能的蓬勃發(fā)展使得神經網絡成為數據建模的重點,Li等[3]利用支持向量機(support vector machine, SVM)建立了NOx排放預測模型,實現(xiàn)了對氮氧化物排放的實時監(jiān)測;Fu等[4]利用長短期記憶網絡(long short-term memory, LSTM)建立了脫硫效率預測模型,預測精度較高。對模型進行超參數優(yōu)化,可以進一步提升模型的訓練效率和預測精度,單斌斌等[5]利用改進天牛須算法優(yōu)化極限學習機(extreme learning machine, ELM),加快了模型預測時間,提高了模型預測效率;李沁穎等[6]利用粒子群算法(particle swarm optimization, PSO)獲得滑模控制器的最優(yōu)參數,提高了控制器的響應和精度。
鍋爐燃燒系統(tǒng)具有大遲延,大慣性的特點,因此對模型輸入變量進行時延補償尤為必要。閆來清等[7]采用K近鄰互信息計算時延的方法對各輸入變量進行重構后再放入模型進行預測,提升了模型預測精度;唐振浩等[8]利用Pearson相關系數法對各輸入變量進行時延性分析重構,重構后的變量輸入模型后使得預測結果有了較大的提升;吳康洛等[9]采用最大互信息系數(maximal information coefficient, MIC)估計各變量遲延時間對數據進行重構,提升了模型的預測精度。Hong等[10]利用主成分分析法(principal components analysis, PCA)對變量進行降維重構,提高了模型效率,但破壞了數據本身的信息;劉岳等[11]利用索套算法(least absolute shrinkage and selection operator, LASSO)去除了輸入之間的冗余變量,精簡了模型結構,但沒有考慮輸入變量對原始變量的影響,Qiu等[12]利用經驗模態(tài)分解(empirical mode decomposition, EMD)對數據進行重構,提煉了數據深層的時域和頻域信息;謝麗蓉等[13]利用集合經驗模態(tài)分解(ensemble empirical mode decomposition, EEMD)將風功率信號分解后進行相空間重構,實現(xiàn)了特征優(yōu)化提高了預測精度。
本實驗采用互信息算法對各變量與輸出之間進行時延補償計算,再將加入時延補償的變量放入模型進行預測。同時,輸入變量的選擇也會直接影響到模型預測結果,此外還使用K近鄰算法對初始變量進行特征選擇,使用互信息變化率的原理,消除冗余變量的同時也考慮到了加入數據對原始數據的影響。但篩選出來的原始數據其中包含了較多的噪聲及非平穩(wěn)性較高的信息,通過變分模態(tài)分解并選擇最終輸入變量,最后采用BSO優(yōu)化后的RBF對NOx濃度進行預測。在此過程中,設計了一系列相關實驗,以驗證各環(huán)節(jié)的有效性。
K近鄰互信息(K-nearest neighbor-mutual information, KNN-MI)采用的是計算樣本之間的歐氏距離[14]。假設樣本輸入集D={x1,x2,…,xm},輸出為Y,其中xi=[xi1,xi2,…,xin]T,設Z為向量空間上面一點,Z=(xij,yj),其它點Z′到點Z的距離為:
I(x,y)=ψ(K)-〈ψ(nx+1)+ψ(ny+1)〉+ψ(n)
式中:K取值范圍2~6;ψ為伽馬函數;n為變量個數。
由低維K近鄰互信息類推到高維K近鄰互信息,式為:
I(x1,x2,…,xm,Y)=ψ(K)-<ψ(nx1)+ψ(nx1)
+…+ψ(ny)>+mψ(n)
式中:m為輸入變量維度。
變化率[15]式如下:
(1)
當一組變量中加入新的變量di后,如果di是不相關的,則變量的不確定性就會變大。因此,如果加入變量di是相關的,則K近鄰互信息變化率就會變小。由此可得,通過K近鄰互信息變化率可以對變量子集進行初步前向選擇,既考慮到了高維變量之間的互信息,又考慮到了加入新的變量后對初始變量的影響。所選出的變量子集有可能會存在某幾個變量之間冗余的情況,所以通過計算所選變量之間的一維互信息可以刪除冗余變量?;贙近鄰互信息變化率的雙向變量選擇(K-nearest neighbor mutual information change rate, KNN-MI-CR)步驟如下:
1)前向選擇。設置初始變量子集S,此時S為空集;計算輸入變量子集D內任一變量xi與輸出Y之間的一維互信息值,并由大到小排列,取互信息值最大的變量放入S集中,作為初始變量。
2)按照步驟1)中剩余輸入變量子集D的順序依次代入式(1)計算R(S+di,Y)的大小;設置閾值α=0.1,選取R<0.1所對應變量加入S集中。
3)重復步驟2),直至所有變量被選取完畢,形成初始變量子集S。
反向選擇:計算S集中任意2個變量之間的一維K近鄰互信息值,選取互信息值較大變量組合作為冗余組合,并以步驟1)中所計算的與輸出變量Y之間的互信息值為參照,刪除冗余變量,形成最優(yōu)變量子集S。
變分模態(tài)分解(variational mode decomposition,VMD)是一種完全非遞歸的信號處理方法[16]。VMD可以較好的抑制EMD存在的模態(tài)混疊問題,能夠有效地處理非平穩(wěn)、非線性序列。提前設置分解個數K,根據信號自身特性,VMD算法可以自適應地將信號分解為K個具有不同中心頻率的固有模態(tài)分量(intrinsic mode function, IMF)。VMD算法分解過程主要包含對變分約束問題的建模和求解2個部分,具體分解步驟詳見文獻[17]。
徑向基神經網絡(radial basis function, RBF)是一種具有單隱層的三層前向神經網絡,包括輸入層、隱含層和輸出層[18]。RBF神經網絡結構簡單,收斂效果好,能夠逼近任意非線性函數,具有逼近能力強,學習速度快的顯著優(yōu)點。其基本思想就是使用RBF作為隱含層單元的基構成隱藏層空間,進而對輸入矢量進行變換,將數據轉化到高維空間,使得線性不可分問題在高維空間線性可分。
2.4.1 天牛須搜索算法
天牛須搜索算法(beetle antennae search,BAS)是由Jiang等[19]在2017年提出的一種智能優(yōu)化算法,屬于啟發(fā)式算法的一種。該算法通過模擬自然界中天牛尋食這一現(xiàn)象,來達到快速搜索的目的,是一種單體搜索的算法,具有結構簡單、計算量少等優(yōu)點,在處理低維優(yōu)化目標時具有非常大的優(yōu)勢。
天牛須搜索算法具體步驟如下:
1) 初始化天牛。設置天牛初始質心位置為x,左須為xl,右須為xr,兩須之間的距離為d0,維度為k,步長為Nstep,算法迭代次數為n。由于天牛頭的朝向是隨機的,所以其初始方向為Dir。
Dir=rands(k,1)
式中:rands為k維隨機變量,數值在0~1之間。
2) 計算左右須位置。將方向歸一化后,通過式(2)計算左右兩須位置。
(2)
3) 更新天牛位置。計算天牛左右兩須的氣味感知強度,即計算左右兩須的適應度函數值,再將左右函數值的大小代入式(3)來更新天牛位置。
x=x-Nstep×Dir×sign(f(xl)-f(xr))
(3)
式中:f(xl)、f(xr)為天牛左右兩須的適應度函數值;sign為符號函數,用來表示值的正負。
4) 更新迭代。其中,天牛兩須之間的距離d0通過式(4)迭代更新,移動步長Nstep通過公式(5)迭代更新。
d0=Nstep/c
(4)
Nstept=λNstept-1
(5)
式中:c為固定值,取100;λ為衰減系數,通常取0.95。
5) 判斷是否到達迭代次數或滿足停止迭代要求,若沒有,繼續(xù)迭代直至結束。
2.4.2 基于天牛須改進的粒子群算法
天牛須算法會隨著迭代次數的增加,移動步長逐漸衰減,導致陷入局部最優(yōu)。將天牛須搜索算法與更突出群體的粒子群優(yōu)化算法相融合[20],提出了基于天牛須改進的粒子群算法(beetle swarm optimization,BSO)。BSO將每個粒子視為一只天牛,天牛群的初始位置和速度的生成過程與標準粒子群算法相同。在迭代過程中,天牛位置的更新增加了天牛須對氣味濃度感知的過程,通過比較左右兩須的氣味濃度即適應度函數值大小來更新天牛的位置。BSO有效克服了BAS中隨著迭代次數的增加導致步長逐漸減小從而陷入局部最優(yōu)的缺點,同時提高了算法整體的穩(wěn)定性。
BSO更新規(guī)則如下:
1) 天牛群速度更新規(guī)則。根據天牛須算法得到速度更新公式為:
v0=-Nstep×Dir×sign(f(xl)-f(xr))
將其融入粒子群算法的速度更新公式中得到天牛群算法的速度更新公式為:
v=w×v0+c1×r1×(pibest-x)+
c2×r2×(gbest-x)+c3×r3×v0
式中:w為慣性權重,變化規(guī)則為公式(6);c1、c2、c3為學習因子,均取1.2;r1、r2、r3為rand函數;pibest為當前位置個體最優(yōu)解;gbest為當前位置全局最優(yōu)解。
(6)
設置速度界限為±0.1,當速度超出邊界值時將速度校正為邊界值。
2) 天牛群位置更新規(guī)則。
xi+1=xi+vi+1
式中:xi+1為第(i+1)次迭代天牛位置;vi+1為第(i+1)次迭代天牛速度。
3) 天牛群步長更新。由于BAS算法迭代過程中步長的衰減系數是固定不變的,這會導致天牛在前期進行搜索迭代時因為步長過長而使得搜索精度降低,后期因為衰減較慢使得搜索效率變差。因此,提出一種動態(tài)衰減策略:
式中:Nstep0為初始步長,其大小通常與變量變化范圍相等。
BSO算法具體步驟如圖1所示。
圖1 BSO算法流程圖Fig.1 BSO algorithm flow chart
圖2 算法尋優(yōu)結果比較Fig.2 Comparison of algorithm optimization results
表1為算法尋優(yōu)結果及運行時間。
表1 尋優(yōu)結果Tab.1 Optimization result
由圖3和表1可知,BSO算法的收斂效果明顯優(yōu)于其它2個算法,且算法的穩(wěn)定性也較高。BSO算法將BAS的全局搜索能力和PSO算法的局部搜索能力相結合,使得算法整體上更加穩(wěn)定,性能也有明顯的提升。
圖3 K近鄰互信息值Fig.3 K-nearest neighbor mutual information value
建立預測模型具體流程如下:
1)通過機理分析選定11個初始相關變量,并利用互信息相關性對各變量進行時延補償。
2)使用K近鄰互信息變化率雙向選擇算法對加入時延的11個初始變量進行篩選,去除冗余變量,生成包含5個輸入變量的最優(yōu)子集。
3)利用VMD算法對變量子集進行分解,分解后的28個IMF分量再經過互信息計算與篩選,確定模型的最終輸入。
4)搭建RBF神經網絡,利用BSO優(yōu)化算法對神經網絡的超參數進行尋優(yōu),將數據代入模型中進行訓練和測試,得出最終結果。
模型采用的評價指標為SRMSE和R2。SRMSE為均方根誤差,表示預測值與真實值之間的標準偏差的大小,數值越小表明預測精度越高;R2為決定系數,表示預測值相對真實值的偏離程度,其數值越接近于1表明預測效果越好。將二者結合使用能夠更全面的評價預測模型的好壞,計算式如下:
本文選取某電廠所提供的現(xiàn)場數據共3 600組,采樣周期為5 s,總選取時間為5 h。其中前2 400組數據用來對模型進行訓練,后1 200組數據用來對模型進行測試,目的為驗證模型的預測精度。通過對NOx生成機理進行分析,初步選擇出11個輔助變量,包含:機組負荷、總煤量、給煤機電流、SCR入口煙氣含氧量、SCR入口煙氣溫度、總風量、鍋爐含氧量、尿素閥門開度、SCR入口煙氣流量、爐膛負壓、尿素流量。
由于鍋爐燃燒過程具有大遲延的特性,所以在現(xiàn)場運行過程中采集到的各個點位的相關數據與SCR入口NOx濃度實時數據存在一定的時間偏差,因此設計了一種基于最大互信息的時延計算方法[21]。根據經驗,鍋爐燃燒周期為10 min左右,所以將最大時延時間定為600 s。計算方式為固定SCR入口NOx濃度選取時間,將其余所有輔助變量分別向前一時刻移動,每移動一時刻就計算這個時刻輔助變量與NOx濃度之間的互信息值,選取相關性最大的一時刻作為時延補償,從而確定最終變量輸入序列。表2為各變量遲延時間表。
表2 各變量遲延時間Tab.2 Delay time for each variable s
3.1.1 基于K近鄰互信息變化率的雙向變量選擇
通過機理分析選擇出來的11個輔助變量之間有可能會存在冗余,而冗余變量輸入模型后對模型的預測精度有較差的影響,所以要對這11個初始變量利用KNN-MI-CR進行進一步篩選。將上述11個初始變量按順序貼上標簽,分別為:x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11。圖3(a)為一維K近鄰互信息計算結果圖,由此圖可知x3對應的一維K近鄰1.56互信息值最大。設置K近鄰互信息變化率閾值為0.1,按照2.1流程計算,最終得到初始變量子集S={x1、x2、x3、x4、x6、x7、x9}。圖3(b)為集合S內變量之間的K近鄰互信息較大的冗余變量組合的互信息,其值均較大,表明x6、x9和x2、x3之間存在冗余變量。根據圖3(a)所示:I(x6,y)>I(x9,y),I(x3,y)>I(x2,y),因此x2和x9為冗余變量,剔除之后得到最終輸入變量子集S={x1、x3、x4、x6、x7},即給煤機電流、總風量、鍋爐含氧量、負荷及SCR入口煙氣含氧量。
3.1.2 基于VMD分解的變量處理
經VMD分解后的信號存在多個IMF分量,而分量個數越多意味著表征高頻噪聲分量的IMF中真實噪聲占有比重就越大,所以確定合適的分解個數K能夠更好地對信號存在的噪聲進行分離。本文通過計算原始信號信噪比(signal noise ratio,SNR)[22]并與設定閾值相比較來確定分解個數K,SNR計算公式如下:
(7)
式中:f為不帶噪聲的原始信號,即原始信號與高頻IMF分量只差;f′為噪聲信號。
設置VMD分解算法中懲罰因子α=2 000,根據式(7)計算并選擇合適分解個數K。表3為子集S內各變量分解個數及分量選取結果。
表3 變量分解個數及分量選取結果Tab.3 Factorization number of variables
分解后得到28組IMF分量,計算各分量與輸出變量之間的互信息值,選擇互信息大于0.85的10組分量作為最終輸入變量。VMD分解后確定輸入變量的時域波形圖如圖4所示。
圖4 信號時域波形圖Fig.4 Signal time-domain waveform
3.2.1 不同特征選擇方法對預測結果的影響
為驗證基于KNN-MI-CR算法對變量篩選的優(yōu)劣性,現(xiàn)對11個初始變量利用最大相關最小冗余(max-relevance and min-redundancy, mRMR)[23]和隨機森林(random forest, RF)[24]這2種特征選擇的算法重新進行變量篩選,以對比3種不同方法之間的預測結果,實驗條件均相同,篩選變量個數均設置為5個。圖5為不同特征選擇算法下的預測結果散點圖。
圖5 不同特征選擇預測結果散點圖Fig.5 Different feature selection prediction results scatter plot
由圖5可知,經過KNN-MI-CR算法篩選后的模型輸入變量預測結果更加接近于真實值曲線,跳躍點較少,且各模型評價指標也均優(yōu)于其它2種算法,這表明使用KNN-MI-CR算法可以更好地選擇與輸出最相關變量以及剔除冗余變量。其中,不經過變量篩選的初始變量集代入模型后的預測結果相比于經過篩選變量后的明顯較差,模型評價指標均差于其它變量輸入預測結果,所以模型輸入變量的篩選可以有效地提高模型預測精度,同時可以縮減模型的計算時間。
3.2.2 時延分析對預測結果的影響
鍋爐燃燒系統(tǒng)是一個大遲延系統(tǒng),各變量之間的時間延遲對結果也會有一定程度的影響?,F(xiàn)將輸入變量固定,分別將考慮時延分析與不考慮時延分析的輸入變量放入同一個預測模型,得到結果如圖6 所示。結果表明,考慮時延分析后的輸入變量使得模型預測結果SRMSE降低了40.6%,R2提高了2.15%,可見考慮時延分析后的輸入變量增強了與輸出變量之間的相關性,對模型預測精度的提升有較大作用。
圖6 時延對比結果曲線圖Fig.6 Time delay comparison curve
3.2.3 變量處理對預測結果的影響
原始數據會存在一定的非平穩(wěn)性和噪聲量,利用VMD分解可以提取數據中的平穩(wěn)分量,去除噪聲。為了驗證VMD算法對模型預測的影響,現(xiàn)將變量分解前的輸入變量和VMD分解后的篩選變量放入同一模型內進行預測,隱含層神經元個數均設為輸入維度的1.5倍,其余條件均保持不變,預測結果圖及模型評價指標結果如圖7所示。由結果可知,VMD分解后的變量輸入模型后的預測結果優(yōu)于分解前,各評價指標也較好。表明VMD分解可將原始數據中非平穩(wěn)性較高的數據分解為多個平穩(wěn)分量以及噪聲分量,互信息算法再將非平穩(wěn)度較高和噪聲分量剔除,只保留了相關性較大的平穩(wěn)分量,有效地提升了模型的預測精度。
圖7 變量分解前后預測結果比較Fig.7 Comparison of prediction results before and after variable decomposition
3.2.4 不同尋優(yōu)算法對預測結果的影響
RBF神經網絡超參數包括:u、σ、w,不同尋優(yōu)算法獲得的模型參數精度不同,從而使得模型預測結果也是不同的?,F(xiàn)使用BAS算法、PSO算法、BSO算法作為尋優(yōu)算法分別對RBF神經網絡超參數進行尋優(yōu),其中,PSO與BSO種群規(guī)模均與輸入維度相等,RBF隱含層神經元個數為輸入維度的1.5倍,實驗結果如圖8所示。由圖8可知,BAS算法與PSO算法預測結果SRMSE相差不大,且R2僅相差0.000 1,BSO算法的預測結果優(yōu)于其余兩種算法。預測過程中,BAS算法多次預測時預測結果上下浮動變化較為明顯,這與其只有一個尋優(yōu)粒子使得其穩(wěn)定性較差有關。結果表明BSO算法在提高模型預測精度上要優(yōu)于BAS和PSO算法,且尋優(yōu)過程較為穩(wěn)定,多次預測依然保持較好效果。
圖8 不同尋優(yōu)算法預測結果對比Fig.8 Comparison of prediction results of different optimization algorithms
針對目前火力發(fā)電廠燃燒過程遲延較大,SCR入口NOx質量濃度難以準確測量的問題,提出了一種基于考慮時延補償后的變量選擇與分解和RBF神經網絡的預測模型。使用電廠數據進行仿真實驗,結果表明:
1) 考慮時延補償后的變量與輸出序列之間的相關性大大增強,將時延補償后的變量經KNN-MI-CR選擇后,有效去除了冗余變量,從而簡化了模型輸入,提高了模型訓練效率和精準度。
2) VMD分解后可以將數據中非平穩(wěn)性較高以及噪聲較大的分量分解出來,再使用互信息將其剔除,減小了數據復雜度,提升了輸入與輸出之間的相關性,有效地提高了模型預測精度。
BSO算法既有BAS算法的全局尋優(yōu)能力也同時具備了PSO算法局部尋優(yōu)能力,穩(wěn)定性較高,可以更加準確地對神經網絡超參數進行尋優(yōu),對模型訓練效率和精度的提升都有較好效果。