馬鳴風,王力
(1.中國民航大學電子信息與自動化學院,天津 300300;2.中國民航大學職業技術學院,天津 300300)
渦扇發動機作為航空飛行器的重要部件,一方面對航空飛行器的正常飛行起著至關重要的作用,另一方面其復雜的內部結構以及對可靠性和安全性的嚴苛要求使得維護成本高昂。因此,需要對渦扇發動機的健康狀態進行實時監控,對其剩余使用壽命(Remaining Useful Life, RUL)進行精準預測,從而做到實時維護,防止故障的發生[1-3]。目前有兩大方法可以實現對渦扇發動機RUL的預測:基于物理模型的預測方法和基于數據驅動的預測方法[4]。
由于發動機內部機制復雜,物理模型通常難以建立。隨著發動機歷史失效數據的大量積累,機器學習和深度學習的快速發展,數據驅動的預測方法已成為時下研究熱點。最小二乘支持向量機(Least Squares Support Vector Machine, LS-SVM)[5]、半馬爾可夫決策過程框架[6]等機器學習算法被用來解決RUL預測問題。上述方法均沒有對數據進行深層次的挖掘,因而預測精度較低。和機器學習相比,深度學習更能充分挖掘數據間復雜關系[7]。長短期記憶(Long Short-Term Memory, LSTM)[8]、循環門控單元(Gated Recurrent Units,GRU)[9]等神經網絡模型被用來預測發動機的RUL。上述研究在剩余壽命預測領域取得了一定的成果,但單一神經網絡的使用無法優化隱藏信息權重,缺少不同網絡的優勢互補。文獻[10]將自編碼(Autoencoder)神經網絡和雙向長短期記憶(Bidirectional Long Short-Term Memory, BLSTM)相結合;文獻[11]將自注意力機制(Self-attention,SA)與LSTM相融合;文獻[12]將卷積神經網絡(Convolutional Neural Network, CNN)與LSTM相融合。上述研究均采用融合神經網絡實現對發動機RUL的預測,雖然取得了一定成果,但是仍存在輸入數據維度過高的問題。
本文作者提出了將隨機森林(Random Forest, RF)、深度門控循環單元(Deep Gated Recurrent Units,DGRU)和自注意力機制相融合的預測模型來對渦扇發動機RUL進行預測。首先,將數據輸入RF模塊,通過重要度閾值的設置,剔除無關特征,解決輸入數據維數過高的問題;其次,利用DGRU處理此類狀態檢測數據的優勢,挖掘出相關狀態特征和剩余使用壽命之間的內在聯系,獲取更深層次的隱藏信息;最后,利用SA對隱藏信息添加不同大小的權重,進行重要度區分,提高模型的預測精度。
RF是一個以多個決策樹分類器為基礎的集成算法,屬于自舉匯聚法(Bootstrap Aggregating),決策樹采用CART(Classification and Regression Tree)算法構建[13]。RF采用有放回的抽樣方式在原始數據上進行抽樣,抽選出k個數據集作為訓練數據集,使用每一個訓練集訓練出一個決策樹即弱分類器,對多個弱分類器預測結果進行組合得到最終集成結果。傳統的RF算法采取算術平均法作為集成結果,考慮到不同弱分類器的預測精度不同,本文作者將為不同弱分類器添加誤差權重,剔除誤差最大的弱分類器,改變其余弱分類器對隨機森林集成結果的影響。改進算法具體描述如下。
(1)在原始數據集上進行k次有放回的采樣,得到k個采樣數據集Di(i=1,2,…,k),其中每個采樣數據集都與原始數據集有著相同的大小。
(2)設原始數據具有x個特征,隨機挑選m個特征作為單一弱分類器每個節點的分枝變量,根據已有分枝選出最優分枝,采用CART算法構建出沒有剪枝的弱分類器。
(3)以弱分類器中最大預測誤差為基準將所有弱分類器的預測誤差進行歸一化,用最大值1減去各個弱分類器的誤差歸一化結果得到每個弱分類器的誤差權重αi。
(1)

