李 卉, 何 晶, 程富強, 王曉薇, 詹炳光
(1. 空軍工程大學信息與導航學院, 陜西 西安 710077; 2. 西安衛星測控中心, 陜西 西安 710043)
衛星作為航天工程的重要組成部分,其安全有效地運行是航天專家所關心的問題之一。據統計,美國在近10年的高軌衛星中,由電源系統引起的衛星故障達到50%以上[1],因此,對衛星電源系統進行研究具有重要意義。衛星電源系統遙測數據(指經過遠距離無線傳輸的數據)是表征衛星電源系統運行正常與否的重要數據,通過這些數據對衛星電源系統參數(指未經過遠距離無線傳輸的系統運作時產生的數據)進行預測,從而提前判斷衛星電源系統的運行狀態,及時檢測發現衛星電源系統的異常變化數據,能夠提高衛星故障的主動檢測與識別能力,可對衛星的安全穩定運行提供可靠的決策支持。
在工程中對衛星遙測數據中異常值的檢測常采用固定的遙測參數(指經過無線傳輸由天線接收到的衛星系統運行產生的數據)上下限,因為檢測門限不隨時間變化,無法反映遙測參數的動態趨勢,難以捕捉遙測參數動態變化過程中出現的異常。針對此問題,許多國內外該領域的專家也進行了相關研究,如:MENGSHOEL等[2]利用貝葉斯網絡對衛星和飛機電源系統的電路數據進行建模,驗證了概率技術在故障診斷中的可行性;ABHINAV等[3]對貝葉斯網絡在衛星故障診斷的應用進行了論證;李維錚等[4]利用相鄰周期遙測參數值相等或相近原理,建立了自回歸滑動平均(Auto Regression Moving Average,ARMA)模型,從而得到遙測參數預測值,通過比較實測值與預測值的結果來進行異常檢測;房紅征等[5]提出了一種粒子群優化的神經網絡方法,利用粒子群算法優化的神經網絡對衛星關鍵遙測參數進行近似和建模,將得到的預測時間序列與實測值進行比對來實現異常檢測。以上算法可以對一段歷史周期內的平穩變化參數或在某恒定值附近參數進行學習并預測,但衛星電源系統參數種類繁多,其中也包含多種非平穩參數[6-7],因此,需要建立動態門限實現對實際非平穩變化的參數的檢測。
隨著深度學習在語音識別、圖像識別以及語言處理方面的廣泛應用,一些深度學習模型也逐漸被應用到時間序列數據研究中。深度學習模型不但能夠挖掘出更深層次的潛在規律[8],相對淺層機器學習也有更好的自主性[9-10]。在眾多的深度學習模型中,長短期記憶(Long-Short Term Memory,LSTM)模型作為一種特殊的循環神經網絡(Recurrent Neural Network,RNN),不僅擁有RNN動態記憶性的優點,即輸出取決于當前輸入和上一層的輸出,而且在時序數據分析中有更強的適應性,即能對非平穩參數進行特征提取,還能避免RNN的梯度消失問題以及長期記憶能力不足等問題。上述優勢使LSTM模型在識別[11-15]、預測[16-18]和可靠性預測[18]領域的時間序列數據研究中取得了不小的成果。然而在衛星遙測數據異常狀態的檢測方面還未發現相關研究。
筆者提出了一種基于LSTM模型的動態衛星電源遙測參數異常檢測方法。LSTM模型不僅能夠適應衛星電源系統遙測數據的非線性特性,而且處理時間序列數據時能夠自動選取最優時間間隔和記憶長時間歷史遙測數據[16-18]。實驗結果表明:LSTM模型適用于衛星電源系統參數預測研究,且有較高的預測精度和很強的適用性。
LSTM模型通過增加新的“單元狀態”來改進RNN,即原始RNN的隱含層只有一個狀態h,它對于短期的輸入非常敏感,而新增加的狀態c負責保存長期狀態,具體模型如圖1所示。

圖1 原始RNN和LSTM模型
LSTM模型運用3個控制開關,來分別負責長期狀態c的繼續保存、輸入和輸出。具體是通過激活函數σ(sigmoid函數)控制3個控制門,即輸入門(input gate),遺忘門(forget gate)和輸出門(output gate)。當控制門輸出為0時,任何向量與之相乘都會成為0向量,信息無法進行傳遞;當控制門輸出為1時,任何向量都不會改變,信息就可以傳遞出去。圖2為控制門對單元狀態的控制示意圖,圖中:輸入門控制當前輸入層xt到隱含層單元狀態ct的信息傳遞;輸出門控制單元狀態ct到輸出層ht的信息傳遞;遺忘門控制對上一時刻單元狀態ct-1的信息保留。由于衛星電源參數數據屬于時間序列數據,具有隨時間變化的特點,且有一定的規律,結合LSTM模型能夠記憶長時間時間序列方面的優點,可以利用LSTM模型提取衛星電源系統參數規律信息,對衛星電源系統參數數據進行預測。

