封之聰, 祝云, 高楓
(廣西電力系統最優化與節能技術重點實驗室(廣西大學), 南寧 530004)
火力發電是中國的主要發電方式之一,是由原料焚燒加熱水產生水蒸氣,產生的蒸汽驅動汽輪機轉動,再由汽輪機驅動發電機轉動以產生電能。影響火力發電效率的主要因素是鍋爐的燃燒效率[1],即燃料燃燒加熱水產生水蒸氣的過程。蒸汽量的準確測量,對于提升燃燒效率、提高汽輪機的經濟穩定運行具有重要的意義。通過建立蒸汽量預測模型,運用該模型模擬鍋爐的運行過程,優化運行參數;根據預測模型參數,提高火力發電的整體工藝水平;通過預測結果,實現對能耗的評估,為電廠的運行操作提供可行性建議。
目前直接測量蒸汽量的方法主要是通過流量孔板或噴嘴等標準節流裝置,但是使用節流裝置容易造成節流損失,從而影響機組的出力[2]。利用傳統的弗留格爾公式計算蒸汽流量存在著局限性,如使用弗留格爾公式的前提是通流面積是恒定的,但是在實際生產過程中由于機組負荷的變動或者結垢導致這一假設并不成立,從而造成計算蒸汽流量存在著較大的誤差[3]。文獻[4]改進了弗留格爾公式,但是依然受到結垢造成通流部分變化的影響,如果結垢存在,需要對誤差進行修正,計算過程較為復雜。文獻[5]首先利用粗糙集理論選出了影響蒸汽的特征變量,并利用最小二乘支持向量回歸算法對蒸汽流量進行了預測,但是該模型較為復雜,訓練時間長,不適用于在線監測。文獻[6]構建了RBF (radial basis function)神經網絡的蒸汽流量軟測量方法,取得了較好的預測效果,但該方法存在著全局尋優能力差、訓練時間長、容易過擬合等缺點。文獻[2]利用混沌搜索策略鯨魚優化算法(chaos adaptive whale optimization algorithm, CAWOA)優化了并行極限學習機(parallel extreme learning machine, PELM)模型,并構建了基于PELM的蒸汽流量預測模型,成功應用于某臺600 MW機組,雖然利用混沌搜索策略擺脫了局部最優的問題,但是在預測精度上卻得不到保證。
組合模型可以實現單一模型之間的優勢和缺陷互補,優化模型預測效果,提升模型預測精度。文獻[7]提出了一種蝙蝠算法(bat algorithm, BA)優化支持向量機(support vector machine, SVM)的短期風速組合預測方法,并通過實例仿真驗證了該方法可以有效地提高預測精度,減小誤差。文獻[8]構建了基于自回歸積分滑動平均模型(auto-regressive integrated moving-average model, ARIMA)和卡爾曼濾波(Kalman filter, KF)的船舶系統設備狀態參數組合預測模型,實例分析表明組合模型較單一的自回歸積分滑動平均模型在預測精度上有了較大提升。
因此,現采用組合預測的方法,把電廠的歷史運行數據作為輸入變量,分別輸入到寬度學習系統(broad learning system, BLS)和Lasso (least absolute shrinkage and selection operator)回歸模型中得出預測結果,然后通過最優加權法確定權重系數將得到的結果線性組合,得出最終的蒸汽量預測結果。擬通過組合模型,融合寬度學習系統和Lasso回歸模型兩個單一模型的優點,在提高模型訓練速度的同時,獲取精確度更高的蒸汽預測值。
在實際采集得到的工業數據當中,由于數據采集設備故障或者是人為操作失誤輸入,可能存在大量的缺失值以及異常值,這對模型的訓練產生了極大的影響,對最終的訓練結果起到了很大的干擾作用。因此,在訓練模型前需要對所獲得的數據進行清洗,以獲取更準確的預測值。本文所獲得的歷史運行數據當中存在著異常值,需要將數據的異常值剔除。如圖1所示,正常值和異常值主要通過數值的分布密度進行區分,當待測樣本落在密度大的區間為+1 class,反之則為-1 class。圖1中,+1 class為正常值,-1 class為異常值。

