靳志杰,霍志紅,許 昌,郭宏宇,周華建
(河海大學(xué) 能源與電氣學(xué)院,江蘇 南京 211100)
近年來(lái),風(fēng)電產(chǎn)業(yè)高速發(fā)展,隨著風(fēng)電裝機(jī)容量的增加,風(fēng)電裝備運(yùn)行安全保障和運(yùn)維成本增加愈發(fā)成為風(fēng)電行業(yè)的重要問(wèn)題。部分風(fēng)電場(chǎng)進(jìn)入運(yùn)營(yíng)中后期后,運(yùn)維成本不斷上漲,做好風(fēng)電機(jī)組運(yùn)行狀態(tài)預(yù)測(cè)和故障診斷能有效減小風(fēng)電機(jī)組故 障 率,提 升 風(fēng) 電 場(chǎng) 效 益[1],[2]。
目前,風(fēng)電機(jī)組的故障診斷主要分為基于解析模型和基于數(shù)據(jù)的故障診斷方法[3]。隨著機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,大量學(xué)者開(kāi)展了基于機(jī)組運(yùn)行數(shù)據(jù)的故障診斷研究。文獻(xiàn)[4]提出了一種基于風(fēng)電機(jī)組SCADA數(shù)據(jù)的軸承故障預(yù)警方法,通過(guò)相關(guān)性分析提取SCADA所記錄的軸承運(yùn)行相關(guān)特征數(shù)據(jù),使用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)軸承故障預(yù)警。文獻(xiàn)[5]利用FDA故障貢獻(xiàn)圖分析變槳系統(tǒng)故障強(qiáng)相關(guān)特征變量,進(jìn)而實(shí)現(xiàn)故障定位。文獻(xiàn)[6]對(duì)現(xiàn)有的各種支持向量機(jī)模型的特點(diǎn)進(jìn)行了系統(tǒng)分析,提出了包括標(biāo)準(zhǔn)型支持向量機(jī)、最小二乘支持向量機(jī)以及和其相關(guān)的混合模型對(duì)電機(jī)故障進(jìn)行診斷。文獻(xiàn)[7]采用極端梯度提升算法提取隱含特征信息,應(yīng)用支持向量機(jī)算法實(shí)現(xiàn)基于數(shù)據(jù)的故障診斷。以上研究中,故障診斷過(guò)程中的特征選取方式均影響模型性能,對(duì)風(fēng)電機(jī)組數(shù)據(jù)進(jìn)行初始特征選擇時(shí)多依賴人的先驗(yàn)知識(shí),在數(shù)據(jù)特征較多時(shí)無(wú)法完全排除人的主觀性影響。依靠相關(guān)性分析和主成分分析進(jìn)行特征變換只能處理具有線性關(guān)系的特征,存在新構(gòu)造特征向量可解釋性弱,降維后反而不利于模型訓(xùn)練的問(wèn)題[8]。所采用的淺層機(jī)器學(xué)習(xí)算法對(duì)復(fù)雜函數(shù)的表述能力不足,不同機(jī)器學(xué)習(xí)算法對(duì)不同型號(hào)風(fēng)電機(jī)組、不同部件的故障診斷性能差異較大。
針對(duì)基于數(shù)據(jù)的故障診斷方式中特征選擇過(guò)程存在主觀性及所采用傳統(tǒng)機(jī)器學(xué)習(xí)算法性能不佳的問(wèn)題,本文提出了一種基于特征選擇和XGBoost的風(fēng)電機(jī)組故障診斷方法。在該方法中,首先利用隨機(jī)森林的袋外估計(jì)功能對(duì)故障相關(guān)特征進(jìn)行重要性排序,并做特征選擇;然后采用網(wǎng)格搜索和交叉驗(yàn)證優(yōu)化的XGBoost算法進(jìn)行故障診斷。使用荷蘭某風(fēng)電場(chǎng)機(jī)組SCADA數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練和驗(yàn)證后發(fā)現(xiàn),該方法的運(yùn)算結(jié)果在精度上高于傳統(tǒng)機(jī)器學(xué)習(xí)方法的計(jì)算結(jié)果。
SCADA為風(fēng)電場(chǎng)運(yùn)營(yíng)商提供風(fēng)電機(jī)組各系統(tǒng)運(yùn)行狀態(tài)監(jiān)測(cè)信息,是風(fēng)電場(chǎng)運(yùn)行維護(hù)的主要支撐。其監(jiān)測(cè)內(nèi)容為風(fēng)資源和機(jī)組運(yùn)行狀態(tài),包括離散數(shù)據(jù)和連續(xù)數(shù)據(jù)兩類,具體監(jiān)測(cè)數(shù)據(jù)有風(fēng)速、風(fēng)向、有功功率、轉(zhuǎn)子轉(zhuǎn)速、各部件溫度等。以湖南某風(fēng)電場(chǎng)為例,其在2014年6月1日-2015年5月31日采集的部分監(jiān)測(cè)數(shù)據(jù)如表1所示。
表1 SCADA數(shù)據(jù)示例Table 1 Examples of SCADA data
對(duì)SCADA原始數(shù)據(jù)進(jìn)行初步篩選,剔除因傳感器故障、通訊故障等引起的不合理數(shù)據(jù)和明顯異常工況數(shù)據(jù)[9],減小異常數(shù)據(jù)對(duì)故障診斷模型訓(xùn)練和測(cè)試精度的影響。SCADA數(shù)據(jù)篩選之后,結(jié)合機(jī)組運(yùn)行狀態(tài)記錄對(duì)數(shù)據(jù)進(jìn)行狀態(tài)標(biāo)記。
風(fēng)電機(jī)組SCADA系統(tǒng)所采集數(shù)據(jù)種類眾多,其中包含與故障有關(guān)特征數(shù)據(jù)、無(wú)關(guān)特征數(shù)據(jù)和有關(guān)但冗余特征數(shù)據(jù),在面臨復(fù)雜故障時(shí),依靠專家的經(jīng)驗(yàn)和簡(jiǎn)單相關(guān)性分析進(jìn)行特征選擇工作已不能完全且準(zhǔn)確獲取與故障相關(guān)的重要特征,因此本文采用隨機(jī)森林(RF)的袋外估計(jì)對(duì)故障相關(guān)特征進(jìn)行重要性排序[10]。
RF是基于決策樹(shù)的組合分類器,可用來(lái)進(jìn)行特征選擇。RF使用Bagging方法從原樣本集中隨機(jī)且可重復(fù)抽取樣本進(jìn)行分類器訓(xùn)練,其中約37%的樣本數(shù)據(jù)不會(huì)被選中,這些數(shù)據(jù)稱為袋外數(shù) 據(jù)(Out of Bag,OOB)。計(jì) 算 某 特 征 重 要 性 時(shí),用OOB數(shù)據(jù)作為測(cè)試集測(cè)試訓(xùn)練后的基學(xué)習(xí)器,測(cè)試錯(cuò)誤率記為袋外誤差(errOOB);對(duì)OOB樣本中待計(jì)算重要性特征加入噪聲,再次計(jì)算errOOB;計(jì)算所有基學(xué)習(xí)器的測(cè)試平均誤差,以平均精度下降率(MDA)作為指標(biāo)進(jìn)行特征重要性計(jì)算[11]。
式中:n為基學(xué)習(xí)器的個(gè)數(shù);errOOB′為加入噪聲后的袋外誤差。
MDA指標(biāo)下降越多,說(shuō)明所對(duì)應(yīng)特征對(duì)預(yù)測(cè)結(jié)果影響較大,進(jìn)而說(shuō)明其重要性越高。這種特征重要性計(jì)算方法稱為隨機(jī)森林的袋外估計(jì),依此方法對(duì)故障相關(guān)特征進(jìn)行重要性排序,進(jìn)行特征選擇。
極端梯度提升(XGBoost)是T Chen在2016年提出的一個(gè)分布式通用Gradient Boosting庫(kù)[12],該算法是以決策樹(shù)作為基學(xué)習(xí)器的集成學(xué)習(xí)模型,可在訓(xùn)練時(shí)利用所有CPU內(nèi)核并行建樹(shù)。XGBoost在梯度提升的基礎(chǔ)上改善了目標(biāo)函數(shù)計(jì)算方式,可提高模型精確度,并將目標(biāo)函數(shù)的優(yōu)化問(wèn)題轉(zhuǎn)化為求二次函數(shù)的最小值問(wèn)題,利用損失函數(shù)的二階導(dǎo)數(shù)信息訓(xùn)練樹(shù)模型,同時(shí)將樹(shù)復(fù)雜度作為正則項(xiàng)加入到目標(biāo)函數(shù)中,提升了模型的泛化性能。XGBoost的目標(biāo)函數(shù)為
目標(biāo)函數(shù)在時(shí)間t內(nèi)的迭代結(jié)果為
式 中:ft(xi)為 第t次 迭 代 計(jì) 算 變 量xi所 在 決 策 樹(shù)復(fù)雜度;C為常數(shù)。
將損失函數(shù)進(jìn)行二階泰勒展開(kāi),設(shè)損失函數(shù)為均方誤差,則目標(biāo)函數(shù)為
式中:gi,hi分別為均方損失函數(shù)的一階和二階導(dǎo)數(shù)。
為避免傳統(tǒng)經(jīng)驗(yàn)法確定參數(shù)值導(dǎo)致參數(shù)組合為局部最優(yōu)的結(jié)果,本文采用網(wǎng)格搜索算法對(duì)XGBoost模型進(jìn)行參數(shù)優(yōu)化,并采用交叉驗(yàn)證減小模型訓(xùn)練過(guò)程中隨機(jī)抽取樣本所致偏差影響[13],該種參數(shù)尋優(yōu)方式可獲得網(wǎng)格參數(shù)內(nèi)全局最優(yōu)參數(shù)組合,進(jìn)而獲得參數(shù)最優(yōu)下故障診斷模型。
本文基于隨機(jī)森林和XGBoost算法實(shí)現(xiàn)風(fēng)電機(jī)組故障診斷,其具體步驟如下:
①數(shù)據(jù)預(yù)處理階段對(duì)風(fēng)電機(jī)組SCADA數(shù)據(jù)進(jìn)行篩選,剔除異常數(shù)據(jù),減小其對(duì)模型的影響;
②數(shù)據(jù)進(jìn)行預(yù)處理后,利用隨機(jī)森林的袋外估計(jì)功能獲得特征的重要性排序來(lái)進(jìn)行特征選擇,并綜合考慮模型的準(zhǔn)確性和計(jì)算時(shí)間選擇特征集;
③將經(jīng)特征選擇后的數(shù)據(jù)劃分為訓(xùn)練樣本和測(cè)試樣本,為模型的訓(xùn)練及測(cè)試備好數(shù)據(jù)集;
④利用訓(xùn)練樣本對(duì)模型進(jìn)行訓(xùn)練,通過(guò)網(wǎng)格搜索和交叉驗(yàn)證對(duì)XGBoost算法模型進(jìn)行參數(shù)優(yōu)化,得到該訓(xùn)練樣本對(duì)應(yīng)全局最優(yōu)參數(shù)組合下的故障診斷模型;
⑤利用測(cè)試樣本對(duì)步驟④所獲取模型進(jìn)行檢驗(yàn),通過(guò)常用機(jī)器學(xué)習(xí)模型性能衡量指標(biāo)準(zhǔn)確率、精準(zhǔn)率、召回率和平衡分?jǐn)?shù)F1值檢驗(yàn)所提模型準(zhǔn)確性。將決策樹(shù)(DT)、支持向量機(jī)(SVM)和RF傳統(tǒng)機(jī)器學(xué)習(xí)算法與應(yīng)用XGBoost算法的模型計(jì)算結(jié)果進(jìn)行橫向?qū)Ρ?,檢驗(yàn)所提模型優(yōu)異性。
建模流程如圖1所示。
圖1 故障診斷模型構(gòu)建流程Fig.1 Fault diagnosis model flow diagram
本文依據(jù)荷蘭某風(fēng)電場(chǎng)2014年4月6日-2015年4月1日連續(xù)360 d故障記錄臺(tái)賬和SCADA記錄數(shù)據(jù),以52 560條、61個(gè)特征數(shù)據(jù)作為原始數(shù)據(jù),經(jīng)數(shù)據(jù)篩選后留存有效數(shù)據(jù)49 028條,留取狀態(tài)數(shù)據(jù)27 398條,關(guān)鍵狀態(tài)數(shù)據(jù)1 850條,該數(shù)據(jù)集覆蓋機(jī)組正常運(yùn)行狀態(tài)和故障狀態(tài)。對(duì)常見(jiàn)發(fā)電機(jī)和變流器位置處A,B兩類故障進(jìn)行預(yù)測(cè),分別為發(fā)電機(jī)過(guò)熱(故障A)和變流器饋電(故障B)故障。
通過(guò)隨機(jī)森林的袋外估計(jì)功能,針對(duì)兩個(gè)類型故障,對(duì)表2所示29個(gè)初選特征變量進(jìn)行重要性計(jì)算,每一類故障重復(fù)進(jìn)行20次計(jì)算,每項(xiàng)特征重要性取20次計(jì)算平均值。然后再進(jìn)一步選取特征重要性排名前9和前6的特征變量集進(jìn)行精確度測(cè)試。
表2 特征描述及重要性Table 2 Feature variable description and importance
通過(guò)所提故障診斷模型對(duì)不同特征數(shù)量方案進(jìn)行對(duì)比(表3)。
表3 特征變量方案選取對(duì)比Table 3 Comparison of feature variable scheme selection
續(xù)表3
由表3可知:模型在輸入29個(gè)特征變量和9個(gè)特征變量時(shí)計(jì)算結(jié)果精確度相近,與輸入29個(gè)特征變量進(jìn)行訓(xùn)練相比,輸入9個(gè)特征變量的訓(xùn)練耗時(shí)能夠降低30%;輸入6個(gè)特征變量和輸入9個(gè)特征變量進(jìn)行訓(xùn)練相比,訓(xùn)練耗時(shí)有所減少,但模型精確度出現(xiàn)明顯下降。綜合考慮模型精確度和訓(xùn)練耗時(shí),選擇輸入9個(gè)特征變量訓(xùn)練各個(gè)故障診斷模型。
本文采用網(wǎng)格搜索算法和10折交叉驗(yàn)證對(duì)XGBoost算法進(jìn)行參數(shù)優(yōu)化,具體步驟如下:
①確定調(diào)節(jié)參數(shù)及取值范圍,預(yù)設(shè)最小均方誤差值0.4作為優(yōu)化標(biāo)準(zhǔn);
②依據(jù)參數(shù)調(diào)節(jié)范圍構(gòu)造粗網(wǎng)格,設(shè)定步長(zhǎng),計(jì)算網(wǎng)格內(nèi)每一點(diǎn)經(jīng)10次迭代計(jì)算后的平均均方誤差;
③以經(jīng)步驟②計(jì)算后低于誤差設(shè)定值的點(diǎn)為中心,附近點(diǎn)作為邊界構(gòu)造細(xì)網(wǎng)格,設(shè)置新步長(zhǎng),重復(fù)步驟②,計(jì)算低于設(shè)定值所有點(diǎn)并記錄結(jié)果;
④比較步驟③得出的所有平均均方誤差,平均均方誤差值最小的點(diǎn)所對(duì)應(yīng)參數(shù)作為模型全局最優(yōu)參數(shù)組合。
通過(guò)上述步驟,為每一類故障診斷模型進(jìn)行參數(shù)優(yōu)化,調(diào)節(jié)參數(shù)如表4所示。
表4 XGBoost參數(shù)設(shè)定范圍及含義Table 4 Range and meaning of XGBoost hyperparameter
應(yīng)用最優(yōu)參數(shù)下的故障診斷模型對(duì)故障A和故障B進(jìn)行診斷,并與DT,SVM和RF傳統(tǒng)機(jī)器學(xué)習(xí)算法的計(jì)算結(jié)果進(jìn)行對(duì)比。采用準(zhǔn)確率、精準(zhǔn)率、召回率和F1值作為評(píng)判指標(biāo)對(duì)模型計(jì)算結(jié)果進(jìn)行評(píng)判。為保證測(cè)量結(jié)果的準(zhǔn)確性,重復(fù)測(cè)試10次,取10次平均值作為最終結(jié)果,結(jié)果如表5所示。
表5 故障診斷結(jié)果Table 5 Diagnosis results of fault
對(duì)于故障A:DT和SVM算法模型各項(xiàng)指標(biāo)均低于0.9,表現(xiàn)不佳;XGBoost和RF算法模型性能類似,XGBoost算法模型的各項(xiàng)指標(biāo)均高于0.9,其中召回率明顯高于其它算法模型,說(shuō)明該算法模型對(duì)A類故障關(guān)鍵信息的提取能力較強(qiáng)。
對(duì)于故障B,XGBoost算法模型的診斷結(jié)果在準(zhǔn)確率、精準(zhǔn)率、召回率和F1值上明顯高于傳統(tǒng)機(jī)器學(xué)習(xí)算法,各項(xiàng)指標(biāo)均高于0.93,與傳統(tǒng)機(jī)器學(xué)習(xí)算法相比,診斷效果有很大提升。
以計(jì)算過(guò)程所得假陽(yáng)率和真陽(yáng)率作為橫、縱坐標(biāo)繪制受試者工作特征曲線(ROC),對(duì)比不同算法模型性能。AUC(Area Under Curve)即ROC曲線下面積,是衡量模型優(yōu)劣的一種性能指標(biāo),其值越大,代表模型的性能越好,準(zhǔn)確率更高。
故障A各算法模型的ROC曲線對(duì)比如圖2所示。
圖2 故障A各算法模型的ROC曲線對(duì)比圖Fig.2 Comparison diagram of ROC curve-fault A
由圖2可知:相較于DT和SVM算法模型,RF和XGBoost算法模型對(duì)應(yīng)的ROC曲線位置相近;DT與SVM算法模型的ROC曲線更靠近左上角。驗(yàn)證了所提XGBoost算法模型的有效性。
故障B各算法模型的ROC曲線對(duì)比如圖3所示。
圖3 故障B各算法模型的ROC曲線對(duì)比圖Fig.3 Comparison diagram of ROC curve-fault B
由圖3可知:XGBoost算法模型的AUC值為0.96,說(shuō)明該算法模型具有較高的準(zhǔn)確性;XGBoost算法模型對(duì)應(yīng)的ROC曲線整體更靠近左上角,即AUC值更大。驗(yàn)證了XGBoost算法模型的優(yōu)異性。
本文提出了一種基于特征選擇的XGBoost風(fēng)電機(jī)組故障診斷算法,該方法將隨機(jī)森林的袋外估計(jì)應(yīng)用到特征選擇中,運(yùn)用經(jīng)網(wǎng)格搜索算法和交叉驗(yàn)證優(yōu)化的XGBoost算法模型作故障分類預(yù)測(cè)。
①XGBoost故障診斷方法利用風(fēng)電場(chǎng)SCADA實(shí)測(cè)數(shù)據(jù),通過(guò)挖掘數(shù)據(jù)中隱含的機(jī)組狀態(tài)特征信息,實(shí)現(xiàn)故障診斷,能夠提高風(fēng)電機(jī)組運(yùn)行數(shù)據(jù)利用率,有效降低故障診斷模型部署成本。
②采用隨機(jī)森林的袋外估計(jì)功能獲取特征重要性排序,得到故障強(qiáng)相關(guān)特征,有效提升了復(fù)雜故障的特征選擇客觀性和準(zhǔn)確性,拓寬了故障診斷模型的適用范圍。該故障診斷方法利用網(wǎng)格搜索算法對(duì)XGBoost算法模型進(jìn)行參數(shù)優(yōu)化以提高模型準(zhǔn)確性,參數(shù)調(diào)優(yōu)過(guò)程簡(jiǎn)單且可獲得全局最優(yōu)參數(shù)組合,同時(shí)采用交叉驗(yàn)證方法避免隨機(jī)抽取樣本訓(xùn)練導(dǎo)致的測(cè)試偶然性誤差。這兩項(xiàng)舉措提高了模型的預(yù)測(cè)準(zhǔn)確率,增強(qiáng)了模型在不同型號(hào)風(fēng)電機(jī)組的部署能力。
③采用荷蘭某風(fēng)電場(chǎng)實(shí)測(cè)數(shù)據(jù)對(duì)所提故障診斷模型的有效性進(jìn)行驗(yàn)證。兩種風(fēng)電機(jī)組故障診斷結(jié)果表明,模型的預(yù)測(cè)準(zhǔn)確率均達(dá)到0.91以上。XGBoost算法較傳統(tǒng)的機(jī)器學(xué)習(xí)算法模型在預(yù)測(cè)準(zhǔn)確率上有較大的提升,驗(yàn)證了所提故障診斷方法的有效性和優(yōu)異性。