王新偉, 錢 虹,2, 冷述文, 楊寶清
(1.上海電力大學 自動化工程學院,上海 200090;2.上海市電站自動化技術重點實驗室,上海 200090;3.華能山東發(fā)電有限公司,濟南 250014;4.華能臨沂發(fā)電公司,山東臨沂 276016)
汽輪機承擔著能源轉(zhuǎn)換的作用,是電站最重要的旋轉(zhuǎn)設備。由于汽輪機結構和系統(tǒng)的復雜性,以及運行環(huán)境的特殊性,導致其故障發(fā)生率較高[1-2],因此在復雜環(huán)境下實現(xiàn)精準快速的故障識別和故障原因定位,從而采取有效措施及時修復故障對于保證汽輪機系統(tǒng)的安全穩(wěn)定運行具有重要意義。
目前,汽輪機故障診斷技術在信號采集與分析[3]、故障機理[4-5]、故障特征提取[6-9]和故障模式識別[10-13]等方面取得較多進展。然而,關于如何準確快速地進行故障原因定位識別的研究較少。目前,在實際的故障診斷過程中,主要依靠經(jīng)驗進行故障原因分析。大量汽輪機故障案例表明,不同故障原因?qū)е碌牟煌愋凸收习l(fā)生時,會伴隨運行參數(shù)的異常變化,診斷專家在進行故障原因分析時可通過這些異常來確定發(fā)生故障的具體原因[14],然而這些具有較強區(qū)分性的運行參數(shù)故障特征卻很少被用于建立智能診斷模型。因此,通過挖掘汽輪機運行參數(shù)的故障特征進行故障原因定位識別,具有現(xiàn)實的價值意義。然而,汽輪機運行參數(shù)很多,數(shù)據(jù)集樣本較大,且各運行參數(shù)之間可能存在相互關聯(lián)和相互耦合關系。因此,可使用機器學習算法處理和分析汽輪機運行參數(shù)的相關數(shù)據(jù),提高故障原因定位模型的分類準確率。鐘敏慧等[15]將梯度提升決策樹(GBDT)模型用于鐵路事故類型的預測,并根據(jù)模型中的特征重要度排序?qū)崿F(xiàn)了鐵路事故成因分析。極端梯度提升(XGBoost)算法在GBDT模型的基礎上對損失函數(shù)、正則化和并行處理等方面進行改進,具有更強的分類能力[16]。XGBoost算法具有不易被噪聲干擾、準確性高和運算速度快等優(yōu)點,可對多維和多特征數(shù)據(jù)進行快速有效處理。在旋轉(zhuǎn)機械故障預測[17]和故障診斷[18-19]等方面已有關于XGBoost算法的研究。
筆者首次基于XGBoost算法并結合運行參數(shù)對不同汽輪機故障類型進行多種故障原因定位,利用汽輪機轉(zhuǎn)子故障類型和運行參數(shù)的異常變化特征,對多種故障原因進行定位識別。首先,對包含故障類型和汽輪機運行參數(shù)的原始數(shù)據(jù)集進行預處理,提升模型樣本的適應性;將訓練集樣本送入XGBoost模型進行建模,采用網(wǎng)格搜索法優(yōu)化模型參數(shù),以提高分類準確率;通過測試集樣本驗證所提方法的有效性;最后,針對具體故障原因,根據(jù)對應的故障知識庫提供故障修復措施,從而提高故障診斷和故障修復的效率。
為實現(xiàn)精準快速的故障原因定位,使用XGBoost算法構建汽輪機轉(zhuǎn)子故障原因定位模型。XGBoost模型是基于樹集成的學習模型,其基分類器是分類樹和回歸樹(CART)[20]。
首先,對采集的汽輪機轉(zhuǎn)子故障原始數(shù)據(jù)集D={(Xi,yi)}進行預處理,其中yi表示實際故障原因類別,Xi為第i個樣本的特征參數(shù)矩陣,Xi由故障類型Fi(i=1,2,…,p)和運行參數(shù)矩陣xi(xi=[x1,ix2,i…xl,i])2部分構成,即
Xi=[Fix1,ix2,i…xl,i]
(1)
其中,p為故障類型數(shù)量;l為運行參數(shù)的數(shù)量。
將預處理后的數(shù)據(jù)集進行隨機分類,得到含有n個樣本和m個特征參數(shù)的訓練集D′={(Xi,yi)},Xi∈Rm,yi∈R,其中Rm為含有m個特征參數(shù)的特征集。
將訓練集代入到XGBoost模型中對其進行訓練,可得到由多個決策樹函數(shù)相加的集成模型。
(2)
模型目標函數(shù)L為:
(3)
式中:ls為損失函數(shù)項;Ω為正則項。
(4)
(5)
定義Ij={i|q(Xi)=j}為葉節(jié)點j的樣本集,其中q(Xi)為樹結構,將正則項Ω(fk)展開為:
(6)
式中:T為葉節(jié)點的數(shù)量;ωj為葉節(jié)點j的權重;γ和λ均為正則化系數(shù)。
將式(6)代入式(5),得:
(7)
(8)
(9)
葉節(jié)點的分裂是基于特征參數(shù)(即模型的輸入變量)進行的,某特征參數(shù)被應用于葉節(jié)點分裂的次數(shù)可認為是該特征參數(shù)的重要度得分,反映了該特征參數(shù)與輸出結果之間的相關性[21]。因此,可根據(jù)特征參數(shù)重要度得分來選擇XGBoost模型的輸入變量。XGBoost模型的流程圖見圖1。
圖1 XGBoost模型的流程圖
在已知故障類型的基礎上,基于XGBoost算法的汽輪機轉(zhuǎn)子故障原因定位結合了故障類型和相關運行參數(shù)信息,對多種故障原因進行定位識別,其流程見圖2。
圖2 基于XGBoost算法的汽輪機轉(zhuǎn)子故障原因定位流程圖
汽輪機轉(zhuǎn)子故障原因定位方法如下:獲取汽輪機轉(zhuǎn)子故障類型和運行參數(shù)數(shù)據(jù),組成原始數(shù)據(jù)集;對原始數(shù)據(jù)集進行數(shù)據(jù)預處理與特征工程構建;將預處理后的數(shù)據(jù)集進行隨機分類,得到訓練集樣本和測試集樣本;利用訓練集樣本構建XGBoost模型,并優(yōu)化模型參數(shù),提高模型分類的準確率;利用測試集樣本對XGBoost模型進行測試,輸出測試集分類結果,結合原始數(shù)據(jù)集實際故障原因類別標簽得到模型分類的準確率;針對不同原因?qū)е碌墓收希溄拥较鄳墓收现R庫,采取對應措施快速修復故障;無法確定具體原因時,通過總結故障案例列出可能的故障原因,并按照原因?qū)е鹿收习l(fā)生的次數(shù)進行排序,檢修時優(yōu)先檢查次序靠前的故障原因。
以汽輪機高壓轉(zhuǎn)子動靜碰摩故障(F1)、質(zhì)量不平衡故障(F2)和自激振蕩(包括油膜半速渦動和油膜振蕩)故障(F3)為對象,整理匯總電廠330 MW機組3種故障相關的運行參數(shù)數(shù)據(jù)[13](450組)進行實例驗證。各故障原因和類別標簽見表1。
表1 故障原因和類別標簽
特征分析的目標是最大限度地從原始數(shù)據(jù)中提取特征,其有效性很大程度上決定了模型的準確率。特征處理是特征工程的核心部分,包括數(shù)據(jù)預處理、特征選擇和降維等操作[17]。
3.2.1 特征參數(shù)選擇
選取與F1、F2和F3相關性較高的10個運行參數(shù),主要包括高壓缸軸封蒸汽溫度、高壓缸汽缸膨脹值等,如表2所示。
表2 汽輪機高壓轉(zhuǎn)子故障原因特征參數(shù)
3.2.2 數(shù)據(jù)預處理
數(shù)據(jù)預處理主要包括數(shù)據(jù)缺失值處理、數(shù)據(jù)無量綱化(包括中心化處理和縮放處理)、分類型特征處理(字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)字型)和連續(xù)型特征處理等。
(1)缺失值處理。
針對數(shù)據(jù)的缺失值,采用均值填補法來處理數(shù)值型特征,采用眾數(shù)填補法來處理字符型特征。
(2)字符型特征編碼。
在原始數(shù)據(jù)集中,分類特征中的故障類型(如F1、F2和F3)以及故障原因類別標簽(如F11、F12等)均不是以數(shù)字來表現(xiàn)的,為了讓數(shù)據(jù)適應XGBoost模型,必須將數(shù)據(jù)進行編碼,即將字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)字型。對于相互獨立的故障類型(F1、F2和F3),采用獨熱編碼將故障類型轉(zhuǎn)變?yōu)閱∽兞啃问?;對于故障原因類別標簽,將其直接轉(zhuǎn)化為數(shù)字形式。
(3)數(shù)據(jù)標準化。
將特征數(shù)據(jù)x按均值中心化后,再按標準差縮放,則處理后數(shù)據(jù)將服從標準正態(tài)分布,即x~N(μ,σ2)。
(11)
式中:μ為均值;σ為標準差;x*為標準化的特征數(shù)據(jù)。
經(jīng)過預處理后的數(shù)據(jù)集如表3所示。主要特征重要度排序見表4。
表3 預處理后的數(shù)據(jù)集
表4 特征參數(shù)重要度排序
將預處理后的數(shù)據(jù)樣本集進行隨機分類,得到訓練集樣本和測試集樣本。利用訓練集樣本對XGBoost模型進行訓練,并優(yōu)化模型參數(shù),提高模型準確率。采用網(wǎng)格搜索法(GS)和k折交叉驗證[22]確定最優(yōu)XGBoost模型參數(shù)。模型參數(shù)的評價標準采用誤差函數(shù),誤差小的參數(shù)更優(yōu)。
對迭代次數(shù)進行設置。如圖3所示,利用5折交叉驗證得到訓練集和測試集的迭代次數(shù)-誤差學習曲線,對迭代次數(shù)進行估計,取迭代次數(shù)的范圍為25~75。從圖3還可以看出,XGBoost模型在訓練集上的表現(xiàn)優(yōu)于在測試集上的表現(xiàn),即模型處于過擬合狀態(tài)。為達到更理想的分類效果,需要對XGBoost模型的其他參數(shù)進行設定,以提高其泛化能力。
圖3 迭代次數(shù)-誤差學習曲線
模型主要參數(shù)設定值見表5,優(yōu)化后的模型迭代次數(shù)-誤差學習曲線如圖4所示。從圖4可以看出,模型的過擬合現(xiàn)象得到很大改善,但模型的準確率略有下降。
圖4 優(yōu)化后的迭代次數(shù)-誤差學習曲線
表5 XGBoost模型主要參數(shù)設定
利用測試集對構建好的XGBoost模型進行分類準確率驗證,如圖5所示。結果表明,XGBoost模型整體分類準確率為95.56%。其中,汽缸變形導致的動靜碰摩故障分類準確率為64.3%,機組加負荷過快導致的動靜碰摩故障分類準確率為92.3%,其他故障原因?qū)е碌膭屿o碰摩故障、質(zhì)量不平衡故障和自激振蕩故障分類準確率均為100%。整個診斷過程的計算時間為0.520 7 s。測試集的混淆矩陣見表6。
圖5 采用XGBoost模型時測試集的分類結果
表6 XGBoost測試集的混淆矩陣
將XGBoost模型與決策樹(DT)模型、支持向量機(SVM)、隨機森林算法(RF)和梯度提升決策樹算法的分類結果進行對比,采用預處理后的數(shù)據(jù)集分別對各算法進行訓練和測試。
采用DT模型時,首先畫出樹最大深度參數(shù)學習曲線,并測試出決策樹最大深度最優(yōu)取值為5,使用網(wǎng)格搜索法確定其他參數(shù)的最優(yōu)組合為:min_sample_leaf=2;min_sample_split=1;crition= entro-py。DT模型的分類結果如圖6所示。
圖6 采用DT模型時測試集的分類結果
采用SVM模型時利用徑向基核函數(shù)(RBF)進行訓練。由于核參數(shù)和懲罰系數(shù)對訓練結果的影響較大,所以采用網(wǎng)格搜索法對2個參數(shù)進行尋優(yōu),核參數(shù)和懲罰系數(shù)分別取1.234和0.095。SVM模型的分類結果如圖7所示。
圖7 采用SVM模型時測試集的分類結果
分別對隨機森林和梯度提升決策樹模型的參數(shù)進行尋優(yōu)。表7給出5種模型故障分類結果的對比情況。
由表7可知,XGBoost模型比其他模型具有更高的分類準確率,而DT模型和RF模型訓練耗時較XGBoost模型更短。這是因為DT模型復雜度低,RF模型和GBDT模型均是基于DT模型的算法,其準確率均略差于XGBoost模型,由此驗證了XGBoost模型用于汽輪機轉(zhuǎn)子故障原因定位的有效性。
表7 不同模型的故障分類結果
針對不同故障原因?qū)е碌钠啓C轉(zhuǎn)子動靜碰摩、質(zhì)量不平衡和自激振蕩3種故障,其相應的故障知識庫見表8。汽輪機高壓轉(zhuǎn)子故障知識庫給出了故障原因定位算法中涉及的相關運行參數(shù)、故障類型和故障原因等信息,并針對具體故障原因給出相應故障解決措施,為故障修復提供建議,從而提高故障診斷與修復的效率。
表8 汽輪機高壓轉(zhuǎn)子故障知識庫
(1)XGBoost模型能對多維和多特征數(shù)據(jù)進行快速有效處理,可以對多種故障原因進行快速準確分類。
(2)XGBoost模型可有效識別出汽輪機轉(zhuǎn)子3種故障類型下的9種故障原因,分類準確率可達95.56%。相較于DT、SVM、RF和GBDT模型,XGBoost模型具有更好的分類準確率。