倪平,聞新,*
1. 沈陽航空航天大學 航空宇航學院,沈陽 110136 2. 南京航空航天大學 航天學院,南京 210016
衛(wèi)星在執(zhí)行任務時會面對很多故障問題,影響衛(wèi)星任務的完成,在面對這些故障時可以采取冗余結構的方式來抵消部分故障問題帶來的影響[1]。其中,執(zhí)行器故障分很多種,針對不同的故障采取不同的容錯方法,故障診斷結果決定采取的容錯決策,不同決策對衛(wèi)星有很大的影響。
按照推理數(shù)據(jù)類型來看,對衛(wèi)星執(zhí)行機構的故障診斷常用的方法是通過對實際輸出力矩的檢測與預計輸出力矩進行對比,隨之進行故障診斷[2-4]。但該方法對飛輪實際控制力矩測量要求較高,其測量通常采用的繞組電流乘以力矩系數(shù)或者對飛輪的轉速微分間接地作為飛輪的輸出力矩,其忽略了摩擦力矩,從而偏差很大。按照診斷方法來看,最初的衛(wèi)星常采用基于模型的觀測器方法[5]。隨著工業(yè)技術的發(fā)展航天器越來越復雜化、非線性化,神經(jīng)網(wǎng)絡故障診斷方法開始興起,基于BP網(wǎng)絡和徑向基網(wǎng)絡對火箭狀態(tài)特征量進行檢測取得了很好的效果[6-7]。但淺層神經(jīng)網(wǎng)絡逐漸被特征提取能力更優(yōu)的深度學習代替[8-11],利用深度置信網(wǎng)絡進行特征提取的故障檢測方法具有較強的魯棒性[12],采用深度自動堆疊編碼機,可以做到不斷細化分類故障[13],基于支持向量機的航天器電器故障診斷方法可以大大縮短診斷時間[14],深度學習方法已經(jīng)在現(xiàn)代航空故障診斷領域取得了有效的成果。在面對時序故障數(shù)據(jù)時,深度循環(huán)神經(jīng)網(wǎng)絡取得了良好的效果,但其訓練崩潰問題還需要解決。
本文研究基于循環(huán)神經(jīng)網(wǎng)絡與衛(wèi)星執(zhí)行器故障診斷相結合的方法,對陀螺儀和敏感器故障數(shù)據(jù)進行特征提取。引入優(yōu)化單元來改進循環(huán)神經(jīng)網(wǎng)絡算法,通過不同結構和參數(shù)的故障診斷模型進行對比仿真,尋找最優(yōu)的故障檢測和分類方法。該方法在工程應用上可大大減少系統(tǒng)訓練時間,并且取得良好的故障診斷效果。
衛(wèi)星姿態(tài)控制系統(tǒng),具體包括衛(wèi)星姿態(tài)動力學、衛(wèi)星姿態(tài)運動學、星敏感器、陀螺以及目標姿態(tài)誤差算法。
星敏感器精度較高,設定以0.99作為傳遞系數(shù)輸出衛(wèi)星姿態(tài),通過高斯白噪聲和常值漂移作為陀螺角速度輸出,衛(wèi)星執(zhí)行機構采用三軸穩(wěn)定進行控制,由伺服電機和三正交反作用飛輪構成。
衛(wèi)星姿態(tài)動力學建模如下:
(1)
圖1 衛(wèi)星控制系統(tǒng)Fig.1 Satellite control system
在經(jīng)過故障隔離,對執(zhí)行器機構進行故障分類。取俯仰方向分析,執(zhí)行器故障按效果可分為四種:
(1)卡死故障
飛輪猛然停轉導致力矩輸出產(chǎn)生一個巨大擾動后快速變?yōu)榱?,或空轉導致飛輪對控制指令無反應,實際輸出力矩為:
(2)
式中:tf為故障開始時刻,f表示故障;Tf(t)為飛輪實際輸出力矩;T(t)為無故障情況下飛輪輸出力矩;c為常值。
(2)加性故障
電機力矩減小,摩擦力力矩增大,導致飛輪力矩減小,力矩為:
(3)
式中:f(t)為飛輪加性故障函數(shù),可隨時間變化或為常值。
(3)乘性故障
飛輪與其他零件產(chǎn)生嚙合或摩擦導致質量減小造成的力矩輸出倍數(shù)減小,力矩為:
(4)
式中:g(t)為飛輪乘性故障函數(shù),可隨時間變化或常值。
(4)混合故障
飛輪同時發(fā)生加性故障和乘性故障,力矩輸出為:
(5)
通過對星敏感器和角速度陀螺的數(shù)據(jù)進行特征提取和模式識別,對執(zhí)行器的故障類型進行判斷。
設定Wio=[0 0.0011 0]T為衛(wèi)星初始軌道角速度,i表示慣性系, o表示軌道坐標系;Wo=[0 0 0]T為衛(wèi)星初始姿態(tài)角速度,fo1=[0 0.7449 0.0977]T為衛(wèi)星的初始姿態(tài)角,fo2=[0.1744 0.1744 0.8232]T為目標姿態(tài)角。
卡死故障集由式2可得Tf(t)=c,當c為0時表示飛輪停車;負值表示受擾動力產(chǎn)生反向空轉力矩;正值表示飛輪輸出正向空轉力矩。因此分別隨機設定0,3,10,-3,-10為執(zhí)行機構俯仰方向力矩輸出,其他方向力矩數(shù)據(jù)輸出正常,各取100組時序數(shù)據(jù)構成數(shù)據(jù)集。偏航與滾轉方向同上,共計1 500組卡死故障數(shù)據(jù)。表1為滾轉方向力矩輸出為0的角速度和四元數(shù)誤差部分數(shù)據(jù),其中t為故障時刻,t-1為前一時刻,t+1為后一時刻。
表1 卡死故障部分數(shù)據(jù)
加性故障集由式(3)可得Tf(t)=T(t)+f(t),當f(t)為常值時同上;當f(t)為周期函數(shù)時表示故障每一個周期在特定時刻或位置,都會對飛輪實際輸出產(chǎn)生增益或減益的偏差影響;當f(t)為線性函數(shù)時表示故障偏差隨著時間在逐漸增大;當f(t)為二次函數(shù)時表示多個與飛輪關聯(lián)的機構同時發(fā)生故障,使其故障偏差或二次以及更高次增加。因此隨機設定3、sint、-0.01t、0.01t2+1、-2為執(zhí)行機構俯仰方向加性故障函數(shù),其他方向力矩數(shù)據(jù)輸出正常,各取100組時序數(shù)據(jù)構成數(shù)據(jù)集。偏航與滾轉方向同上,共計1 500組加性故障數(shù)據(jù)。 表2為滾轉方向f(t)=3力矩輸出得到的角速度和四元數(shù)誤差部分數(shù)據(jù)。
表2 加性故障部分數(shù)據(jù)
乘性故障集由式4可得Tf(t)=g(t)×T(t),其中g(t),f(t)的取值方式同加性故障一樣。因此隨機設定3、sint、-0.01t、0.01t2+1、-2為執(zhí)行機構俯仰方向乘性故障函數(shù),其他方向力矩數(shù)據(jù)輸出正常,各取100組時序數(shù)據(jù)構成數(shù)據(jù)集。偏航與滾轉方向同上,共計1 500組乘性故障數(shù)據(jù)。表3為滾轉方向g(t)=3的力矩輸出得到的角速度和四元數(shù)誤差部分數(shù)據(jù)。
表3 乘性故障部分數(shù)據(jù)
混合故障集由公式5可得Tf(t)=g(t)×T(t)+f(t),其中g(t)、f(t)的取值方同上。因此隨機設定執(zhí)行機構俯仰方向故障分別取3、sint、-0.01t、0.01t2+1、-2,其他方向力矩數(shù)據(jù)輸出正常,各取100組時序數(shù)據(jù)構成數(shù)據(jù)集。偏航與滾轉方向同上,共計1500組混合故障數(shù)據(jù)。表4為滾轉方向g(t)=3和f(t)=3的力矩輸出得到的角速度和四元數(shù)誤差部分數(shù)據(jù)。
表4 混合故障部分數(shù)據(jù)
循環(huán)神經(jīng)網(wǎng)絡前一時刻與當前時刻之間存在連接權重,權重模塊通常是一個矩陣單元,計算簡單但是容易梯度爆炸和梯度消失。GRU模塊由LSTM[15-16]改造而來,可以克服梯度爆炸和消失問題,同時也大大減少了計算量,其運行如圖2所示。
圖2 GRU運行框圖Fig.2 GRU operation block diagram
該單元的前向傳播為:
rt=σ(Wr·[ht-1,xt])
zt=σ(Wz·[ht-1,xt])
式中:Wr表示重置門矩陣;Wz表示更新門矩陣,Wh′為候選集矩陣;·為矩陣相乘;*為元素相乘。從公式中可以看出,重置門rt越大表示寫入信息越多,更新門權重越大表示前一刻信息越重要。權重更新算法與普通循環(huán)神經(jīng)網(wǎng)絡一樣,采用增量規(guī)則進行權重更新,不同時刻的權重共享。
本文設計六種不同結構的循環(huán)神經(jīng)網(wǎng)絡,來比對不同參數(shù)對衛(wèi)星數(shù)據(jù)故障診斷的效果。分別是不同的時序連接單元、網(wǎng)絡深度、激活函數(shù)以及采用的學習算法。六種網(wǎng)絡結構見表5和表6。
表5中tanh函數(shù)為循環(huán)神經(jīng)網(wǎng)絡在文字翻譯中常用函數(shù):
(6)
表6中ReLU函數(shù)為線性整流單元,為常見的激活函數(shù),但一般不應用于循環(huán)神經(jīng)網(wǎng)絡,容易引起梯度爆炸和消失等問題:
(7)
表5 A、B、C網(wǎng)絡結構參數(shù)
表6 D、E、F網(wǎng)絡結構參數(shù)
仿真采用內(nèi)置的歸一化函數(shù)和softmax函數(shù)做分類輸出:1表示正常狀態(tài),2表示卡死故障,3表示加性故障,4表示乘性故障,5表示混合故障。
(8)
式中:Xi為第i個節(jié)點輸入值,N為分類個數(shù)。
故障集共6 000組數(shù)據(jù),取4 000組為訓練集、500組為驗證集、1 500組為測試集,以準確率平穩(wěn)收斂為目標結束訓練。故障診斷結果如表7,其中一些網(wǎng)絡存在梯度消失和炸裂情況,所以需要重新初始化權重矩陣進行訓練,直到出現(xiàn)穩(wěn)定訓練結果。
表7 故障診斷結果
根據(jù)表7結果可以看出,對衛(wèi)星姿態(tài)誤差和角速度數(shù)據(jù)進行特征提取和故障分類。
1)采用GRU單元比普通權重單元訓練難度更低,識別正確性更高,其中網(wǎng)絡層次越深故障診斷表現(xiàn)效果越好,GRU單元更容易達到全局最優(yōu)。
2)全連接層采取ReLU激活函數(shù)效果有明顯提高,自適應學習率調節(jié)的訓練算法訓練速度更快,故障診斷系統(tǒng)效果也更優(yōu)。
帶有GRU單元的改進深度循環(huán)神經(jīng)網(wǎng)絡可采用線性整流激活函數(shù),訓練過程中采用自適應梯度下降算法,可以有效防止訓練時梯度炸裂,并且該網(wǎng)絡的故障診斷準確率達到了95.7%。未能準確識別的情況其數(shù)據(jù)特征有一定相似度,根據(jù)仿真結果,預計采取更深層次的網(wǎng)絡可以達到更好的故障診斷效果。該故障診斷算法使循環(huán)神經(jīng)網(wǎng)絡在航天領域表現(xiàn)出更好的工程性。故障分類后,在訓練好的故障診斷網(wǎng)絡中延伸出解碼器和編碼器進行回歸訓練,即可對基于時序的故障進行定量預測,便于設計故障容錯。