圖1 One-class 分類問題Fig.1 One-class classification problem
對于異常值的檢測,Scholkopf等[9]提出了One-class SVM (One-class support vector machines)算法。在數據維度很高或者數據分布情況不明的情況下,利用One-class SVM可以有效地檢測出異常值。該方法主要是通過一個超球體對異常值進行劃分,在特征空間內求取樣本的球形邊界,將一類問題轉換為二元分類問題。把樣本的特征屬性向量化,通過核函數映射到高維空間中,分布密度在高維空間內進行劃分,由此可以把正常值和異常值進行區分。
現有的核函數有徑向基函數RBF (radial basis function)、線性核等。RBF核函數相對于其他核函數來說,具有更寬的收斂域,能夠逼近任意的非線性函數,可以尋找數據間復雜的規律特性[10]。因此,采用徑向基核函數RBF:

(1)
式(1)中:k(·)為徑向基核函數;xi為樣本的數據點;yj為核函數的中心;i為第i個數據點;j為第j個核函數的中心;δ為帶寬。
(2)
式(2)中:n為樣本的數量;l為異常數據到分類超平面的距離;z為分類超平面的法向量;β為松弛變量;c為平滑因子。
構造拉格朗日函數對偶求解z和l,可得到決策函數為
g(x)=sgn[zk(x)]-l
(3)
式(3)中:sgn為階躍函數。對于任意輸入的樣本x,當g(x)≥0時,所輸入特征向量x屬于+1 class,為正常值,反之則為異常值,對于異常值直接剔除。
影響蒸汽量的因素很多,這些因素可分為外部因素和內部因素,外部因素包括燃料特性、環境溫度、設備結構特性等,內部因素則包括爐膛溫度、爐膛壓力、一二次給風量、鍋爐給水水量等[11]。外部因素是固定的,可以通過不斷調整內部因素來提高鍋爐燃燒效率從而產生穩定的蒸汽量。
特征選擇影響著模型的擬合程度和預測結果。選取的特征過多,會導致模型的學習能力過強,造成過擬合;選取的特征過少,則會導致模型的學習能力過差,造成欠擬合,預測的精度較低。因此,在訓練模型前需要選取對蒸汽影響較大的特征,以獲取更精準的預測值。針對影響蒸汽的各特征間的關系是非線性的,本文采用基于最大信息系數(maximal informationcoefficient, MIC)的特征選擇方法對特征進行選擇。
最大信息系數是由Reshef等[12]提出的,該方法是通過互信息和網格劃分來開展計算,可以有效地分析變量與特征之間的關系。定義存在變量H={h1,h2,…,hλ}和K={k1,k2,…,kλ},其中λ=1,2,…,m,m為樣本總數,集合D={(h1,k1),(h2,k2),…,(hλ,kλ)}為有限樣本對。首先定義劃分G把變量H和變量K分別劃分為h段和k段,G為h×k的網格。然后在劃分的每一種表格內對互信息I(H;K)進行計算,在相同的h×k內有很多種劃分網格的方式,選取最大的I(H;K)作為G的互信息。由此可以得到最大互信息
Im(H;K)=max[I(D|G)]
(4)
式(4)中:D|G表示數據D使用G進行劃分。在不同劃分下計算得到的最大互信息值組成了特征矩陣,特征矩陣I(D)x,y可以定義為

(5)
則最大信息系數為

(6)
式(6)中:B(m)為網格劃分h×k的上限值,文獻[13]指出當B(m)取m0.6時得到的結果最好。給定一個樣本數為M的特征集P={p1,p2,…,pM,e},其中e為類別。定義MIC(pi,pj)為特征pi和類別e間的相關性,MIC(pi,pj)的值越大說明兩者的相關性就越強,該特征就越應該保留;反之則說明相關特征pi較弱,需要對其進行刪除。對于任意的兩個特征pi和pj的冗余性定義為MIC(pi,pj),MIC(pi,pj)越大說明兩者的冗余性就越強,可替代性也就越強,需要把其中的一個特征變量進行剔除;反之,當MIC(pi,pj)=0時,說明兩者互不影響,都需要保留下來[14]。
Chen等[15]提出了寬度學習系統,相對于深度學習等相對復雜的模型,寬度學習系統沒有層間耦合,而且不需要使用梯度下降來更新權值,訓練時間遠優于它們,精度更高、計算消耗的資源更少,更適用于在線監測。文獻[16]提出了一種基于寬度學習系統的高效氣溫空間插值模型,該模型較深度學習和傳統空間插值方法具有更好的預測效果和時間損耗,驗證了寬度學習系統具有良好的預測性能。
寬度學習系統網絡結構圖如圖2所示,由輸入層、特征層、增強層和輸出層組成。輸入的數據集經過特征分析后,將所提取到的特征進行映射,形成了特征層。特征層的特征節點經過非線性變換后生成增強層,增強層包含著增強節點。特征節點和增強節點都輸出到輸出層。
由圖2可知,BLS的輸入層包括Nn組特征映射(每組包括Ng個特征節點)和Nm個增強節點,輸入矩陣X是由特征選擇出來的特征變量組成,第i組映射特征為

