陳代俊,陳里里,李陽濤
(重慶交通大學機電與車輛工程學院,重慶市 南岸區 400074)
聯合循環發電是一種將燃氣輪機、蒸汽渦輪機和熱回收蒸汽發生器組合起來的發電方式,其具有熱效率高、污染低、自動化程度高等特點,聯合循環發電站已在我國多個地區建成并投入使用[1-4]。為了提高發電效率,保證電力系統能夠安全可靠地運行,研究如何有效利用相關影響因素來預測發電站滿負荷電力輸出具有十分重要的意義。
目前,有大量的學者采用機器學習的方法對發電站的電力輸出進行建模預測,但存在未充分挖掘特征信息或模型簡單導致的精度不高等問題。文獻[5]采用主成分分析(principle component analysis,KPCA)方法降低氣象因素維度,提取互不相關的綜合性評價指標,通過主成分分析法提取的特征建立多元線性回歸模型。文獻[6]采用線性回歸算法分析了各特征之間的相關性以及特征與發電量之間的相關性。文獻[7]采用模糊C均值聚類算法生成新的樣本,并構建支持向量機模型對發電量進行預測。文獻[8]利用與日發電量具有高相似度的歷史數據構建支持向量機模型對發電量進行預測。文獻[9]提出了基于深度信念網絡的短期發電量預測方法,并對真實的相關特征及歷史發電量進行了預測算例分析。文獻[10]基于改進神經網絡和能量守恒法的計算方法,利用遺傳算法優化相關參數,構建了發電量預測模型。文獻[11]采用K均值聚類算法對歷史數據進行聚類,并以逆向傳播(back propagation,BP)神經網絡為基礎,引入小波分析構建小波神經網絡,同時利用遺傳算法對網絡參數進行尋優,并以此構建了光伏電站發電量預測模型。文獻[12]采用多個神經網絡提取特征并進行特征融合以實現超短期風電功率預測。
本文針對上述方法未充分挖掘環境溫度、環境壓力和環境相對濕度等對電力輸出的影響以及電力輸出預測誤差大等問題,采用核主成分分析算法(kernel principle component analysis,KPCA)與極端梯度提升(extreme gradient boosting,XGBoost)算法特征重要性評分,充分分析各相關特征對電力輸出的單一和交叉影響,以XGBoost算法作為回歸模型對電力輸出進行預測。通過某聯合循環發電站收集的實際數據進行實驗,并與其他方法進行對比,驗證了本文所提方法的有效性。
KPCA算法主要是在主成分分析算法的基礎上加入核函數,能夠從數據集中挖掘出隱含的非線性特征間的非線性信息[13]。KPCA算法是采用核函數的方法將數據映射到高維特征空間中[14-15],從而有效地提取到低維空間中幾乎無法表達的非線性特征。
設n個m維數據樣本,建立數據樣本矩陣X’n×m,歸一化后得到樣本矩陣Xn×m。使用函數φ將樣本映射至高維特征空間RF,映射值為?(x1),?(x2),…,?(xn),并使用PCA算法得到協方差矩陣為
其特征方程為
式中:λ為協方差矩陣的特征值;v為特征向量。
由式(1)、(2)可得
式中αi=通常映射φ并不是顯式的,對于v的計算比較困難,因此引入核函數:
對于式(2),任意的k=1,2,…,n,則有
分別將式(1)、(3)與式(4)代入式(5)可得
式中:K為k對應的核矩陣,K=k(xi,xj);α=(α1,α2,…,αn)。通過式(6)求得特征值λ1≥λ2≥…λn及其對應特征向量α1,α2,…,αn。新樣本φ(xj)映射后得第j(j=1,2,…,p)維坐標為
式中αi已經規范化,αji是αi的第j個分量,規范化滿足:
具有核函數的KPCA算法能夠充分挖掘出原始數據中的交叉信息[16-17]。由于線性核函數只能解決線性可分問題,多項式核不適用于大數量級的情況且有較多的參數需要選擇,而徑向基函數核(radial basis function,RBF)能有效解決這些問題[18-19],因此本文選擇RBF作為KPCA的核函數。
RBF在計算過程中涉及到2個向量的歐式距離計算[17],本文采用的高斯核函數公式為
式中σ為可調參數,其作用是控制函數的作用范圍。
通過將不同個數的特征輸入KPCA,從而挖掘出多個組合特征。這些組合特征中,包含了絕大多數原始特征的有用信息,且去除了一部分噪聲信息。從這些組合特征中選取出對預測標簽具有較大影響因子的特征,能有效提高模型預測效果。
XGBoost算法是梯度提升樹(gradient boosting decision tree,GBDT)的一種改進模型,其基學習器可以選擇線性分類以及非線性的樹模型。XGBoost在GBDT的目標函數上加上正則項,減少了過擬合的可能性且加快了收斂速度[20]。目標函數如下:
式中:yi表示真實值;表示預測值;L(yi,)表示損失函數;Ω(f)表示正則項;γ代表樹進行分割的困難系數,用于控制樹的生成;T表示每一個葉子節點的個數;l表示L2正則化項的系數。
XGBoost的損失函數可以根據泰勒公式二階導數來對其進行展開,這樣其目標函數就會擁有一個更快的收斂速度和更高的準確性[21]。此時目標函數為
式中:Ij?{q(Xi)=j};hi表示損失函數的二階導數;gi表示損失函數的一階導數。XGBoost算法可以通過以下3種方式判斷所有特征的重要性[22]:
1)基于權重的特征重要性,即在所有樹中每一個特征被用來分裂數據的次數。
2)基于覆蓋的特征重要性,即在所有樹中每一個特征被用來分裂數據的次數,且統計有多少樣本點通過這個分裂點。
3)基于增益的特征重要性,即計算每一個特征分裂時平均損失的減少量。
本文基于增益的XGBoost特征重要性與前向選擇法提出了XGB-FS特征選擇算法。該算法基于XGBoost特征選擇重要性評分對所有特征進行排序,采用前向選擇法依次將特征輸入模型,采用訓練集的平均絕對誤差(mean absolute erro,MAE)作為評價指標,找到MAE值最小的最優特征子集。
本文提出的基于KPCA-XGB-FS的聯合發電站電力輸出預測方法流程如下:首先,對原始樣本的4個特征遍歷2個、3個和4個依次組合,通過KPCA算法對各組合的特征進行非線性信息提取,共生成了11個特征;其次,對所有的特征進行對數變換,使其更加滿足高斯分布;然后,基于XGB-FS特征選擇算法從原始的4個特征和生成的11個特征中選擇最優特征子集;最后,直接將最優特征子集輸入XGBoost模型進行訓練,構建聯合循環發電站電力輸出預測模型。在實際的應用場景中,輸入模型的環境相關特征可通過當地氣象局提前獲取,從而對未來的電力輸出進行預測。
本文實現電力輸出預測的方法是基于機器學習中的回歸算法。使用對燃氣輪機和蒸汽渦輪機負載造成影響的相關特征進行一系列的特征信息提取,然后通過提取的新特征建立電力輸出預測模型。具體方法的流程如圖1所示。

