沈學利,楊 瑩,,秦鑫宇,,俞 輝
( 1.遼寧工程技術大學 軟件學院,遼寧 葫蘆島 125105;2.中國科學院 海西研究院 泉州裝備制造研究所,福建 泉州 362216)
近年來,風能作為一種可再生資源得到廣泛的發展和利用[1–2]。風力發電機通常被安裝在海上和偏遠的高海拔陸地地區,以獲得最大的風速和最小的利益沖突[3]。但是這些地區濕度高溫度低,風力發電機的葉片容易出現結冰現象,而葉片結冰會使葉片的氣動外形、結構性能及載荷發生改變,從而造成風機故障、安全隱患和經濟損失等問題[4]。因此,提高對葉片早期結冰故障診斷的能力尤為重要。
目前風機運行的實時數據主要通過數據采集與監控(Supervisory control and data acquisition,SCADA)系統進行存儲,基于SCADA數據的風機葉片結冰故障診斷方法得到了廣泛的研究[5]。
文獻[6]提出了一種基于Relief算法特征選擇和XGBoost算法的風機葉片結冰診斷方法。文獻[7]利用SCADA 數據中的風速和網側有功功率兩個變量,通過邏輯回歸分類器進行風機葉片結冰診斷。文獻[8]提出了一種結合Mini Batch K-means聚類算法與合成少數類過采樣法(Synthetic minority oversampling technique,SMOTE)來處理高度不平衡的SCADA數據,然后通過隨機森林方法來進行葉片結冰診斷的方法。以上方法采用經典機器學習方法作為診斷模型,由于SCADA 數據量大且信息復雜,上述方法往往無法有效利用這些數據,模型的性能優劣對特征選取的質量具有較高的依賴性。
近年來,深度學習算法因其在很多識別任務上表現出識別精度高且易于實現的優勢,吸引了大量專家學者對深度學習算法在風機葉片結冰故障診斷方面開展研究。文獻[9]提出一種基于SCADA數據的棧式自編碼器的風機葉片結冰診斷方法。文獻[10]提出一種基于深度神經網絡的方法來監測風力發電機葉片結冰情況,該模型主要基于風機SCADA監控系統的電力相關數據、風數據和溫度數據做出葉片結冰診斷。文獻[11]提出了一種基于卷積神經網絡的風機葉片結冰診斷系統,通過卷積神經網絡自適應地提取深層次特征。文獻[12]提出一種基于深度信念網絡的風機葉片積冰診斷方法。這些方法大多集中在對風機葉片結冰診斷模型的改進,很少有研究將重點放在風機數據特征選擇上面。雖然基于深度神經網絡的診斷模型可以充分利用選取的特征,但由于SCADA 監測數據具有數據量大、冗余度高等特點,這往往會增加模型的訓練復雜度,影響模型診斷的準確率和泛化能力。同時,隨著神經網絡層數的加深,網絡模型容易陷入局部最優。
針對以上問題,本文采用風機葉片結冰數據分析與XGBoost 算法相結合的方法進行特征選擇,并提出一種基于一維殘差神經網絡(1DRes-CNN)的風機葉片結冰診斷模型。該方法通過風機葉片結冰物理機制分析與數據可視化相結合的方法,對SCADA數據進行分析,生成有效表征葉片結冰的新特征;基于XGBoost算法進行特征選取,去除冗余特征;將選擇好的特征作為1DRes-CNN模型的輸入,該模型自適應地提取特征并做出葉片結冰診斷,減少了人為選擇特征的不足和傳統的特征提取方法所帶來的復雜性,同時,一維殘差塊的加入避免了神經網絡在信息傳遞時出現梯度消失從而陷入局部最優的問題。最終通過實驗使該方法的有效性和優越性得到了驗證。
本文使用的SCADA 數據集來源于國內北方某公司提供的WT A和WT B風機SCADA數據集。每條數據包含26 維特征,包括風機的運行參數、環境參數和狀態參數,SCADA 數據集的統計信息如表1所示。SCADA系統采樣間隔為7秒。此外,此監測變量中,風速、發動機轉速、網側有功功率、溫度等變量均經過人工加密處理,與真實數值不同,失去其原始物理意義,本文僅分析數據之間的相對關系,因此皆舍棄變量單位。