(4)將上一步計算出的誤差權重αi與各個弱分類器預測結果相乘得到優化后預測結果,將優化后預測結果求和得到最終集成結果r。
(2)
在上述通過有放回的采樣方式得到訓練數據集訓練弱分類器的過程中,大約有1/3的數據未被采樣,這些未參與訓練弱分類器的數據被稱為袋外(Out of Bag,OOB)數據。此類數據常被用于計算不同特征對目標值的重要度,具體思想是對OOB中的單個特征隨機添加噪聲,分別計算噪聲添加前后的預測誤差,噪聲添加前后的誤差變化越大,證明該特征對目標值的重要度越高。
利用改進RF計算特征重要度的步驟:
(1)每個弱分類器都有對應的袋外數據,將袋外數據輸入弱分類器,輸出預測結果,將預測值與真實值進行比較得到袋外數據誤差,記為e1i。
(2)對袋外數據的某一特征Tj(1≤j≤x)進行噪聲添加,利用新的袋外數據再次計算袋外數據誤差,結果記為e2i。
(3)用誤差權重乘以e1i和e2i的差,將二者乘積再除以原數據集中特征Tj的標準誤差Tj,std,即得到單一特征Tj對目標值的重要度。重要度的最終結果被限制在[0,1]內。
(3)
(4)

GRU作為RNN的一種變體,模擬了人的大腦記憶,通過不同門控的使用將前面有用的時間序列信息進行編碼,重新放到模型的參數當中。GRU神經網絡模型有兩個控制門:控制重置的門控(Reset Gate)和控制更新的門控(Update Gate)。具體網絡結構如圖1所示。

圖1 GRU網絡結構Fig.1 Network structure of GRU
GRU對上一個時刻傳輸下來的隱狀態ht-1進行保留,再將它與當前節點的輸入xt進行向量相連,利用sigmoid函數得到控制重置和更新的兩個門控狀態rt和zt。然后將rt與ht-1進行矩陣相乘,得到ht-1′,將ht-1′和當前節點的輸入xt進行向量拼接,利用tanh激活函數將向量相乘的結果縮放在-1~1之間,經過縮放得到的ht′主要包含的是當前輸入數據。最后利用zt對上一時刻的隱狀態ht-1和當前時刻的隱狀態ht′進行綜合運算,確定出傳遞給下一時刻的隱狀態ht。具體過程如下所示:
rt=sigmoid(Wr·[ht-1,xt])
(5)
zt=sigmoid(Wz·[ht-1,xt])
(6)
ht-1′=ht-1×r
(7)
ht′=tanh(Wht′·[ht-1′,xt])
(8)
ht=(1-zt)×ht-1+ht′
(9)
式中:[]表示向量相連;×表示矩陣之間的相乘運算;Wr、Wz、Wht′分別表示不同的權重。
文中所提出的RUL預測模型主要分為基于改進隨機森林算法的特征提取模塊和DGRU-SA壽命預測模塊。首先將預處理之后的數據輸入到特征提取模塊當中,通過設置重要度閾值從中篩選出所需特征,實現特征維度的降低;然后將降維過后的數據輸入DGRU-SA模塊。DGRU模塊由多個GRU層堆疊形成,通過多層網絡的構建自適應捕獲數據中的潛在特征。單個GRU網絡結構數據只在隱藏層之間實現傳遞,在多個GRU層構造的DGRU模型當中,能完成對輸入數據的深層挖掘[11]。在DGRU模塊當中,第一層GRU的隱狀態只與時刻有關,輸出當前時刻下的隱藏信息,其余GRU層與第一層依次相連,實現了數據在空間上的交互,隱藏信息會從上層依次傳輸入下層神經元,每個GRU層的輸出都將作為下一GRU層的輸入,同一GRU層下包含多個GRU神經元,各個神經元之間互相交換信息以發掘輸入信息的長期依賴性,實現跨時間的自連接。DGRU從輸入數據中提取出大量隱藏信息,SA機制自動為隱藏信息添加不同大小的權重,使得重要信息獲得更高的關注,最后通過一層全連接層輸出預測RUL。圖2展示了文中模型的整體架構。

