冉浦東 范 磊 張 軍 張子凡 龐成鑫* 黃墀志
1(上海電力大學電子與信息工程學院 上海 201306) 2(國電南瑞南京控制系統有限公司 江蘇 南京 210000)
風電作為可再生的清潔能源越來越受到國家和社會的重視,我國的北方和沿海地區是風電場分布最密集的地區,在秋冬寒冷季節極易發生葉片覆冰現象[2]。風電機組在運行時出現葉片覆冰現象會使風機的發電量降低甚至停機而且葉片覆冰會縮短風機的使用壽命甚至導致葉片折斷或者風機倒塌[2]。風力發電機的故障檢測研究可以提高其運行可靠性,降低運維成本,這對于目前風電設備由于故障頻發所帶來的高昂的運維成本來說極具經濟價值[3]。本文提出的算法是一種以SVM模型作為基分類器的自適應提升算法(Adaptive Boosting,Adaboost),能夠有效地提升風力發電機葉片覆冰故障檢測準確率和模型的泛化能力。
支持向量機(SVM)是一種以統計學和結構風險最小化為理論基礎的機器學習經典方法[4],其核技巧是把低維樣本空間中線性不可分的問題使用核函數映射到高維空間,使其在高維空間中線性可分并尋求距離兩類樣本的最優分類超平面[5]。SVM對于非線性的分類問題有著非常好的分類效果,非常適合應用于風機葉片覆冰的檢測。在實際應用中效果也很好,對風機葉片覆冰檢測的準確率也很高,但是在對結冰數據的查全率方面還有提升的空間。
Adaboost算法是一種迭代算法,首先初始化樣本權重,使每一個樣本權重相同,使用樣本集訓練第一個基分類器模型,根據分類結果調整樣本的權重,被分類錯誤的樣本權值會增加,分類正確的樣本權值會降低,通過這樣的方式來聚焦于那些難分的樣本,使這些樣本在下一輪分類中更容易被分類正確[6-7]。經過多次迭代訓練生成多個差異化的基分類器,最終的學習結果取決于多個基分類器分類結果的策略組合,其目的是通過提升的方式使算法變得更精確[8]。正是由于這種機制使得Adaboost算法對于樣本中少數的離群點很敏感[9]。
風機葉片覆冰問題是典型的數據不平衡問題,常規的Adaboost-SVM算法在處理不平衡數據問題時可能會出現集成效率低、分類準確率下降等問題。出現上述問題的原因是:(1) 以基分類器的分類準確率作為該分類器的權值,會使得該模型的分類結果偏向于多數類,對少數類不利[10]。正確分類少數類樣本的分類規則及其特殊,其覆蓋率低,在訓練過程中可能會被忽略。(2) Adaboost算法對離群點敏感,而不平衡數據中少數類樣本的離群點對Adaboost算法影響更加嚴重,為了能正確分類離群點數據,會通過迭代生成多個準確率極低的分類器,影響Adaboost-SVM模型的集成效率,甚至降低算法的分類準確率。
Adaboost與SVM算法的結合與具體的模型訓練過程和公式參考文獻[11-14]。針對上述問題和風機葉片覆冰樣本數據的特點對常規Adaboost-SVM算法做出以下兩點改進:
(1) 首先使用線性核的SVM模型將部分未結冰數據和極少數結冰數據的離群點分類出來,再使用Adaboost-SVM算法對剩下部分數據進行進一步分類和提升。這樣不僅可以減少該算法的計算量,降低剩余數據的不平衡程度,也消除了部分離群數據對算法的影響。
(2) 常規Adaboost-SVM算法最后的結果是對各個SVM分類器的分類結果進行加權求和,權值就是各個分類器的分類準確率,現改為各個SVM分類器的分類結果,結冰數據乘以結冰數據的權值,未接冰數據乘以未接冰數據的權值。而這兩類權值的取值就是SVM分類器輸出的兩類數據的準確率。
算法流程如圖1所示。樣本數據經過數據預處理和特征選擇后先經過線性SVM模型進行初步篩選,線性SVM分類為未接冰類型的數據準確率高,可以直接作為最后的分類結果,而準確率低的結冰類型數據會再經過Adaboost-SVM模型進行更精確的分類。