表1 原始SCADA數據
數據預處理包括數據標記、數據分割、數據平衡問題、數據歸一化。標記數據指根據風機正常和故障的時間范圍對數據進行標記,標記風葉正常數據為0,風葉結冰數據為1,同時刪除無效數據。此外,SCADA系統正常取樣時間間隔7秒左右,風葉結冰不是瞬時狀態,為減小噪聲數據的影響,每隔一分鐘對原始數據進行重新分割,取每組樣本數值的平均值作為新的樣本特征。針對數據類間不平衡問題,本文通過對結冰樣本進行SMOTE 過采樣,將結冰數據與正常數據比例設置約為1:1。SMOTE算法是基于隨機過采樣算法的一種改進,通過臨近樣本之間線性插值生成新的樣本,并將生成的新樣本加入原數據集,來改善原數據集類間不平衡問題,其實現過程簡單且易于實現,在減小過擬合可能性的同時避免了原信息的丟失,被廣泛用于不平衡數據集的處理中[13–15]。且SMOTE 過采樣過程與后續診斷模型訓練過程相互獨立,具有通用性,不影響后續不同診斷模型的測試結果。通過數據歸一化處理消除不同特征間數值的范圍差異,提高模型的學習效率。
單純依靠26維原始SCADA數據無法很好地識別結冰與未結冰數據,本研究基于風機葉片結冰物理機制和數據可視化分析補充相關特征,實現對早期葉片結冰更好的表征。
風機葉片結冰的原因包括環境因素和自身因素[16]。環境因素中最主要的影響因素為環境溫度,當環境溫度等于或者低于0°C 時,葉片接觸到潮濕的水汽,尤其是過冷卻水滴,當其撞擊到風機的葉片上時,水滴凍結造成葉片結冰現象[17]。同時,由于風機所處環境的特殊性,環境溫度容易隨時間發生較大的變化。這些變化將導致機艙溫度發生變化。因此,為了消除環境溫度變化的影響,環境溫度減去機艙溫度作為新的特征變量更容易區分風葉結冰與正常狀態,得到的新特征溫度差,記作tmps。如圖1所示。消除環境溫度之前,結冰數據和正常數據均勻分布在y=0的兩側,引入溫度差變量后,如圖2所示。正常數據分布在y=0兩側,結冰數據基本分布在y=0以下,新的特征變量較環境溫度變量更容易區分風葉結冰與正常狀態。

圖1 機艙溫度與環境溫度散點圖

圖2 機艙溫度與溫度差散點圖
風速和功率是葉片結冰預測的主要特征。風機的實際功率P如式(1)所示[18]:

式中:ρa——空氣密度;S——葉片掃風面積;CP——風能利用率;V——風速。
正常情況下,CP與風機的葉尖速比和翼型升阻比的比值相關,風機葉片覆冰會造成葉片翼型的空氣動力學結構改變,翼型升力減小,阻力增大,升阻比減小,最終使得風機的風能利用率下降[19]。因此,在風速一定的情況下,風機葉片結冰和P有明顯的對應關系,如式(2)所示:

風機葉片覆冰后風機葉片表面的粗糙程度以及風葉翼型的氣動外形發生改變,導致風機輸出功率降低,風速一定的情況下,輸出功率和風速的比值降低,如圖3所示。根據實際數據生成新的特征,能夠較好地表示葉片結冰狀態。新特征為功率/風速,記作power_wind_speed,公式如式(3)所示:

圖3 風速與功率散點圖

式中:power——功率;wind_speed——風速。
如圖3標識部分所示,已有的數據中觀察到風機接近或者達到額定功率后無結冰狀態,通過強規則過濾掉此部分數據。當葉片處于非結冰情況下,風機的功率會遵循風機正常運行情況下的風機輸出功率模型,當風機葉片發生結冰情況時,風機功率降低,偏離正常功率曲線,無法達到額定功率[20]。本文通過最小二乘法對風葉正常樣本進行擬合,得到風機正常功率曲線,最后通過該基線模型預測在給定風速的情況下風機的功率。數據集中所有的樣本得到對應風速下的預測功率與真實功率的偏離程度。新特征為預測功率與真實功率差值,記作powers,公式如(4)所示:

式中:Ppre——通過基線模型預測的功率,Ptrue——風機輸出的實際功率。圖4顯示了風機實際功率與基線模型預測功率數值的偏離程度,顯然結冰數據與基線模型有更大的偏差值。

