楊凱飛,韓笑冬,*,呂原草,徐楠,宮江雷,2,李翔
1.中國空間技術研究院 通信與導航衛(wèi)星總體部,北京 100094 2.西安電子科技大學,西安 710126
近年來,隨著在軌衛(wèi)星數量的持續(xù)增加,在軌故障時有發(fā)生,衛(wèi)星系統具有高價值、難維修的特點,一旦故障得不到及時發(fā)現和處理,往往造成嚴重損失和惡劣影響。在此背景下,如何通過衛(wèi)星狀態(tài)的實時監(jiān)測和故障檢測,及時發(fā)現故障、減少故障蔓延,已經成為衛(wèi)星健康管理技術研究的重要內容。
針對衛(wèi)星故障檢測技術,國內外學者開展了相關研究和工程應用,采用專家系統、最近鄰等方法的故障診斷系統已經應用在隼鳥號、Geotail衛(wèi)星、航天飛機、國際空間站等航天器中[1],實現故障狀況檢測。文獻[2-4]分別設計實現高分多模、高分三號衛(wèi)星和導航衛(wèi)星載荷自主健康管理系統,在故障發(fā)生時實施診斷、隔離和恢復,有效提高衛(wèi)星可靠性。目前,衛(wèi)星故障診斷技術一般可分為基于模型、知識庫和數據驅動三種類型[5]。針對數據驅動方法,文獻[6]研究了基于數據驅動的衛(wèi)星故障診斷關鍵技術。文獻[7]對數據驅動的航天器遙測數據異常檢測內涵、方法體系及應用現狀等進行了系統研究和闡述。文獻[8]利用隨機森林算法實現了衛(wèi)星姿態(tài)敏感器和執(zhí)行器故障診斷方法,并具備更高的診斷精度和實時性。文獻[9]通過軸承故障信號特征頻率的精確提取,進行滾動軸承早期故障診斷。文獻[10]針對飛輪的傳感器故障與系統檢測問題,采用基于數據驅動方法進行了早期故障檢測。
一方面,雖然國內外學者在衛(wèi)星故障檢測方面取得了相關成果,但由于衛(wèi)星數據量大、維度高、參數關系復雜、專業(yè)性強等,為高檢測率、低誤檢率故障診斷目標帶來挑戰(zhàn)[7]。總結起來面臨以下問題:1)針對故障模式庫中“已知”故障的診斷研究較多,也有一定成果,但對于故障模式庫中不存在的非預期故障[11]檢測存在困難;2)衛(wèi)星數據缺乏有故障標簽的數據集,同時由于衛(wèi)星的高可靠性,數據正負樣本分布極不均衡;3)衛(wèi)星數據來自溫度、壓力等多種類型傳感器,對多元信息融合處理可以補償單一參數的局限性,當前基于少量數據或專家經驗的故障信息融合方式較難準確反映衛(wèi)星故障狀況下多元參數的變化關系。
另一方面,深度學習算法的快速發(fā)展為衛(wèi)星數據分析尤其是復雜非線性關系挖掘提供了更好的技術途徑。文獻[12]回顧總結了基于棧式自編碼器、深度置信網絡、卷積神經網絡和循環(huán)神經網絡的四類深度學習故障診斷方法。文獻[13]研究了深度學習在視頻、傳感器、工業(yè)設備等領域異常檢測的方法和應用。文獻[14]針對衛(wèi)星姿態(tài)控制系統執(zhí)行器機構故障問題,提出了一種基于循環(huán)神經網絡的故障診斷方法。文獻[15]提出了基于長短期記憶神經網絡(LSTM,long short term memory)和動態(tài)閾值的航天器遙測數據異常檢測方法,并利用“好奇號”火星車和SMAP(soil moisture active passive)衛(wèi)星的遙測數據進行了實驗驗證,但模型主要考慮了單參數的時序特性,未挖掘多維參數間的關聯性。
衛(wèi)星數據是一種典型的時間序列數據,利用時間序列模型對其進行建模分析,可以挖掘衛(wèi)星數據規(guī)律,實現無需故障標簽的衛(wèi)星故障檢測。所以,針對以上問題,本文主要研究工作如下:
1)提出基于長短期記憶神經網絡的衛(wèi)星數據預測與故障檢測方法,利用衛(wèi)星正常數據建模時間序列依賴,在衛(wèi)星故障工況下通過衛(wèi)星數據與時序模型預測的誤差實現故障檢測。
2)提出基于時間卷積自編碼器網絡的衛(wèi)星數據重建與故障檢測方法,利用衛(wèi)星正常數據訓練模型,在衛(wèi)星故障工況下通過衛(wèi)星數據與時序模型重構的偏差實現故障檢測。
3)引入滑動窗口機制,實現了模型對多幀、多維衛(wèi)星數據的融合學習,通過不同參數間關系的綜合學習,可以補償單一參數的局限性,實現多維參數融合的衛(wèi)星故障檢測。
實驗結果表明,本文所提方法實現了對衛(wèi)星故障的有效檢測,并相較對比方法具有更優(yōu)檢測性能。
循環(huán)神經網絡(recurrent neural network,RNN)是一類具有短期記憶能力的神經網絡。神經元不但可以接受其他神經元的信息,也可以接受自身的信息,形成具有環(huán)路的網絡結構,通過使用帶自反饋的神經元,具備短期記憶能力,能處理任意長度處理時序數據并利用其歷史信息。但是,由于循環(huán)神經網絡輸入序列比較長時存在梯度爆炸和消失問題,產生了多種變體,長短期記憶(long short-term memory,LSTM)網絡就是一個典型代表,可以有效地解決簡單循環(huán)神經網絡的梯度爆炸或消失問題。
LSTM網絡引入門機制來控制信息傳遞的路徑,分別為輸入門it、遺忘門ft和輸出門ot,通過門的開關實現時間上記憶的功能。其中,遺忘門ft控制上一個時刻的內部狀態(tài)ct需要遺忘多少信息,輸入門it控制當前時刻的候選狀態(tài)ct有多少信息需要保存,輸出門ot控制當前時刻的內部狀態(tài)ct有多少信息需要輸出給外部狀態(tài)ht。LSTM的基本公式如下:
式中:x表示輸入向量;h表示輸出向量;矩陣W表示待訓練參數;σ(.)表示sigmoid非線性函數。
時間卷積神經網絡(temporal convolutional network,TCN)[16]是2018年提出的一種基于卷積神經網絡的網絡架構,能夠用于建模時間序列數據。在文本、視頻等時間序列數據中的性能達到甚至超過了RNN,并且具有訓練消耗內存更少、并行處理等優(yōu)勢。時間卷積神經網絡在卷積網絡的基礎上,引入了因果卷積[17-18]、殘差網絡[19],因果卷積將網絡各層間設定為因果關系,僅利用歷史數據進行運算,更符合數據時序特性。膨脹因子的引入在增大感受野的同時又減少了網絡的深度。殘差網絡內部的殘差塊使用跳躍連接,緩解了梯度消失問題。
(1)因果卷積
作為時間卷積網絡的重要特征,時間卷積神經網絡可視為在一維卷積神經網絡架構中引入因果卷積。
圖1 時間卷積神經網絡示意Fig.1 Temporal convolutional network
(2)膨脹卷積
為擴大時間卷積網絡的感受野,利用更多歷史數據,同時控制網絡深度,所以引入膨脹卷積。如圖1所示,卷積核大小為3,第一層至第三層卷積的膨脹系數分別為1、2、4。隨著層數加深指數增大,在計算量可控的前提下擴展了網絡的感受野,利用更多的歷史數據進行時間序列數據序建模。
假定輸入序列x={x(0),…,x(T)},x∈Rn,卷積核f:{0,…,k-1}→R,則對于任一數據樣本x(t),該處卷積可表示為下式。
式中:k為卷積核大小;d為擴張因子;x(t)-d.i代表過去的方向。膨脹系數越大,則卷積網絡的感受野越大,當d=1時,膨脹卷積退化為普通卷積。
(3)殘差連接
在時間卷積網絡深度變大時,為提升網絡的穩(wěn)定性,引入了殘差模塊,以x(t)作為輸入,網絡的輸出可表示為下式,其中Activation代表激活函數。
ο=Activation(x(t)+Fd(x(t)))
(1)數據選擇及劃分
首先,將衛(wèi)星參數分為數值量和狀態(tài)量兩類。其中,數值量參數可用在一定范圍內變化的變量表征,例如鋰離子電池單體電壓輸出范圍、動量輪轉速等均為數值量。狀態(tài)量參數一般用可窮舉的若干變量表征,例如某單機工作狀態(tài),“1”表示健康,“0”表示為異常。為提升模型學習效率,在時序建模中選擇“數值量”類型參數作為模型輸入數據來源。
接下來,將衛(wèi)星數據劃分為三部分:1)訓練集Xtrain,為衛(wèi)星正常工況下產生的連續(xù)遙測數據,用于時序模型的訓練;2)驗證集Xval,衛(wèi)星正常工況下的遙測數據,用于模型訓練過程中的效果檢驗和故障檢測閾值計算;3)測試集Xtest,為衛(wèi)星產生的連續(xù)遙測數據,包括衛(wèi)星正常及故障時刻的數據,參數類別與訓練集一致。
(2)數據標準化
在將衛(wèi)星數據輸入模型前,需要進行標準化處理以符合標準正態(tài)分布,從而使得模型能夠全面學習和反映各參數的特征。假定待標準化數據集均值為μ,標準差為σ,則對于其中單個樣本x(i),其標準化過程如下式所示。
(3)滑動窗口機制
為同時建模衛(wèi)星數據不同參數間、不同時刻間的相關性,采用滑動窗口的方式截取數據樣本,將多維多幀衛(wèi)星遙測數據輸入模型進行訓練。如圖2所示,滑動窗口長度即為截取的樣本長度,移動的時間步長為滑窗移動一次的距離,該距離小于等于滑窗長度。
利用滑動窗口機制,輸入的單個數據樣本形式為k×m,其中k為時間步長,m為特征參數個數,即在t時刻輸入xt-k+1到xt的k幀m維數據,其中,k、m可根據數據特點與應用場景調節(jié)。
圖2 滑動窗口示意Fig.2 Schematic diagram of sliding window
(1)問題定義
如圖3所示,基于數據預測的衛(wèi)星故障檢測方法可描述為:1)在模型訓練階段,輸入M(M≥1)時間戳的衛(wèi)星數據,預測未來L(L≥1)時間戳的數據,若L為1,則預測單點數據,若L大于1,則預測時間序列;2)在故障檢測階段,利用歷史M時間戳數據預測L時間戳的數據,并與衛(wèi)星實際產生的L時間戳數據求殘差,根據殘差值檢測異常是否發(fā)生。
圖3 基于數據預測的衛(wèi)星故障檢測Fig.3 Satellite fault detection based on data prediction
假定在時刻t,衛(wèi)星產生的N維數據樣本表示為X(t)={x1,x2,…,xN}∈RN,則該過程可表示為下式,其中Minput、Moutput分別表示模型的輸入和輸出。
Minput={X(t1),X(t2),…,X(tM)}∈RN×M
Moutput=Predict(Minput)∈RN×L
Error=Dist(Moutput,{X(t1),X(t2),…,X(tL)})
(2)檢測方法設計
將LSTM神經網絡作為數據預測的核心,實現基于長短期記憶神經網絡故障檢測方法。其中, 基于LSTM的衛(wèi)星數據預測模型訓練流程如下所示,分為4個步驟:
1)首先將時間序列數據轉為有監(jiān)督數據集,用于神經網絡模型的訓練,轉換后的數據集如圖2所示;
2)網絡結構設計及驗證調優(yōu),添加Dropout層防止過擬合;
3)目標函數選擇,以均方根誤差(root mean square error,RMSE)為度量標準;
4)訓練神經網絡模型。
算法1:基于LSTM的衛(wèi)星故障檢測方法
輸入:正常工況衛(wèi)星數集Xtrain,Xval
待檢測衛(wèi)星數據樣本數據s
過程1:衛(wèi)星數據預測模型訓練
1: 模型待訓練參數為θ并隨機初始化
2: while 訓練迭代次數小于設定值 do
3: while 訓練批數小于設定值 do
6: 使用梯度下降低更新參數θ
end while
7: end while
8: 訓練得到衛(wèi)星數據預測模型Pθ
過程2:衛(wèi)星數據預測與故障檢測
9: 集合x_errors初始化為空
10: for 樣本xin 訓練集Xvaldo
11: error=Dist(Pθ(x),x)
12: 添加error到x_errors
13: end for
14: thres=GetThresFromTrain(x_errors)
15:o=Pθ(s)
16: s_error=Dist(o,s)
17: res=judgeDetectRes(s_error,thres)
輸出:衛(wèi)星數據樣本s的檢測結果res
驗證集誤差集合x_errors
其中,GetThresFromTrain()方法對訓練集上的所有殘差值從大到小排序,根據設定的異常比例選擇相應殘差值作為故障檢測的閾值,本文中設定的異常比例為0.01。Dist()函數求矩陣歐式距離,即返回模型預測值與真實數據的殘差值。judgeDetectRes()函數輸入殘差及閾值,殘差大于閾值則視為檢測到故障,返回1,否則視為未檢測到故障,返回0。
(1)問題定義
如圖4所示,基于衛(wèi)星數據重構的故障檢測方法可描述為:在模型訓練階段,輸入M(M≥1)時間戳的衛(wèi)星數據,重構L(L≥1)時間戳的衛(wèi)星數據,一般M==L且為相同時間段。在故障檢測階段,利用M時間戳數據重構L時間戳數據,并與衛(wèi)星實際數據求殘差或重構概率并據此檢測故障。
圖4 基于數據重構的衛(wèi)星故障檢測Fig.4 Satellite fault detection based on data reconstruction
假定在時刻t,衛(wèi)星產生的N維數據樣本表示為X(t)={x1,x2,…,xN}∈RN,則該過程可表示為下式。
Minput={X(t1),X(t2),…,X(tM)}∈RN×M
Moutput=Reconstruct(Minput)∈RN×L
Error=Dist(Moutput,{X(t1),X(t2),…,X(tL)})
(2)檢測方法設計
自編碼器(auto-encoder,AE)是一種通過無監(jiān)督方式學習數據有效編碼的方法。假設正常模式下衛(wèi)星數據不同參數間、不同時刻間具有某種關聯性,利用自編碼器建模這種關聯性,進而鑒別不具有相似性的故障數據,實現故障檢測。其基本思想為,對一組M個N維樣本數據X(i)∈RN,1≤i≤M,自編碼器對其進行數據降維,將每個樣本映射到一個k維的樣本空間,得到每個樣本的編碼Z(i)∈Rk,1≤i≤M,通過學習與訓練使得這組編碼能夠通過網絡重構出原來的數據樣本。
將時間卷積自編碼器(temporal convolutional network auto-encoder,TCN-AE)作為數據重構網絡,實現基于時間卷積自編碼器網絡的故障檢測方法。圖5為本文提出的基于TCN-AE的衛(wèi)星故障檢測網絡示意圖。時間卷積自編碼器網絡以重構數據與原始衛(wèi)星數據殘差最小化為優(yōu)化目標,對卷積層、上采樣層等進行優(yōu)化求解。
圖5 基于TCN-AE的衛(wèi)星故障網絡示意Fig.5 Satellite fault detection network based on TCN-AE
基于時間卷積自編碼器網絡的衛(wèi)星故障檢測總體流程包括數據集劃分、數據預處理、網絡結構設計、TCN-AE模型訓練、新樣本數據檢測等。具體如下:
步驟1 獲取衛(wèi)星數據,并劃分為訓練集Xtrain、驗證集Xval和測試集Xtest;
步驟2 衛(wèi)星數據剔野、z-score標準化;
步驟3 設定TCN-AE模型超參數、訓練模型,根據驗證集檢測結果調優(yōu)模型;
步驟4 將驗證集樣本輸入訓練好的模型,計算殘差并據此計算得到閾值;
步驟5 將測試集待檢測樣本輸入模型,獲取重構結果,計算殘差并比較閾值輸出檢測結果。
算法2:基于時間卷積自編碼器的衛(wèi)星故障檢測
輸入:正常工況衛(wèi)星數集Xtrain,Xval
待檢測衛(wèi)星數據樣本數據s
過程1:TCN自編碼器衛(wèi)星數據重構模型訓練
1: 初始化參數θ,φ
2: while 訓練迭代次數小于設定值 do
3: while 訓練批數小于設定值 do
5:Eθ={Conv1D,…,Pooling;k_size,d_rate}
6:Dφ={UpSampling1D,…,Conv1D;
k_size,d_rate}
9: 使用梯度下降低更新參數θ,φ
end while
10: end while
11: 訓練得到衛(wèi)星數據編碼器Eθ、解碼器Dφ
過程2:衛(wèi)星數據預測與故障檢測
12: 集合x_errors初始化為空
13: for 樣本xin 訓練集Xvaldo
14: error=Dist(Dφ(Eθ(x))-x)
15: 添加error到x_errors
16: end for
17: thres=GetThresFromTrain(x_errors)
18:o=Dφ(Eθ(s))
19: s_error=Dist(o,s)
20: res=judgeDetectRes(s_error,thres)
輸出:衛(wèi)星數據樣本s的檢測結果res
驗證集誤差集合x_errors
為驗證本文所提基于時序建模的兩種衛(wèi)星故障檢測方法,基于某衛(wèi)星電源分系統真實數據,分別訓練了兩個故障檢測神經網絡模型,利用仿真故障對模型性能進行了測試,并進行了性能比較。
(1)實驗環(huán)境
實驗計算機配置為:Intel Xeon E5處理器,32GB內存,Ubuntu18.04.2 LTS操作系統及Python3.5編程環(huán)境。
(2)數據集
數據集為某衛(wèi)星電源分系統在為期一年時間內產生的遙測數據,選取了其中太陽翼電流、電壓等8維參數。其中,訓練集包含約40萬條樣本,測試集約10萬條樣本且包含仿真故障樣本。
(3)評價指標
模型性能評價指標選取準確率(accuracy)、精確率(precision)、召回率(recall)與F1值(F1score),計算公式如下所示。
式中:TP(true positive)表示正確分類為故障的樣本數目;FP(false positive)表示錯誤分類為故障的樣本數目;TN(true negative)表示被正確分類為正常的樣本數目;FN(false negative)表示被錯誤分類為正常的樣本數目。
如表1所示,為本文所提故障檢測模型在某衛(wèi)星電源分系統數據集上的檢測性能,其中TCN-AE-detector、LSTM-detector代表本文提出的基于時間卷積自編碼器網絡的衛(wèi)星故障檢測模型和基于長短期記憶神經網絡的衛(wèi)星故障檢測兩種模型。表1中,TCN-AE-detector模型滑動窗口最優(yōu)長度為7,LSTM-detector模型滑動窗口最優(yōu)長度為8,LSTM-detector的預測步長為1。此外,實驗中滑動窗口的移動步長均為1。
表1 衛(wèi)星故障檢測模型性能測試結果
如圖6所示,為TCN-AE-detector在測試集上的重構誤差及檢測結果,當檢測到故障時,檢測結果值為-1。仿真結果表明,在故障時刻,模型準確識別到故障發(fā)生,檢測結果穩(wěn)定輸出-1值。
圖6 模型重構誤差及故障檢測結果Fig.6 Model reconstruction error and fault detection results
圖7 衛(wèi)星數據預測結果示例(無故障時刻)Fig.7 Example of satellite data prediction results (no fault)
對于基于長短期記憶神經網絡的故障檢測模型LSTM-detector而言,其故障檢測性能取決于模型對衛(wèi)星數據的預測能力,應在衛(wèi)星無故障時盡量減少預測值與實際值的偏差,而在衛(wèi)星發(fā)生故障時盡量增大預測值與實際值的偏差。如圖7所示,選取了測試集中衛(wèi)星無故障時刻的2000個連續(xù)數據樣本, 輸出LSTM-detector模型對參數04、08的預測效果,由上至下第一層為衛(wèi)星原始數據值,第二層為模型輸出的預測值,第三層為預測誤差??梢钥闯?在選定的無故障時刻,LSTM-detector模型對參數04、08的預測誤差區(qū)間分別為[0,0.5]和[0,5]。
作為對照,圖8選取了測試集中衛(wèi)星故障時刻的2000個連續(xù)數據樣本,輸出LSTM-detector模型對參數04、08的預測效果,可以看出,在選定的故障時刻,LSTM-detector模型對參數04、08的預測誤差區(qū)間分別為[0,10]和[0,60],顯著高于無故障時刻的預測誤差,能有效區(qū)分無故障與故障時刻。
圖8 衛(wèi)星數據預測結果示例(故障時刻)Fig.8 Example of satellite data prediction results (fault time)
圖9進一步對比了LSTM-detector模型在“衛(wèi)星無故障”“衛(wèi)星發(fā)生故障”兩種工況下的預測誤差及故障檢測閾值設定。其中,兩種工況下所用數據及參數分別與圖7、圖8一致。其中,閾值按異常比例0.01從訓練集預測誤差中計算得出,為0.425。從圖9中可以看出,故障時刻預測誤差均遠高于閾值,無故障時刻存在極少數樣本超過閾值,存在極低誤報率,這與設定閾值時選取的異常比例相關。
兩個模型的檢測性能均與選取的滑動窗口步長、卷積參數有較大關系。如圖10、圖11所示,分別為TCN-AE-detector、LSTM-detector模型在測試集上的F1值與滑動窗口步長的關系??梢钥闯?隨著滑動窗口步長的增加,故障檢測F1值逐漸提升,分別在7、8達到最高值后下降。意味著隨著步長的增大,時間卷積層和LSTM層能更好建模時序關系,而超過一定值則因為時序關聯減弱導致性能下降。如圖12所示,為TCN-AE-detector在測試集上的F1值與卷積核大小的變化關系。
圖9 測試數據預測誤差示例Fig.9 Example of prediction error on test data
圖10 F1值與滑動窗口長度的變化關系(TCN-AE-detector)Fig.10 Relationship between F1-score and sliding window
圖11 F1值與滑動窗口長度的變化關系(LSTM-detector)Fig.11 Relationship between F1-score and sliding window
圖12 F1值與卷積核大小的變化關系Fig.12 Relationship between F1-score and kernel size
表2給出了本文模型與基于BP神經網絡的故障檢測模型在故障檢測準確率、精確率、召回率和F1值指標方面的對比。實驗結果表明,TCN-AE-detector、LSTM-detector模型均具有較高的故障檢測準確率、精確率和F1值。
表2 故障檢測性能對比
最后,對TCN-AE-detector、LSTM-detector模型的計算復雜度進行了對比實驗,表3給出了在上文所述CPU硬件上的訓練耗時及運行單個樣本檢測的運行耗時。其中,訓練Epoch選為30,batch為32。可以看出,由于訓練集達到40萬條,訓練耗時較長,而單個樣本的檢測耗時可滿足應用需求,后續(xù)優(yōu)化模型實現計算加速。在適用場景方面,兩個模型對數據具有較廣泛的適應性,在實際應用中,對控制分系統、載荷分系統數據同樣具有較高的檢測性能。
表3 計算耗時比較
針對衛(wèi)星故障檢測面臨依賴規(guī)則庫、特征融合不足等問題,本文從衛(wèi)星數據的時序特性出發(fā),提出基于時序建模的衛(wèi)星故障檢測方法與模型,且利用真實衛(wèi)星數據及仿真故障檢驗了性能,結論如下:
1)算法實現了優(yōu)異的故障檢測性能,在實驗數據集上性能達到精確率99.42%,F1得分0.9971,準確率99.89%;
2)與BP神經網絡等算法相比,性能提升明顯,實現了衛(wèi)星時序數據規(guī)律的充分挖掘;
3)支持衛(wèi)星時間序列數據預測與重構兩種方式,提升了對不同類型衛(wèi)星數據的適應能力,具有較強的魯棒性和適用范圍;
4)不依賴專家知識庫進行故障檢測,實現了基于數據驅動的衛(wèi)星故障檢測;
5)能夠同時對多元特征間的依賴和時間順序上的依賴進行建模,實現了多維度、多時刻信息的有效融合;
6)在下一步優(yōu)化方面,目前兩個模型單獨訓練,后續(xù)通過多任務學習等方式實現兩種模型聯合訓練,提升對數據模式的挖掘和泛化能力。