付 松,鐘詩勝,林 琳,張永健
(哈爾濱工業(yè)大學(xué) 機電工程學(xué)院,黑龍江 哈爾濱 150001)
作為一類高價值復(fù)雜裝備,航空發(fā)動機的運行狀態(tài)與飛機飛行的安全性息息相關(guān)。更重要的是,由于長期在高溫、高壓等惡劣環(huán)境下運行,航空發(fā)動機氣路部件極易發(fā)生各種故障[1]。因此,必須對航空發(fā)動機進行有效的故障診斷,以確保其安全可靠地運行。作為航空發(fā)動機健康管理的一項關(guān)鍵技術(shù),故障診斷利用監(jiān)控得到的發(fā)動機氣路參數(shù)實現(xiàn)對航空發(fā)動機的氣路故障進行精確定位和診斷,不僅可以幫助工作人員及時快速地掌握發(fā)動機的工作狀態(tài),還能為發(fā)動機的維修時機預(yù)測、維修方案制定、維修成本預(yù)估提供有力的支持。
目前,航空發(fā)動機氣路故障診斷方法大致可以分為基于模型的故障診斷方法和基于數(shù)據(jù)驅(qū)動的故障診斷方法2類[2]?;谀P偷墓收显\斷方法需要建立發(fā)動機精確的物理數(shù)學(xué)模型來描述發(fā)動機的工作特性,如基于非線性最小二乘的故障診斷方法、基于卡爾曼濾波的故障診斷方法等[3-4]。然而,由于對導(dǎo)致發(fā)動機故障原因缺乏足夠的領(lǐng)域知識,導(dǎo)致無法建立精確的物理數(shù)學(xué)模型,尤其是對航空發(fā)動機這類大型復(fù)雜設(shè)備而言,其先驗知識更是十分匱乏,而且獲取十分困難,導(dǎo)致基于模型的故障診斷方法在實際過程中往往不可用。此外,航空發(fā)動機在實際運維過程中受到大量隨機因素的影響,導(dǎo)致花費大量資源建立的模型難以滿足航空發(fā)動機的實際運維需求。
與基于模型的故障診斷方法相比,數(shù)據(jù)驅(qū)動的故障診斷方法直接從常規(guī)收集的歷史運維數(shù)據(jù)中導(dǎo)出故障診斷模型,而不依賴任何領(lǐng)域知識,且計算過程簡單,具有較強的泛化性[5-6]。同時,數(shù)據(jù)驅(qū)動故障診斷方法還可以實時更新,對機器的運行工況有很好的適應(yīng)性。因此,基于數(shù)據(jù)驅(qū)動的故障診斷方法在工業(yè)領(lǐng)域得到了廣泛應(yīng)用和推廣。近年來,隨著深度學(xué)習(xí)的快速發(fā)展,深度學(xué)習(xí)能自動地從高維、冗余的復(fù)雜數(shù)據(jù)中提取出具有代表性的深度特征,使其成為了最主流的基于數(shù)據(jù)驅(qū)動的故障診斷方法之一。
基于深度學(xué)習(xí)的故障診斷方法主要利用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)輸入數(shù)據(jù)的深度特征,然后對這些學(xué)習(xí)得到的深度特征進行分類?;谏疃葘W(xué)習(xí)的故障診斷方法能夠有效提高故障診斷精度,這歸功于深度神經(jīng)網(wǎng)絡(luò)從大量的帶標簽的樣本中學(xué)習(xí)到豐富的特征表示的能力[7-10]。然而,航空發(fā)動機屬于高可靠性的工業(yè)產(chǎn)品,其發(fā)生故障的頻率非常低,在實際飛行過程中故障案例較少。故障樣本的缺乏導(dǎo)致直接利用深度神經(jīng)網(wǎng)絡(luò)對發(fā)動機進行故障分類不可行。
為了能夠在小樣本條件下,實現(xiàn)精確的航空發(fā)動機氣路故障診斷,并獲得較好的泛化性,受深度學(xué)習(xí)啟發(fā),本文基于航空發(fā)動機的真實運維數(shù)據(jù),提出一種基于深度自動編碼器(Deep Auto-Encoder,DAE)與支持向量機(Support Vector Machine,SVM)相結(jié)合的航空發(fā)動機小樣本故障診斷方法。針對航空發(fā)動機實際故障樣本少的問題,通過DAE遷移學(xué)習(xí)建立發(fā)動機狀態(tài)特征提取模型,而后利用建立的發(fā)動機狀態(tài)模型提取故障數(shù)據(jù)樣本的特征,并利用SVM實現(xiàn)小樣本分類;此外,為了使DAE模型能夠提取出更優(yōu)的深度特征,本文提出一種基于單個AE特征提取能力優(yōu)化DAE隱藏層節(jié)點數(shù)的方法。
如圖1所示為本文提出的發(fā)動機氣路故障診斷方法的原理圖,主要包括兩個過程:①利用基于DAE遷移學(xué)習(xí)建立發(fā)動機狀態(tài)特征提取模型;②利用支持向量機對狀態(tài)特征進行分類。在獲得航空發(fā)動機的正常樣本數(shù)據(jù)組和故障征候數(shù)據(jù)樣本組后,本文以足夠多的正常樣本對DAE模型進行訓(xùn)練。待DAE模型訓(xùn)練完成,將其遷移到故障樣本的特征提取任務(wù)中并保持不變,建立民航發(fā)動機狀態(tài)特征映射模型。當提取當次發(fā)動機故障征候樣本的深度特征時,將故障征候樣本組作為所建立的發(fā)動機狀態(tài)特征模型的輸入,通過發(fā)動機狀態(tài)特征提取模型得到的輸出即為故障征候樣本的深度特征。最后利用支持向量機對提取的特征進行分類。
DAE[11]是Hinton于2006年提出的一種深度無監(jiān)督學(xué)習(xí)算法,由淺層—自動偏碼器(Auto-Encoder,AE)堆疊而成,如圖2所示。每個AE[12]均由一個編碼器和一個解碼器組成,其結(jié)構(gòu)如圖3所示。很多文獻對AE進行了詳細的描述,AE的簡要介紹如下:
(1)將輸入向量x∈Rn通過編碼器映射為隱藏表示h∈Rm,如式(1)所示:
h(x)=Sf(W·x+b)。
(1)
式中:W表示權(quán)重矩陣,b表示偏置向量,Sf表示非線性激活函數(shù)。
(2)將隱藏表示h∈Rm通過解碼器重構(gòu)原始輸入向量,如式(2)所示:
z=Sg(W′·h+b′)。
(2)
式中:W′是權(quán)重矩陣,b′表示偏置向量,Sg表示非線性激活函數(shù),z表示重構(gòu)的輸入數(shù)據(jù)。
(3)通過訓(xùn)練集D訓(xùn)練DAE以尋找最優(yōu)參數(shù)θ={W,b;W′,b′},使得重構(gòu)數(shù)據(jù)z和原始輸入數(shù)據(jù)x的誤差最小。
與AE相比,DAE具有更強的特征提取能力,能夠提取出輸入數(shù)據(jù)的深層特征。DAE訓(xùn)練方式為無監(jiān)督逐層訓(xùn)練,即首先訓(xùn)練第一個AE,然后將第一個AE的隱層作為下一個AE的輸入,訓(xùn)練第二個AE,依次直到所有AE訓(xùn)練完成。一旦DAE訓(xùn)練完成,最后一個AE隱藏層的輸出即為輸入數(shù)據(jù)的深度特征。
DAE能夠有效提取輸入樣本的深度特征的前提是每種類別的訓(xùn)練樣本足夠多。然而,民航發(fā)動機在實際運行過程中故障樣本較少而正常樣本足夠多,是典型的類不平衡。如果直接利用DAE進行特征提取,就會受到類不均衡的嚴重影響,導(dǎo)致無法有效提取故障樣本的特征。最好的解決方法是增加每個故障類別的訓(xùn)練樣本數(shù),使網(wǎng)絡(luò)學(xué)習(xí)到更具有魯棒性和代表性的特征。顯然,這種方法對于民航發(fā)動機真實運維數(shù)據(jù)是不可行的。
除了增加發(fā)動機故障樣本外,遷移學(xué)習(xí)也是一個可行的用于提升人工智能輔助診斷性能的途徑。遷移學(xué)習(xí)是一種解決問題的思想。它不局限于特定的算法或者模型,其目的是將源域中學(xué)習(xí)到的知識或訓(xùn)練好的模型應(yīng)用到目標域[13]。因此,本文利用遷移學(xué)習(xí)來解決民航發(fā)動機故障診斷中面臨的故障樣本不足的問題。
針對發(fā)動機正常樣本足夠多而故障樣本較少的特點,本文使用的遷移學(xué)習(xí)思想是直接將在源域(這里是大量正常樣本)中學(xué)習(xí)到的特征表示模型遷移到目標域(這里是少量的故障樣本),如圖4所示。具體地,首先,僅使用大量發(fā)動機正常樣本構(gòu)成的源域?qū)AE進行訓(xùn)練;然后,將訓(xùn)練完成的DAE模型遷移到由多種類型但每種類型的樣本數(shù)較少的目標域中,并進行特征提取。最后,針對本文所關(guān)心的小樣本分類問題,選用支持向量機進行分類。與其他分類器相比,SVM在小樣本的條件下有較好的分類效果。
隱藏層和輸出層神經(jīng)元數(shù)是影響DAE特征學(xué)習(xí)能力的兩個重要因素。然而,如何設(shè)計合適的神經(jīng)元數(shù)使得DAE的特征學(xué)習(xí)性能達到最佳,一直是一個非常困難的問題。在當前的方法中基本上是通過大量的實驗試探,根據(jù)實驗結(jié)果來探尋最優(yōu)的神經(jīng)元數(shù)。為解決該問題,本文提出一種基于單個AE特征提取能力確定DAE隱藏層最優(yōu)節(jié)點數(shù)的方法。由圖2可知,DAE的核心就是通過堆疊多個AE的方式來挖掘原始數(shù)據(jù)中的深度特征。因此,可以認為在堆疊過程中每個AE特征提取能力越強,則最終所構(gòu)建的DAE的特征提取能力就越強。本文將從單個AE的特征學(xué)習(xí)能力的角度來分析DAE的特征學(xué)習(xí)能力。
由圖3可以看出,AE通過編碼過程將輸入樣本信息壓縮在隱層中,通過解碼過程使隱藏層重構(gòu)輸入得到重構(gòu)數(shù)據(jù),而訓(xùn)練AE的目的是盡可能地使輸入數(shù)據(jù)與輸出數(shù)據(jù)相同。因此,AE特征學(xué)習(xí)能力主要取決于其能否有效地重構(gòu)輸入。重構(gòu)誤差越小,表明AE特征學(xué)習(xí)能力越強。為了合理地比較原始輸入數(shù)據(jù)與重構(gòu)數(shù)據(jù)之間的重構(gòu)誤差,本文將使用均方根誤差(RMSE)和失真度(DD)來衡量它們的差異,其定義分別如下:
(3)
RMSE越小,表示重構(gòu)數(shù)據(jù)與原始輸入數(shù)據(jù)之間的差異越小,從而AE的特征提取能力越強。
(2)失真度根據(jù)文獻[14]中的定義,本文采用相對均方差值定義失真度,具體如式(4)所示:
(4)
失真度S越小,表示重構(gòu)數(shù)據(jù)與原始數(shù)據(jù)之間的差異越小,AE的特征提取能力越強。
根據(jù)上述方法,可以很好地比較不同隱藏層節(jié)點數(shù)下AE特征提取能力的好壞。而后本文將選取單個AE特征提取能力最好的隱藏層節(jié)點數(shù)作為DAE模型的隱藏層節(jié)點數(shù)。對于DAE模型的輸出層節(jié)點數(shù),根據(jù)DAE模型原理可知,DAE是由多個AE堆疊而成,DAE的輸出層即為最后一個AE的隱藏層,可以利用同樣的方法進行確定。綜上,可以建立具有最優(yōu)隱藏層和輸出層神經(jīng)元數(shù)的DAE模型。
原始設(shè)備制造商(Original Equipment Manufacturer, OEM)數(shù)據(jù)是OEM解算的一種偏差數(shù)據(jù),通常用來監(jiān)測航空發(fā)動機的性能狀態(tài)。如圖5所示為OEM返回給航空公司的客戶通知報告(Customer Notification Report, CNR)??梢钥闯觯琌EM主要使用DEGT、DFF、DN2和EGTM四個氣路性能參數(shù)對氣路故障進行指征[15]。通常,EGTM被用來預(yù)測發(fā)動機的剩余壽命,而DEGT、DN2、DFF的變化趨勢用來監(jiān)控發(fā)動機的狀態(tài)[16]。因此,本文也選取上述4個參數(shù)作為氣路故障指征參數(shù),以某CFM56-7B系列的航空發(fā)動機隊為樣本機隊,并以其OEM數(shù)據(jù)為基礎(chǔ),建立民航發(fā)動機氣路故障診斷模型。
由于民航發(fā)動機工作環(huán)境復(fù)雜,導(dǎo)致測量并經(jīng)過計算的性能參數(shù)存在大量隨機噪聲,這些噪聲會對故障診斷造成一定影響。另一方面,民航發(fā)動機是典型的復(fù)雜機械設(shè)備,由多個單元體組成。由于單元體的制造誤差、裝配誤差以及運行工況不同,導(dǎo)致每個發(fā)動機個體之間存在著較大的差異[17]。如圖6所示為CFM56-7B系列的3臺新發(fā)投入使用時最早100個循環(huán)中DEGT氣路參數(shù)變化圖,從圖中可以看出,即使是型號相同、狀態(tài)相似的發(fā)動機,其DEGT值的變化都有較大差異。因此,運用OEM數(shù)據(jù)建立發(fā)動機氣路故障診斷模型時,必須消除噪聲,弱化因個體差異對故障診斷造成的影響。
結(jié)合CNR對樣本機隊的實際運維數(shù)據(jù)進行分析,可以發(fā)現(xiàn)民航發(fā)動機在發(fā)生氣路故障前的一段時間內(nèi)其氣路性能參數(shù)會出現(xiàn)明顯的變化趨勢。圖7所示為某發(fā)動機被OEM廠家確診為排氣溫度指示故障后,其氣路性能參數(shù)DEGT在故障點前的300個連續(xù)飛行循環(huán)的數(shù)值變化趨勢,其中T2為故障時刻,T1為報警時刻。通過對圖中的變化趨勢進行直線擬合,可以發(fā)現(xiàn)DEGT在T1時刻到T2時刻之間的變化趨勢發(fā)生了明顯的突變現(xiàn)象。通過對不同的氣路性能參數(shù)進行類似的分析,當發(fā)動機出現(xiàn)不同氣路故障類型時,其對應(yīng)的氣路性能參數(shù)會呈現(xiàn)明顯的變化趨勢。因此,本文將氣路性能參數(shù)的這種變化趨勢作為民航發(fā)動機的氣路故障指征。具體氣路故障征候數(shù)據(jù)的預(yù)處理過程如下:
假設(shè)民航發(fā)動機氣路監(jiān)控參數(shù)X={x1,x2,x3,…,xn},xi表示具體的監(jiān)控性能參數(shù),故障征候樣本具體構(gòu)造過程如下:
步驟1首先獲取故障確認點前性能參數(shù)xi的m個連續(xù)飛行循環(huán)數(shù)據(jù),如式(5)所示:
(5)
步驟2按照時間順序,將每個性能參數(shù)m個采樣數(shù)據(jù)進行分組,將離故障確認點最近的一組選為故障征候組,其余各組為正常組。
設(shè)Yi={ym,ym-1,…,y1}表示監(jiān)控參數(shù)xi的m個連續(xù)飛行循環(huán)數(shù)據(jù),如果每組r個飛行循環(huán),則每個性能參數(shù)小偏差序列將會被分成k個子序列,
(6)
(7)
式中:Yi,2,…,Yi,k表示氣路性能參數(shù)xn的正常數(shù)據(jù)組,Yi,1表示氣路性能參數(shù)xi的故障征候數(shù)據(jù)組。
步驟3令Fj={Y1j,Y2j,…,Ynj},j=1,2,3,…,k,Yij表示性能參數(shù)xi分組后的第j組飛行數(shù)據(jù)。當且僅當j=1時,F(xiàn)1={Y11,Y21,…,Yn1}表示故障樣本。
步驟4對不同的故障模式進行標記,假設(shè)有a1,a2,a3,…,an等n種故障模式,將所有正常樣本標記為“0”,故障模式a1標記為“1”,故障模式a2標記為“2”……。
分析OEM廠家的故障預(yù)報數(shù)據(jù),其選取的故障征候循環(huán)數(shù)(圖7中T1和T2時刻之間的飛行循環(huán)數(shù))從5到130不等,且只有少數(shù)故障征候循環(huán)數(shù)超過10,因此,選取10個循環(huán)作為故障指征數(shù)據(jù)的區(qū)間段能夠滿足大部分的故障診斷需求。通過對樣本機隊的發(fā)動機維修報告和CNR分析整理,按照本文故障指征預(yù)處理方法,本文共獲取了30組排氣溫度指示(EGT Indication)故障案例樣本,22組進口總溫指示(TAT Indication)故障案例樣本、20組HPT葉片燒蝕(HPT_Blade)故障和3 268組正常樣本,如表1所示。
表1 故障類別分布
本章將利用收集的實際發(fā)動機運維數(shù)據(jù)對本文提出的故障診斷方法進行驗證,鑒于本文所收集的數(shù)據(jù)量,選擇兩個AE堆疊形成DAE模型。首先,通過1.2節(jié)所提出的方法對DAE模型的隱藏層神經(jīng)元數(shù)和輸出層神經(jīng)元數(shù)進行優(yōu)化。然后基于優(yōu)化后的DAE模型和SVM進行故障診斷,并以分類正確率(Accuracy)和召回率(Recall)對故障診斷結(jié)果進行評價,計算公式如式(8)和式(9)所示:
(8)
(9)
式中:TP表示分類器將正常樣本分類正確的數(shù)量,TN表示分類器將故障樣本分類正確的數(shù)量,F(xiàn)N表示分類器將正常樣本分類為故障樣本的數(shù)量,F(xiàn)P表示分類器將故障樣本分類為正常樣本的數(shù)量。
本章所有實驗中的相關(guān)算法均采用Python語言(3.6版本)以及谷歌開源的Tensor Flow(1.13.1版本)工具箱[*]進行編程實現(xiàn),所采用的計算機平臺配置為英特爾i5-6300型處理器。其中,Tensor Flow 是由美國谷歌公司所開發(fā)的基于張量流圖的開源機器學(xué)習(xí)庫,具有自動求解反向梯度以進行模型參數(shù)(權(quán)值和偏置)優(yōu)化的功能,適用于深度學(xué)習(xí)算法的快速研發(fā)。同時,Tensor Flow 工具箱能夠支持基于圖像處理單元的大規(guī)??焖倬仃囘\算,極大地縮短了AE和DAE算法所需要的訓(xùn)練時間。
AE的輸入層節(jié)點數(shù)由輸入數(shù)據(jù)的維數(shù)決定,本實驗中輸入數(shù)據(jù)的維數(shù)為40,因此將AE的輸入層節(jié)點數(shù)設(shè)為40。為了充分分析不同隱藏層神經(jīng)元數(shù)下AE的特征學(xué)習(xí)能力,依次將隱層節(jié)點數(shù)設(shè)為10~200(以10為間隔)進行實驗。然后,利用提出的兩個評價指標DD和RMSE對AE的特征學(xué)習(xí)能力進行評估。為了在同一標準下進行比較,當研究隱藏層節(jié)點數(shù)對AE特征提取能力的影響時,保證其他參數(shù)不變。關(guān)于AE的相關(guān)參數(shù)設(shè)置:學(xué)習(xí)率設(shè)為0.001,迭代次數(shù)設(shè)為300,節(jié)點激活函數(shù)使用softplus函數(shù)。算法1描述了獲取不同隱藏層節(jié)點數(shù)下AE的DD和RMSE具體過程。
算法1獲取不同隱藏層節(jié)點下AE的DD和RMSE。
2: 輸出:重構(gòu)誤差集R和失真度集D
3: 輸入層inputLayer←(輸入層神經(jīng)元節(jié)點數(shù)n_nodes=n)
4: 隱藏層(編碼)encoderLayer←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=t,激活函數(shù)=softplus)(inputLayer)
5: 輸出層(解碼)decoderLayer←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=n,激活函數(shù)=softplus)( encoderLayer)
6: AE模型←Model(inputLayer,decoderLayer)
7: encoder模型←Model(inputLayer,encoderLayer)
8: R←[]
9: D←[]
10: for t = n1:n2: n3do
11:AE.compile(optimizer='adam', loss='mean_squared_error')
12: AE.optimizer.lr.assign(0.001)
13: AE.fit(X)
15:Xf←encoder. predict(X)
15: reconstructError←[]
18: end for
21:end for
22: Return R, D
根據(jù)算法1得到的實驗結(jié)果如表2所示,表中給出了由實驗得到的不同隱層節(jié)點數(shù)下AE重構(gòu)原始輸入數(shù)據(jù)的DD(DD過小,將其乘以放大倍數(shù)104)和RMSE,圖8是將表2中的數(shù)據(jù)用折線圖表示。從圖8中可以看出,當隱藏層節(jié)點數(shù)從10變化到30時,隨著隱層節(jié)點數(shù)增加,DD和RMSE快速減?。划旊[層節(jié)點數(shù)由30增加到120時,隨著隱層節(jié)點數(shù)的增加,DD和RMSE緩慢減小;當隱藏層節(jié)點數(shù)大于120時,隨著隱層節(jié)點數(shù)的增加,DD和RMSE在某個范圍內(nèi)呈震蕩變化。由于本文采用的是真實的燃氣輪機運行數(shù)據(jù),實驗結(jié)果存在一定的誤差。當隱藏節(jié)點數(shù)為120,在誤差允許的范圍內(nèi),可以認為DD和RMSE均已不再變化。因此,本文將選取120作為DAE模型隱藏層的節(jié)點數(shù)。
表2 不同隱藏層節(jié)點AE的RMSE和DD對比(輸入層節(jié)點數(shù)為40)
由圖2可知,DAE的輸出層就是最后一個AE的隱藏層。首先利用3.1節(jié)所確定的第一個AE模型(輸入層節(jié)點數(shù)設(shè)為40,隱藏層節(jié)點數(shù)設(shè)為120)對原始數(shù)據(jù)集進行轉(zhuǎn)化,轉(zhuǎn)化后的數(shù)據(jù)集中每個樣本的維數(shù)變?yōu)?20,具體轉(zhuǎn)化過程如算法1中的Xf所示。然后將另一個AE輸入層設(shè)為120,選取該AE模型最優(yōu)的隱藏層節(jié)點數(shù),即為DAE模型的輸出層節(jié)點數(shù),訓(xùn)練該AE模型所使用的訓(xùn)練集為轉(zhuǎn)化后的數(shù)據(jù)集。本實驗將AE隱藏層節(jié)點數(shù)分別設(shè)為5、10、15、20、25、30、35、40、50、55、60、65、70、75、80、85、90、95和100,依次進行實驗,其余相關(guān)參數(shù)設(shè)置與前文保持一致,算法流程如算法1所示。實驗結(jié)果如表3和圖9所示。
如圖9所示,在初始階段,DD和RMSE隨著隱層節(jié)點數(shù)的增加而快速減??;而當隱藏層節(jié)點數(shù)增加到35后,DD和RMSE不再隨著隱層節(jié)點數(shù)的增加而減小,而是在很小的范圍內(nèi)呈震蕩變化。在誤差允許的范圍內(nèi),可以認為當隱藏層節(jié)點數(shù)到35以后,DD和RMSE不再發(fā)生變化。因此,當AE輸入層節(jié)點數(shù)為120,隱藏層節(jié)點數(shù)設(shè)為35,AE的特征提取能力最好。因此,本文將DAE模型的輸出層節(jié)點數(shù)設(shè)為35。
表3 不同輸出節(jié)點數(shù)下AE的失真度和RSME(輸入層節(jié)點數(shù)為120)
本文基于DAE遷移學(xué)習(xí)建立發(fā)動機狀態(tài)特征提取模型的目的是將發(fā)動機原始的狀態(tài)特征映射到新的特征空間,以提高發(fā)動機狀態(tài)數(shù)據(jù)的辨識度。由于發(fā)動機故障樣本的缺乏,本文首先在源域中對DAE進行預(yù)訓(xùn)練,而后將預(yù)訓(xùn)練后的DAE模型遷移到故障識別任務(wù)中并保持不變,建立發(fā)動機狀態(tài)特征提取模型。正常樣本和故障樣本都來自發(fā)動機的氣路監(jiān)測,它們之間具有一定的聯(lián)系且具有一定相似性,因此,它們具有可遷移性。利用遷移學(xué)習(xí)建立的發(fā)動機狀態(tài)特征提取模型的合理性,將通過以下實驗進行驗證。
(1) 同種故障類型樣本間差異性減小驗證
圖10a和圖10c描述了歸一化后的正常樣本和TAT指示故障樣本(每類隨機選取5個樣本)。通過觀察樣本,可以發(fā)現(xiàn)原始樣本存在大量的數(shù)據(jù)噪聲,并且即使同型號發(fā)動機在發(fā)生同一類故障時,也存在較大的個體差異。將這些樣本通過本文建立的狀態(tài)特征提取模型映射到新的特征空間中,如圖10b和圖10d所示。通過對比,在特征空間中,同類樣本基本都聚合在一起,樣本的個體差異性和數(shù)據(jù)噪聲得到了很好的消除。實驗結(jié)果證明了將原始狀態(tài)數(shù)據(jù)通過所建立的發(fā)動機狀態(tài)特征提取模型映射到新的特征空間中,可以很好地消除發(fā)動機原始數(shù)據(jù)中存在的數(shù)據(jù)噪聲和個體差異性。此外,本文所提出的狀態(tài)特征提取模型還對原始樣本進行了降維處理,有效降低了樣本的復(fù)雜性。
(2) 不同故障類型樣本間的差異性增大
盡管圖10較好地描述了同種故障類型樣本間的差異性,以及原始樣本中存在的數(shù)據(jù)噪聲在新的特征空間中得到了很好的消除,卻沒有明確地反映在新的特征空間中不同故障類型樣本間的差異性是否得到增強。因此,本文隨機選取了68組正常樣本、30組EGT指示故障樣本、22組TAT指示故障樣本以及20組HTP葉片燒蝕故障樣本,并利用本文所建立的發(fā)動機狀態(tài)特征提取模型對其進行特征提取,然后對所得到的深度特征進行了分析,部分分析結(jié)果如圖11所示。為了更好地可視化不同故障類型在新特征空間中的可分性,本文將不同維度上的特征進行組合,并通過三維視圖進行展示。直觀分析圖11不難發(fā)現(xiàn),結(jié)合第11維、26維和29維特征可以較好地分離出正常樣本,而結(jié)合第22維、26維和29維特征可以很好地分離出TAT指示故障樣本。實驗結(jié)果證明,原始數(shù)據(jù)通過本文建立的發(fā)動機狀態(tài)特征模型映射到新的特征空間中后,具有較高的辨識度。
綜合上述實驗結(jié)果表明,本文采用DAE遷移學(xué)習(xí)建立的發(fā)動機狀態(tài)特征提取模型,將發(fā)動機原始狀態(tài)數(shù)據(jù)映射到低維特征空間中,可以在消除數(shù)據(jù)噪聲和個體差異性的同時,還具有較高的辨識度。因此,本文建立的發(fā)動機狀態(tài)提取模型的合理性得以證明,同時上述實驗結(jié)果也證明了本文所提出方法的可行性。
通過上述實驗可以確定DAE模型的隱藏層和輸出層節(jié)點個數(shù),而輸入層節(jié)點個數(shù)由原始樣本數(shù)據(jù)的維數(shù)確定。因此,本文DAE模型輸入層節(jié)點個數(shù)為40,隱藏層節(jié)點個數(shù)為120,輸出層節(jié)點個數(shù)為35,其他相關(guān)參數(shù)設(shè)置如下:學(xué)習(xí)率設(shè)為0.001,迭代次數(shù)設(shè)為200,節(jié)點激活函數(shù)使用softplus函數(shù)。待DAE所有參數(shù)設(shè)置完成后,首先利用隨機選取的3 000組正常樣本構(gòu)成訓(xùn)練集對DAE模型進行訓(xùn)練,而后利用訓(xùn)練好的DAE模型對有所有故障樣本組成的標記集進行特征提取,最后利用SVM對得到的特征進行分類測試,具體過程如算法2所示。此外,訓(xùn)練和測試SVM的樣本分布如表4所示,支持向量機核函數(shù)選用多項式核。
算法2基于DAE遷移學(xué)習(xí)與SVM相結(jié)合的故障診斷。
2:輸出:故障分類結(jié)果Acc和 Recall
3: 輸入層inputLayer←(輸入層神經(jīng)元節(jié)點數(shù)n_nodes=40)
4: 隱藏層1(編碼)encoderLayer1←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=120,激活函數(shù)=softplus)(inputLayer)
5: 隱藏層2(編碼)encoderLayer2←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=35,激活函數(shù)=softplus)(encoderLayer1)
6: 重構(gòu)層1(解碼)decoderLayer1←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=120,激活函數(shù)=softplus)(encoderLayer2)
7: 重構(gòu)層2(解碼)decoderLayer2←Dense(神經(jīng)元節(jié)點數(shù)n_nodes=40,激活函數(shù)=softplus)(decoderLayer1)
8:DAE模型←Model(inputLayer,decoderLayer2)
9: encoder模型←Model(inputLayer, encoderLayer2)
10: DAE.fit(Xtrain)
11:Xf←encoder. predict(Xtag)
12: XtrainSVM, XtestSVM←Xf
13: Ytrain_label←[zeros(200, 1), ones(20, 1), ones(10, 1)*2, ones(10, 1)*3]
14: Ytest_label←[zeros(68, 1), ones(10, 1), ones(10, 1)*2, ones(10, 1)*3]
15: SVM.fit(XtrainSVM, Ytrain_label)
16: Ypredict_label←SVM.predict(XtestSVM)
17: Acc←accuracy_score(Ytest_label,Ypredict_label)
18: Recall←recall_score(Ytest_label,Ypredict_label)
19: Return Acc, Recall
為了證明所提故障診斷方法的優(yōu)越性,本文進行了7組對比實驗。第1組對比實驗使用SVM直接對原始標記集數(shù)據(jù)進行分類;第2組對比實驗使用DAE和Softmax分類器組成的監(jiān)督型深度神經(jīng)網(wǎng)絡(luò)(在DAE的輸出層直接連接一個Softmax分類器)直接對原始數(shù)據(jù)進行分類;第3組到~6組對比實驗中使用的方法與實驗組相同,但隨機組合了DAE的隱藏層和輸出層神經(jīng)元節(jié)點數(shù);第7組實驗是實驗組,即:用本文提出的方法進行故障診斷。為了消除算法的隨機性,每組實驗重復(fù)10次,取10次實驗的平均值作為最終的診斷結(jié)果,如表5所示。
由表5可以看出,上述7組實驗在訓(xùn)練集上的訓(xùn)練精度都能達到100%,但是在測試集上的測試精度存在著明顯的差異。第5組、第7組實驗結(jié)果的測試精度最好,而第2組實驗結(jié)果的測試精度最差。第2組實驗完全不能檢測出3種故障類型,這是因為故障樣本數(shù)量太少,導(dǎo)致網(wǎng)絡(luò)訓(xùn)練時出現(xiàn)了過擬合問題,再次證明了樣本數(shù)量對監(jiān)督型深度神經(jīng)網(wǎng)絡(luò)的重要性。其次,SVM方法的測試精度也較差,尤其是對HPT故障不能識別,這是因為原始序列樣本中參數(shù)屬性之間存在冗余以及存在大量的噪聲,導(dǎo)致SVM分類效果較差。
表4 訓(xùn)練和測試SVM的特征集分布
對比表5中后5組實驗的故障識別率,第5組、第7組實驗對故障的識別能力明顯優(yōu)于第3、4、6組實驗。后5組實驗唯一的區(qū)別在于DAE的隱藏層和輸出層節(jié)點數(shù)不同,在第3、4、5、6組實驗中DAE的隱藏層和輸出層節(jié)點數(shù)是隨機組合,而在第7組實驗中DAE模型的隱藏層和輸出層節(jié)點數(shù)則是通過所提出的基于單個DAE特征提取能力進行確定的。雖然第5組和第7組實驗結(jié)果均具有非常高的故障識別率,并且兩組實驗的測試結(jié)果非常接近,但是第5組中實驗中DAE模型的輸出層節(jié)點數(shù)是第7組實驗中DAE模型的輸出層節(jié)點數(shù)的兩倍。顯然,第5組實驗中的DAE模型要比第7組實驗中的DAE模型更加復(fù)雜。因此,綜合比較而言,第7組實驗中的DAE模型具有更優(yōu)的性能。上述實驗結(jié)果可以證明DAE的隱藏層和輸出層節(jié)點數(shù)對最終所提取的特征有較大的影響,并且本文所提出的基于單個AE特征提取能力優(yōu)化DAE隱藏層和輸出層節(jié)點數(shù)的方法是有效的。
表5 不同模型的故障診斷結(jié)果比較
針對民航發(fā)動機氣路故障診斷過程中的OEM數(shù)據(jù)噪聲明顯、故障樣本不足的問題,本文提出一種基于DAE與SVM相結(jié)合的民航發(fā)動機小樣本故障診斷方法,并通過某航空公司CFM56-7B系列機隊的實際飛行數(shù)據(jù)對該方法進行了驗證。實驗證明,所提方法具有可靠的實用性,能對民航發(fā)動機氣路故障進行較好的診斷。通過研究,還得出如下結(jié)論:
(1)盡管兩個數(shù)據(jù)集存在一定的差異,本文基于DAE遷移學(xué)習(xí)方法建立的發(fā)動機狀態(tài)特征提取模型,可以有效地提取故障樣本的深度特征。
(2)提出的基于單個AE特征學(xué)習(xí)能力確定DAE隱藏層和輸出層神經(jīng)元個數(shù)的方法可以有效地對DAE隱藏層和輸出層神經(jīng)元個數(shù)進行優(yōu)化,為優(yōu)化DAE隱藏層和輸出層神經(jīng)元個數(shù)提供了新思路。
(3)對于本文提出的3種故障模式,當DAE模型的結(jié)構(gòu)為40-120-35時,故障診斷的診斷效果最好。
未來計劃收集更多故障類型,來更加全面地驗證本文方法。除此以外,對本文方法進行改進,使其能應(yīng)用在飛機通信尋址與報告系統(tǒng)(Aircraft Communications Addressing and Reporting System,ACARS)數(shù)據(jù)上也是本文未來的研究方向。與OEM數(shù)據(jù)相比,ACARS數(shù)據(jù)參數(shù)關(guān)系更加復(fù)雜,并且參數(shù)種類更多,這兩個特點使其更適合于作為發(fā)動機故障診斷的數(shù)據(jù)源。基于ACARS數(shù)據(jù)對航空發(fā)動機進行故障診斷是一個具有挑戰(zhàn)性的研究領(lǐng)域。