圖4 功率基線模型
風力發電機葉片為三葉片形式,風機一般安裝完成后會根據嚴格的重量和力矩配平校準,使得葉片保持相對平衡的角度。由于結冰屬于不確定因素,每個葉片結冰程度不同,可能會造成葉片重量和力矩的不平衡。然而,如圖5所示。可視化所有未經過預處理的原始SCADA 數據,包括所有結冰數據和未結冰數據。風機3個葉片的槳距角和變槳速率數據分布相對一致,難以從中分辨結冰和不結冰的狀態,冗余特征容易造成訓練模型過擬合和增加模型訓練復雜度,因此將其均值作為新的特征。新特征為葉片平均槳距角和葉片平均變槳速率,分別記作mean_pitch_angle和mean_pitch_speed。

圖5 葉片槳距角和變槳速率數據分布
SCADA 數據中大量冗余特征影響模型構建性能,特征選擇的主要目的是實現精準降維,從而有效提高風機葉片結冰故障診斷性能。XGBoost[21]是在梯度提升決策樹(Gradient boosting decision tree,GBDT)上進行的優化,具有魯棒性強的優勢,充分考慮到了不同特征之間的關聯度,以及小方差的結冰敏感特征,所選特征更加適合深度神經網絡模型。為了提取最佳特征,本研究基于XGBoost 算法進行特征選擇。
XGBoost 是一個迭代殘差樹的集合,通過擬合新樹與前一顆樹的殘差,將目標函數最小化并且生成新的預測值,最終將每棵樹預測值相加得到最準確的預測值[22]。公式(5)為訓練過程的目標函數:

式中:yj——真實值;Yj——預測值;L(yj,Yj)——yj和Yj之間的平方差損失函數;Ω(fj)——正則項,(其中γ表示收縮系數,用于控制樹的生成;T為葉子的數量;λ為L2范式的系數;ω為葉子權重)。
另外,XGBoost 同時對損失函數進行了2 階導數的計算,將原優化問題轉化為凸優化問題,提高了預測分類精確度和收斂速度,最終的目標函數為:

式中:gj——損失函數L(?)的1 階導數,hj——損失函數L(?)的2階導數。
基于XGBoost 算法做特征選擇時,算法在構造增強樹設計過程中,通過獲得特征得分來表明每個特征對訓練模型的重要性[23]。當一個特征被更多的用于增強樹的關鍵決策,其得分就越高,據此得分來得到特征重要性排序。將經過預處理和特征補充的數據通過XGBoost 算法建模,得到數據的特征重要度,重要度為特征劃分樹結點的次數,每次劃分時通過貪心法選擇信息增益最大的特征作為分裂點,信息增益的計算公式如(7)所示:

基于XGBoost 特征選擇的結果在第5.3 節進行詳細的介紹和分析。
深度神經網絡可以從原始數據中自動提取深層次特征,消除人工特征選擇的不足。本文采用一維卷積層來捕獲數據信息流的局部序列特征,卷積層[24]通過卷積核在輸入數據進行滑動以提取其局部特征,將特征數據作為卷積層的輸入。因此,卷積層的操作如式(8)所示:

式中:f(?)——激活函數;bli——偏置項;wli——權重矩陣;xl-1——第l-1 層的輸出;xli——第l層的第i個特征。
同時一維殘差神經網絡(1DRes-CNN)加入殘差塊[25],每個殘差塊由兩層卷積層以特定的方式構成。
殘差塊的結構如圖6所示。

圖6 殘差塊結構
xl表示殘差塊的輸入,xl+1表示殘差塊的輸出。殘差神經網絡將輸入xl直接傳到輸出來擬合殘差映射函數,只學習輸入和輸出之間的殘差F1(xl),簡化了學習的目標。從而可以更好地發揮深層次的CNN強大的學習能力,在加深網絡層數以提高網絡效率的同時避免了網絡性能的衰減。
本文提出的1DRes-CNN,其結構如圖7所示。模型輸入為經過風機葉片結冰物理機制分析和XGBoost算法選取的特征,輸出為1或0,其中,1表示葉片結冰,0表示葉片正常。在該模型中,卷積核的大小設置為3*1,卷積核的數目為16。Dropout 層的作用是按照一定比例隨機丟棄一部分神經元和連接,該比例設置為0.25。由于葉片結冰診斷屬于二分類問題,故損失函數選擇交叉熵損失函數。