圖2 BLS網絡結構Fig.2 Network structure of broad learning system
Li=ω(XMhi+λhi),i=1,2,…,n
(7)
式(7)中:ω為映射函數;Mhi為權重矩陣;λhi為偏置項。第j個增強節點Zj是由前n個特征映射組合而成,Zj可表示為
Zj=μ(LMfj+λfj),j=1,2,…,m
(8)
式(8)中:L=[L1,L2,…,LNn];μ為映射函數;Mfj為權重矩陣;λfj為偏置項。將增強節點記作矩陣Z=[Z1,Z2,…,ZNn],最終的BLS模型可表示為
Y=[L1,L2,…,LNn|Z1,Z2,…,ZNn]W
=[L,Z]W
(9)
式(9)中:Y為模型的輸出,也就是蒸汽量的預測結果;W為各節點與輸出層之間的權重。把特征節點和增強節點所對應的矩陣記作Q=[L,Z]。
在模型訓練的過程中,權重矩陣Mhi和Mfj、偏置項λhi和λfj均不發生改變,故只需求解輸出權重W。因此,寬度學習系統的求解過程等價于求解線性系統Y=QW的最小二乘解,即

(10)
式(10)中:Q+為矩陣Q的Moore-Penrose廣義逆矩陣,也稱為偽逆矩陣。由此可見,寬度學習系統的訓練無需進行梯度下降,訓練耗時短、不易于陷入局部最優[17]。
Lasso回歸模型[18]不僅包含了嶺回歸的穩定性,最終的訓練結果還體現了子集選擇的可解釋性。Lasso回歸模型的核心思想是通過縮小變量集來達到壓縮估計,在訓練過程中,構造懲罰函數來壓縮輸入參數的系數,并將某些系數置零,使得整個子集縮小,從而簡化該模型擺脫過度擬合,該方法應用在數據預測、數據挖掘領域取得不錯的效果。
在一般的多元線性回歸模型中,各個數據的觀測值一般認為是彼此獨立的,模型中存在著大量的變量,變量越多模型就越復雜,訓練時就越容易陷入過度擬合。為了排除量綱的干擾,針對模型中存在的m組自變量Xi=(xi1,xi2,…,xim)和因變量Yi,Lasso回歸模型對所有自變量做了標準化變換,在誤差平方和最小的基礎上在目標函數后面加了1范數約束,其表達式可以表示為

(11)

采用最優加權組合的方法[20],把寬度學習系統和Lasso回歸模型組合蒸汽量預測模型。該方法在分別采用BLS模型和Lasso回歸模型得到各自蒸汽量預測的結果后,確定權重系數將兩者進行線性組合,得到最終的預測結果。
首先求取偏差矩陣A,即

(12)
式(12)中:M為樣本總數;a1t和a2t分別為BLS模型和Lasso回歸模型在t時刻蒸汽量的預測值和真實值的誤差。
然后通過拉格朗日乘子法可以求出最優權重,其表達式可以表示為

(13)
式(13)中:ω1和ω2分別是BLS模型和Lasso回歸模型的權重系數,它們之和為1;K=[1,1]T。
由此可以得到最終的蒸汽量預測模型

(14)
組合模型的預測流程圖如圖3所示,包括以下步驟。

圖3 組合模型預測流程圖Fig.3 Flow chart of combined model prediction
(1)劃分樣本數據。把樣本數據劃分為訓練集和測試集,訓練集用于訓練模型獲取參數,測試集用于實際的蒸汽量預測實驗。
(2)數據預處理。劃分訓練集、測試集后,利用One-class SVM算法對樣本數據進行異常值檢測,對于異常數據直接剔除。
(3)特征選擇。采用最大信息系數對樣本數據進行特征選擇,刪除冗余特征變量,形成輸入矩陣。
(4)設置超參數。采用網格搜索法獲取BLS模型和Lasso回歸模型的最優超參數,并用訓練集分別對兩種模型進行5折交叉驗證評估。
(5)模型獨立預測。在經過模型訓練和參數調優后,把測試集分別輸入Lasso回歸模型和BLS模型進行獨立預測。
(6)組合模型預測。利用最優加權組合法確定權重系數,將Lasso回歸模型和BLS模型的預測結果進行線性組合,得到最終的預測結果,并對所得結果進行分析評價。
本實例引自文獻[11],以某火電廠歷史運行數據作為實驗數據集,該數據集的采樣頻率為分鐘級別。數據集包含2 888個樣本數據,訓練前按8∶2的比例劃分為訓練集和測試集。
本文中采用的硬件平臺為Intel Core i7-8700 CPU和NVDIA GRID V100D-32Q GPU。軟件代碼采用Python語言實現,Lasso回歸模型調用sklearn庫,BLS模型則調用寬度學習包。
采用均方誤差EMSE和平均絕對誤差EMAE作為實驗的評價指標,表達式為

