李 卉, 何 晶, 程富強, 王曉薇, 詹炳光
(1. 空軍工程大學(xué)信息與導(dǎo)航學(xué)院, 陜西 西安 710077; 2. 西安衛(wèi)星測控中心, 陜西 西安 710043)
衛(wèi)星作為航天工程的重要組成部分,其安全有效地運行是航天專家所關(guān)心的問題之一。據(jù)統(tǒng)計,美國在近10年的高軌衛(wèi)星中,由電源系統(tǒng)引起的衛(wèi)星故障達到50%以上[1],因此,對衛(wèi)星電源系統(tǒng)進行研究具有重要意義。衛(wèi)星電源系統(tǒng)遙測數(shù)據(jù)(指經(jīng)過遠距離無線傳輸?shù)臄?shù)據(jù))是表征衛(wèi)星電源系統(tǒng)運行正常與否的重要數(shù)據(jù),通過這些數(shù)據(jù)對衛(wèi)星電源系統(tǒng)參數(shù)(指未經(jīng)過遠距離無線傳輸?shù)南到y(tǒng)運作時產(chǎn)生的數(shù)據(jù))進行預(yù)測,從而提前判斷衛(wèi)星電源系統(tǒng)的運行狀態(tài),及時檢測發(fā)現(xiàn)衛(wèi)星電源系統(tǒng)的異常變化數(shù)據(jù),能夠提高衛(wèi)星故障的主動檢測與識別能力,可對衛(wèi)星的安全穩(wěn)定運行提供可靠的決策支持。
在工程中對衛(wèi)星遙測數(shù)據(jù)中異常值的檢測常采用固定的遙測參數(shù)(指經(jīng)過無線傳輸由天線接收到的衛(wèi)星系統(tǒng)運行產(chǎn)生的數(shù)據(jù))上下限,因為檢測門限不隨時間變化,無法反映遙測參數(shù)的動態(tài)趨勢,難以捕捉遙測參數(shù)動態(tài)變化過程中出現(xiàn)的異常。針對此問題,許多國內(nèi)外該領(lǐng)域的專家也進行了相關(guān)研究,如:MENGSHOEL等[2]利用貝葉斯網(wǎng)絡(luò)對衛(wèi)星和飛機電源系統(tǒng)的電路數(shù)據(jù)進行建模,驗證了概率技術(shù)在故障診斷中的可行性;ABHINAV等[3]對貝葉斯網(wǎng)絡(luò)在衛(wèi)星故障診斷的應(yīng)用進行了論證;李維錚等[4]利用相鄰周期遙測參數(shù)值相等或相近原理,建立了自回歸滑動平均(Auto Regression Moving Average,ARMA)模型,從而得到遙測參數(shù)預(yù)測值,通過比較實測值與預(yù)測值的結(jié)果來進行異常檢測;房紅征等[5]提出了一種粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)方法,利用粒子群算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)對衛(wèi)星關(guān)鍵遙測參數(shù)進行近似和建模,將得到的預(yù)測時間序列與實測值進行比對來實現(xiàn)異常檢測。以上算法可以對一段歷史周期內(nèi)的平穩(wěn)變化參數(shù)或在某恒定值附近參數(shù)進行學(xué)習(xí)并預(yù)測,但衛(wèi)星電源系統(tǒng)參數(shù)種類繁多,其中也包含多種非平穩(wěn)參數(shù)[6-7],因此,需要建立動態(tài)門限實現(xiàn)對實際非平穩(wěn)變化的參數(shù)的檢測。
隨著深度學(xué)習(xí)在語音識別、圖像識別以及語言處理方面的廣泛應(yīng)用,一些深度學(xué)習(xí)模型也逐漸被應(yīng)用到時間序列數(shù)據(jù)研究中。深度學(xué)習(xí)模型不但能夠挖掘出更深層次的潛在規(guī)律[8],相對淺層機器學(xué)習(xí)也有更好的自主性[9-10]。在眾多的深度學(xué)習(xí)模型中,長短期記憶(Long-Short Term Memory,LSTM)模型作為一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),不僅擁有RNN動態(tài)記憶性的優(yōu)點,即輸出取決于當前輸入和上一層的輸出,而且在時序數(shù)據(jù)分析中有更強的適應(yīng)性,即能對非平穩(wěn)參數(shù)進行特征提取,還能避免RNN的梯度消失問題以及長期記憶能力不足等問題。上述優(yōu)勢使LSTM模型在識別[11-15]、預(yù)測[16-18]和可靠性預(yù)測[18]領(lǐng)域的時間序列數(shù)據(jù)研究中取得了不小的成果。然而在衛(wèi)星遙測數(shù)據(jù)異常狀態(tài)的檢測方面還未發(fā)現(xiàn)相關(guān)研究。
筆者提出了一種基于LSTM模型的動態(tài)衛(wèi)星電源遙測參數(shù)異常檢測方法。LSTM模型不僅能夠適應(yīng)衛(wèi)星電源系統(tǒng)遙測數(shù)據(jù)的非線性特性,而且處理時間序列數(shù)據(jù)時能夠自動選取最優(yōu)時間間隔和記憶長時間歷史遙測數(shù)據(jù)[16-18]。實驗結(jié)果表明:LSTM模型適用于衛(wèi)星電源系統(tǒng)參數(shù)預(yù)測研究,且有較高的預(yù)測精度和很強的適用性。
LSTM模型通過增加新的“單元狀態(tài)”來改進RNN,即原始RNN的隱含層只有一個狀態(tài)h,它對于短期的輸入非常敏感,而新增加的狀態(tài)c負責(zé)保存長期狀態(tài),具體模型如圖1所示。
圖1 原始RNN和LSTM模型
LSTM模型運用3個控制開關(guān),來分別負責(zé)長期狀態(tài)c的繼續(xù)保存、輸入和輸出。具體是通過激活函數(shù)σ(sigmoid函數(shù))控制3個控制門,即輸入門(input gate),遺忘門(forget gate)和輸出門(output gate)。當控制門輸出為0時,任何向量與之相乘都會成為0向量,信息無法進行傳遞;當控制門輸出為1時,任何向量都不會改變,信息就可以傳遞出去。圖2為控制門對單元狀態(tài)的控制示意圖,圖中:輸入門控制當前輸入層xt到隱含層單元狀態(tài)ct的信息傳遞;輸出門控制單元狀態(tài)ct到輸出層ht的信息傳遞;遺忘門控制對上一時刻單元狀態(tài)ct-1的信息保留。由于衛(wèi)星電源參數(shù)數(shù)據(jù)屬于時間序列數(shù)據(jù),具有隨時間變化的特點,且有一定的規(guī)律,結(jié)合LSTM模型能夠記憶長時間時間序列方面的優(yōu)點,可以利用LSTM模型提取衛(wèi)星電源系統(tǒng)參數(shù)規(guī)律信息,對衛(wèi)星電源系統(tǒng)參數(shù)數(shù)據(jù)進行預(yù)測。
圖2 控制門對單元狀態(tài)的控制示意圖
LSTM模型采用反向傳播算法對網(wǎng)絡(luò)進行訓(xùn)練,主要有2大步驟:1)前向計算網(wǎng)絡(luò)每個神經(jīng)元的輸出值;2) 根據(jù)LSTM模型的輸出結(jié)果與實際值的誤差項反向計算相應(yīng)的誤差項,計算得到網(wǎng)絡(luò)權(quán)重。由于LSTM模型的輸入包括時間展開輸入和網(wǎng)絡(luò)每層的輸入,因此,誤差項的傳遞方向也包括沿時間的反向傳播和沿上一層的傳播。
衛(wèi)星電源系統(tǒng)異常檢測流程如圖3所示,主要包含4個模塊:1)衛(wèi)星電源系統(tǒng)數(shù)據(jù)預(yù)處理模塊,該模塊對衛(wèi)星電源系統(tǒng)原始數(shù)據(jù)進行預(yù)處理,構(gòu)造模型樣本;2)LSTM模型訓(xùn)練模塊,該模塊主要利用LSTM模型對預(yù)處理后的遙測數(shù)據(jù)進行訓(xùn)練,并得出訓(xùn)練數(shù)據(jù)的模型訓(xùn)練誤差;3)LSTM模型預(yù)測模塊,該模塊利用通過訓(xùn)練完成的LSTM模型對衛(wèi)星電源遙測參數(shù)進行預(yù)測;4)LSTM模型檢測模塊,該模塊是利用預(yù)測參數(shù)與模型訓(xùn)練誤差生成的動態(tài)檢測門對實時衛(wèi)星電源系統(tǒng)參數(shù)進行檢測。通過上述4個模塊可以達到對衛(wèi)星電源系統(tǒng)異常檢測的目的。
圖3 衛(wèi)星電源系統(tǒng)異常檢測流程
在衛(wèi)星電源系統(tǒng)原始數(shù)據(jù)中,存在大量因非異常原因造成的異常值,這些數(shù)據(jù)會嚴重影響LSTM模型的執(zhí)行效率。因此,為了提高模型執(zhí)行效率,降低模型預(yù)測誤差,提高數(shù)據(jù)質(zhì)量,需要對數(shù)據(jù)進行清洗與歸一化處理。同時,由于遙測數(shù)據(jù)都是按照時間順序進行排列的[6-7],但其采樣周期有細微差別,因此,需對原始遙測參數(shù)設(shè)置時間間隔,并與時標對齊生成等間隔樣本序列,數(shù)據(jù)預(yù)處理流程如圖4所示。
圖4 數(shù)據(jù)預(yù)處理流程
利用歷史衛(wèi)星電源遙測數(shù)據(jù)對LSTM模型進行訓(xùn)練,最終以模型估計值與實際值的誤差函數(shù)是否滿足設(shè)定要求來決定完成訓(xùn)練時間。LSTM模型如圖5所示。
圖5 LSTM模型
在模型訓(xùn)練過程中,通過LSTM模型對[1,T]時間段內(nèi)的歷史數(shù)據(jù)的學(xué)習(xí),來預(yù)測T+a時刻的參數(shù)值,其中a為時間常數(shù)。X為LSTM的輸入,即為圖5中的xt,H=(H1,H2,…,HT),為LSTM的輸出,即為圖5中的ht。衛(wèi)星電源系統(tǒng)參數(shù)的時間序列特征分別為
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分別為遺忘門、輸入門、當前單元狀態(tài)、輸出門的權(quán)重矩陣和偏置項?!啊恪睘橛嬎惴?,當其作用于2個矩陣時,代表2個矩陣對應(yīng)位置的元素相乘。式(6)為最后整個LSTM的輸出。因此LSTM的輸入層神經(jīng)元數(shù)為輸入序列數(shù),輸出神經(jīng)元數(shù)為輸出序列數(shù),在對衛(wèi)星電源系統(tǒng)參數(shù)進行預(yù)測時,通過輸入衛(wèi)星電源系統(tǒng)在一個時間段的當前或歷史數(shù)據(jù),可預(yù)測出衛(wèi)星電源系統(tǒng)的一個或者多個未來時刻值。模型訓(xùn)練及預(yù)測過程如圖6所示。
圖6 模型訓(xùn)練及預(yù)測過程
LSTM模型預(yù)測出的時間序列屬于離散型數(shù)據(jù),為了能夠得到連續(xù)型數(shù)據(jù),采用拉格朗日插值算法建立預(yù)測值的插值函數(shù),從而得出以時間為自變量的預(yù)測連續(xù)函數(shù),通過預(yù)測結(jié)果與實際值的差異程度進行數(shù)據(jù)的動態(tài)異常檢測,從而建立遙測數(shù)據(jù)動態(tài)門限,實現(xiàn)對衛(wèi)星電源遙測數(shù)據(jù)異常檢測。異常檢測流程如圖7所示。
圖7 異常檢測流程
從衛(wèi)星電源系統(tǒng)參數(shù)時間序列的特點,以及使LSTM快速、高效方面考慮,本實驗設(shè)定模型中每個LSTM結(jié)構(gòu)只有1個單元狀態(tài);針對LSTM模型隱含層神經(jīng)元數(shù),從訓(xùn)練時間和挖掘能力方面考慮,本實驗將隱含層神經(jīng)元數(shù)設(shè)置為200,且采用迭代的方式進行多步循環(huán)預(yù)測。由于衛(wèi)星所處的太空環(huán)境復(fù)雜且有多種輻射,同時受傳輸過程的影響,致使衛(wèi)星電源系統(tǒng)參數(shù)數(shù)據(jù)存在異常狀態(tài),為了使檢測結(jié)果更精確,在進行預(yù)測和檢測前需對數(shù)據(jù)進行清洗,剔除異常數(shù)據(jù),同時,為了不影響數(shù)據(jù)分析結(jié)果,需要對數(shù)據(jù)進行歸一化處理。記衛(wèi)星電源遙測參數(shù)時間序列點為(t,s(t)),其中t為時刻,t∈[ts,te],s(t)為對應(yīng)時刻的參數(shù)值。
給定樣本序列起始時間ts,首先按一定時間間隔td建立等間隔樣本序列{(t,x(t))|t=ts+p·td,p=0,1,…,P-1},其中:x(t)為對應(yīng)時刻的樣本值,初始化時不賦值;P=floor((te-ts)/td),為樣本序列長度,floor(·)函數(shù)表示向下取整。
按照樣本序列x(t)的時標,在原始時間序列s(t)記錄中逐步找到與樣本時標最接近的時刻,提取該時刻的數(shù)據(jù)值作為樣本值,可得賦值后的樣本序列{x(ts+p·td)|p=0,1,…,P-1}。
對于某一維非線性時間序列x(t),t∈[1,n],若要預(yù)測x(n+1),x(n+2),…,x(n+n)的值,首先需要構(gòu)造出預(yù)測模型的結(jié)構(gòu)形式,即多個已知序列值順序輸入(輸入節(jié)點)的輸入模式和多個期望輸出(輸出節(jié)點)的輸出模式。
以序列[x(0),x(1),…,x(n)]為例,記LSTM模型的輸入節(jié)點個數(shù)為Li、輸出節(jié)點個數(shù)為Lo,樣本選取間隔為ds,樣本選取過程如圖8所示。
圖8 樣本選取過程
由上述過程,可得模型樣本的輸入矩陣
(7)
模型樣本的輸出(目標)矩陣
(8)
本文設(shè)置輸入向量長度即元素個數(shù)為Lin,輸出節(jié)點個數(shù)為1,應(yīng)當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},記樣本總數(shù)為N,則N=P-Lin。
建立訓(xùn)練樣本集T={(X1,Y1),(X2,Y2),…(XN,YN)},為構(gòu)建LSTM模型做好數(shù)據(jù)準備。
建立模型評價函數(shù),定義均方根誤差
(9)
RMSE代表了預(yù)測誤差的離散程度,也叫標準誤差,最佳情況為RMSE=0,是誤差分析的綜合指標之一。
(10)
模型訓(xùn)練誤差為RMSE,設(shè)定檢測閾值為κ,當κ>0時,檢測門限上限LU(t)和下限LB(t)分別設(shè)置為
(11)
(12)
來進行異常點檢測。對原始時間序列s(t)中的任一點t∈[ts+Lin·td,ts+(P-1)·td],異常與否的判斷條件為:如果預(yù)測值與實際值的偏差程度超過一定倍數(shù)的模型RMSE,則認為實際值出現(xiàn)異常,即
正常值為
LB(t)≤s(t)≤LU(t);
(13)
異常值為
s(t)
(14)
通過對衛(wèi)星電源參數(shù)分析,選取某型衛(wèi)星蓄電池組的不同測點電壓參數(shù)a和b,在某時間區(qū)間的遙測數(shù)據(jù)進行驗證。
1) 根據(jù)2.1和2.2節(jié)中的數(shù)據(jù)清洗、歸一化處理和時標對齊方法,對得到的25 633組數(shù)據(jù)(數(shù)據(jù)格式為<時間,參數(shù)值>)建立樣本序列{x(t)},樣本序列長度為8 928,部分數(shù)據(jù)變化形態(tài)如圖9(a)、(b)中黑線所示。
2) 設(shè)置輸入向量長度為100,樣本選取間隔為1,按照步驟2.2節(jié)中的方法建立樣本集T,共得到8 828組樣本。
3) 按照2.3節(jié)方法,對LSTM模型進行訓(xùn)練。設(shè)置LSTM模型的輸入為100個節(jié)點,輸出層為10個節(jié)點;訓(xùn)練時反向傳播算法的迭代次數(shù)為3 000次,學(xué)習(xí)率為0.000 1,隱含層神經(jīng)元數(shù)為200。通過模型訓(xùn)練,生成的實際觀測值與模型估計值的對比如圖9所示。再輸入樣本計算得到每個輸入向量的預(yù)測值,LSTM模型預(yù)測值與實際觀測值的對比如圖10所示。
圖9 LSTM模型觀測值與估計值對比
4) 按照2.4節(jié)對預(yù)測值序列進行拉格朗日插值。計算預(yù)測結(jié)果的均方根誤差RMSE,設(shè)置檢測門限κ=3,按照2.5節(jié)生成檢測上下門限。
5) 按照式(13)、(14)對原始遙測數(shù)據(jù)時間序列進行檢測。部分時間區(qū)間的檢測效果如圖11所示。圖中紅色和綠色線所示為生成的動態(tài)上限和下限??梢姡簞討B(tài)門限能很好地反映出預(yù)測值以及實際觀測值的變化,同時動態(tài)門限也很好地包絡(luò)了參數(shù)動態(tài)趨勢。參數(shù)a從3 090點左右開始,實際值變?yōu)楹愣?,顯然不符合參數(shù)變化規(guī)律,這段區(qū)域的數(shù)值被標記為了異常(橙色圈點),如圖11(a)所示,參數(shù)b從3 500點左右開始,實際值陡然下降,不符合參數(shù)變化規(guī)律,該區(qū)域的數(shù)值被標記為了異常點(橙色圈點),如圖11(b)所示。
圖10 LSTM模型預(yù)測值與實際觀測值對比
圖11 部分時間區(qū)間的檢測效果
本文提出了一種基于LSTM模型的衛(wèi)星電源系統(tǒng)異常檢測方法,包括對數(shù)據(jù)的預(yù)處理、LSTM模型的訓(xùn)練、預(yù)測以及檢測等。實驗表明:
1) 與筆者前期利用貝葉斯模型對衛(wèi)星電源參數(shù)進行檢測相比,LSTM模型的擬合度更高且預(yù)測及檢測性能整體更優(yōu),但是訓(xùn)練過程的耗時也更多;
2) 在LSTM模型訓(xùn)練過程中,模型的預(yù)測精度和損失函數(shù)對學(xué)習(xí)率的取值較為敏感,過高或過低的學(xué)習(xí)率會導(dǎo)致過擬合或者欠擬合的問題,進而影響模型檢測性能。
總體來說,本文驗證了LSTM模型在衛(wèi)星電源系統(tǒng)參數(shù)異常檢測的適用性和有效性,擴展了深度學(xué)習(xí)技術(shù)的應(yīng)用。基于目前的工作,后續(xù)可以加深更多隱含層層數(shù),以檢驗多隱含層LSTM模型的應(yīng)用效果,或者優(yōu)化LSTM模型參數(shù)從而提高模型訓(xùn)練效率。此外,本文利用LSTM模型對單遙測參數(shù)進行檢測,下一步,可以對多參數(shù)進行檢測,從而滿足對衛(wèi)星系統(tǒng)級別的異常檢測需求。