孫海蓉,曹瑤佳,張雨晴
(1.華北電力大學控制與計算機工程學院,河北 保定 071003;2.華北電力大學河北省發電過程仿真與優化控制技術創新中心,河北 保定 071003)
隨著風電機組運行時間的增加,機組運行狀態逐步趨于劣化,風電場運行及維護費用顯著增加[1?2]。風電機組故障診斷對降低風電機組維護檢修頻率,保障風電機組安全、穩定運行和提升風電場經濟效益具有重要意義[3]。
目前,風電場主要依靠數據采集與監視控制(Supervisory Control and Date Acquisition,SCADA)系統采集和記錄風電機組的運行數據,因此基于SCA?DA 數據的風電機組故障研究受到了國內外學者的廣泛關注。文獻[4?5]在SCADA 數據基礎上引入自適應神經模糊推理系統,通過預測誤差和專家經驗實現風電機組故障狀態檢測及故障類型分析。文獻[6]針對SCADA 系統中歷史數據缺失導致模型存在誤差的問題,基于互信息理論并結合最大相關最小冗余的原則挖掘特征之間的聯系,進行功率數據補齊,并通過相關向量機模型驗證了方法的有效性。文獻[7]采用核密度?均值法及ReliefF 算法進行偏航齒輪箱運行工況特征選取,基于誤差反向傳播(Back Propagation,BP)神經網絡實現了風機偏航齒輪箱的故障類型診斷。文獻[8]使用隨機森林進行特征選擇,采用網格搜索和交叉驗證對極端梯度提升模型進行優化,提升風機故障診斷準確率。文獻[9]基于多維縮放方式進行數據降維,降維后數據作為輸入量,搭建隨機森林模型進行風機軸承故障診斷識別,其識別的平均準確率提升5%。在SCADA 系統數據中,故障數據只占有少部分比重,即正常運行數據數量遠大于故障數據數量。因此,SCADA 數據集是不平衡數據集。上述文獻在數據優化過程中未考慮故障數據占比小的特點,直接利用SCADA 數據進行后續研究,忽視了故障數據的高度不平衡性對模型參數造成的影響,進而降低了模型精度。
為進一步提高風電機組故障診斷準確率,提出一種基于WKFCM?SMOTE和隨機森林算法的故障診斷方法。首先依據隨機森林袋外數據進行特征重要性排序,通過基于加權模糊核C 均值(Weighted Kernel Fuzzy C?means,WKFCM)改進的合成少數類過采樣技術(Synthetic Minority Oversampling Technique,SMOTE)算法進行基于故障數據聚類中心的數據集擴充,降低數據集的不平衡度,而后搭建隨機森林故障診斷模型,將網格搜索應用于隨機森林模型的參數優化中,提升模型精度,保證風電機組故障診斷的準確性。
SCADA 系統采集和記錄風電機組運行過程中外部環境和風機主要部件運行狀態的數據信息,包括風速、風向、環境溫度、功率、發電機轉速、電壓、電流、齒輪箱軸溫度、齒箱油溫和電機軸承溫度等。考慮到實際數據記錄過程中存在大量干擾數據,在模型研究時有必要進行數據預處理,提高模型精度[10]。
風電機組運行狀態如圖1 所示,主要分為:待啟動區、最大風能捕獲區、恒功率運行區和停機[11]。數據預處理,剔除待啟動階段數據、停機階段數據以及有功功率小于0的數據。此外,SCADA 系統對傳感器采集數據直接記錄,各監測量之間存在較大的量綱差別,因此還須進行歸一化處理。

圖1 機組運行階段
SCADA 系統采集記錄的數據除與故障有關特征數據外,還包括大量無關特征數據和冗余數據,依據專家經驗方法進行特征數據選擇極易造成有關數據的缺失。使用隨機森林(Random Forest,RF)算法進行數據特征的重要性排序,提升數據質量,可有效避免專家經驗下數據選擇帶來的局限性。
隨機森林利用Bagging 思想進行隨機抽樣,抽取2/3 的樣本集數據作為訓練集,剩余1/3 的樣本數據構成隨機森林的袋外數據[12]。假設隨機森林由n棵決策樹組成,其中每棵決策樹的袋外數據誤差值為es(s=1,2,...,n),通過對袋外數據加入噪聲干擾,得到新的袋外誤差值e′s,將其與原始誤差值進行比較,進行特征的重要程度判斷,并使用平均精度下降指標IMDA進行特征重要性評價。若加入噪聲干擾后,袋外誤差值有較大幅度增加,則證明該特征重要程度較高。IMDA的計算方法為

圖2 為系統特征中與風電機組運行功率關聯度較高的特征,將預處理數據按特征重要性進行排序,排序后的數據作為輸入,進行基于隨機森林算法的故障診斷。