圖2 控制門對單元狀態的控制示意圖
LSTM模型采用反向傳播算法對網絡進行訓練,主要有2大步驟:1)前向計算網絡每個神經元的輸出值;2) 根據LSTM模型的輸出結果與實際值的誤差項反向計算相應的誤差項,計算得到網絡權重。由于LSTM模型的輸入包括時間展開輸入和網絡每層的輸入,因此,誤差項的傳遞方向也包括沿時間的反向傳播和沿上一層的傳播。
衛星電源系統異常檢測流程如圖3所示,主要包含4個模塊:1)衛星電源系統數據預處理模塊,該模塊對衛星電源系統原始數據進行預處理,構造模型樣本;2)LSTM模型訓練模塊,該模塊主要利用LSTM模型對預處理后的遙測數據進行訓練,并得出訓練數據的模型訓練誤差;3)LSTM模型預測模塊,該模塊利用通過訓練完成的LSTM模型對衛星電源遙測參數進行預測;4)LSTM模型檢測模塊,該模塊是利用預測參數與模型訓練誤差生成的動態檢測門對實時衛星電源系統參數進行檢測。通過上述4個模塊可以達到對衛星電源系統異常檢測的目的。

圖3 衛星電源系統異常檢測流程
在衛星電源系統原始數據中,存在大量因非異常原因造成的異常值,這些數據會嚴重影響LSTM模型的執行效率。因此,為了提高模型執行效率,降低模型預測誤差,提高數據質量,需要對數據進行清洗與歸一化處理。同時,由于遙測數據都是按照時間順序進行排列的[6-7],但其采樣周期有細微差別,因此,需對原始遙測參數設置時間間隔,并與時標對齊生成等間隔樣本序列,數據預處理流程如圖4所示。

圖4 數據預處理流程
利用歷史衛星電源遙測數據對LSTM模型進行訓練,最終以模型估計值與實際值的誤差函數是否滿足設定要求來決定完成訓練時間。LSTM模型如圖5所示。

圖5 LSTM模型
在模型訓練過程中,通過LSTM模型對[1,T]時間段內的歷史數據的學習,來預測T+a時刻的參數值,其中a為時間常數。X為LSTM的輸入,即為圖5中的xt,H=(H1,H2,…,HT),為LSTM的輸出,即為圖5中的ht。衛星電源系統參數的時間序列特征分別為
ft=σ(Wf·(ht-1,xt)+bf),
(1)
it=σ(Wi·(ht-1,xt)+bi),
(2)
(3)
(4)
ot=σ(Wo·(ht-1,xt)+bo),
(5)
ht=ot°tanh(ct),
(6)
式中:Wf、Wi、Wc、Wo以及bf、bi、bc、bo分別為遺忘門、輸入門、當前單元狀態、輸出門的權重矩陣和偏置項。“°”為計算符號,當其作用于2個矩陣時,代表2個矩陣對應位置的元素相乘。式(6)為最后整個LSTM的輸出。因此LSTM的輸入層神經元數為輸入序列數,輸出神經元數為輸出序列數,在對衛星電源系統參數進行預測時,通過輸入衛星電源系統在一個時間段的當前或歷史數據,可預測出衛星電源系統的一個或者多個未來時刻值。模型訓練及預測過程如圖6所示。

圖6 模型訓練及預測過程
LSTM模型預測出的時間序列屬于離散型數據,為了能夠得到連續型數據,采用拉格朗日插值算法建立預測值的插值函數,從而得出以時間為自變量的預測連續函數,通過預測結果與實際值的差異程度進行數據的動態異常檢測,從而建立遙測數據動態門限,實現對衛星電源遙測數據異常檢測。異常檢測流程如圖7所示。

圖7 異常檢測流程
從衛星電源系統參數時間序列的特點,以及使LSTM快速、高效方面考慮,本實驗設定模型中每個LSTM結構只有1個單元狀態;針對LSTM模型隱含層神經元數,從訓練時間和挖掘能力方面考慮,本實驗將隱含層神經元數設置為200,且采用迭代的方式進行多步循環預測。由于衛星所處的太空環境復雜且有多種輻射,同時受傳輸過程的影響,致使衛星電源系統參數數據存在異常狀態,為了使檢測結果更精確,在進行預測和檢測前需對數據進行清洗,剔除異常數據,同時,為了不影響數據分析結果,需要對數據進行歸一化處理。記衛星電源遙測參數時間序列點為(t,s(t)),其中t為時刻,t∈[ts,te],s(t)為對應時刻的參數值。

給定樣本序列起始時間ts,首先按一定時間間隔td建立等間隔樣本序列{(t,x(t))|t=ts+p·td,p=0,1,…,P-1},其中:x(t)為對應時刻的樣本值,初始化時不賦值;P=floor((te-ts)/td),為樣本序列長度,floor(·)函數表示向下取整。
按照樣本序列x(t)的時標,在原始時間序列s(t)記錄中逐步找到與樣本時標最接近的時刻,提取該時刻的數據值作為樣本值,可得賦值后的樣本序列{x(ts+p·td)|p=0,1,…,P-1}。
對于某一維非線性時間序列x(t),t∈[1,n],若要預測x(n+1),x(n+2),…,x(n+n)的值,首先需要構造出預測模型的結構形式,即多個已知序列值順序輸入(輸入節點)的輸入模式和多個期望輸出(輸出節點)的輸出模式。
以序列[x(0),x(1),…,x(n)]為例,記LSTM模型的輸入節點個數為Li、輸出節點個數為Lo,樣本選取間隔為ds,樣本選取過程如圖8所示。

