賴儒杰 范啟富
(上海交通大學電子信息與電氣工程學院 系統控制與信息處理教育部重點實驗室)
航空發動機是飛行器的核心部件, 其穩定、可靠地運行是飛行安全的基礎。 傳統的發動機維護采取簡單的被動和主動策略,即當發動機出現故障時進行零件維修或更換,或者發動機運行到默認時限則對零件統一更新[1]。 由于航空發動機結構復雜, 運行狀態受眾多環境因素的影響,其使用壽命范圍較大,固定的默認時限設置無法權衡維護策略的安全性和經濟性。 近年來針對航空發動機的故障預測與健康管理 (Prognostics and Health Management,PHM)的研究廣泛開展,通過準確預測剩余壽命 (Remaining Useful Life,RUL),可以對發動機的健康狀態即時監測,采取合理措施進行維護,從而在保證飛行器可靠飛行的同時,降低發動機維護成本。
PHM領域的RUL預測方法主要分為3類:基于物理模型、 基于數據驅動和二者結合的方法[2,3]。基于物理模型的方法需要對部件進行退化過程建模,高度依賴部件原理的相關知識;基于數據驅動的方法是利用統計學、機器學習及深度學習等方法對多源傳感器的數據進行分析從而得出預測模型;二者結合的方法則在提出物理模型的基礎上,用數據驅動方法對模型參數進行學習和調優。
由于航空發動機復雜的結構和工作原理使得準確建模極為困難,對RUL預測采用上述第1類和第3類方法的文獻較少, 基于數據驅動的方法則被廣泛研究。 傳統機器學習方面:文獻[3]使用滑動時間窗處理原始信號的時間序列,對時間窗內信號提取平均值和趨勢系數作為特征,最后利用支持向量回歸(SVR)進行擬合。 該方法的特征處理簡單有效,模型參數少,易于調整,但在官方評價指標上預測效果欠佳。 深度學習方面:文獻[4,5]分別使用卷積神經網絡(CNN)和長短期記憶網絡(LSTM)搭建深度模型進行特征提取,后接全連接網絡進行回歸;文獻[6]提出一種基于雙邊長短期記憶網絡(BiLSTM)的自編碼器(AE)結構計算健康指數(HI),再對HI進行線性回歸;文獻[7]則將神經網絡與集成學習結合,使用差分進化算法訓練出一種以深度信念網絡(DBF)為基學習器的集成模型。 深度學習具有強大的非線性擬合能力,但由于其結構復雜,通常需要大量數據才能較好擬合。 文獻[6,7]雖然從模型結構和訓練方式上進行改進, 但受制于數據樣本較小,預測效果提升有限。
由于航空發動機退化過程中傳感器變化呈現明顯的趨勢性,合理的時域方法可以有效提取特征。 另一方面,一些新興的機器學習方法在小樣本數據集上也表現出強大的回歸能力,如Chen T Q和Guestrin C于2016年提出XGBoost,該算法的卓越性能在眾多數據競賽中得到廣泛認可[8]。 因此,筆者將傳統信號處理方法與XGBoost結合:首先根據傳感器信號的變化趨勢進行特征篩選,使用指數平滑對傳感器數據降噪處理,利用時間窗增強特征,最后使用XGBoost進行回歸。 筆者選擇在NASA C-MAPSS航空發動機仿真數據集上進行試驗。
指數平滑(Exponential Smoothing,ES)常采用指數加權移動平均(Exponential Weighted Moving Average,EWMA)實現。 EWMA是一種監測過程平均值的統計方法,其一般形式為[9]:

其中,xt為t時刻真實值,yt為t時刻觀測值,衰減因子α∈(0,1)(α為定值)。
筆者采用Python數據分析庫Pandas中提出的一種修正權重的觀測值計算方式,即各項系數為指數函數的一般加權平均:

式(2)適用于有限長序列的觀測值計算,且滿足t→∞時與式(1)等價。
對于任一給定α,在計算yt時,由于距離當前時刻較遠的xt-i權重較小, 對計算的影響可忽略,因此可理解為近端一定范圍s內的xt-i起主要作用,即{xt-i|0≤i≤s-1}。 視s為平滑系數,α與s關系如下:

XGBoost 是廣義梯度提升決策樹(Gradient Boosting Decision Tree,GBDT) 的一種高效實現。GBDT以迭代的方式構建多棵CART樹,對每一輪的預測殘差逐步進行擬合。 XGBoost在GBDT的基礎上對目標函數引入L2正則項和二階導數,并從系統設計的角度對運算性能進行優化[8]。
考慮數據集D={(xi,yi)}有n個樣本,每個樣本m維特征(|D|=n,xi∈Rm,yi∈R)。 訓練得到K棵樹的集成模型,其預測結果表示為:

其中,Γ={f(x)=ωq(x)}(q:Rm→T,ω∈RT)為K棵樹的集合,q為樹的結構,T為樹的葉節點個數,ω為葉節點權重。
目標函數定義為:

其中,l為損失函數,Ω為復雜度函數, ‖ω‖2為葉節點權重的L2范數,懲罰系數γ和λ用于調整模型復雜度,控制過擬合。
損失函數可自定義, 但需滿足二階可導,對于回歸問題通常采用平方誤差:

訓練階段,每一輪增加一棵樹對上一輪的預測殘差進行擬合,第t輪的目標函數如下:

對損失函數進行二階泰勒展開,并去除常數項,目標函數改寫為:

每一輪迭代采用貪心算法構建CART樹,詳細過程見文獻[8]。
試驗數據來源于NASA C-MAPSS航空發動機仿真數據集中FD001子集。監測數據包括3個操作變量和21個傳感器數據。 訓練集包含100臺發動機從啟動到失效各個運行周期的監測數據,最長周期數362cycle,最短周期數128cycle,共20 631個樣本; 測試集包含100臺發動機從啟動到某一運行周期(中斷時刻)的監測數據及對應RUL,最長周期數303cycle,最短周期數31cycle,共13 096個樣本。
訓練集的RUL標簽設置通常有兩種方式:線性退化和分段線性退化。 考慮運行初期發動機性能較穩定,退化不明顯,筆者采用分段模型,初始RUL設置為127cycle[2],訓練集的RUL標簽設置如圖1所示。
傳感器數據變化趨勢見表1。 筆者忽略數值恒定的傳感器,選取剩余14個傳感器的信號作為輸入特征[7]。 由于原始信號噪聲較大,采用式(2)進行指數平滑處理,使預測算法更好地捕捉信號的趨勢變化。 圖2展示訓練集1號發動機3號傳感器信號的平滑效果, 可以看出平滑系數s越大,信號波動越小。

圖1 訓練集RUL標簽設置

表1 傳感器數據變化趨勢

圖2 不同平滑系數時的平滑效果
針對多變量時間序列問題,僅使用單個樣本點的信息會使得數據利用不充分,因此使用定長時間窗增加各傳感器連續時間步歷史數據[7],達到特征增強的目的。 同時由于運行時長也是影響RUL的重要因素之一, 運行時長也被作為一維特征。 設時間窗寬度為Ntw(含當前時刻),選取傳感器14個, 則特征工程處理后每個樣本點包含14×Ntw+1維特征。 考慮測試集最短周期數為31cycle,本試驗中Ntw取值為30。
由于各傳感器真實數值差異較大,訓練前需對各特征進行歸一化處理, 筆者采用Min-Max歸一化,將特征值映射到[0,1]范圍:

該數據集通常采用Score、RMSE和Accuracy指標對預測結果進行評價[3](其中Score為該數據集的官方指標):

其 中,di為 預 測 誤 差,di=RULest,i-RULactual,i,RULest,i和RULactual,i分別為第i個樣本的RUL預測值和 真 實 值,Cor(di)表 示 當 預 測 誤 差di屬 于[-13,10]區間時認為該樣本估計準確。
繪制的指標評價結果如圖3所示。 Score為非對稱指標,對過預測懲罰較大,對欠預測懲罰較小;RMSE為對稱指標;Accuracy用于統計在合理誤差范圍內的預測結果比例。

圖3 評價指標結果
試驗使用Python 語言下scikit-learn 接口的XGBoost回歸模型,在經指數平滑和特征工程處理后的數據集上進行訓練和測試, 訓練中損失函數使用XGBoost 算法默認的平方誤差 (式(6))。對于不同平滑系數處理后的訓練集,分別采用5折交叉驗證進行超參數選擇,得到各條件下的模型最優參數, 然后使用訓練集所有數據對最優參數下的模型進行訓練, 最后對測試集中斷時刻的RUL進行預測, 并結合其真實RUL進行效果評估,試驗結果見表2(表中粗體字為該列最佳值)。

表2 不同平滑系數取值下XGBoost預測效果對比
由表2可知, 隨著平滑系數的增大平滑效果增 強,Score 整 體 呈 減 小 趨 勢,RMSE 減 小,Accuracy提高,即算法性能在3個指標衡量下均得以提升,由此推測XGBoost算法對噪聲較敏感,使用平滑后的數據作為輸入,可使算法更好地捕捉趨勢特征,取得更好的預測效果。 平滑系數為20時,XGBoost的參數列表和預測結果見表3、圖4。

表3 XGBoost參數列表

圖4 XGBoost預測結果
進一步將筆者所提方法與其他主流方法的預測效果進行比較分析,結果見表4(表中粗體字為該列最佳值)。 筆者所提方法在RMSE指標上取得最好結果, 考慮XGBoost采用平方誤差作為損失函數進行訓練, 可認為充分發揮了XGBoost的擬合能力。 對比BiLSTM-ED方法,BiLSTM-ED的Score值更小, 而RMSE略高, 且Accuracy明顯較低, 推測該方法傾向于欠預測RUL。 對比SVR方法,SVR的Accuracy略高于筆者所提方法,而Score則明顯較高,推測該方法在誤差邊界外的預測值偏離真實值較大。

表4 筆者方法與其他主流方法預測效果對比
綜上所述,筆者所提方法預測值相對于真實值總體偏差最小, 且預測沒有明顯偏向性;在RMSE指標上取得最優結果,Score和Accuracy指標略差于最好方法,但顯著優于其他方法,因此可以認為筆者所提方法綜合性能最佳。
針對航空發動機退化過程多源傳感器測量信號,使用修正權值的指數平滑方法對有限長時間序列數據進行降噪處理,并添加時間窗內歷史數據進行特征增強, 使XGBoost的預測性能得到大幅提升。 通過與其他前沿算法進行對比,可驗證筆者所提方法在對稱指標上預測效果最佳,在非對稱指標上僅次于最優方法,因此可體現出方法優異的綜合性能。 下一步工作可研究其他信號處理算法進行數據平滑(如卡爾曼濾波)以及使用非對稱損失函數訓練XGBoost對其預測性能的影響。