圖7 一維殘差神經網絡
本文提出的風機葉片結冰診斷流程如圖8所示。將采集到的SCADA 數據分為訓練數據和測試數據。在訓練階段,首先進行數據預處理,包括數據標記、數據分割、數據平衡問題、數據歸一化;然后基于風機葉片結冰物理機制和SCADA 數據可視化進行特征分析建立豐富的特征,并基于XGBoost 算法進行特征選取,挖掘出更好表征葉片結冰故障的特征數據;最后輸入1DRes-CNN 模型進行訓練,對模型參數調優。在測試階段,對測試集進行歸一化預處理,并選取特征,利用構建好的1DRes-CNN 模型進行風機葉片結冰診斷,并對模型的性能做出評估。

圖8 風葉結冰診斷流程
本文實驗使用的深度學習框架為Pytorch,編程語言為Python,CPU 為i7-9750H,操作系統為Windows。本文所采用的一維殘差神經網絡結構如圖7所示。損失函數為交叉熵函數,優化器為Adam,學習率設置為0.01,批次大小設置為500,迭代次數為100次,激活函數為ReLU。
本文通過留出法(hold-out)對WT A 數據進行劃分,其中:70%為訓練集,30%為驗證集。此外,由于不同的風電機組位于不同的地理位置,因此風機SCADA數據分布之間存在很大的偏差,將WT A和WTB 風機數據相互作為訓練集和驗證集進行實驗分析。將預處理和特征分析后的SCADA 數據經過XGBoost 進行特征選擇,將最終選取的數據作為模型的輸入。通過訓練集對模型進行訓練,然后通過驗證集進行性能測評,以檢驗該模型的綜合性能。
混淆矩陣通常用來評估分類模型的性能,表2為混淆矩陣的表現形式。

表2 混淆矩陣
基于混淆矩陣通過精確度(Precision)、準確度(Accuracy)、召回率(Recall)、F1值等來進一步評估分類模型,如式(9)所示:

式中:Precision——實際結冰占預測為結冰情況之比;Recall——預測為結冰與實際結冰情況之比;T1——對Precision和Recall進行整體評價;Accuracy——正確分類的情況與錯誤分類的情況之比。
將經過數據分析生成的特征與原始特征作為XGBoost 算法的輸入,以獲得不同特征重要度。XGBoost 算法的特征重要度排名如圖9所示。結果表明風葉結冰對補充特征預測功率與真實功率差值最敏感,補充特征功率/風速和環境機艙溫度差也是風葉結冰的重要特征,與基于風機葉片結冰物理機制分析的結果一致。外界的低溫環境是導致葉片結冰的最直接因素。同時,風機葉片結冰后可能會造成風機的氣動力學特性發生改變,從而造成風機轉速的變化,所以風機轉速與風葉結冰一定程度會有直接的對應關系。

圖9 基于XGBoost特征重要性排序
通過在驗證集上進行測試,將特征重要度從高往低依次排序后,隨后遞增用于建模的特征維度,同時比較分類準確度,準確度最高的維度作為XGBoost選擇的最佳特征維度。比較1DRes-CNN模型診斷的準確率,結果如圖10 所示。實驗結果表明,隨著XGBoost 中排名靠后的特征逐步剔除,分類的準確性逐步提高,這主要是因為消除了冗余特征,

圖10 特征數量與模型準確度關系
當選擇通過XGBoost 選取特征的前9 維特征時,模型準確率高達96.11%,當繼續剔除特征時,模型準確度有了明顯下降,表明剔除了有用特征。最終選取的9維特征如表3所示。實驗結果表明,本文應用的特征選擇的方法可以準確識別冗余特征。