圖2 相關特征重要性排序
圖3 為數據特征維度與故障診斷準確率曲線。由圖3 可知,隨著非重要特征的剔除,準確率逐漸升高,當特征維度為[7,10],具有較高的準確率。而隨著特征維度的再次降低,準確率逐漸下降。因此,選取模型輸入參數特征維度為7,包含轉子轉速、風速、發電機轉速、電機軸承B 溫度、葉片角度、齒輪箱軸1溫度和齒輪箱軸2溫度。

圖3 特征數量-診斷準確率曲線
傳統的模糊C 均值(Fuzzy C?means,FCM)算法是一種無監督模糊聚類算法,其主要思想為構造一個帶約束的非線性規劃函數,通過迭代實現聚類中心和隸屬度矩陣的更新,求解目標函數的最小值,實現數據的聚類[13]。FCM 算法通常應用于低維數據的聚類分析中。
加權模糊核C 均值(Weighted Kernel Fuzzy C?means,WKFCM)算法是在FCM 算法的基礎上,引入核函數思想,并對特征屬性數據進行加權,通過構造一個加權矩陣,實現特征屬性對不同特征重要程度的動態調整[14?15],提高聚類中心的精確度。
WKFCM算法的目標函數為

式中:N為數據集樣本數;C為聚類數;L為樣本數據維度;xj=(xj1,xj2,…xjL)為第j個樣本數據;vi=(vi1,vi2,…viL)為第i個聚類中心;uij為第j個樣本對第i個聚類中心的隸屬度;wik為第i個聚類中心的第k個特征的權值;m、β為模糊指數和權重指數。
Φ為低維到高維的非線性映射函數:

式中:K為核函數,本模型采用的核函數為高斯核函數為高斯參數,特別地,K(x,x)=1。則目標函數可化簡為

使用拉格朗日乘數法對隸屬度矩陣U和權值W進行求解,可得其迭代公式為:

式中:r、t分別為在i、j、k為定值時對聚類數C和樣本維度L的遍歷。
設目標函數收斂閾值為ε,若則算法停止迭代,此時聚類中心V和隸屬度矩陣U均為最優值。
SMOTE 算法是一種基于隨機過采樣算法的改進算法,基本思想為人工增加少數類數據,從而達到平衡樣本數據、改善算法性能的目的[16]。SMOTE 算法基于已有的少數類數據,進行少數類數據點及其鄰近數據點之間的線性插值,增加少數類數據的數量,實現少數類數據集的擴充。其插值為

式中:Yi為最近鄰數據中第i個數據點,Yi=(1,2,…,M),M為最近鄰數據中少數類樣本的個數;r為0~1之間的隨機數;X為少數類數據。
基于WKFCM 改進的SMOTE 算法使用WKFCM算法的聚類中心替代SMOTE 算法中的隨機數據點,保證插值數據類別的精準度。具體實現步驟如下。
1)WKFCM 算法聚類并計算聚類中心。選擇原始數據中的少數類數據,WKFCM 算法進行聚類并計算聚類中心。將少數類數據分為C個聚類,聚類中心分別為{c1,c2,…,cC} 。
2)數據插值。與原始數據點相比,聚類中心能更好地表示數據的特性,使用聚類中心進行插值計算可以有效降低數據點的偏向性,保證數據集的平衡。新的插值Xn′ew為

3)不平衡度判斷。新生成插值數據并入少數類中,判斷數據整體是否滿足預設的不平衡度(少數類數據與多數類數據的比值),若不滿足,返回步驟2),繼續進行數據插值。
風電機組運行數據中故障數據占比較少,模型診斷結果易向多數類數據即正常運行結果傾斜。WKFCM?SMOTE 算法,通過基于聚類中心的人工數據插值方式,改善隨機樣本點插值造成的數據邊界模糊問題,降低數據集的不平衡度,有效解決了后續模型診斷過程中存在的診斷結果傾斜的問題。再將WKFCM?SMOTE 算法與RF 算法組合,能夠更好地解決故障診斷結果不精確的問題。
基于WKFCM?SMOTE算法結合隨機森林算法的故障診斷模型主要有3個階段,即對處理后數據進行特征選擇、數據聚類分析及插值和基于隨機森林算法的故障診斷。組合模型流程如圖4所示,算法步驟如下:

圖4 WKFCM?SOMTE?RF 組合算法框架
1)數據預處理,進行SCADA 數據篩選,剔除待啟動階段數據、停機階段數據及異常運行數據,進行數據的歸一化處理;
2)基于隨機森林的袋外數據進行特征重要性排序,實現數據的降維處理,降低后續模型復雜度;
3)WKFCM 算法計算數據聚類中心,SMOTE 算法基于聚類中心進行少數類數據插值,并進行數據集不均衡度判斷;
4)基于網格搜索算法進行隨機森林模型參數優化,提升隨機森林模型計算結果的準確率;
5)進行模型驗證,通過模型評價指標驗證模型準確性。
本文數據源自華北某風電場SCADA 系統采集記錄的1.5 MW機組2號風機2018年5月15日至5月17 日的運行數據,已知機組在5 月16 日13:21 發生故障并進行停機維修。經數據處理后共有數據3 109條,包含機組正常運行狀態和故障狀態。
使用網格搜索算法和K折交叉驗證進行模型的參數尋優。K折交叉驗證將數據集劃分為K份,輪流取其中的1 份作為測試集,剩余數據作為訓練集進行參數優化,重復K次至樣本中每個數據均在測試集中出現一次[17],本模型取K值為5。為減少網格搜索算法所用時間,提升參數準確性,首先進行隨機森林模型參數取值范圍的粗調,通過逐漸縮小參數取值范圍、降低搜索步長的方式確定模型參數。隨機森林參數取值如表1所示。

表1 隨機森林參數取值
對于二分類問題而言,判別結果分為TP、FP、TN、FN共4種情況。二分類的混淆矩陣如表2所示。

表2 二分類混淆矩陣
本文選擇準確率A、精確率P、召回率R、F1值來衡量不同模型算法性能,同時選取接受者操作特性(Receiver Operating Characteristic,ROC)曲線和AAUC完善二分類評價指標。準確率A指分類正確樣本占全部樣本的比例;精確率P指預測為正類樣本中真正的正類所占的比例;召回率R指所有正類中被預測為正類的比例;F1值兼顧精確率和召回率;ROC 曲線以假陽性率為橫坐標、真陽性率為縱坐標,曲線越接近左上角的點,模型效果越好;AAUC指ROC 曲線覆蓋區域面積。

處理后的數據,分別進行基于FCM、KFCM 和WKFCM 算法的聚類中心計算。聚類算法評價指標對比如表3所示,各模型評價指標對比與表4所示。

表3 聚類算法準確率

表4 模型評價指標
從表3 中可知,3 種聚類算法均需較長運行時間,其中WKFCM 算法耗時最長,但WKFCM 聚類算法的正確率明顯高于FCM 和KFCM 算法,說明其聚類中心對范圍內數據具有更好的代表性。
表4 中RF 表示未插值數據直接作為模型輸入搭建的故障診斷模型,FCM?SMOTE?RF、KFCM?SMOTE?RF、WKFCM?SMOTE?RF 分別表示FCM?SMOTE、KFCM?SMOTE、WKFCM?SMOTE 數據插值與隨機森林算法相結合的數據模型。由表4 可知,插值數據模型A值、AAUC值及F1值均明顯高于未插值數據模型,其中WKFCM?SMOTE?RF 模型的A值、AAUC值、F1值均為最高,分類準確率A比FCM?SMOTE?RF、KFCM?SMOTE?RF 模型提高了4%~5%,F1值提高了1%,AAUC值達到了0.979,表明基于WKFCM?SMOTE 和隨機森林的風電機組故障診斷模型提高了故障診斷準確率,驗證了其在風電機組故障診斷中的優越性。
為驗證模型的有效性,建立基于邏輯回歸(Lo?gistic Regression,LR)算法的風電機組故障診斷模型進行對比試驗,使用相同數據集進行模型測試,兩種模型的評價指標對比如表5 所示,ROC 曲線對比如圖5所示。

圖5 對比模型ROC曲線

表5 對比模型評價指標
由表5 和圖5 可知,在風電機組故障診斷中,WKFCM?SMOTE?RF 算法在A、P、R和F1等幾項重要指標值均超過LR 算法,且在ROC 曲線中LR 算法曲線基本處于模型曲線右下方,因此WKFCM?SMOTE?RF 模型比邏輯回歸模型對風電機組故障診斷更加準確。
提出基于WKFCM?SMOTE和隨機森林算法的風電機組故障診斷方法,隨機森林能夠有效進行特征選擇,消除冗余特征的不良影響;WKFCM?SMOTE 算法進行少數類數據的擴充,改善SMOTE 算法模糊數據邊界的問題,保證數據的準確性,降低數據集的不平衡度;建立基于隨機森林的風電機組故障診斷模型,將網格搜索應用于隨機森林模型參數優化中,提升模型精度,滿足風電機組運行安全、穩定及高效的要求。試驗結果表明,基于WKFCM?SMOTE和隨機森林算法的模型具有較高的故障診斷準確率,證明了所提方法在風電機組故障診斷中的有效性。