楊 浩
(1.青海民族大學(xué) 計算機(jī)學(xué)院,西寧 810007;2.火箭軍裝備部駐北京地區(qū)第八軍事代表室,北京 100192; 3.北京航天測控技術(shù)有限公司,北京 100041;4.北京市高速交通工具智能診斷與健康管理重點實驗室,北京 100041;5.裝備全壽命周期狀態(tài)監(jiān)測與健康管理技術(shù)與應(yīng)用國家地方聯(lián)合工程研究中心,北京 100041)
在發(fā)動機(jī)氣路等典型機(jī)電設(shè)備的故障診斷中,神經(jīng)網(wǎng)絡(luò)出色的非線性問題處理能力[1-2],有利于幫助解決故障診斷與預(yù)測等領(lǐng)域的難點問題,因此得到了大量的應(yīng)用。此外,常見的故障診斷方法還包括專家系統(tǒng)[3]、模糊集、支持向量機(jī)等。其中支持向量機(jī)(Support vector machine,SVM) 在解決非線性、較高維、小樣本等方面有突出的優(yōu)點,但其參數(shù)的選取在一定程度上影響了其性能和實用性。目前復(fù)雜系統(tǒng)故障診斷預(yù)測領(lǐng)域中,所使用的機(jī)器學(xué)習(xí)算法大多為支持向量機(jī)、BP神經(jīng)網(wǎng)絡(luò)等淺層學(xué)習(xí)方法。隨著人工智能科學(xué)和大數(shù)據(jù)的發(fā)展,機(jī)器學(xué)習(xí)算法不斷豐富,學(xué)習(xí)深度不斷加深,性能不斷提高,將最新的機(jī)器深度學(xué)習(xí)成果應(yīng)用于故障診斷領(lǐng)域已經(jīng)成為一個熱點。深度學(xué)習(xí)方法例如深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)[5-6]、深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)[7-8]、遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)[9]、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)等[10-11],由于近幾年隨著大數(shù)據(jù)處理的廣泛應(yīng)用而剛成為研究熱點,但在發(fā)動機(jī)氣路故障診斷中應(yīng)用和研究還較少[12]。
DBN方法本質(zhì)上是有向圖模型,該方法的主要目的是通過在觀察數(shù)據(jù)的同時調(diào)整變量之間的權(quán)重來導(dǎo)出隱含變量的狀態(tài)。DBN模型是一種將無監(jiān)督和有監(jiān)督混合的深度結(jié)構(gòu)學(xué)習(xí)模型,好處是不需要大量標(biāo)記的訓(xùn)練數(shù)據(jù)、收斂速度快,不足是不容易進(jìn)行局部收斂。RNN方法的基本特征是在其處理單元之間存在內(nèi)部反饋連接和前饋連接。內(nèi)部反饋連接可以保留隱藏層節(jié)點的狀態(tài)。網(wǎng)絡(luò)的輸出不僅取決于當(dāng)前輸入,還取決于先前網(wǎng)絡(luò)的內(nèi)部狀態(tài),因此具有更好的動態(tài)特性。CNN方法與DBN和RNN等方法相比具有自己的優(yōu)勢,可以為識別二維形狀提供多層感知器,對于平移、縮放、傾斜或其他形式的變形具有高度不變的特點,因此更適合于用于時間序列和語音信號的處理。
深度學(xué)習(xí)是一種新的基于特征表示的機(jī)器學(xué)習(xí)方法。深度學(xué)習(xí)模型包含多個隱藏層,可以通過對輸入數(shù)據(jù)進(jìn)行自動學(xué)習(xí)來獲取隱藏的功能層中的特征信息。與傳統(tǒng)的診斷方法相比,深度學(xué)習(xí)具備從原始信息中提取更豐富的特征的能力,因此已經(jīng)成為基于機(jī)器學(xué)習(xí)的故障診斷研究的新方向。由于種種原因,深度學(xué)習(xí)在故障診斷方面的應(yīng)用基礎(chǔ)和成果,遠(yuǎn)遠(yuǎn)落后于圖像、語音處理等方面的成果。文獻(xiàn)[13]提出了基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的衛(wèi)星電源故障診斷方法,該方法在初步訓(xùn)練階段采用去噪自動編碼器(DAE)作為無監(jiān)督算法,在微調(diào)階段采用反向傳播(BP)算法作為監(jiān)督算法。文獻(xiàn)[14]提出了一種基于深度學(xué)習(xí)的航空發(fā)動機(jī)故障融合診斷方法,首先將航空發(fā)動機(jī)性能參數(shù)和故障類型樣本輸入深度置信網(wǎng)絡(luò)(DBN)模型,并提取樣本特征以輸出故障分類數(shù)據(jù);然后將輸出數(shù)據(jù)代入決策融合的決策融合算法模型,得到航空發(fā)動機(jī)故障融合診斷結(jié)果。目前,基于CNN的診斷方法的研究結(jié)果很少,該方法作為一種重要的深度神經(jīng)網(wǎng)絡(luò)方法,是一種深度監(jiān)督和學(xué)習(xí)的機(jī)器學(xué)習(xí)模型,擅長挖掘局部數(shù)據(jù)特征,自適應(yīng)地提取全局訓(xùn)練特征和分類。此外,CNN方法非常適合用于處理海量數(shù)據(jù)。通過了解海量數(shù)據(jù)的特征,可以識別海量數(shù)據(jù)中包含的信息。因此,使用CNN的診斷是基于深度學(xué)習(xí)的故障診斷方法研究發(fā)展方向之一。
基于CNN的診斷和預(yù)測技術(shù)研究目前還不多[15],特別是在發(fā)動機(jī)故障診斷方面的應(yīng)用較少。本文針對卷積神經(jīng)網(wǎng)絡(luò)故障診斷方法進(jìn)行了研究,基于發(fā)動機(jī)試驗仿真數(shù)據(jù)對提出的方法進(jìn)行了驗證,并與支持向量機(jī)等傳統(tǒng)方法進(jìn)行了比較,驗證結(jié)果表明,提出的基于卷積神經(jīng)網(wǎng)絡(luò)的診斷方法具有較好的可行性和效果,可作為開展發(fā)動機(jī)PHM技術(shù)研究的參考。通過開展復(fù)雜裝備基于CNN等深度學(xué)習(xí)的故障診斷研究,實現(xiàn)對地面測試與運(yùn)行階段海量數(shù)據(jù)的充分利用,可以為裝備典型功能系統(tǒng)的多參數(shù)之間的綜合分析診斷與評估提供依據(jù),確保裝備的穩(wěn)定健康運(yùn)行。
深度神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建如圖1所示。這里采用基于DNN深度神經(jīng)網(wǎng)絡(luò)的CNN卷積神經(jīng)網(wǎng)絡(luò),實現(xiàn)發(fā)動機(jī)氣路診斷,適用于解決復(fù)雜設(shè)備在物理模型難以構(gòu)建時的診斷模型構(gòu)建問題。與傳統(tǒng)的DNN算法相比,CNN可以解決DNN模型參數(shù)數(shù)量過多、容易過度擬合、容易陷入局部最優(yōu)等問題。
圖1 深度神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建
CNN是一種特殊的深度神經(jīng)網(wǎng)絡(luò)模型,該方法的神經(jīng)元連接是非完全連接的,此外,同一層中某些神經(jīng)元之間的連接的權(quán)重是共享的(即相同的)。CNN在自學(xué)習(xí)、并行處理、容錯性等方面均具有較強(qiáng)的能力,能夠降低網(wǎng)絡(luò)模型的復(fù)雜性和權(quán)重的數(shù)量。
如圖2所示,卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括卷積層、采樣層、全連接層等。其中,卷積層主要負(fù)責(zé)提取對象的各種特征;采樣層主要實現(xiàn)對原始特征信息的抽象,目的是大幅減少訓(xùn)練參數(shù)并減輕模型過擬合的程度。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
CNN的訓(xùn)練算法分為兩個階段:前向傳播階段:該階段首先需要從樣本集中取樣并輸入網(wǎng)絡(luò),然后再計算相應(yīng)的實際輸出。后向傳播階段:需要先計算真實結(jié)果與預(yù)期結(jié)果之間的差值,然后再根據(jù)最小化誤差的方法調(diào)整權(quán)重矩陣。
綜合第一階段和第二階段的CNN網(wǎng)絡(luò)訓(xùn)練過程包括如下步驟:1)選擇訓(xùn)練組,從樣本集中隨機(jī)選擇N個樣本作為訓(xùn)練對象;2)將每個權(quán)重和閾值設(shè)置為接近0的隨機(jī)值,并初始化精度控制參數(shù)和學(xué)習(xí)速率;3)從訓(xùn)練組中選擇一個輸入模式并將其添加到網(wǎng)絡(luò)中,給出其目標(biāo)輸出向量,并計算中間層輸出向量和網(wǎng)絡(luò)的實際輸出向量;4)比較輸出向量中的元素與目標(biāo)向量中的元素,以計算輸出誤差和中間層的隱藏單元的誤差;6)依次計算每個權(quán)重和閾值的調(diào)整量,并調(diào)整權(quán)重和閾值;7)重復(fù)進(jìn)行多次訓(xùn)練,判斷指標(biāo)是否滿足精度要求,如果不滿足,則繼續(xù)從訓(xùn)練組中選擇輸入模式并將其添加到網(wǎng)絡(luò)中進(jìn)行迭代,否則訓(xùn)練結(jié)束;8)在訓(xùn)練結(jié)束時,將權(quán)重和閾值保存在文件中,此時可認(rèn)為權(quán)重已經(jīng)穩(wěn)定并且已經(jīng)形成分類器。再次進(jìn)行訓(xùn)練時,就可以直接從文件導(dǎo)出權(quán)重和閾值以進(jìn)行訓(xùn)練而無需初始化。
本文使用CNN主要用于數(shù)據(jù)的預(yù)處理,將發(fā)動機(jī)訓(xùn)練層進(jìn)行卷積化,每15條發(fā)動機(jī)數(shù)據(jù)作為一個window size的單位數(shù)據(jù),如圖3所示。
圖3 基于CNN的數(shù)據(jù)預(yù)處理
模型訓(xùn)練過程開始后選擇數(shù)據(jù)集,對數(shù)據(jù)集進(jìn)行處理生成數(shù)據(jù)訓(xùn)練文件,通過split操作進(jìn)行文件切割,如圖4所示。使用線性回歸器進(jìn)行參數(shù)網(wǎng)絡(luò)選擇,線性回歸器、參數(shù)網(wǎng)絡(luò)、回歸評估器共同支撐數(shù)據(jù)進(jìn)行驗證訓(xùn)練,最后生成預(yù)測結(jié)果,比對觀察值進(jìn)行模型評估,如圖5所示。
圖4 數(shù)據(jù)分割與訓(xùn)練示意
圖5 訓(xùn)練模型優(yōu)化示意
在CNN方法研究基礎(chǔ)上開發(fā)了基于CNN的氣路故障診斷軟件平臺,如圖6所示。
發(fā)動機(jī)氣路故障診斷屬于典型的復(fù)雜系統(tǒng)故障模式識別問題,其反應(yīng)故障狀態(tài)的特征維度較大,反映的信息較為豐富且復(fù)雜,因此通過單層的神經(jīng)網(wǎng)絡(luò)進(jìn)行建立故障模式識別模型不足以達(dá)到有效的識別精度和識別效果,難以對特征值中反映的有效信息進(jìn)行提取。采用深度學(xué)習(xí)方法可以在神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上對于數(shù)據(jù)中反映的特征信息進(jìn)行多次的降維和重構(gòu),達(dá)到對高階信息的提取和整合目的。
基于海量數(shù)據(jù)的發(fā)動機(jī)氣路故障診斷涉及到多維參數(shù)(如溫度、壓力、高度、馬赫數(shù)、高壓轉(zhuǎn)速、油門角度等)的處理。這也是發(fā)動機(jī)氣路故障診斷需要解決的技術(shù)難點。深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)(CNN)有助于解決上述問題。該方法通過獲取空間內(nèi)部多維參數(shù)的信息,最大化挖掘出數(shù)據(jù)背后的規(guī)律,以實現(xiàn)較好的故障診斷效果。
CNN方法的應(yīng)用首先是進(jìn)行卷積層CNN,并通過卷積+池化的方法提取出某個時間點特征之間的空間信息,具體包括:
1)卷積層:對整體數(shù)據(jù)做卷積,通過多個卷積核來提取不同角度的空間信息;
2)池化層:減少模型的參數(shù)維度,提高模型訓(xùn)練的效率。
機(jī)器深度學(xué)習(xí)模型在構(gòu)建之后,需要輸入固定的數(shù)據(jù)維度和特征,這就導(dǎo)致不同設(shè)備可能由于輸入數(shù)據(jù)不同無法復(fù)用,當(dāng)遇到新的設(shè)備或者部件需要故障診斷,就需要重新開發(fā)對應(yīng)的算法,雖然算法的總體核心結(jié)構(gòu)沒有差異,但是也需要針對模型接口進(jìn)行重新定義、針對數(shù)據(jù)進(jìn)行重新訓(xùn)練,同時這也帶來了模型測試、驗證的復(fù)合問題,這也是基于海量數(shù)據(jù)的發(fā)動機(jī)氣路故障診斷的另一個技術(shù)難點。為解決該問題,擬從模型的開發(fā)效率、復(fù)用性、測試性、驗證性多個角度出發(fā),搭建機(jī)器學(xué)習(xí)的診斷預(yù)測統(tǒng)一平臺,作為平臺算法的管理中心、開發(fā)中心和測試中心。
基于機(jī)器學(xué)習(xí)的診斷預(yù)測建模平臺能夠提供基礎(chǔ)算法庫、專業(yè)算法庫、專業(yè)模板庫、模型管理、在線建模等功能,用戶能夠基于自己以往的算法、專業(yè)算法、專業(yè)模板來對模型進(jìn)行復(fù)用,極大的提高模型定制開發(fā)的效率。同時,平臺提供模型訓(xùn)練、驗證一體化功能,并提供后臺GPU分布式集群,保證訓(xùn)練的速度,從算法開發(fā)、維護(hù)、復(fù)用、訓(xùn)練、驗證全角度實現(xiàn)用戶的算法需求,最終保證PHM系統(tǒng)的整體算法智能化。該平臺基于TensorFlow架構(gòu),采用Python語言實現(xiàn)深度學(xué)習(xí)等算法,并通過API接口層調(diào)用TensorFlow核心功能實現(xiàn)相關(guān)實驗和應(yīng)用[16]。
本文的算法實現(xiàn)基于Python語言。Python是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)編程語言,包含豐富強(qiáng)大的算法工具庫,可快速實現(xiàn)各種深度神經(jīng)網(wǎng)絡(luò)方法,并通過TensorFlow平臺實現(xiàn)集成和調(diào)用。
在方法層面,整體過程包括:數(shù)據(jù)集成、數(shù)據(jù)處理、特征工程、模型訓(xùn)練、模型評估、模型保存等。重點選擇CNN、DNN等神經(jīng)網(wǎng)絡(luò)模型,選用故障檢測率(FDR)評價指標(biāo),實現(xiàn)對測試數(shù)據(jù)診斷效果的評估。
圖6 基于深度學(xué)習(xí)的發(fā)動機(jī)氣路故障診斷算法總體實現(xiàn)思路
復(fù)雜系統(tǒng)(發(fā)動機(jī)氣路)故障診斷算法平臺功能包括:診斷流程創(chuàng)建模塊、流程模版管理模塊、數(shù)據(jù)集設(shè)置管理模塊、算法模型編輯管理模塊、算法模型訓(xùn)練模塊、算法性能評估模塊等。如圖7所示。
圖7 機(jī)器學(xué)習(xí)建模、機(jī)器學(xué)習(xí)訓(xùn)練頁面示意圖
該組仿真數(shù)據(jù)源于根據(jù)某型航空發(fā)動機(jī)氣路模型所生成的發(fā)動機(jī)氣路故障數(shù)據(jù),數(shù)據(jù)描述的是發(fā)動機(jī)從啟動到穩(wěn)態(tài),然后在穩(wěn)態(tài)期間進(jìn)行故障注入,期間采集到的相關(guān)數(shù)據(jù),如圖8所示。
圖8 航空發(fā)動機(jī)氣路故障仿真平臺
故障數(shù)據(jù)包含HPC效率突降(葉冠掉塊)、HPT效率突降(盤裂紋)、LPT效率突降(盤裂紋)等三類故障模式的注入。每種故障都設(shè)定了9種初始條件,仿真過程中油門桿以15°(慢車點)起步,經(jīng)過尋找初始平衡點并給定階躍輸入到20 s后模型到設(shè)定的目標(biāo)穩(wěn)態(tài)工作點,40 s時加入3%氣路部件故障,故障程度經(jīng)過50 s按照斜坡發(fā)展至5%,然后平穩(wěn)至100 s仿真結(jié)束。
仿真模型每隔0.02 s采集輸出一次數(shù)據(jù),持續(xù)100 s,主要包含以下發(fā)動機(jī)參數(shù)信息:
1)溫度;2)壓力;3)高度;4)馬赫數(shù);5)高壓轉(zhuǎn)速;6)油門角度;7)ETA_Fc風(fēng)扇內(nèi)涵效率;8)ETA_Fd風(fēng)扇外涵效率;9)ETA_fb增壓級效率;10)ETA_cmp壓氣機(jī)效率;11)ETA_hpt高壓渦輪效率;12)ETA_lpt低壓渦輪效率;13)W13風(fēng)扇外涵出口流量;14)W24風(fēng)扇內(nèi)涵出口流量;15)W26增壓級出口流量;16)W3壓氣機(jī)出口流量;17)W45高壓渦輪出口流量;18)W5低壓渦輪出口流量;19)N1低壓轉(zhuǎn)速;20)P13風(fēng)扇外涵進(jìn)口總壓;21)P2風(fēng)扇內(nèi)涵進(jìn)口總壓;22)P24風(fēng)扇內(nèi)涵出口總壓;23)P26增壓級出口總壓;24)P3壓氣機(jī)出口總壓;25)P45高壓渦輪出口總壓;等等。
選取HPC、HPT、LTP三類故障文件數(shù)據(jù)作為訓(xùn)練集與驗證集,將故障注入產(chǎn)生的文件進(jìn)行整理合并,合并后的文件分別定義數(shù)據(jù)標(biāo)簽(正常、HPC效率突降(葉冠掉塊),HPT效率突降(盤裂紋),LPT效率突降(盤裂紋))。數(shù)據(jù)文件中前10 000的數(shù)據(jù)作為驗證數(shù)據(jù)集,10 000以后的數(shù)據(jù)為訓(xùn)練數(shù)據(jù)集。
圖9 訓(xùn)練數(shù)據(jù)樣本文件
圖10 驗證數(shù)據(jù)樣本文件
將數(shù)據(jù)輸入與合并,對輸入數(shù)據(jù)進(jìn)行預(yù)處理,對于特征數(shù)據(jù)進(jìn)行scale歸一化處理,對于標(biāo)簽數(shù)據(jù)進(jìn)行one-hot形式的編碼梳理。
在深度學(xué)習(xí)模型搭建過程中,主要實現(xiàn)目的是根據(jù)這些數(shù)據(jù)進(jìn)行故障診斷,最終通過計算故障檢測率,以診斷正確性比率作為模型評價指標(biāo)。故障注入標(biāo)簽有3個故障模式,分別為HPC效率突降(葉冠掉塊),HPT效率突降(盤裂紋),LPT效率突降(盤裂紋),因此模型搭建為四分類問題:0:正常;1:HPC故障;2HPT故障;3:LPT故障。
由于該問題屬于四分類問題,所以神經(jīng)網(wǎng)絡(luò)的最后一層有4個神經(jīng)元,并使用softmax作為其輸出層的激活函數(shù)。深度學(xué)習(xí)模型結(jié)構(gòu)如圖11所示。
圖11 深度學(xué)習(xí)模型圖卷積池化過程
課題采用訓(xùn)練器為SGD(Stochastic Gradient Descent,隨機(jī)梯度下降),損失函數(shù)使用的是交叉熵函數(shù),評估標(biāo)采取的acc(分類準(zhǔn)確率)。深度學(xué)習(xí)模型圖訓(xùn)練過程如表1所示。
表1 深度學(xué)習(xí)模型圖訓(xùn)練過程
3.4.1 基于SVM方法的氣路故障診斷
支持向量機(jī)作為一種機(jī)器學(xué)習(xí)方法,建立在統(tǒng)計學(xué)習(xí)和結(jié)構(gòu)風(fēng)險最小原理的基礎(chǔ)上。支持向量機(jī)作為二元分類器。對線性可分和線性非可分?jǐn)?shù)據(jù)的分類非常有效,對發(fā)動機(jī)數(shù)據(jù)擬合與預(yù)測有良好的適應(yīng)性。
通過SVM算法對模型生成發(fā)動機(jī)氣路故障訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,得到分類訓(xùn)練模型。之后,將測試數(shù)據(jù)導(dǎo)入模型中進(jìn)行計算,診斷發(fā)動機(jī)的運(yùn)行狀態(tài),并將其與實際狀態(tài)進(jìn)行對比。其分類結(jié)果如表2所示。
表2 基于SVM的氣路診斷驗證統(tǒng)計結(jié)果
從表2可見,采用SVM算法對該組發(fā)動機(jī)試驗數(shù)據(jù)進(jìn)行分類,其診斷的準(zhǔn)確率僅為66.67%。
3.4.2 基于深度學(xué)習(xí)方法的氣路故障診斷
采用本課題構(gòu)建的深度神經(jīng)網(wǎng)絡(luò),經(jīng)過3個epochs(1個epoch表示過了1遍訓(xùn)練集中的所有樣本)的循環(huán)學(xué)習(xí),訓(xùn)練集合上的準(zhǔn)確率即可達(dá)到了較高的程度。訓(xùn)練10個epochs之后,保存生成模型。在測試驗證集上,對于訓(xùn)練得到的模型進(jìn)行監(jiān)測,最終得到的故障檢測準(zhǔn)確率指標(biāo)接近100%,即全部測試數(shù)據(jù)識別診斷均為正確,可見基于CNN的深度學(xué)習(xí)能力,其分類能力能夠?qū)崿F(xiàn)較高的精度指標(biāo)。由此可見,深度學(xué)習(xí)方法較傳統(tǒng)分類方法,在氣路故障診斷應(yīng)用上能夠得到較大的準(zhǔn)確率提升。
表3 基于CNN的氣路診斷驗證統(tǒng)計結(jié)果
本文研究了基于卷積神經(jīng)網(wǎng)絡(luò)的發(fā)動機(jī)氣路故障診斷方法,并實現(xiàn)了復(fù)雜系統(tǒng)故障診斷預(yù)測算法平臺。經(jīng)某發(fā)動機(jī)氣路試驗仿真數(shù)據(jù)實例驗證,提出的方法具有較好的可行性和效果,較傳統(tǒng)的支持向量機(jī)方法,在診斷的檢測率上有較大的提升,能夠充分利用深度學(xué)習(xí)的優(yōu)點,更準(zhǔn)確地識別發(fā)動機(jī)氣路的健康狀況。