徐 萌,席澤西,王雍赟,李曉露
(中國民航大學(xué)電子信息與自動化學(xué)院,天津 300300)
航空發(fā)動機是飛機的心臟,其健康狀況直接影響飛機的安全運行,而氣路故障占航空發(fā)動機故障總數(shù)的90%[1],因此,及時準(zhǔn)確地診斷航空發(fā)動機氣路故障顯得尤為重要。目前,基于解析模型、專家系統(tǒng)等算法的傳統(tǒng)故障診斷方法仍存在較多不足。首先,航空發(fā)動機工作環(huán)境惡劣,內(nèi)部結(jié)構(gòu)復(fù)雜,難以建立精確的數(shù)學(xué)模型;同時,航空發(fā)動機氣路故障中容易存在多重耦合,難以實現(xiàn)準(zhǔn)確的故障隔離[2]。機器學(xué)習(xí)方法可以通過各類算法挖掘大量數(shù)據(jù)內(nèi)部的潛在聯(lián)系,十分適合復(fù)雜系統(tǒng)的建模分析[3]。張建等[4]使用支持向量機模型實現(xiàn)了航空發(fā)動機故障診斷,然而此類單一機器學(xué)習(xí)模型的特征空間存在較大局限,難以保證較高的故障診斷精確度。謝曉龍[5]使用隨機森林算法實現(xiàn)識別速度更快的航空發(fā)動機故障診斷,然而該方法只能集成同類決策樹模型,難以融合其他模型的優(yōu)勢特性,較大地限制了故障診斷性能。
針對上述不足,將Stacking集成學(xué)習(xí)方法應(yīng)用于航空發(fā)動機故障診斷,以國內(nèi)某航空公司機隊的歷史運行數(shù)據(jù)和發(fā)動機制造商(OEM,original equipment manufacturer)提供的故障報告為研究基礎(chǔ),從數(shù)據(jù)處理和模型設(shè)計兩方面論述建模流程,最后進行仿真實驗驗證。集成學(xué)習(xí)是機器學(xué)習(xí)的一種推廣,通過組合多個機器學(xué)習(xí)模型進一步提升整體性能與泛化能力[6],展現(xiàn)了更為強大的優(yōu)越性。數(shù)據(jù)處理方面,首先選擇4種關(guān)鍵氣路參數(shù),設(shè)置飛行循環(huán)觀測窗口,然后設(shè)定訓(xùn)練樣本集,并對輸入向量做歸一化預(yù)處理。模型設(shè)計方面,建立一種兩層結(jié)構(gòu)的Stacking集成學(xué)習(xí)模型,第1層選擇組合RBF支持向量機(RBF-SVM,support vector machine with radial basis function kernel)、神經(jīng)網(wǎng)絡(luò)(NN,neural network)、隨機森林(RF,random forest)及梯度提升決策樹(GBDT,gradient boosting decision tree)4種基模型,集成原則是保證模型整體分類準(zhǔn)確性;第2層選擇邏輯回歸(LR,logistic regression)模型,集成原則是降低過擬合風(fēng)險,保證模型整體穩(wěn)定性。仿真實驗結(jié)果驗證了該Stacking集成學(xué)習(xí)模型能更好地應(yīng)用于航空發(fā)動機故障診斷。
集成學(xué)習(xí)是訓(xùn)練一系列基模型,通過某種集成原則將各模型的輸出結(jié)果進行整合處理,從而獲得比單一模型性能更好的一種機器學(xué)習(xí)方法[7]。根據(jù)基模型是否屬于同種類型,可分為同質(zhì)集成模型和異質(zhì)集成模型。常用的同質(zhì)集成模型主要包括Bagging和Boosting,基模型常為差異度較大的弱學(xué)習(xí)器,最佳實現(xiàn)分別是RF和GBDT模型[8]。常用的異質(zhì)集成模型主要包括多數(shù)投票法(MV,majority voting)和Stacking模型,基模型常為差異度較大的強學(xué)習(xí)器[9]。
Stacking的集成原理是分層組合多種模型,迭代學(xué)習(xí)上一層模型的分類偏差,提升模型整體性能[10];Stacking模型目前尚無最佳實現(xiàn),需根據(jù)應(yīng)用場景和實驗效果自行設(shè)計模型結(jié)構(gòu)。相比Bagging、Boosting等同質(zhì)集成算法,Stacking算法可集成不同類型的模型,融合各類模型的分類特性,集成效果往往更好[11];同時,Stacking的分層結(jié)構(gòu)可以在第1層基模型的基礎(chǔ)上進一步學(xué)習(xí),訓(xùn)練元模型,最終輸出結(jié)果,故性能常優(yōu)于MV異質(zhì)集成算法。
Stacking集成學(xué)習(xí)模型一般為兩層結(jié)構(gòu),如圖1所示。第1層組合多個分類性能較高、差異度較大的基模型,在原始數(shù)據(jù)集上進行訓(xùn)練,輸出各個模型的分類結(jié)果;第2層將上一層的輸出結(jié)果組合成新的數(shù)據(jù)特征,在新構(gòu)建的數(shù)據(jù)集上訓(xùn)練單個元模型,輸出最終分類結(jié)果。Stacking算法的偽代碼如下:
圖1 兩層Stacking模型結(jié)構(gòu)Fig.1 Structure of two-layer Stacking model
氣路參數(shù)在航空發(fā)動機狀態(tài)監(jiān)控與故障診斷中占有極其重要的地位。氣路參數(shù)是航空發(fā)動機氣流通道中的測量參數(shù)(如轉(zhuǎn)速、溫度等),與內(nèi)部氣動部件的工作特性(如效率、流通能力等)之間存在嚴(yán)格的氣動熱力學(xué)關(guān)系[12]。當(dāng)發(fā)動機部件出現(xiàn)故障或性能衰退異常時,氣路參數(shù)會與正常狀態(tài)下的基線標(biāo)準(zhǔn)值產(chǎn)生偏差,偏差值的大小可反映當(dāng)前發(fā)動機的性能狀態(tài)。這種基于偏差值的氣路部件分析法應(yīng)用十分廣泛。
發(fā)動機數(shù)據(jù)獲取自國內(nèi)某航空公司機隊,型號為CFM56-7B系列,是一種典型大涵道比渦扇發(fā)動機。由OEM廠商提供的故障報告可知:排氣溫度偏差值(ΔEGT,delta exhaust gas temperature)、核心機轉(zhuǎn)速偏差值(ΔN2,delta core speed)以及燃油流量偏差值(ΔFF,delta fuel flow)是監(jiān)控發(fā)動機健康狀態(tài)的重要偏差值參數(shù);排氣溫度裕度(EGTM,exhaust gas temperature margin)是表征發(fā)動機整體性能衰退程度的重要指標(biāo)[13]。通過上述4個關(guān)鍵氣路參數(shù)的聯(lián)合變化趨勢,可評估發(fā)動機氣路的健康狀態(tài),并將故障隔離到單元體。由此,選擇 ΔEGT,ΔN2,ΔFF,EGTM 作為發(fā)動機氣路故障診斷模型的特征參數(shù)。
每次飛行任務(wù)中,飛機會記錄平穩(wěn)飛行狀態(tài)下各性能參數(shù)的均值,作為本次飛行循環(huán)的氣路參數(shù)值。通常,從故障確認(rèn)點前的若干飛行循環(huán),氣路參數(shù)值開始呈現(xiàn)異常趨勢,即故障指征。故障程度不同,故障確認(rèn)點與故障指征點相差的飛行循環(huán)間隔也不同,但通常在10個飛行循環(huán)之內(nèi)[14]。為了包含更全面的異常趨勢特征,設(shè)置觀測窗口為10個連續(xù)飛行循環(huán),即將每個特征參數(shù)擴展為10維的趨勢特征向量,整體拼接成40維的發(fā)動機狀態(tài)特征向量,作為模型輸入。
以排氣溫度指示故障為例,圖 2 中的(a)、(b)、(c)、(d) 分別為特征參數(shù) ΔEGT,ΔN2,ΔFF,EGTM 在故障點前50個飛行循環(huán)內(nèi)的變化趨勢圖。其中,P點為OEM廠商測定的故障點,虛線框為上文設(shè)定的10個飛行循環(huán)的觀測窗口。分析圖2可知,觀測窗口內(nèi)ΔEGT呈現(xiàn)較明顯的上升趨勢,EGTM呈現(xiàn)較明顯下降趨勢,此時ΔN2與ΔFF保持相對平穩(wěn)趨勢,與排氣溫度指示故障特征參數(shù)變化趨勢相吻合,如表1所示。此類比照故障特征趨勢進行故障識別的方法只能用于定性分析,更精確的故障診斷還需借助數(shù)據(jù)挖掘方法建立故障診斷數(shù)學(xué)模型。
圖2 排氣溫度指示故障下特征參數(shù)聯(lián)合變化趨勢Fig.2 Joint change trend of characteristic parameters under EGT indication fault
訓(xùn)練樣本選取的好壞直接影響模型性能,質(zhì)量較差的訓(xùn)練樣本會降低模型精度,極度不平衡的訓(xùn)練樣本甚至?xí)褂?xùn)練結(jié)果不收斂。為保證故障數(shù)據(jù)均勻分布,從樣本機隊故障歷史記錄中剔除發(fā)生次數(shù)過少的故障,選取57臺次發(fā)動機故障案例,其中包括4種典型氣路故障:排氣溫度指示故障、燃油流量指示故障、可調(diào)放氣活門故障、進口總溫指示故障。各故障特征參數(shù)聯(lián)合變化趨勢[15]與樣本數(shù)量如表1所示。
表1 航空發(fā)動機典型故障樣本Tab.1 Typical fault samples of aeroengine
為保證故障數(shù)據(jù)與歷史健康數(shù)據(jù)的相關(guān)性,選擇每臺發(fā)動機故障點前的200個連續(xù)飛行循環(huán)作為樣本數(shù)據(jù)。已知觀測窗口為10個飛行循環(huán),故每個故障發(fā)動機數(shù)據(jù)樣例可均勻分割為20個數(shù)據(jù)樣本。選取的57臺次發(fā)動機總共可切分為1 140個發(fā)動機數(shù)據(jù)樣本,其中包括1 083個健康樣本,57個故障樣本。
依據(jù)Stacking集成學(xué)習(xí)的數(shù)學(xué)原理,結(jié)合航空發(fā)動機氣路參數(shù)序列的趨勢特點,設(shè)計了一種兩層結(jié)構(gòu)的Stacking集成模型,實現(xiàn)航空發(fā)動機典型故障的智能診斷,建模流程如圖3所示。
圖3 Stacking故障診斷模型算法流程圖Fig.3 Flow chart of Stacking fault diagnosis model
具體建模步驟如下:
1)將 ΔEGT,ΔN2,ΔFF 和 EGTM 4 種發(fā)動機關(guān)鍵氣路參數(shù)對應(yīng)的10個連續(xù)飛行循環(huán)序列數(shù)據(jù),順序拼接組合為 40 維發(fā)動機狀態(tài)特征向量(xi1,xi2,…,xi40),共可得1 140 個樣本,即(i=1,2,…,1140),樣本包括5種故障類型(4種典型故障和無故障狀態(tài)),然后對各輸入向量做歸一化預(yù)處理。
2)使用步驟1)中的912個樣本,訓(xùn)練N種已知分類性能較高的典型模型,作為Stacking第1層基模型。每個基模型的輸入為40維的發(fā)動機狀態(tài)特征向量{(xi1,xi2,xi3,…,xi40)}及其對應(yīng)的故障類型 yi,各個基分類器的輸出值為樣本屬于每類故障的概率值(pji1,pji2,…,pji5),其中 i=1,2,…,912,j=1,2,…,N。
3)其余228個樣本作為測試集,分別輸入步驟2)中訓(xùn)練的N個基模型,從而得到每個樣本屬于5種故障的概率值(pji1,pji2,…,pji5),其中 i=1,2,…,228,j=1,2,…,N。
4)合并步驟2)得到的N個基模型輸出決策值可得{(p1i1,p1i2,…,p1i5,p2i1,p2i2,…,p2i5,…,pNi1,pNi2,…,pNi5),yi},其中 i=1,2,…,912,作為 Stacking 第 2 層元模型的輸入向量進行訓(xùn)練,從而可組建兩層結(jié)構(gòu)的Stacking集成學(xué)習(xí)模型。
5)合并步驟3)得到的N個基模型輸出值:{(p1i1,p1i2,…,p1i5,p2i1,p2i2,…,p2i5,…,pNi1,pNi2,…,pNi5),yi},其中i=1,2,…,228,輸入步驟 4)建立的元模型,得到測試樣本的最終診斷類型。
6)依次重復(fù)步驟2)~5)共5次,即使用5折交叉驗證遍歷所有測試集樣本,得到更為準(zhǔn)確的故障診斷結(jié)果。
仿真實驗的硬件環(huán)境為雙核CPU(主頻2.3 GHz),DDR3內(nèi)存(4 GB);軟件環(huán)境為Windows 7操作系統(tǒng),Python 3.5。該故障診斷任務(wù)可看作4種典型航空發(fā)動機故障以及無故障狀態(tài)的多分類問題,應(yīng)用場景中無故障數(shù)據(jù)較多,故障數(shù)據(jù)較少,常用的正確率難以評判模型性能,故模型性能評價標(biāo)準(zhǔn)選擇更為普遍適用的精確率(PPrecision)和召回率(PRecall)。精確率表示預(yù)測為正的樣本中有多少是對的,召回率表示樣本中的正例有多少被預(yù)測正確,即
其中:TP表示真正例;FN表示偽反例;FP表示偽正例;TN表示真反例。
對比4種典型機器學(xué)習(xí)模型(LR、SVM、RBF-SVM和NN)與2種典型集成學(xué)習(xí)模型(RF和GBDT)在發(fā)動機數(shù)據(jù)樣本集上的分類性能,選擇性能較好的模型作為Stacking第1層基模型。
超參數(shù)選擇的好壞直接影響模型性能,采用網(wǎng)格搜索法與5折交叉驗證法對各個模型進行參數(shù)尋優(yōu),從而得到最優(yōu)訓(xùn)練模型。以RBF-SVM調(diào)參為例,該模型最重要的兩個超參數(shù)為:懲罰系數(shù)C和RBF核參數(shù)γ。其中:C代表對誤差的寬容度,影響模型泛化能力;γ決定數(shù)據(jù)映射到高維空間的分布,影響模型訓(xùn)練和預(yù)測速度。依據(jù)調(diào)參經(jīng)驗設(shè)定C∈[0.001,1 000],γ∈[0.001,1 000],使用網(wǎng)格搜索法遍歷該空間內(nèi)所有參數(shù)組合,計算每組參數(shù)5折交叉驗證得到的平均精確率,選擇平均精確率最高時的參數(shù)取值。參數(shù)尋優(yōu)熱力圖如圖4所示,即最優(yōu)超參數(shù)為C=1,γ=0.1,此時模型精確率為0.82。
圖4 RBF-SVM網(wǎng)格搜索參數(shù)尋優(yōu)Fig.4 Grid search parameter optimization of RBF-SVM
經(jīng)參數(shù)尋優(yōu),得到各典型模型分類性能,如表2所示。分析可知:①典型機器學(xué)習(xí)模型中,LR和SVM性能較差,精確率與召回率均低于0.60;RBF-SVM和NN性能相對上述兩個模型有較明顯提升,原因在于該故障診斷任務(wù)輸入向量40維,復(fù)雜度較高,LR和SVM此類線性模型難以完成該分類任務(wù);②RBF-SVM是性能最好的典型機器學(xué)習(xí)模型,精確率達到0.82,召回率達到0.79;③集成學(xué)習(xí)模型RF總體性能最好,精確率達到0.88,召回率達到0.86,該模型不但訓(xùn)練速度比同為集成學(xué)習(xí)模型的GBDT快,而且比單一機器學(xué)習(xí)模型RBF-SVM和NN更快。這體現(xiàn)了RF基于Bagging算法集成多個決策樹的高泛化性,以及支持并行計算的高效性。
表2 典型模型分類性能Tab.2 Classification performance of typical model
Stacking第1層基模型的選擇主要依據(jù)2個方面:模型分類性能和模型差異性。根據(jù)表2中的性能對比,剔除分類性能較差的LR和SVM 2個線性模型。模型差異性尚無統(tǒng)一規(guī)范標(biāo)準(zhǔn),組合盡量多的不同類別模型,使得組合差異度最大,選擇RBF-SVM、NN、RF與GBDT 4種典型模型作為Stacking第1層基模型。分析可知:該組合可融合RBF-SVM在小型數(shù)據(jù)集上的優(yōu)良性能和NN的非線性擬合性能以及RF和GBDT通過集成多個決策樹模型引入的高泛化性。
設(shè)置Stacking模型第1層的4個基模型,選擇不同模型作為第2層元模型進行對比,可得不同結(jié)構(gòu)的Stacking模型性能,如表3所示。對比表2、表3可知:相比性能最好的基模型RF,Stacking第2層選擇LR或SVM兩種線性模型時,模型整體性能有較明顯提升;選擇RBF-SVM或NN時,整體性能基本保持不變;選擇RF或GBDT時,整體性能有較明顯下降。說明Stacking第2層選擇RF、GBDT等較為復(fù)雜的模型時,容易引發(fā)過擬合,降低集成模型整體性能。綜合上述分析,Stacking第2層應(yīng)選擇結(jié)構(gòu)較簡單的模型。仿真實驗結(jié)果顯示,第2層模型選擇LR時整體性能最高,此時Stacking模型的精確率為0.93,召回率為0.92。
表3 不同結(jié)構(gòu)Stacking模型分類性能Tab.3 Classification performance of Stacking model with different structures
綜合上述仿真實驗對比與分析,設(shè)計建立兩層結(jié)構(gòu)的Stacking集成學(xué)習(xí)模型,如圖5所示。第1層選擇分類性能較高且模型差異性較大的4種基模型:RBFSVM、NN、RF與GBDT,第2層選擇結(jié)構(gòu)較簡單的LR模型,降低模型復(fù)雜度,防止過擬合。
圖5 Stacking集成學(xué)習(xí)模型結(jié)構(gòu)Fig.5 Structure of Stacking ensemble learning model
將設(shè)計的Stacking模型對比同樣組合RBFSVM、NN、RF與GBDT 4種基模型的MV多數(shù)投票集成模型,以及表2中性能最好的集成模型RF和性能最好的單一模型RBF-SVM,仿真實驗結(jié)果如表4所示。分析可知:該Stacking模型的分類精確率相比MV提高約3%,相比RF提高約6%,相比RBF-SVM提高約13%;召回率相比MV提高約3%,相比RF提高約7%,相比RBF-SVM提高約16%。仿真實驗結(jié)果表明該Stacking模型能在原有基模型基礎(chǔ)上進一步提升泛化能力,相比已有的典型集成模型和單一模型有更高的分類性能,可以更好地應(yīng)用于航空發(fā)動機故障診斷。
表4 Stacking模型與典型集成模型性能對比Tab.4 Performance comparison of Stacking model and typical ensemble models
針對航空發(fā)動機結(jié)構(gòu)復(fù)雜,難以實現(xiàn)準(zhǔn)確故障診斷的問題,提出了一種基于Stacking集成學(xué)習(xí)的故障診斷方法。仿真結(jié)果證明了該故障診斷模型相比現(xiàn)有典型模型的優(yōu)越性,同時也驗證了所提Stacking集成原則的合理性:第1層選擇組合精度較高、差異較大的模型,提升模型整體性能;第2層選擇結(jié)構(gòu)較簡單的線性分類模型,防止模型過擬合。為航空發(fā)動機故障診斷提供一種新的思路和方法,也為構(gòu)建基于Stacking集成學(xué)習(xí)方法的多分類模型提供設(shè)計參考。