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