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