圖1 算法流程
首先初始化結冰類型樣本的權重,將每個樣本初始權重設置為W1,所以樣本的權重之和為1。再將帶有權值W1的樣本進行訓練第1個SVM模型,通過網格搜索的方法對SVM模型的懲罰系數C和核變量σ進行優化,得到第一個SVM模型,計算樣本在第1個SVM模型的整體錯誤率e1,和整體準確率a1和結冰類型的準確率B1,未接冰數據準確率C1。根據分類器準確率a1更新樣本權重為W2。不斷循環上述步驟直道達到設置的迭代次數m。將各個SVM分類器的分類結果進行加權求和得出最后的分類結果。
(1)
式中:F(Xi)為第j個樣本的最終分類結果;Gi(Xi)為第j個樣本在第i個SVM模型中的分類結果,當Gi(Xi)為結冰時Ki=Bi,當Gi(Xi)為未結冰時Ki=Ci。
本文數據來源于2017年工業大數據創新競賽中的15號風機2個月時長和21號風機1個月時長的SCADA數據以及結冰時間段和未結冰時間段。對數據進行預處理:
(1) 去除其中無效數據、異常數據和重復數據。
(2) 根據結冰時間段和未結冰時間段將15號風機和21號風機所有數據分類并貼標簽,把結冰數據標為1,未結冰數據標為-1。
(3) 對結冰和未結冰數據按時間序列分別進行移動滑窗處理。
(4) 對所有特征都進行歸一化處理,降低不同量綱對分類結果的影響。
經過數據預處理過后,15號風機未結冰數據44 371組,結冰數據3 215組,21號風機未結冰數據22 711組,結冰數據1 432組。在15號風機數據的結冰數據中隨機抽取2 000個樣本在未結冰數據中隨機抽取2 000個樣本作為訓練集。15號風機其余數據作為測試集。21號風機數據作為測試集。
由于本文中每組數據都有27個特征量,部分特征與結冰結果關系不明顯,不少特征含有很多重復信息或者無效信息。為了減少這些信息對模型最終分類結果的影響,降低模型的計算開銷,本文使用遞歸消除(Recursive Feature Elimination)加交叉驗證的方法對訓練集數據的特征進行選擇,采用5折交叉驗證,將數據平均分成5份,其中4份作為訓練集,1份作為驗證集,輪換5次最終的特征數量與結冰與否的相關性得分取5次結果的平均值。
如圖2所示,特征數量為11個時,特征集與結冰與否的相關性達到最高,圖中的陰影部分表示在交叉驗證中出現的波動范圍。所以本文選擇在SVM模型中表現最好的11個特征來對模型進行訓練。特征重要性排名如圖3所示。

圖2 RFE最佳特征數

圖3 特征重要性排序
線性SVM模型用于初步篩選出樣本數據中的部分未結冰數據和極少數結冰數據的離群點,要保證被線性SVM模型分為未結冰類型的數據分類準確率高,且數據量盡可能大。使用訓練集數據對線性SVM模型進行訓練,模型的權值系數clss-weight={-1:1=1:X},表示模型中未接冰數據的權值是1,而結冰數據的權值是X,通過調節X的大小來調節模型的分類效果。使用驗證集數據對X取不同值的線性SVM模型的分類效果進行驗證,并選取最優的X取值。X的取值與被結冰類型數據的準確率和數據量的關系如圖4所示。

圖4 未結冰類型數據準確率和數據量
數據量隨著X的增大而減小,當X>6.5過后所有數據全被分模型分為結冰數據。分類準確率在X=4時達到最大。最終選擇X為4的模型作為初步篩選的線性SVM模型,X=4時未接冰數據準確率為99.672%,數據量為38.028%。
將訓練集中被線性SVM模型分類為結冰數據類型的樣本作為新的訓練集,訓練改進的Adaboost-SVM模型。利用驗證集數據對本文算法與常規Adaboost-SVM算法在不同迭代次數下模型整體分類準確率進行比較。如圖5所示,本文算法在集成效率和準確率方面優于常規的Adaboost-SVM算法。確定本文算法迭代次數m=55,常規Adaboost-SVM算法m=80。

圖5 迭代次數與準確率關系圖
在實際運行中風力發電機葉片結冰時長遠小于不結冰時長。這就要求我們在判斷模型預測和檢測有效標準時不能僅僅以整體的精確度作為唯一標準,要從精確度、查全率、查準率與F1等多方面進行評價。
使用測試集數據對本文算法,常規Adaboost-SVM算法和SVM算法進行測試比較,其結果如表1所示。表1中的算法在測試集都表現出了相當不錯的精確度,但是在查準率方面都普遍較低,這也符合不平衡數據的特征。

表1 4種分類算法的檢測結果對比
從檢測速度方面來看,本文算法由于要對數據進行前期篩選和部分數據的多次迭代,所以檢測時間大于SVM算法和Adaboost算法。但是相比于將所有數據都進行多次迭代的Adaboost-SVM算法來說,本文算法的運算速度有較大的優勢。而本文算法在精確度、查全率、查準率和F1度量方面相比于其他三種算法都有明顯的提升。尤其是結冰數據的查全率方面,在實際的風機葉片覆冰的故障檢測中,故障的查全率非常重要,因為一旦發生故障就會面臨嚴重的經濟損失和安全問題。
為了比較不同算法模型在風機葉片覆冰檢測中的效果,引入2017工業大數據競賽評分標準:
(2)
式中:S為模型檢測得分;α為結冰數據在總數據中所占的比例;β為未結冰數據在總數據中所占的比例;TP為真正例;TN為真反例;FP為假正例;FN為假反例。模型檢測得分S權衡了數據的不平衡性,能夠科學地評價各個算法模型對測試集的綜合檢測能力。本文模型和文獻[15-16]中的各種神經網絡算法模型得分對比如表2所示。

表2 算法模型評分對比
可以看出本文算法的模型檢測得分相比于文獻[15-16]中的各種神經網絡算法模型有明顯優勢的。
(1) 本文算法能夠有效地對風力發電機葉片覆冰故障進行檢測,相比SVM、Adaboost和Adaboost-SVM算法整體精確度,結冰故障的查全率和查準率更高。相比于CNN、LSTM等神經網絡算法有更高的綜合檢測能力,更加適應不平衡數據的分類問題。
(2) 本文提出的集成權值的變化有利于提升Adaboost算法在處理不平衡數據時的集成效率和準確率。
(3) 本文算法也存在一些不足,算法的檢測時間較SVM和Adaboost算法略長,算法在結冰數據的查準率方面仍有很大的提升空間,這將是我在接下來的研究中要解決的問題。
綜合來看本文方法對于風機葉片覆冰檢測問題具有較高的實用價值。