方繼輝, 李 陽
(1.杭州華電江東熱電有限公司, 浙江 杭州 310000;2.上海電力大學(xué) 自動(dòng)化工程學(xué)院, 上海 200090)
在燃?xì)廨啓C(jī)運(yùn)行過程中,受熱部分和旋轉(zhuǎn)組件如渦輪葉片一般需要承受高溫、高壓和劇烈振動(dòng)等沖擊,導(dǎo)致其出現(xiàn)蠕變、氧化、熱疲勞和熱腐蝕等現(xiàn)象,直接影響燃?xì)廨啓C(jī)的壽命和效率,因此渦輪葉片的狀態(tài)監(jiān)測和故障診斷非常重要,是燃?xì)廨啓C(jī)故障診斷的熱門研究方向之一[1-2]。目前基于解析模型、專家系統(tǒng)等算法的傳統(tǒng)故障診斷方法仍存在較多不足[3]。首先,渦輪的工作環(huán)境惡劣,內(nèi)部結(jié)構(gòu)復(fù)雜,難以建立精確的數(shù)學(xué)模型;其次,渦輪故障中容易存在多重耦合,難以實(shí)現(xiàn)準(zhǔn)確的故障隔離[4]。近年來,隨著計(jì)算機(jī)技術(shù)和人工智能的發(fā)展,對非線性問題的處理能力逐步提高,機(jī)器學(xué)習(xí)方法可以通過各類算法挖掘大量數(shù)據(jù)內(nèi)部的潛在聯(lián)系,十分適合復(fù)雜系統(tǒng)的建模分析。XGBoost(eXtreme Gradient Boosting)是時(shí)下最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一[5],其優(yōu)點(diǎn)是準(zhǔn)確性更高、速度更快,同時(shí)支持并行計(jì)算,廣泛應(yīng)用于金融、醫(yī)療和工業(yè)等領(lǐng)域[6]。文獻(xiàn)[7]表明XGBoost可以實(shí)現(xiàn)對二次設(shè)備缺陷程度的精確判斷,進(jìn)而可以很好地輔助檢修人員進(jìn)行設(shè)備的維護(hù)與管理。文獻(xiàn)[8]利用XGBoost進(jìn)行變壓器故障診斷,結(jié)果表明,能準(zhǔn)確、有效地診斷變壓器故障類型,精度高于支持向量機(jī)(Support Vector Machine,SVM)和IEC(International Electrotechnical Commission)三比值法。
傳統(tǒng)機(jī)器模型的超參數(shù)數(shù)目一般較少,比如SVM只有2個(gè)超參數(shù)徑向基核寬度σ和懲罰因子c,隨機(jī)森林(Random Forest,RF)也只有2個(gè)超參數(shù)。由于這些算法的計(jì)算量較小,機(jī)器可以在很短的時(shí)間內(nèi)采用網(wǎng)格搜索的方法把所有的可能都遍歷一遍,最后以3D可視化的結(jié)果直接給出最優(yōu)超參數(shù)。但是對于復(fù)雜的機(jī)器學(xué)習(xí)模型如XGBoost,其超參數(shù)數(shù)量較多,因此需要通過更好的方法來對其參數(shù)進(jìn)行搜索,以保證分類結(jié)果能夠滿足實(shí)際工程的需求。
螢火蟲優(yōu)化算法(Firefly Algorithm,FA) 是一種新型基于群體搜索的隨機(jī)優(yōu)化算法,相比遺傳算法和粒子群算法,FA的搜索結(jié)果不太依賴于自身參數(shù)的設(shè)置,具有較高的穩(wěn)定性,但存在收斂速度慢、易陷入局部最優(yōu)等問題。為此,將種群多樣性的位置更新策略和動(dòng)態(tài)步長更新措施引入FA,得到改進(jìn)的螢火蟲算法(Improved Firefly Algorithm,IFA)。通過IFA對XGBoost的超參數(shù)進(jìn)行尋優(yōu),建立IFA-XGBoost故障診斷模型,并利用某電廠的運(yùn)行數(shù)據(jù)進(jìn)行實(shí)驗(yàn),驗(yàn)證了IFA-XGBoost具有更好的搜索性能。
XGBoost是一種集成了許多分類回歸樹(Classification And Regression Trees,CART)的算法,基本思想是把多棵性能差的樹模型組合成一個(gè)性能相對好的模型[9],直到接近訓(xùn)練數(shù)據(jù)的復(fù)雜度時(shí)模型性能達(dá)到最優(yōu)。模型可以表示為
(1)
K——樹的總數(shù)目;
fk——函數(shù)空間F中的一個(gè)函數(shù);
xi——輸入的第i個(gè)樣本;
F——所有可能的決策樹。
一般的集成學(xué)習(xí)算法很難具體列出所有的CART,而XGBoost使用梯度提升策略,在整個(gè)過程中通過添加新的樹來擬合之前的學(xué)習(xí)誤差。具體推導(dǎo)過程為[10]
(2)
得到的XGBoost算法的目標(biāo)優(yōu)化函數(shù)為
(3)
式中:L——損失函數(shù);
yi——真實(shí)樣本值;
Ω(fi)——f(i)對應(yīng)的正則項(xiàng);
f(t)——t次求導(dǎo)后的全部決策數(shù);
Ω(ft)——全部決策數(shù)經(jīng)過求導(dǎo)后對應(yīng)的正則項(xiàng);
n——樹的數(shù)量;
A——常數(shù)。
模型的目標(biāo)函數(shù)由損失函數(shù)和正則項(xiàng)兩部分組成,XGBoost把損失函數(shù)的泰勒公式在ft=0處展開到二階,新的目標(biāo)函數(shù)為
(4)
式中:gi,hi——該處一階和二階導(dǎo)數(shù)。
(5)
(6)
XGBoost的損失函數(shù)表示為
(7)
式中:N——全部訓(xùn)練樣本個(gè)數(shù);
pi——模型預(yù)測類別對應(yīng)的概率。
在訓(xùn)練過程中,模型性能向著損失函數(shù)減小的方向提升,而模型性能又取決于其超參數(shù)。詳細(xì)的超參數(shù)信息如表1所示。
表1 XGBoost的超參數(shù)
由表1可以看出,確定一個(gè)完整的XGBoost模型需要給定眾多參數(shù)值,如果給定的參數(shù)值選取不當(dāng)則可能導(dǎo)致分類結(jié)果不好。因此,有必要對眾多超參數(shù)進(jìn)行優(yōu)化,以有效提升模型對樣本的分類準(zhǔn)確率。
FA算法尋優(yōu)主要包括初始化群體、熒光素更新、移動(dòng)概率更新、位置和決策域更新等階段,其中位置和決策域更新是最重要的部分,其原理可以表示為
(8)
β——個(gè)體i被發(fā)光更亮的個(gè)體j吸引時(shí)后者吸引能力大小;
α0——步長因子;
ζ——隨機(jī)數(shù),ζ∈(0,1)。
由式(8)可知,個(gè)體位置的更新結(jié)果主要由發(fā)光強(qiáng)度更高的螢火蟲決定。經(jīng)過若干次迭代后,由于全局搜索的隨機(jī)性太弱,搜索空間會(huì)收斂在局部區(qū)域,所以引入種群多樣性策略和自適應(yīng)步長因子對FA的性能進(jìn)行改善。
種群多樣性的表達(dá)式定義為[11]
(9)
式中:M——問題空間的維度;
xim——個(gè)體i在第m維的分量值;
將式(8)更新為
(10)
式中:ω——根據(jù)種群多樣性和迭代次數(shù)變化并且具有隨機(jī)性的權(quán)重;
ω的計(jì)算公式為
(11)
式中:rand——隨機(jī)生成0~1之間的小數(shù);
div(0)——初始時(shí)刻種群多樣性指數(shù);
div(k)——第k代種群的多樣性指數(shù);
p——一個(gè)線性下降函數(shù)。
p的計(jì)算公式為
(12)
式中:imax——最大迭代次數(shù);
iter——當(dāng)前迭代次數(shù)。
在式(11)中:在算法前期ω為負(fù)數(shù),螢火蟲背向最優(yōu)解方向進(jìn)行不規(guī)則移動(dòng),能夠在更大范圍內(nèi)進(jìn)行搜索[12];在算法后期ω=0,實(shí)現(xiàn)了更精細(xì)的局部搜索。引入種群多樣性策略動(dòng)態(tài)調(diào)整了前后期不同的尋優(yōu)范圍,避免了過早陷入局部最優(yōu)的現(xiàn)象。
此外,式(8)中步長因子為定值,雖然在算法前期能夠?qū)崿F(xiàn)大范圍搜索,但是在后期如果繼續(xù)保持固定的步長,那么螢火蟲可能會(huì)因?yàn)檎袷幎鵁o法收斂。因此,將固定的步長因子α0調(diào)整為自適應(yīng)步長因子,公式為
α=α0p
(13)
那么螢火蟲位置更新的表達(dá)式為
(14)
綜上所述,將式(14)代替式(8)得到IFA算法,可以在不同的階段進(jìn)行充分、有效的搜索。
長期運(yùn)行在惡劣工作環(huán)境中的渦輪葉片要承受高溫、高壓和劇烈振動(dòng)等沖擊。保險(xiǎn)公司指出:渦輪葉片斷裂是燃?xì)廨啓C(jī)最主要的故障,占燃?xì)廨啓C(jī)總故障的42%。導(dǎo)致該故障發(fā)生的原因主要有以下3類[13]。
一是疲勞,由于渦輪經(jīng)常的起動(dòng)、加速、減速以及停車,各部件要承受復(fù)雜的循環(huán)載荷作用,最終引起高周疲勞、低周疲勞或熱疲勞,使得葉片斷裂。二是蠕變,由于渦輪的排氣溫度不斷增加(從20世紀(jì)50年代1 150 K到現(xiàn)在2 000 K),蠕變將導(dǎo)致葉片的塑性變形過大甚至產(chǎn)生蠕變斷裂[14]。三是腐蝕,高溫燃?xì)鈱θ~片的腐蝕包括沖刷造成的腐蝕和對金屬葉片的氧化腐蝕。腐蝕會(huì)降低葉片的性能,當(dāng)腐蝕達(dá)到一定程度,葉片材料性能不能滿足要求時(shí),就會(huì)發(fā)生斷裂。
葉片斷裂不容小覷,葉片狀態(tài)的實(shí)時(shí)監(jiān)測和定期維護(hù)對保證燃?xì)廨啓C(jī)安全運(yùn)行有重要意義。將上述3種異常狀態(tài)和正常狀態(tài)的類別分別用編號(hào)1~4來表示。
每一臺(tái)機(jī)組有上百個(gè)屬性,其中過半屬性表示排氣端特征、燃料情況、各閥門與斷路器的開閉狀態(tài),需要將這些無影響或影響很小的變量剔除;而渦輪輸出功率、渦輪膨脹比、高壓轉(zhuǎn)子轉(zhuǎn)速、低壓轉(zhuǎn)子轉(zhuǎn)速、渦輪排氣溫度、壓氣機(jī)進(jìn)口導(dǎo)流葉片轉(zhuǎn)角位置、壓氣機(jī)壓比、燃油流量變化量、滑油壓差等9個(gè)狀態(tài)參數(shù)可以表征渦輪葉片故障征兆[15]。為了減小模型復(fù)雜度,進(jìn)一步挖掘故障信息,從這9個(gè)參數(shù)當(dāng)中進(jìn)一步提取故障特征,分別用X1,X2,X3,…,X9表示。由于不同屬性值相差很大,并且具有不同的量綱,因此必須進(jìn)行歸一化操作以避免某些特征的數(shù)值太小而被淹沒。采用標(biāo)準(zhǔn)化方法進(jìn)行轉(zhuǎn)換,公式為
(15)
σ——標(biāo)準(zhǔn)差;
采用核主元分析(Kernel Principal Component Analysis,KPCA)方法實(shí)現(xiàn)非線性數(shù)據(jù)降維,構(gòu)造模型的輸入特征向量。選用累計(jì)貢獻(xiàn)率E>95% 的變量作為選取主元的依據(jù)[16]。由于前6個(gè)主元累計(jì)貢獻(xiàn)率為 96.38%,將其作為判斷故障類型的特征向量,分別命名為T1~T6。各參數(shù)貢獻(xiàn)率如表2所示,部分樣本的特征向量及對應(yīng)的狀態(tài)類別如表3所示。
表2 核主元貢獻(xiàn)率及累計(jì)貢獻(xiàn)率 單位:%
表3 KPCA提取的特征向量及對應(yīng)的狀態(tài)類別
樹最大高度max_depth和學(xué)習(xí)率learn_rate等超參數(shù)的選取對模型的性能有著很大的影響,因此通過IFA算法對XGBoost的超參數(shù)進(jìn)行尋優(yōu)。在此過程中,每個(gè)螢火蟲個(gè)體xi代表XGBoost的超參數(shù)max_depth,learn_rate,num_leaves,min_child_weight,subsample的組合,其編碼為矢量格式,適應(yīng)度函數(shù)值Fitness選擇XGBoost的損失函數(shù)Loss。在IFA-XGBoost訓(xùn)練過程中,每一個(gè)螢火蟲個(gè)體代表一組超參數(shù),其適應(yīng)度值的大小直接體現(xiàn)了對應(yīng)模型性能的優(yōu)劣,將性能最好的模型用于燃?xì)廨啓C(jī)渦輪葉片的故障診斷。IFA優(yōu)化XGBoost超參數(shù)的流程如圖1所示。
圖1 IFA優(yōu)化XGBoost超參數(shù)的流程
基于IFA-XGBoost的燃?xì)廨啓C(jī)故障診斷方案如圖2所示。首先利用傳感器網(wǎng)絡(luò)采集關(guān)鍵部件的運(yùn)行參數(shù),把采集到的原始參數(shù)KPCA進(jìn)行特征提取和降維;在離線階段,對故障數(shù)據(jù)集進(jìn)行學(xué)習(xí)和訓(xùn)練,通過IFA優(yōu)化XGBoost的超參數(shù)來提升分類準(zhǔn)確率;在線診斷時(shí),利用訓(xùn)練得到的模型依據(jù)特征向量確認(rèn)樣本所屬類別,得到相應(yīng)的故障類型。
在機(jī)器學(xué)習(xí)的分類任務(wù)中,對于多分類問題,只有一個(gè)準(zhǔn)確率(accuracy)不能全面的對模型性能進(jìn)行評(píng)價(jià),為此引入精確率P、召回率R和F1系數(shù)F1,定義為
(16)
(17)
(18)
式中:TPi——樣本真實(shí)類別是i,預(yù)測是i類;
FPi——樣本真實(shí)類別不是i,預(yù)測是i類;
FNi——樣本真實(shí)類別是i,預(yù)測不是i類。
圖2 基于IFA-XGBoost的燃機(jī)故障診斷方案
根據(jù)IFA算法計(jì)算得到XGBoost的最優(yōu)參數(shù),然后建立模型得到測試樣本的分類結(jié)果。為了體現(xiàn)螢火蟲算法改進(jìn)前后的差異,分別通過IFA和FA進(jìn)行尋優(yōu),其中算法設(shè)置為相同的初始值:初始螢火蟲種群規(guī)模N=50,初始步長因子α0=0.6,最大迭代次數(shù)imax=100,光強(qiáng)吸收系數(shù)γ=0.75。最優(yōu)螢火蟲個(gè)體適應(yīng)度值變化情況如圖3所示。
圖3 IFA和FA的適應(yīng)度曲線
由圖3可知,在種群規(guī)模為50時(shí),FA經(jīng)過60代的進(jìn)化收斂于最小適應(yīng)度值0.321,而IFA在進(jìn)化到40代時(shí)收斂到0.18。由此可見,與FA相比,IFA尋優(yōu)超參數(shù)的速度有一定程度的加快,適應(yīng)度值的減小意味著IFA-XGBoost的分類準(zhǔn)確度更高。IFA和FA尋優(yōu)超參數(shù)的結(jié)果如表4所示。
表4 兩種算法尋優(yōu)得到的參數(shù)
根據(jù)兩種尋優(yōu)算法得到的超參數(shù)分別建立IFA-XGBoost和FA-XGBoost模型,未優(yōu)化的XGBoost采用默認(rèn)參數(shù)值。圖4~圖6為3種模型的分類效果,在測試集上的分類性能如表5所示。
圖4 IFA-XGBoost診斷結(jié)果
圖5 FA-XGBoost診斷結(jié)果
圖6 XGBoost診斷結(jié)果
表5 不同模型的性能對比
從上述分類結(jié)果可以看出,采用IFA-XGBoost對葉片的故障類型進(jìn)行診斷,其精確率和召回率均為0.968 7,準(zhǔn)確率為0.968 4,效果優(yōu)于FA-XGBoost和未優(yōu)化的XGBoost。這表明IFA具有更好的全局尋優(yōu)和局部尋優(yōu)能力,能有效克服局部最優(yōu)解的問題。從模型的時(shí)間復(fù)雜度來說,XGBoost由于采用默認(rèn)參數(shù),所以運(yùn)行時(shí)間最短;IFA憑借引入的位置更新策略和動(dòng)態(tài)步長更新措施能夠避免個(gè)體陷入局部最優(yōu)值,所以IFA-XGBoost的訓(xùn)練速度要快于FA-XGBoost。由此可知,IFA-XGBoost對于燃?xì)廨啓C(jī)渦輪葉片的故障診斷具有速度快、效率高等優(yōu)點(diǎn)。
為解決XGBoost參數(shù)選取不當(dāng)對渦輪葉片診斷結(jié)果產(chǎn)生不利影響的問題,本文提出采用IFA算法來優(yōu)化XGBoost的超參數(shù),建立了IFA-XGBoost故障診斷模型,并與FA-XGBoost和未優(yōu)化的XGBoost進(jìn)行對比。結(jié)果表明,與FA相比,IFA的收斂效果更好,能夠提升XGBoost的性能,IFA-XGBoost以0.9687的精確率和召回率實(shí)現(xiàn)樣本分類,能更好地應(yīng)用于葉片狀態(tài)識(shí)別,提高了發(fā)電的安全性和經(jīng)濟(jì)性。