表3 SCADA數據
為了驗證基于風機葉片結冰物理機制的特征分析和XGBoost 相結合的特征選擇方法在1DRes-CNN模型上的性能,分別使用原始特征以及方差選擇法[26]、互信息法[27]、卡方檢驗法[28]3 種經典特征選擇方法做對比。為了公平起見,將僅經過預處理階段的26 維原始特征和各特征選擇方法所得到的最優特征維度的訓練集分別置入1DRes-CNN 模型進行訓練,然后使用測試集對訓練好的模型性能進行評估,對比驗證本文提出方法的有效性。
模型對驗證集的預測結果如表4所示。結果表明,相較于其它3 種特征選擇方法,XGBoost 算法有較明顯的優勢,基于XGBoost 算法選擇的9 維特征用作診斷模型的輸入時,模型的診斷準確率達到96.11%,召回率高達92.87%,說明選擇9維特征時,模型對風葉結冰情況具有更高的識別率。其它特征選擇方法選取的最優特征維度均高于XGBoost,說明保留了較多的冗余特征,但識別精度卻沒有提高,而經過數據分析和XGBoost選取特征對葉片結冰具有更高的敏感性,1DRes-CNN模型可以更好地利用這些特征作出風葉結冰故障診斷。

表4 特征選擇方法性能對比
為了評估所提模型的診斷性能,本文分別采用3個機器學習模型對比分析,對比模型分別為:卷積神經網絡(Convolutional neural networks,CNN)、支持向量機(Support vector machine,SVM)和隨機森林(Random forest,RF)。為了公平起見,已對SVM 和RF 模型參數進行了優化,包括SVM 的懲罰系數、RBF 參數以及RF 中樹的最大深度和樹的數量。為防止深層卷積神經網絡發生過擬合,經過實驗選擇,將CNN隱藏層設置為3層,其中包括一層卷積層、兩層全連接層。
將最終經過XGBoost算法選取的9維特征作為4 個模型的輸入。表5顯示了在不同訓練模型上的結果。其中,1DRes-CNN模型對風葉結冰診斷效果最為突出,準確度和F1 值均達到了95%以上,說明模型對風葉結冰或風葉正常情況具有較好的識別率。雖然RF 精確度達到98%以上,召回率卻僅僅達到82.27%,說明模型對葉片結冰的識別率較低,顯然該模型不利于風葉結冰診斷任務。SVM 性能與CNN相似,然而SVM算法需要較長的計算時間,而風機的SCADA 數據量龐大,因此不適合選擇SVM作為診斷模型。較淺層的CNN相較于1DRes-CNN 模型,綜合性能均低于后者,說明CNN 不能很好地提取深層特征,進而也就不能很好地區分風葉結冰與正常情況。

表5 4種算法分類結果/(%)
通過對4 個模型的綜合性能分析對比,得知本文提出的基于XGBoost 特征選擇的1DRes-CNN 模型具有更好的整體診斷準確率。
由于不同的風電機組位于不同的地理位置,因此風機SCADA 數據分布之間存在很大的偏差。為了進一步驗證所提模型的泛化能力,分別將WT A和WT B相互作為訓練集和驗證集用于模型性能的評估。因驗證數據集具有嚴重的數據不均衡現象,故選取葉片結冰和葉片正常的正確識別率作為性能指標可以更直觀地表示模型的泛化能力。實驗結果如表6所示。

表6 葉片結冰與葉片正常識別率/(%)
基于1DRes-CNN 風葉結冰檢測模型在新的測試集上有較好的表現,葉片結冰的識別率可達到平均84%的水平。在實際生產生活中,由于不同的風電機受不同的地理位置和風機型號參數的影響,因此風機在運行參數和環境參數等方面存在很大的差異,造成了數據分布之間的偏差,在一定程度上影響了模型的診斷能力。以上驗證結果表明了1DRes-CNN模型具有良好的泛化能力。
本文提出了一種基于XGBoost 特征選擇和1DRes-CNN的風葉結冰診斷方法,通過實驗對比分析得出的結論如下:
(1)針對風機SCADA數據特征冗余問題,通過對風機結冰物理機制和SCADA 數據可視化的分析,并基于XGBoost特征選擇方法選取最優特征,相較于原始特征,1DRes-CNN具有更高的風葉結冰診斷準確率。
(2)利用一維卷積層自適應地提取特征并做出葉片結冰診斷,加入殘差塊加深網絡層次的同時解決網絡優化的過程中存在的梯度消失和梯度爆炸問題,與其它3個機器學習算法相比,該模型具有更高的綜合性能。
(3)模型具有較好的泛化能力,在不同風機的風葉結冰診斷任務中,模型的風葉結冰識別率超過80%。
本文基于風機SCADA 數據對風機葉片結冰做出診斷,但未將業內優秀風機專家的經驗融入診斷模型當中,未來可考慮借助已有經驗,進一步增強模型的診斷性能和泛化能力。