洪驥宇, 王華偉, 車暢暢, 倪曉梅
(南京航空航天大學民航學院 南京,210016)
發(fā)動機是飛機的心臟,實時而準確地進行發(fā)動機的狀態(tài)監(jiān)測與故障診斷,即可以提高維修效率、降低維修成本,也有利于做出正確的飛行決策,提高飛行安全。但由于發(fā)動機本身復雜的結構和惡劣的工作環(huán)境,存在著大量非線性和帶有噪聲監(jiān)測特征,加上其故障模式多樣及存在著關聯(lián)故障、競爭失效等諸多情況,準確地進行故障診斷較為困難。
目前,進行航空發(fā)動機故障診斷一般分為3種方法:基于模型、基于知識及數(shù)據(jù)驅動的故障診斷方法?;谀P偷墓收显\斷方法方面,如張鵬等[1]使用球面采樣平方根無損卡爾曼濾波器進行發(fā)動機的故障診斷,在傳感器故障的情況下仍取得良好效果。Lu等[2]使用擴展卡爾曼濾波器進行了發(fā)動機的狀態(tài)估計。基于知識的故障診方法,如陳果等[3]將鐵譜、光譜及試車臺數(shù)據(jù)知識規(guī)則整合為專家系統(tǒng)進行了發(fā)動機磨損故障診斷。趙薇等[4]使用故障樹結合對球磨機振動信號的分析,對其機械部件進行了故障診斷。
隨著航空發(fā)動機的結構越來越復雜,準確的性能模型、知識規(guī)則越來越難建立與確定,而基于數(shù)據(jù)驅動的智能診斷技術能滿足時變非線性的診斷要求,使用越來越廣泛。如崔建國等[5]使用動態(tài)主元分析提取特征并使用改進的SVM進行發(fā)動機的滑油系統(tǒng)的故障診斷。Lu等[6]使用RBF網(wǎng)絡進行發(fā)動機氣動故障診斷,最后結合D-S證據(jù)理論與SVM建立了氣路融合診斷架構。Benyounes等[7]運用自適應模糊神經(jīng)網(wǎng)絡建立了工作系統(tǒng)的數(shù)學模型,通過該模型進行故障診斷。Nozari等[8]使用多層感知器(multi-layer perception,簡稱MLP)神經(jīng)網(wǎng)絡對燃氣渦輪機建立了故障診斷與隔離方法。Zhao等[9]使用粗糙集預先處理數(shù)據(jù)并建立粗糙診斷模型,最后根據(jù)得到的結果使用BP神經(jīng)網(wǎng)絡進行故障診斷。曹沖鋒等[10]將泛化搜索引入SVM的超參數(shù)選擇中,利用改進的模型進行了故障診斷。
目前,基于數(shù)據(jù)驅動的故障診斷大多使用BP,RBF,SVM等機器學習算法來實現(xiàn)。這些算法使用標簽數(shù)據(jù)進行訓練學習,提取出故障特征從而進行分類,實現(xiàn)故障診斷。機器學習算法為以航空發(fā)動機為代表的復雜大系統(tǒng)進行故障診斷提供了可能,但也有其局限性和缺點:a.從傳感器上直接得到的數(shù)據(jù)非線性極強,加上惡劣環(huán)境帶來的噪聲污染,使用這些淺層網(wǎng)絡進行診斷會被噪聲影響且難以挖掘數(shù)據(jù)之間的深層關系;b.淺層網(wǎng)絡本身也有自己的局限,SVM對噪聲較為敏感容易產(chǎn)生過擬合;c.BP等傳統(tǒng)神經(jīng)網(wǎng)絡在訓練過程中容易產(chǎn)生局部最優(yōu)。
深度神經(jīng)網(wǎng)絡是最近機器學習研究的熱點,由于其非線性表達能力極強,能夠挖掘數(shù)據(jù)之間深層關系得到內在特征,已在圖像識別、自然語言處理方面等領域取得突破進展[11-12],在故障診斷方面也有了一些進展。雷亞國等[13]使用深度信念網(wǎng)絡對多級齒輪傳動系統(tǒng)進行了健康狀態(tài)識別。Li等[14]在對齒輪箱研究時,使用深度信念網(wǎng)絡進行了故障診斷。筆者擬結合深度學習網(wǎng)絡在其他領域應用的成果,結合航空發(fā)動機氣路故障診斷的特點,采用降噪自編碼器DAE通過貪婪逐層訓練算法逐層提取特征,最終得到一個能夠表征數(shù)據(jù)深層特征且更適合故障診斷的特征向量,然后將特征導入經(jīng)過改進螢火蟲算法進行優(yōu)化的RBF網(wǎng)絡進行故障診斷。本模型的優(yōu)點在于通過深度結構、降噪訓練,經(jīng)過非監(jiān)督學習得到了更能表征故障類型且更為魯棒的深層特征,更利于分類;同時在原有DAE的基礎上進行改良,分類器采用FRBF,分類性能進一步提高,能夠更為準確地進行故障診斷。
常見的氣路故障有以下幾種:積垢、腐蝕與侵蝕、熱變形、物體打傷以及密封件疲勞等。但無論哪種故障都必然會導致某部件的性能下降,如壓氣機葉片的磨損會導致壓氣機效率的下降。部件性能的下降,也會使得測量參數(shù)跟著變化而偏離設計值,如圖1所示[15]。為了檢測故障,基于模型的方法一般是利用搭建好的模型的輸出量與系統(tǒng)輸出做偏差比較,以此來判斷是否存在故障并定位故障原因。
圖1 航空發(fā)動機氣路診斷分析Fig.1 Analysis of gas path diagnosis for aero-engine
如圖1所示,反映部件性能退化的效率等參數(shù)被稱為性能參數(shù),這些參數(shù)一般難以直接測量;而轉速、穩(wěn)定、壓力及燃油流量等可以直接測量的參數(shù),被稱為測量參數(shù)。筆者通過測量參數(shù)以及學習參數(shù)和故障之間的關系進行故障診斷。測量參數(shù)越多,越能夠反映發(fā)動機當前工況,從而提高診斷率。但是由于傳感器技術等原因,能測量的參數(shù)有限,并且在選取測量參數(shù)時需要遵守以下幾個原則[16]:a.能夠顯著反映發(fā)動機狀態(tài);b.對故障敏感;c.測量參數(shù)之間相關性小。
考慮到發(fā)動機的健康管理與實際工作中的狀態(tài)監(jiān)測,選擇以下4個參數(shù)進行故障診斷:排氣溫度EGT、燃油流量FF、高壓轉子轉速N2和壓轉子轉速N1。
隨著發(fā)動機越來越復雜,加上傳感器技術與人工智能技術的發(fā)展,無需依賴模型精度的后者越發(fā)得到重視。但是,后者雖然得到了廣泛的使用,仍然存在一些問題:a.相似故障由于測量參數(shù)類似,很難加以區(qū)分;b.測量參數(shù)中存著的噪音,對診斷精度有一定干擾;c.發(fā)動機具有很強的非線性,傳統(tǒng)算法很難挖掘數(shù)據(jù)間的關系;d.傳統(tǒng)算法自身存在一定局限,如SVM易受噪聲干擾,BP易產(chǎn)生局部極值。針對上述問題,筆者使用改進的DAE算法進行航空發(fā)動機氣路故障診斷。
筆者使用的改進DAE算法分為兩個部分,DAE部分和FRBF部分,如圖2所示。
圖2 算法框架Fig.2 Algorithm framework
DAE部分利用深層結構以及貪婪逐層訓練算法,并通過在輸入層加入“損傷噪聲”訓練出利于分類且更為魯棒的深層故障特征。FRBF則是通過引入慣性權重與自適應光強因子的FA算法優(yōu)化傳統(tǒng)的RBF網(wǎng)絡,得到分類性能更為優(yōu)異的FRBF。最終,利用DAE部分得到的特征,使用FRBF進行故障診斷。
Hinton等[17]通過對受限玻爾茲曼機(restricted boltzmann machines,簡稱RBM)進行堆疊并使用貪婪逐層方法訓練參數(shù),取得了良好的效果。隨后根據(jù)這一思想,Bengio等[18]提出了堆疊自編碼(stack autoencoder,簡稱SA)。為了解決機器學習中的過擬合問題,降噪自編碼器應運而生[19]。
2.2.1 自編碼器
自編碼網(wǎng)絡分為3層:輸入層、隱含層和輸出層,而其核心部分又可分為編碼和解碼兩部分。網(wǎng)絡通過編碼部分將數(shù)據(jù)進行重構提取特征,又通過解碼部分將提取的特征進行還原與原輸入進行對比,通過迭代,最終得到能夠代表原始數(shù)據(jù)的特征參數(shù)。
編碼部分中映射函數(shù)為
y=fθ(x)=s(Wx+b)
(1)
其中:s(x)為編碼器的激活函數(shù);θ為編碼參數(shù),由具體的函數(shù)模型參數(shù)W和b組成;y為編碼后提取的特征。
解碼部分的映射函數(shù)可表示為
z=gθ′(y)=s(W′y+b′)
(2)
其中:gθ′(y)為解碼器的激活函數(shù);θ′為解碼參數(shù),θ′由W′和b′組成。
要想使得提取的特征盡可能地代表原始數(shù)據(jù),則損失函數(shù)需取最小值。損失函數(shù)L(x,z)定義如下
(3)
(4)
2.2.2 貪婪逐層訓練算法
人腦在識別事物的過程中不止用了一層神經(jīng)元,通過層層提煉事物的特征,才能準確地對事物進行判別。神經(jīng)網(wǎng)絡也是這樣,每加入一層隱藏層,網(wǎng)絡的表達能力都得到了進一步的加強。為了得到事物的深層特征,必須使用深度結構的網(wǎng)絡來進行訓練。由于訓練算法的原因,在訓練深度網(wǎng)絡時不得不面對局部極值和梯度彌散等問題,這曾讓深度網(wǎng)絡停滯不前。而貪婪逐層訓練算法,讓這一問題得到了解決。
如圖3所示,以3層隱含層為例。h為第1隱含層,按照正常的訓練算法得到第1個隱含層的w和b之后,在進行第2隱含層訓練時,以第1隱含層的輸出作為第2隱含層的輸入,而在進行第3隱含層訓練時,則使用第2隱含層的輸出作為輸入。若隱含層數(shù)增加,也以此類推,最終得到能夠表達數(shù)據(jù)信息的深層特征值。
圖3 貪婪訓練的隱含層Fig.3 Hidden layer for greedy training
2.2.3 加躁訓練環(huán)節(jié)
(5)
圖4 降噪自編碼器Fig.4 Denoising autoencoder
2.3.1 RBF神經(jīng)網(wǎng)絡
RBF神經(jīng)網(wǎng)絡是一個3層前饋神經(jīng)網(wǎng)絡,如圖5所示。
圖5 RBF網(wǎng)絡Fig.5 RBF network
其3層的節(jié)點數(shù)分別為n,h,m。輸入向量為X=[x1,x2,x3,…,xn]T,輸出向量為Y=[y1,y2,y3,…,ym]T。
當徑向基函數(shù)選用高斯函數(shù)時,則隱含層的輸出為
(6)
其中:i=(1,2,…,h);ci為高斯函數(shù)的中心;σi為高斯函數(shù)的方差。
在得到隱含層輸出之后,經(jīng)進過權值分配,即可得到輸出層
(7)
其中:i=(1,2,…,h);j=(1,2,…,m);ωij為連接隱含層和輸出層的權值。
2.3.2 螢火蟲優(yōu)化算法
螢火蟲算法[20]的基本思想是將每種解決方案當成螢火蟲,而每一種方案的優(yōu)劣程度決定螢火蟲的亮度,而越亮的螢火蟲會吸引周圍的螢火蟲向它靠攏。隨著不停迭代,大部分的螢火蟲會聚集到最亮螢火蟲的周圍,從而得到最優(yōu)解。
螢火蟲的亮度為
I=I0e-γrij
(8)
其中:I0為螢火蟲自身的亮度,它取決于需要尋優(yōu)的適應度;rij為任意點到螢火蟲間的距離;γ為光強吸收因子,用來決定螢火蟲的光亮范圍。
定義吸引度為
(9)
其中:β0為距離為0時螢火蟲的吸引力;m為指定的指數(shù)參數(shù),本研究定義為2。
若兩個螢火蟲i和j,其中一只亮度大于另一只,如I0(j)>I0(i),則i受到j的吸引而進行位置更新
xi(t+1)=[xi(t)+β(xj(t)-xi(t))+
(10)
其中:xi(t),xi(t+1)和xj(t)分別表示螢火蟲i的當前位置、下一時刻位置以及螢火蟲j的當前位置;rij為螢火蟲i與螢火蟲j之間的距離;α為步長因子;rand為[0,1]上服從均勻分布的隨機數(shù)。
2.3.3 改進的螢火蟲算法
由式(10)可以看出,位置更新公式由3部分構成,雖然第3部分引入了隨機部分,增加了尋優(yōu)能力,但由于前2部分的系數(shù)固定,不能夠隨著迭代的進行而自適應變化,仍然存在著算法迭代初期尋優(yōu)能力過弱容易陷入局部最優(yōu),迭代末期陷入在最優(yōu)解附近震蕩的僵局。為此筆者在文獻[21]和[22]的基礎上,將慣性權重與自適應變化的光強吸收因子引入螢火蟲算法,具體改變如下
其中:τmax,τmin為最大權重、最小權重;t,tmax為當前迭代次數(shù)和最大迭代次數(shù);γ0為初始的光強吸引因子;diter為一個在(0,1)范圍內的衰減系數(shù)。
通過調整慣性權重τ(t),在迭代初期得到較大的τ(t),此時算法的移動步長較大,全局搜索能力較強,不易陷入局部最優(yōu);而到了迭代后期得到較小的τ(t),這時算法的移動步長較小,逐步逼近最優(yōu)值,而不會在最優(yōu)值附近陷入距離震蕩。光強吸引因子γ可以看做是螢火蟲的吸引范圍,當其很小時的螢火蟲對很遠的螢火蟲也有著較強的吸引力,而當其很大時只能吸引一定范圍內的螢火蟲。在迭代初期使其較大,螢火蟲會聚向周圍較亮的螢火蟲而不會只向一個螢火蟲移動,這樣便能減小陷入局部極值的可能;而在迭代末期使其變大,這樣便可以從所有的范圍中甄選出最優(yōu)解。
2.3.4 基于螢火蟲優(yōu)化算法的FRBF
RBF網(wǎng)絡的性能主要取決于ci,σi,ωij、函數(shù)的中心、方差與權值,在使用原始RBF網(wǎng)絡進行分類時,往往不能得到最優(yōu)的參數(shù),為此使用改進之后的螢火蟲算法對RBF進行優(yōu)化,從而提高其性能。具體步驟如下:
1) 對數(shù)據(jù)進行預處理和歸一化;
2) 初始化螢火蟲算法參數(shù),如步長因子α、光強吸引因子γ和最大吸引度β0等;
3) 初始化螢火蟲種群的位置,以ci,σi和ωij進行編碼;
5) 計算螢火蟲種群個體中的各個亮度,確定吸引度與移動步長;
6) 得到新的螢火蟲個體亮度,并確認是否達到結束條件,達到則進行下一步,否則回到上一步;
7) 對最優(yōu)個體進行解碼,得所需的RBF參數(shù);
8) 利用訓練好的RBF網(wǎng)絡進行預測。
如圖6所示,基于降噪自編碼和FRBF的航空發(fā)動機氣路故障診斷流程如下。
圖6 診斷流程Fig.6 Diagnostic process
DAE部分:
1) 數(shù)據(jù)預處理并對數(shù)據(jù)進行歸一化處理;
2) 制作樣本,分為訓練樣本與測試樣本,并將其導入網(wǎng)絡;
3) 確定網(wǎng)絡各參數(shù),如網(wǎng)絡層數(shù)、隱含層神經(jīng)元數(shù)等;
4) 使用貪婪逐層訓練算法進行無監(jiān)督訓練,在每一層進行訓練時,使用下式獲取各隱含層最優(yōu)參數(shù)θ和θ′
5) 使用標簽樣本進行有監(jiān)督的微調;
6) 滿足誤差條件則進行下一步,否則回到第3步;
7) 得到訓練好的DAE網(wǎng)絡。
RBF部分:
1) 使用DAE網(wǎng)絡中提取的特征值作為RBF網(wǎng)絡輸入;
2) 初始化FA算法參數(shù)如步長因子α、光強吸引因子γ和最大吸引度β0等,并初始化其種群;
4) 計算螢火蟲種群個體中的各個亮度,確定吸引度與移動步長;
5) 更新種群,并確認是否達到結束條件,達到則進行下一步,否則回到上一步;
6) 對最優(yōu)個體進行解碼,得所需的RBF參數(shù);
7) 將參數(shù)帶入RBF網(wǎng)絡;
8) 進行航空發(fā)動機氣路故障診斷。
為了驗證筆者提出方法的有效性,利用從某型發(fā)動機采集到的故障樣本來檢驗算法的有效性。監(jiān)測了所選取的4個參數(shù)EGT,F(xiàn)F,N2和N1進行故障診斷,并進行偏差化與歸一化處理,EGT采用絕對偏差,其余采用相對偏差,歸一化公式如下
(14)
使用參數(shù)進行的故障診斷類別如表1所示,每種故障有30個樣本,一共300個樣本。其中200個作為訓練樣本,另外100個作為測試樣本。
表1 故障類別
為了校驗提出算法DAE-FRBF的效果,筆者選擇原始DAE、螢火蟲算法優(yōu)化的FRBF網(wǎng)絡、RBF及SVM進行比較,所有的程序都在Matlab中運行。其中原始DAE與提出算法的DAE部分是一致的,隱含層都為4層,神經(jīng)元數(shù)分別為6-8-8-10,其中去噪?yún)?shù)設置為0.2,dropout為0.3,dropout是深度學習中有效減少過擬合的一種方法。單獨的FRBF與提出算法中的FRBF部分選擇的參數(shù)一樣,隨機因子α取1.5,光強吸引因子γ取1,最大吸引度β0取1,RBF的隱藏神經(jīng)元數(shù)取13。沒有優(yōu)化的RBF和SVM則分別使用Matlab自帶工具箱與臺灣大學林智仁開發(fā)的Libsvm工具箱進行運算。
為了減小樣本選擇對結果的影響,也為了避免算法的波動,選取10次樣本進行試驗,每次選取200個訓練樣本時(即每個故障抽取20個樣本),每種故障30個樣本中隨機選取20個作為訓練樣本,其余10個作為測試樣本。測試結果如表2所示。
表2 各算法測試結果
由表2可知:沒有經(jīng)過優(yōu)化的RBF正確率最低,且測試結果的波動幅度也較大;而SVM雖然正確率不是很高,但其穩(wěn)定性卻在5種方法中最佳;經(jīng)過改進FA優(yōu)化后的RBF效果有了明顯的改善,不僅正確率得到了大幅度提高,穩(wěn)定性也有了提升,體現(xiàn)了良好的分類性能;正確率最高的是使用深度網(wǎng)絡提取特征的DAE與DAE-FRBF,其中又以后者為佳,診斷準確度和穩(wěn)定性都有了提升,測試正確率達到了98.1%,標準差降低為0.88%。DAE-FRBF在DAE原有的基礎上進行了改良,進行分類診斷時沒有使用常用的SOFTMAX,而是利用FRBF進行診斷。
為了進一步探究算法的診斷精度,將每一種故障的平均診斷結果列入表3。由表3可知:DAE-FRBF在每一種故障的診斷中都取得了最高的正確率,絕大部分都達到了98%;FRBF與DAE在進行診斷時,兩者在除了故障5和6的其余故障中都取得了差不多的故障診斷正確率,而在故障5和6,FRBF都只取得了93%的正確率,與其他故障的診斷正確率相差頗大;SVM除了在故障1和10取得95%的診斷正確率之外,其余都與RBF一樣正確率偏低。通過觀察表中下面3種方法,它們都在診斷故障5和6時出現(xiàn)了正確率明顯降低,RBF的診斷正確率甚至降到了90%以下。將10次試驗對故障5和6的診斷錯誤樣本進行統(tǒng)計,如圖7所示。
表3 各類故障平均診斷結果
圖7 故障5和6誤診圖Fig.7 Misdiagnosed map for fault 5 and 6
由圖7可知,故障5和6可以認為是相似故障,使用表3下面3種算法進行診斷時,無法準確判斷出它們的類別,經(jīng)常將故障5與6混淆。如使用SVM進行診斷時,在10次將故障5診斷錯誤中,有6次將其判斷為故障6;在9次將故障6診斷錯誤中,也有6次將其判斷為故障5。而使用前2種算法卻能有效地將兩者區(qū)分開來,在使用DAE-FRBF進行診斷時,將故障5誤判為故障6僅有1次,甚至沒有誤判故障6為故障5。這是由于在面對相似故障,獲取的傳感器參數(shù)極其相似,使用傳統(tǒng)的人工智能方法很難準確去判斷。而DAE與DAE-FRBF在使用深度結構網(wǎng)絡提取了深層特征之后,能夠使用更利于分類的特征向量進行故障診斷,從而誤診率大大降低。
為了進一步檢驗算法的魯棒性,對樣本數(shù)據(jù)使用Matlab中的awgn函數(shù)添加高斯白噪聲進行試驗,信噪比值分別取40,35,30,25和20,使用上面的5種算法進對比,結果如圖8所示。
圖8 不同信噪比下的診斷正確率Fig.8 Diagnostic accuracy of different SNR
由圖8可知,隨著噪聲加大,各個算法的正確率均有所下降, 其中SVM在噪聲比例上升到一定程度時,正確率的下降斜率變得很大,這是由于SVM將加入的噪聲當作正常參數(shù)進行了訓練,產(chǎn)生了過擬合。RBF與FRBF同樣在噪聲的影響下,正確率有了較大幅度的下降。而DAE與DAE-FRBF由于使用降噪自編碼器提取了更為魯棒的特征,雖然正確率也有所下降,但影響較小,體現(xiàn)了良好的魯棒性。
1) 通過降噪自編碼器提取深層特征,獲得了更容易進行故障診斷的特征向量,使用該特征向量DAE與DAE-FRBF較之其他方法擁有更高的診斷精度,在面對傳統(tǒng)人工智能方法難以判別的相似故障也取得了良好的診斷結果,算法的診斷效果也相當穩(wěn)定。
2) 通過降噪自編碼器提取的特征不僅更利于分類,同時由于在進行無監(jiān)督訓練時就已經(jīng)進行了噪聲訓練,其提取的特征具有較好的魯棒,在對數(shù)據(jù)進行加躁后,相比其余幾種方法,仍擁有較好的診斷精度。
3) 筆者提出的DAE-FRBF在原始DAE的基礎上融入了FRBF。從診斷結果可以看出,F(xiàn)RBF較之RBF有了較大的提高,在除了故障5與6外診斷精度已經(jīng)接近了DAE,擁有良好的分類性能。將其與DAE結合之后,DAE-FRBF在繼承原有優(yōu)點的基礎上,診斷能力進一步提升,每一種故障都取得了最高的正確率,平均診斷正確率達到了98.1%,算法的穩(wěn)定性也進一步提高。