圖8 樣本選取過程
由上述過程,可得模型樣本的輸入矩陣
(7)
模型樣本的輸出(目標)矩陣
(8)
本文設置輸入向量長度即元素個數為Lin,輸出節點個數為1,應當Lin
樣本選取間隔為1,依次類推,可得第m個輸入向量Xm=(x(ts+(m-1)·td),…,x(ts+(m+Lin-2)·td))T,第m個輸出值Ym=x(ts+(m+Lin-1)·td),m∈{1,2,…,P-Lin},記樣本總數為N,則N=P-Lin。
建立訓練樣本集T={(X1,Y1),(X2,Y2),…(XN,YN)},為構建LSTM模型做好數據準備。
建立模型評價函數,定義均方根誤差
(9)

RMSE代表了預測誤差的離散程度,也叫標準誤差,最佳情況為RMSE=0,是誤差分析的綜合指標之一。
(10)

模型訓練誤差為RMSE,設定檢測閾值為κ,當κ>0時,檢測門限上限LU(t)和下限LB(t)分別設置為
(11)
(12)
來進行異常點檢測。對原始時間序列s(t)中的任一點t∈[ts+Lin·td,ts+(P-1)·td],異常與否的判斷條件為:如果預測值與實際值的偏差程度超過一定倍數的模型RMSE,則認為實際值出現異常,即
正常值為
LB(t)≤s(t)≤LU(t);
(13)
異常值為
s(t)
(14)
通過對衛星電源參數分析,選取某型衛星蓄電池組的不同測點電壓參數a和b,在某時間區間的遙測數據進行驗證。
1) 根據2.1和2.2節中的數據清洗、歸一化處理和時標對齊方法,對得到的25 633組數據(數據格式為<時間,參數值>)建立樣本序列{x(t)},樣本序列長度為8 928,部分數據變化形態如圖9(a)、(b)中黑線所示。
2) 設置輸入向量長度為100,樣本選取間隔為1,按照步驟2.2節中的方法建立樣本集T,共得到8 828組樣本。
3) 按照2.3節方法,對LSTM模型進行訓練。設置LSTM模型的輸入為100個節點,輸出層為10個節點;訓練時反向傳播算法的迭代次數為3 000次,學習率為0.000 1,隱含層神經元數為200。通過模型訓練,生成的實際觀測值與模型估計值的對比如圖9所示。再輸入樣本計算得到每個輸入向量的預測值,LSTM模型預測值與實際觀測值的對比如圖10所示。

圖9 LSTM模型觀測值與估計值對比
4) 按照2.4節對預測值序列進行拉格朗日插值。計算預測結果的均方根誤差RMSE,設置檢測門限κ=3,按照2.5節生成檢測上下門限。
5) 按照式(13)、(14)對原始遙測數據時間序列進行檢測。部分時間區間的檢測效果如圖11所示。圖中紅色和綠色線所示為生成的動態上限和下限。可見:動態門限能很好地反映出預測值以及實際觀測值的變化,同時動態門限也很好地包絡了參數動態趨勢。參數a從3 090點左右開始,實際值變為恒定,顯然不符合參數變化規律,這段區域的數值被標記為了異常(橙色圈點),如圖11(a)所示,參數b從3 500點左右開始,實際值陡然下降,不符合參數變化規律,該區域的數值被標記為了異常點(橙色圈點),如圖11(b)所示。

圖10 LSTM模型預測值與實際觀測值對比

圖11 部分時間區間的檢測效果
本文提出了一種基于LSTM模型的衛星電源系統異常檢測方法,包括對數據的預處理、LSTM模型的訓練、預測以及檢測等。實驗表明:
1) 與筆者前期利用貝葉斯模型對衛星電源參數進行檢測相比,LSTM模型的擬合度更高且預測及檢測性能整體更優,但是訓練過程的耗時也更多;
2) 在LSTM模型訓練過程中,模型的預測精度和損失函數對學習率的取值較為敏感,過高或過低的學習率會導致過擬合或者欠擬合的問題,進而影響模型檢測性能。
總體來說,本文驗證了LSTM模型在衛星電源系統參數異常檢測的適用性和有效性,擴展了深度學習技術的應用。基于目前的工作,后續可以加深更多隱含層層數,以檢驗多隱含層LSTM模型的應用效果,或者優化LSTM模型參數從而提高模型訓練效率。此外,本文利用LSTM模型對單遙測參數進行檢測,下一步,可以對多參數進行檢測,從而滿足對衛星系統級別的異常檢測需求。