圖1 方法流程圖Fig.1 Flow chart of method
本文使用來自公開數據集網站UCI中的聯合循環發電站數據集來驗證所提方法的有效性。該循環發電站由2個燃氣輪機、1個蒸汽渦輪機和2個雙壓熱回收蒸汽發生器組成。燃氣輪機能夠產生電力并用它的廢氣余熱產生蒸汽,再通過蒸汽渦輪機產生額外的電力。實驗數據集由某聯合循環發電站在674 d滿載工作狀態下采集的9 568個數據樣本,輸入特征是每小時從傳感器接收的數據平均值,包括每小時平均環境溫度(ambient temperature,AT)、平均大氣壓強(atmospheric pressure,AP)、平均相對濕度(relative humidity,RH)和平均廢氣氣壓(V),預測目標為燃氣輪機和蒸汽渦輪機每小時凈電力輸出(electrical energy output,EP)。燃氣輪機負載對AT、AP和RH敏感,蒸汽渦輪機負載對V敏感。各特征和EP的平均值、方差、最小值和最大值如表1所示,AT、V、AP、RH均為連續型數值變量。隨機選取原始樣本數量的70%(6 697例)作為訓練集用以訓練KPCAXGB-FS模型,剩余的30%(2 871例)樣本作為測試集用以評價模型預測效果。