圖2 模型整體結構Fig.2 Structure of model
假設輸入特征數據X=[x1,x2,x3,…,xN],目標值Y=[y1,y2,y3,…,ym]T。其中xN為m維列向量。輸入數據通過特征提取模塊,得到各個特征與目標值間的重要度,設置重要度閾值P,當輸入特征與目標值間的重要度小于P時,該特征被剔除。設n個特征得到保留,此時X=[x1,x2,x3,…,xn]。
將降維過后的數據輸入到DGRU-SA模塊,為了滿足GRU輸入數據尺寸要求,采用滑窗處理的方式對輸入數據進行處理。已知輸入數據的長度為m,設滑窗窗口長度為s,經RF降維過后的維度為n,DGRU模塊的輸入(m-s,s,n)的一個三維張量,輸出(i,s,e)的一個三維張量,其中i是新樣本長度,e為最后一層GRU的隱含層數。
DGRU模塊輸出的三維張量被傳輸給SA模塊,SA模塊包含一個編碼器和解碼器,編碼器和解碼器均采用RNN網絡實現。當前時刻的每個輸入xij通過編碼器會得到一個隱層輸出hij,將上一時刻隱層Si-1作為參考向量計算出當前時刻每個hij對應的權重αij,根據權重對每個hij進行加權平均得到當前時刻的容量向量ci,最后根據當前容量向量ci、上一時刻隱層Si-1和上一時刻最終輸出yi-1計算出當前時刻隱層Si和當前時刻最終輸出yi,具體計算過程如下:
eij=F(Si-1,hij)
(10)
(11)
(12)
Si=F(Si-1,yi-1,ci)
(13)
yi=F(yi-1,Si,ci)
(14)
式中:F表示當前神經網絡;i表示當前時刻;j表示當前時刻下的單一輸入;T表示當前時刻下的總輸入數。
文中采用3個評價指標來評估不同模型的預測性能,分別是平均絕對誤差(Mean Absolute Error,MAE)、均方根誤差(Root Mean Square Error,RMSE)和Score評分函數。MAE和RMSE的定義分別如式(15)、式(16)所示。
(15)
(16)
Score評分函數為數據集創建者給出[14],不同于上面兩種評價指標,Score評分函數從實際出發,對滯后的預測結果給予更高的懲罰,能反映出預測結果的超前性與滯后性,是更具參考價值的評價指標。Score評分函數的定義如下式:
(17)
為了研究單一故障對發動機剩余使用壽命的影響,文中使用的數據集是CMAPSS數據集下的子集FD001[15]。FD001數據集記錄了100臺發動機在高壓壓氣機故障下進行仿真得到的各類數據,包含21個傳感器數據、3個運行參數和運行周期。FD001數據集包含1個訓練集和1個測試集,其中訓練集為20 631行和26列,除去首列發動機號,其余25列作為特征;測試集為13 096行和27列,與訓練集相比多出的1列為真實RUL。由于原始訓練集沒有給出真實RUL,文中將訓練集中每臺發動機的最大運行周期數作為初始壽命,每運行一個周期壽命自動減1直至為零。對于渦扇發動機,只有在使用末期失效率才隨著時間急速增加,而在運行初期,渦扇發動機的失效率隨時間變化并不明顯,因此文中將根據渦扇發動機的RUL構建分段函數。
(18)
式中:Rp表示修正后RUL;Ro表示原始RUL。
為了加快模型運行速度、提高模型預測精度,首先對訓練數據集和測試數據集中的各類特征值進行歸一化處理;然后設置模型的各類參數:設置4層GRU,每層GRU神經元數設置為256,步長設置為20,batch size設置為20,隨機丟棄層的丟棄率設置為0.3,輸出層神經元數設置為1,迭代次數設置為100。選擇均方誤差(Mean Square Error,MSE)作為損失函數,RMSprop作為損失函數優化器。為了提高訓練效率,添加監視器用以監督模型的訓練過程,若連續10個時期內驗證集的誤差都沒有發生明顯下降,則提前終止訓練生成最終模型。
將預處理后的數據輸入特征提取模塊,輸出各個特征對目標RUL的重要度α,結果如圖3所示。

圖3 各特征重要度αFig.3 Importance of each feature
圖中S1~S21表示21個傳感器數據,cycle表示已運行周期,Setting1~Setting3分別表示3個運行參數,未列出特征參數的重要度皆為0。特征參數的重要度為0,意味著這類特征在發動機運行過程中沒有發生變化。
在特征提取模塊中需設定重要度閾值,將重要度低于此閾值的特征剔除,從而實現數據維度的降低,提升后續模塊的預測表現。重要度閾值的取值范圍設置為[0,0.01,0.02,0.03,0.05],在不同閾值下分別進行實驗,評價指標仍為MAE、RMSE和Score函數,實驗結果如表1所示。

