金秀章,于 靜,劉 岳
(華北電力大學 控制與計算機工程學院,河北保定 071003)
隨著電力需求的不斷增長,火電廠所需總煤量增多,生成的氮氧化物增加。為了減少NOx的排放量,避免尿素溶液流量過大導致空氣預熱器堵塞,或尿素溶液流量過小造成氮氧化物排放超標,必須實時監(jiān)測氮氧化物的排放質量濃度[1-2],并對脫硝系統(tǒng)進行優(yōu)化控制,因此需要建立精度高的預測模型以滿足實時監(jiān)測氮氧化物排放濃度的要求[3]。
已有很多學者對預測模型的建立進行了研究。如高常樂等[4]采用長短期記憶(LSTM)模型對氮氧化物質量濃度進行預測,但LSTM只能處理少量量級,計算費時;秦天牧等[5]采用誤差反向傳播(BP)神經(jīng)網(wǎng)絡模型和支持向量機(SVM)模型,BP神經(jīng)網(wǎng)絡難以實現(xiàn)全局收斂,SVM模型因其選擇參數(shù)的復雜性降低了預測效率;方賢等[6-7]采用粒子群算法尋找最優(yōu)參數(shù)組合,其存在容易局部收斂和收斂精度較低的問題;廖永進等[8]采用徑向基神經(jīng)網(wǎng)絡(RBFNN)模型,其泛化能力強,可避免局部收斂,并且控制效果也得到了改善;董澤等[9]采用互信息的方法對變量進行篩選,相對于不進行延遲時間篩選的變量提高了預測模型的精度。
因此,筆者采用K-近鄰互信息算法對變量的延遲時間進行預估,根據(jù)確定的輸入變量和輸出變量建立RBFNN模型,采用人工魚群算法(AFSA)優(yōu)化RBFNN的參數(shù)。與粒子群算法相比,AFSA能夠克服局部最優(yōu)解的問題,還能加快運行速度;而RBFNN具有泛化能力強、克服規(guī)律不明的輸入和全局收斂的特點。結合AFSA和RBFNN算法建立預測模型,不但提高了預測精度,而且減少了運行時間。
RBFNN具有收斂速度快、克服局部收斂等特點[10]。處理后數(shù)據(jù)的維數(shù)決定網(wǎng)絡輸入層數(shù);輸入變量借助激活函數(shù)(徑向基函數(shù))從低維度線性不可分映射到高維度線性可分,從而確定網(wǎng)絡隱含層;將隱含層輸出通過權值向量與輸出層輸出形成關系。圖1是RBFNN結構圖。
RBFNN隱含層的激活函數(shù)φi(x)采用:
(1)
圖1 RBFNN結構圖
式中:Xi為輸入樣本;ci為隱含層第i個神經(jīng)元的中心向量;di為隱含層第i個神經(jīng)元的方差。
輸出y′為:
(2)
式中:wi為隱含層第i個神經(jīng)元與輸出層的權值向量;h為隱含層節(jié)點個數(shù)。
RBFNN訓練可通過搜尋最優(yōu)參數(shù)來提高預測模型精度。針對基函數(shù)的中心向量、隱含層神經(jīng)元的寬度向量以及連接隱含層與輸出層的權值向量[10]3個參數(shù)進行如下界定。
(1) 基函數(shù)中心向量表達式為:
(3)
式中:Ni為第i組樣本總量;M為第i組元素總量;Xij為第i組第j個樣本。
(2) 隱含層神經(jīng)元的寬度di為:
(4)
式中:cmax為最大中心向量。
(3) 連接隱含層與輸出層的權值向量wi:
(5)
(4) 將初始的3個參數(shù)代入模型,若實際值與預測值的誤差未達到最低誤差,則需要將這3個參數(shù)進行更新:
(8)
式中:cji(t)為第t次迭代第j個隱含層神經(jīng)元對第i個輸入神經(jīng)元的中心向量;dji(t)為中心向量cjt(t)的寬度;wkj(t)為第t次迭代連接第j個隱含層神經(jīng)元與第k個輸出神經(jīng)元的權值向量;E為目標函數(shù);η和α為學習因子。
(5) 評價函數(shù)為:
(9)
(10)
具體的神經(jīng)網(wǎng)絡訓練步驟[11]如下:
(1) 歸一化訓練樣本,將上述參數(shù)初始化并設置η和α值。
(2) 計算神經(jīng)網(wǎng)絡的輸出。
(3) 根據(jù)式(9)判斷誤差是否小于設定值,若小于設定值則終止運行,否則按式(6)~式(8)重新更新參數(shù)值。
(4) 返回步驟(2)循環(huán)。
AFSA是通過模仿魚群的覓食行為、聚群行為、追尾行為和隨機行為實現(xiàn)全局尋優(yōu)[12]。假設在一個n維空間,存在N條人工魚,人工魚個體狀態(tài)為Q=(q1,q2,…,qn),在進行尋優(yōu)行為時需要確定人工魚的維數(shù)、人工魚的視野V、人工魚移動的最大步長s、最大嘗試次數(shù)T和擁擠度因子δ。根據(jù)上述參數(shù)執(zhí)行魚群的尋優(yōu)行為[13-14]。
(1) 覓食行為是一種人工魚在其視覺或者嗅覺允許的范圍內(nèi)趨向食物方向移動的行為,即在當前狀態(tài)下,若存在某一狀態(tài)Qj的目標函數(shù)小于當前狀態(tài)Qi:
Qj=Qi+V×rand()
(11)
則按照設定步長向這一狀態(tài)移動:
(12)
否則保持原狀態(tài)不變,在設定的視野范圍內(nèi)搜索狀態(tài)Qj,反復嘗試設定最大次數(shù),若仍未前進則執(zhí)行隨機行為。
(2) 聚群行為是一種在不擁擠情況下向鄰近人工魚移動的集體覓食行為,即在視野范圍內(nèi)搜尋鄰近人工魚的數(shù)量nf并計算中心位置Qc,若在不擁擠的情況下中心位置的目標函數(shù)小于原狀態(tài)的目標函數(shù),則按照設定步長向這一狀態(tài)移動:
(13)
式中:Yc為中心位置的目標函數(shù);Yi為當前位置的目標函數(shù)。
否則進行覓食行為。
(3) 追尾行為是一種追隨周圍鄰近人工魚最優(yōu)位置的行為,即當鄰近人工魚的目標函數(shù)小于當前位置的目標函數(shù)時,則向鄰近人工魚移動:
(14)
式中:Yj為鄰近人工魚的目標函數(shù)。
否則進行覓食行為。
(4) 隨機行為如下:
Qi(t+1)=Qi(t)+V×rand()
(15)
隱含層神經(jīng)元的寬度、中心向量以及連接隱含層與輸出層的權值向量決定了RBFNN模型的精度。利用AFSA對RBFNN的參數(shù)進行優(yōu)化,可以提高模型精度。圖2給出了AFSA-RBFNN預測模型流程圖。
圖2 AFSA-RBFNN預測模型流程圖
AFSA-RBFNN預測模型的具體步驟如下:(1)初始化人工魚群參數(shù),如迭代次數(shù)、種群規(guī)模等;確定網(wǎng)絡結構,初始化RBFNN需要優(yōu)化的參數(shù);(2)利用初始人工魚狀態(tài)調(diào)用目標函數(shù)計算出最優(yōu)人工魚狀態(tài),并將最優(yōu)目標函數(shù)值賦予公告牌;(3)通過上述4種行為更新各自人工魚狀態(tài),生成新的人工魚群;(4)更新所有人工魚個體,如果某人工魚個體的目標函數(shù)值優(yōu)于公告牌,則將該個體的目標函數(shù)值作為新的公告牌;(5)直到滿足終止條件,即滿足評價模型精度[15-16]的條件,輸出最優(yōu)人工魚群狀態(tài)由測試程序調(diào)用,否則返回步驟(3)。
選擇性催化還原(SCR)脫硝系統(tǒng)的氮氧化物濃度測點分為A、B兩側,由于其兩側變化趨勢類似,選取A側的運行數(shù)據(jù)進行研究,測得尿素溶液閥門開度、給煤量和送風量等13個影響入口NOx質量濃度的因素。模型輸入變量需要與輸出變量的相關性進行篩選,若選擇多個輸入變量會由于信息冗余導致模型精度下降,若輸入變量不足則不能完全反映對象特性,因此通過互信息[17-18]篩選出相關系數(shù)較大的5個因素:總風量、總煤量、尿素溶液開度、SCR入口煙氣含氧量以及SCR入口煙氣溫度。由于系統(tǒng)本身存在滯后,且影響SCR入口NOx質量濃度的因素較多,從而導致遲延,因此利用K-近鄰互信息算法[19]對系統(tǒng)遲延時間進行分析,對訓練樣本時間進行重構。各輸入變量與SCR入口NOx質量濃度的相關系數(shù)如表1所示。輸入變量遲延時間如表2所示。
依據(jù)上述新的訓練樣本相空間,采用隱含層為3層的RBFNN進行辨識,以總風量、總煤量、尿素溶液開度、SCR入口煙氣含氧量和SCR入口煙氣溫度作為輸入變量,SCR入口NOx質量濃度作為模型輸出變量,然后利用AFSA對RBF神經(jīng)網(wǎng)絡的參數(shù)進行優(yōu)化。預測模型具體結構[20]見圖3。
其中,X1(t)、X2(t)、X3(t)、X4(t)、X5(t)分別代表總風量、總煤量、尿素溶液開度、SCR入口煙氣含氧量和SCR入口煙氣溫度,Z-d為時間遲延,d1、d2、d3、d4、d5分別代表5個因素的遲延時間,d1=70 s,d2=62 s,d3=40 s,d4=0 s,d5=0.8 s,y(t)為此時SCR入口NOx質量濃度。
表1 各輸入變量與SCR入口NOx質量濃度的相關系數(shù)
表2 輸入變量遲延時間
圖3 AFSA-RBFNN模型結構圖
選取某電廠SCR脫硝系統(tǒng)的相關運行數(shù)據(jù),截取穩(wěn)態(tài)部分建立AFSA-RBFNN預測模型,總共7 500組數(shù)據(jù),前4 000組數(shù)據(jù)作為訓練集,后3 500組數(shù)據(jù)作為測試集,采樣周期Ts=5 s,總選取時間為10.4 h。AFSA的視野V=6,最大步長s=1.5,種群規(guī)模N=30,維度dim=21,迭代最大嘗試次數(shù)T=3,擁擠度因子δ=2。圖4給出了訓練集和測試集SCR入口NOx質量濃度的預測值和實際值曲線。由圖4可知,訓練集中,AFSA-RBFNN預測值基本與實際值重合,僅僅在樣本序列3 400~3 500存在較小偏差;測試集中,AFSA-RBFFNN預測值在800~900存在略微波動,其他序列的預測值與實際值曲線基本一致,即訓練集擬合和測試集預測的精度較高,表明此模型具備強學習和泛化能力。
(a) 訓練集
(b) 測試集
采用上述相同的數(shù)據(jù)集,分別建立RBFNN、PSO-RBFNN預測模型。各模型訓練集和測試集的預測值和實際值曲線如圖5和圖6所示。
(a) 訓練集
(b) 測試集
利用均方根誤差δRMSE和平均絕對百分比誤差δMAPE描述預測模型的精度,各模型精度比較如表3所示。
(a) 訓練集
(b) 測試集
模型訓練集測試集δRMSE/(mg·m-3) δMAPEδRMSE/(mg·m-3)δMAPE運行時間/sRBFNN1.253 40.009 91.248 00.009 8240.356PSO-RBFNN1.214 10.009 21.188 20.009 0112.241AFSA-RBFNN0.895 50.006 10.902 00.007 357.875
對比圖4(a)、圖5(a)和圖6(a)可以看出,由于數(shù)據(jù)集達到幾萬,單獨利用RBFNN模型對數(shù)據(jù)集進行學習造成學習能力下降,圖5(a)中實際值與預測值曲線在序列2 300~2 800有明顯的波動;而采用人工魚群算法和粒子群算法優(yōu)化網(wǎng)絡參數(shù)后,極大提高了其學習能力,圖4(a)和圖6(a)中實際值與預測值曲線基本無波動且基本吻合。
從圖4(b)、圖5(b)和圖6(b)可以看出,由于粒子群算法優(yōu)化了RBFNN參數(shù),減弱了參數(shù)隨機性造成的模型精度的降低,PSO-RBFNN預測模型的穩(wěn)定程度明顯優(yōu)于RBFNN預測模型,并且RBFNN在500~600、2 200~2 300以及2 500~2 700范圍內(nèi)的預測精度相對較差,而AFSA-RBFNN預測模型的精度最高,其預測值與實際值之間基本無波動。
從表3可以看出,RBFNN預測模型的均方根誤差和平均絕對百分比誤差最大,由于需要利用循環(huán)程序尋找工具箱的最優(yōu)隱含層數(shù),RBFNN預測模型的運行時間最長,達到4 min;與RBFNN模型相比,PSO-RBFNN預測模型的訓練集和測試集的均方根誤差分別減小0.039 3 mg/m3和0.059 8 mg/m3,平均絕對百分比誤差分別減小0.000 7和0.000 8,測試時間減少128.115 s。PSO-RBFNN預測模型精度比RBFNN預測模型高;而AFSA-RBFNN預測模型訓練集和測試集的均方根誤差和平均絕對百分比誤差最小,運行時間最短,其訓練集的均方根誤差為0.895 5 mg/m3,測試集的均方根誤差為0.902 0 mg/m3,平均絕對百分比誤差分別為0.006 1和0.007 3,運行時間達到57.875 s。
綜上所述,AFSA-RBFNN預測模型的學習能力和泛化能力明顯優(yōu)于RBFNN預測模型和PSO-RBFNN預測模型。
(1) 采用AFSA優(yōu)化RBFNN參數(shù)可以提高預測模型精度;利用K-近鄰互信息算法確定遲延時間可以解決系統(tǒng)遲延性的問題。
(2) 與RBFNN和PSO-RBFNN預測模型相比,AFSA-RBFNN預測模型縮短了運行時間;且與PSO-RBFNN預測模型相比,AFSA-RBFNN預測模型克服了局部收斂的問題。
(3) AFSA-RBFNN預測模型在學習能力、泛化能力以及快速性方面都優(yōu)于其他幾種模型,為脫硝系統(tǒng)的動態(tài)特性分析和優(yōu)化控制奠定了基礎。