表1 各特征統計值Tab.1 Statistical values of each characteristic
為了衡量所建立模型對測試集的預測效果,本文使用平均絕對誤差(mean absolute error,MAE)、平均相對誤差(mean relative error,MRE)、均方根誤差(root mean squared error,RMSE)和平均絕對百分比誤差(mean absolute percentage error,MAPE) 4個評價指標計算模型預測值與真實值的誤差,從而對模型預測效果進行評估。4個評價指標分別表示如下:
式中:?i為模型預測值;yi為實際值;m為樣本數。
對原始數據中的AT、V、AP、RH特征進行不同的組合,然后采用KPCA對各組合的特征進行非線性降維,每一個組合生成一列新的特征。如圖2所示,從原始數據中使用11個不同特征的組合并基于KPCA提取11個融合了各特征信息的新特征。新特征融合了原有特征中重要的信息并且舍棄了原特征中的噪聲影響。

圖2 KPCA特征提取結果Fig.2 KPCA feature extraction results
將基于KPCA提取的11個新特征與原數據的4個特征通過XGBoost特征重要性評分得到每一個特征的重要性。如圖3所示,ATVAP、ATVRH、ATV 3個特征都表現出比原始特征更高的特征重要性評分。因此,本文提出的特征提取方法能有效提取出比原數據更為有效的特征?;贔S算法按照特征重要性評分的排序,從一個特征開始依次增加特征個數,分別計算訓練集不同特征個數下10倍交叉驗證的MAE平均值。如圖4所示,當特征個數為8時,訓練集10倍交叉驗證下的MAE值為2.422 4。MAE值越小,代表預測值與真實值之間的誤差越小,因此,ATVAP、ATVRH、ATV、ATAP、VAP、AT、V、AP共8個特征為挑選的最優特征子集。

圖3 特征重要性評分結果Fig.3 Feature importance score results

圖4 XGB-FS特征選擇結果Fig.4 XGB-FS feature selection results
為了闡明本文所提出的特征提取方法以及特征選擇方法的有效性,將本文的特征提取方法與未進行特征提取的方法及文獻[23]進行比較。未進行特征提取的方法使用原始4個特征作為XGBoost的輸入進行電力輸出預測。文獻[23]采用機器學習的Bagging方法并以MAE和RMSE作為評價指標獲得了較優的預測效果。
本文提出的方法與其余方法均采用MAE、RMSE、MAPE、ME 作為評價指標,各方法性能對比如表2所示,其中本文方法具有最低的誤差,MAE值為2.021,RMSE值為2.846,MAPE值為0.446%,ME值為-0.02。從表2各方法誤差結果來看,本文提出的基于KPCA算法的特征提取方法能夠有效提升模型預測效果,并且本文所提出的KPCA-XGB-FS方法較已有研究方法的MAE值和RMSE值分別降低了0.797和0.941。圖5為模型前100個樣本的預測值和真實值對比,通過圖5中真實值與模型預測值的對比及表2中的ME值得出本文所提出模型預測值整體性小于真實值。

表2 各方法性能Tab.2 Performance of each method

圖5 真實值與預測值對比Fig.5 Comparison of actual and predicted values
采用KPCA算法對電力預測相關數據進行了非線性特征組合與提取,得到了更多的組合特征;采用XGB-FS特征選擇方法篩選最佳特征子集并建立XGBoost聯合循環發電站電力輸出預測模型。所提方法能夠充分挖掘發電相關數據中的線性與非線性信息,去除數據噪聲,獲得較好的預測效果。為這項研究提供數據集的聯合循環發電站已經開始使用這種預測模型來預測第2天每小時的電力輸出,預測計算時該聯合循環發電站使用的是該州氣象研究所給出的第2天的溫度預報作為模型輸入。所提出的方法也可以使用發電站當地第2天的溫度預報作為模型輸入進行電力輸出預測。
在今后的工作中,將進一步研究如何更加精確地獲取未來時間的環境變量以完善預測模型的輸入,并對不同發電站更多的數據進一步研究。