表1 不同閾值下的評價結果Tab.1 Evaluation results of different thresholds
分析實驗結果,當重要度閾值為0.05時, RMSE和MAE誤差最大,Score得分次大,表明前9個特征不能完全囊括特征與目標值間的隱藏關系,隨著重要度閾值的降低,這一現象得到一定程度的改善。但當重要度閾值降為0時,即對數據不做降維處理,預測模型并沒有表現出最好的預測效果,表明某些特征對預測結果起到負面影響,干擾模型的預測。當重要度閾值設置為0.03時,實驗結果最佳,與未做降維處理的結果相比,MAE下降了15.8%,RMSE下降了14.6%,Score下降了32.1%。綜上,通過比較各閾值下模型的預測表現,最終將重要度閾值設置為0.03,即使用重要度排名前12的特征用于后續實驗。
為了驗證加入SA模塊的有效性,將進行消融實驗。將原數據分別輸入RF-DGRU模型和RF-DGRU-SA模型,特征提取模塊中的重要度閾值都設置為0.03,兩種模型的對比結果如圖4所示。分析圖4可知,SA模塊的引入有效降低了模型預測的誤差,其中Score得分下降趨勢最為明顯。說明SA模塊的引入優化了隱藏信息的權重,提高了模型的整體預測表現。

圖4 RF-DGRU和RF-DGRU-SA模型對比
為了更加全面直觀地比較上述模型的預測效果,使用上述兩種模型對測試集中前50臺發動機進行剩余壽命預測,結果如圖5所示。比較兩種模型的預測曲線,發現RF-DGRU-SA模型的預測曲線更加貼合真實值,說明SA模塊的引入有效提高了模型整體預測精度。

圖5 兩類模型對前50臺發動機剩余壽命預測結果Fig.5 Remaining useful life prediction results of the first 50 engines by two types of models
圖6展示了上述兩種模型預測的相對誤差。可以看出:與RF-DGRU模型相比,RF- DGRU -SA模型預測的誤差整體波動較小,誤差范圍多集中于[-20,20],表明RF-DGRU-SA模型具有更好的預測穩定性。

圖6 兩類模型預測相對誤差erFig.6 Predict relative errors of two kinds of models
選取多層感知機(Multi-Layer Perceptron, MLP)模型、卷積神經網絡[16](Convolutional Neural Network, CNN)模型、LSTM模型[17-18]、CNN-LSTM模型[12]與文中所提RF-DGRU-SA模型進行比較,具體結果如表2所示。

表2 不同預測方法比較結果Tab.2 The results of different forecasting methods
對比結果表明:無論是在MAE和RMSE的評價指標下還是在Score的評價指標下,文中所提方法預測誤差都是最低。與其余方法的最優表現相比,文中所提方法預測誤差的MAE降低了5.3%,RMSE降低了11.6%,Score得分下降了26.9%,這得益于特征提取模塊對特征維數的有效降低,DGRU-SA模塊提取出更深層次的隱藏信息,并根據隱藏信息的重要性賦予不同大小的權重重構隱藏信息,有效提高了對渦扇發動機RUL的預測精度。
針對渦扇發動機退化過程機制復雜、數據維數過高等問題,提出一種RF-DGRU-SA融合模型實現對渦扇發動機RUL的預測。利用CMAPSS數據集進行實驗驗證,得到以下結論:
(1)通過改進隨機森林算法建立特征提取模塊,得到數據樣本中各個特征與目標值間的關系,設置合理的重要度閾值,在高維數據中提取出重要特征,實現特征降維。與沒有添加此模塊,即特征提取模塊的重要度閾值為零的DGRU-SA方法相比,MAE下降了15.8%,RMSE下降了14.6%,Score下降了32.1%,表明特征提取模塊可以對特征進行有效提取。
(2)RF-DGRU-SA模型與其余模型最優表現相比,MAE、RMSE和Score評分分別下降了5.3%,11.6%和26.9%,并且RUL預測誤差幅度變化較小,多集中于[-20,20],表明此模型有效提升了對渦扇發動機RUL預測的精度,并且具有良好的穩定性。