(15)

(16)

超參數的設置影響著BLS模型和Lasso回歸模型的訓練速度和預測精度,預測前通過設置超參數使模型獲取更好的性能。本文采用網格搜索法尋取兩種模型的最優超參數,并用5折交叉驗證對模型的性能進行評估[21],訓練過程中不斷優化參數,從而提高模型的泛化能力。
其中,BLS模型的最優超參數為:特征映射Nn為40組,特征節點Ng為10個,增強節點Nm為41個。Lasso回歸模型的調參系數h取0.001 5。
根據圖3預測流程,首先利用One-class SVM算法分別對訓練集和測試集進行了異常值的檢測,剔除了異常值后,訓練集和測試集分別包含2 160、540個正常數據。以特征鍋爐壓力為例,其異常值檢測結果如圖4所示,對于偏離密集點的數值直接剔除。

圖4 特征鍋爐壓力異常值處理Fig.4 Treatment of abnormal value of characteristic boiler pressure
剔除異常值后,采用最大信息系數進行特征選擇,選取了9個相關性最大的特征,如圖5所示,顏色越接近深紫色表示該特征的相關性越高。由圖5可以看出,鍋爐壓力、鍋爐溫度和燃料給量的相關性最大,相關系數都超過了0.5,其他相關性較大的特征依次是二次風給量、給水水量、一次風給量、過熱器溫度、爐膛壓力、爐膛溫度,把這9個特征作為網絡模型的輸入變量。

圖5 相關系數熱力圖Fig.5 Correlation coefficient thermodynamic diagram
經過數據預處理后,利用BLS模型和Lasso回歸模型的組合模型進行蒸汽量預測,并把組合模型的預測結果同真實值、單一模型的預測結果進行了比較,結果如圖6所示。由圖6可以看出,單一模型的誤差較大,LightGBM網絡和XGBoost網絡在谷值時偏離真實值比較大,BLS模型和Lasso回歸模型的變化趨勢則滯后于真實值。本文的組合模型更契合蒸汽量的變化趨勢,更為接近真實值,預測精度也更高,有效地緩解了單一模型在變化劇烈的峰值和谷值預測偏差較大的問題。

圖6 組合模型與單一模型的預測對比Fig.6 Prediction comparison between the first mock exam and the combined model
表1為不同網絡模型蒸汽量預測結果的誤差對比。可以看出,本文中所提出的BLS-Lasso組合模型相對于單一模型,具有更低的EMSE和EMAE,說明預測結果更接近真實值。

表1 不同預測模型的誤差對比Table 1 Error comparison of different prediction models
針對傳統蒸汽量測量方法精度不高的問題,提出了一種寬度學習系統和Lasso回歸模型組合模型的預測方法,與傳統方法相比有著以下優勢。
(1)利用One-class SVM算法檢測樣本數據的異常值,一定程度避免了因異常值對預測結果的影響。
(2)采用最大信息系數算法進行特征選擇,通過特征選擇為模型訓練增加了先驗知識,避免了模型訓練時因特征過多陷入過擬合或者特征過少發生欠擬合,導致預測精度下降。
(3)使用基于BLS-Lasso的組合模型進行預測,不僅提高了模型的訓練時間,也保證了預測的精度,適用于在線監測。
(4)該方法泛化能力好,在任意場景都可以使用,有一定的推廣價值。
通過建立蒸汽量預測模型,替代了直接測量的方法,減少了直接測量裝置所造成的節流損失,提高了機組的出力。與此同時,運用該預測模型實現鍋爐運行過程的模擬和驗證,實現能耗的評估,優化運行參數,提高汽輪機機組的經濟穩定運行,為電廠的操作運行提供可行性建議。本文對蒸汽量只進行了點預測,未來可以把該方法應用到分布預測或者區間預測。此外在特征選擇的時候只考慮了蒸汽量與特征的相關性,后續應該增加特征與特征之間的相關性分析。