倪平,聞新,*
1. 沈陽航空航天大學 航空宇航學院,沈陽 110136 2. 南京航空航天大學 航天學院,南京 210016
衛星在執行任務時會面對很多故障問題,影響衛星任務的完成,在面對這些故障時可以采取冗余結構的方式來抵消部分故障問題帶來的影響[1]。其中,執行器故障分很多種,針對不同的故障采取不同的容錯方法,故障診斷結果決定采取的容錯決策,不同決策對衛星有很大的影響。
按照推理數據類型來看,對衛星執行機構的故障診斷常用的方法是通過對實際輸出力矩的檢測與預計輸出力矩進行對比,隨之進行故障診斷[2-4]。但該方法對飛輪實際控制力矩測量要求較高,其測量通常采用的繞組電流乘以力矩系數或者對飛輪的轉速微分間接地作為飛輪的輸出力矩,其忽略了摩擦力矩,從而偏差很大。按照診斷方法來看,最初的衛星常采用基于模型的觀測器方法[5]。隨著工業技術的發展航天器越來越復雜化、非線性化,神經網絡故障診斷方法開始興起,基于BP網絡和徑向基網絡對火箭狀態特征量進行檢測取得了很好的效果[6-7]。但淺層神經網絡逐漸被特征提取能力更優的深度學習代替[8-11],利用深度置信網絡進行特征提取的故障檢測方法具有較強的魯棒性[12],采用深度自動堆疊編碼機,可以做到不斷細化分類故障[13],基于支持向量機的航天器電器故障診斷方法可以大大縮短診斷時間[14],深度學習方法已經在現代航空故障診斷領域取得了有效的成果。在面對時序故障數據時,深度循環神經網絡取得了良好的效果,但其訓練崩潰問題還需要解決。
本文研究基于循環神經網絡與衛星執行器故障診斷相結合的方法,對陀螺儀和敏感器故障數據進行特征提取。引入優化單元來改進循環神經網絡算法,通過不同結構和參數的故障診斷模型進行對比仿真,尋找最優的故障檢測和分類方法。該方法在工程應用上可大大減少系統訓練時間,并且取得良好的故障診斷效果。
衛星姿態控制系統,具體包括衛星姿態動力學、衛星姿態運動學、星敏感器、陀螺以及目標姿態誤差算法。
星敏感器精度較高,設定以0.99作為傳遞系數輸出衛星姿態,通過高斯白噪聲和常值漂移作為陀螺角速度輸出,衛星執行機構采用三軸穩定進行控制,由伺服電機和三正交反作用飛輪構成。
衛星姿態動力學建模如下:

(1)


圖1 衛星控制系統Fig.1 Satellite control system
在經過故障隔離,對執行器機構進行故障分類。取俯仰方向分析,執行器故障按效果可分為四種:
(1)卡死故障
飛輪猛然停轉導致力矩輸出產生一個巨大擾動后快速變為零,或空轉導致飛輪對控制指令無反應,實際輸出力矩為:

(2)
式中:tf為故障開始時刻,f表示故障;Tf(t)為飛輪實際輸出力矩;T(t)為無故障情況下飛輪輸出力矩;c為常值。
(2)加性故障
電機力矩減小,摩擦力力矩增大,導致飛輪力矩減小,力矩為:

(3)
式中:f(t)為飛輪加性故障函數,可隨時間變化或為常值。
(3)乘性故障
飛輪與其他零件產生嚙合或摩擦導致質量減小造成的力矩輸出倍數減小,力矩為:

(4)
式中:g(t)為飛輪乘性故障函數,可隨時間變化或常值。
(4)混合故障
飛輪同時發生加性故障和乘性故障,力矩輸出為:

(5)
通過對星敏感器和角速度陀螺的數據進行特征提取和模式識別,對執行器的故障類型進行判斷。
設定Wio=[0 0.0011 0]T為衛星初始軌道角速度,i表示慣性系, o表示軌道坐標系;Wo=[0 0 0]T為衛星初始姿態角速度,fo1=[0 0.7449 0.0977]T為衛星的初始姿態角,fo2=[0.1744 0.1744 0.8232]T為目標姿態角。
卡死故障集由式2可得Tf(t)=c,當c為0時表示飛輪停車;負值表示受擾動力產生反向空轉力矩;正值表示飛輪輸出正向空轉力矩。因此分別隨機設定0,3,10,-3,-10為執行機構俯仰方向力矩輸出,其他方向力矩數據輸出正常,各取100組時序數據構成數據集。偏航與滾轉方向同上,共計1 500組卡死故障數據。表1為滾轉方向力矩輸出為0的角速度和四元數誤差部分數據,其中t為故障時刻,t-1為前一時刻,t+1為后一時刻。

表1 卡死故障部分數據
加性故障集由式(3)可得Tf(t)=T(t)+f(t),當f(t)為常值時同上;當f(t)為周期函數時表示故障每一個周期在特定時刻或位置,都會對飛輪實際輸出產生增益或減益的偏差影響;當f(t)為線性函數時表示故障偏差隨著時間在逐漸增大;當f(t)為二次函數時表示多個與飛輪關聯的機構同時發生故障,使其故障偏差或二次以及更高次增加。因此隨機設定3、sint、-0.01t、0.01t2+1、-2為執行機構俯仰方向加性故障函數,其他方向力矩數據輸出正常,各取100組時序數據構成數據集。偏航與滾轉方向同上,共計1 500組加性故障數據。 表2為滾轉方向f(t)=3力矩輸出得到的角速度和四元數誤差部分數據。

表2 加性故障部分數據
乘性故障集由式4可得Tf(t)=g(t)×T(t),其中g(t),f(t)的取值方式同加性故障一樣。因此隨機設定3、sint、-0.01t、0.01t2+1、-2為執行機構俯仰方向乘性故障函數,其他方向力矩數據輸出正常,各取100組時序數據構成數據集。偏航與滾轉方向同上,共計1 500組乘性故障數據。表3為滾轉方向g(t)=3的力矩輸出得到的角速度和四元數誤差部分數據。

表3 乘性故障部分數據
混合故障集由公式5可得Tf(t)=g(t)×T(t)+f(t),其中g(t)、f(t)的取值方同上。因此隨機設定執行機構俯仰方向故障分別取3、sint、-0.01t、0.01t2+1、-2,其他方向力矩數據輸出正常,各取100組時序數據構成數據集。偏航與滾轉方向同上,共計1500組混合故障數據。表4為滾轉方向g(t)=3和f(t)=3的力矩輸出得到的角速度和四元數誤差部分數據。

表4 混合故障部分數據
循環神經網絡前一時刻與當前時刻之間存在連接權重,權重模塊通常是一個矩陣單元,計算簡單但是容易梯度爆炸和梯度消失。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越大表示寫入信息越多,更新門權重越大表示前一刻信息越重要。權重更新算法與普通循環神經網絡一樣,采用增量規則進行權重更新,不同時刻的權重共享。
本文設計六種不同結構的循環神經網絡,來比對不同參數對衛星數據故障診斷的效果。分別是不同的時序連接單元、網絡深度、激活函數以及采用的學習算法。六種網絡結構見表5和表6。
表5中tanh函數為循環神經網絡在文字翻譯中常用函數:

(6)
表6中ReLU函數為線性整流單元,為常見的激活函數,但一般不應用于循環神經網絡,容易引起梯度爆炸和消失等問題:

(7)

表5 A、B、C網絡結構參數

表6 D、E、F網絡結構參數
仿真采用內置的歸一化函數和softmax函數做分類輸出:1表示正常狀態,2表示卡死故障,3表示加性故障,4表示乘性故障,5表示混合故障。

(8)
式中:Xi為第i個節點輸入值,N為分類個數。
故障集共6 000組數據,取4 000組為訓練集、500組為驗證集、1 500組為測試集,以準確率平穩收斂為目標結束訓練。故障診斷結果如表7,其中一些網絡存在梯度消失和炸裂情況,所以需要重新初始化權重矩陣進行訓練,直到出現穩定訓練結果。

表7 故障診斷結果
根據表7結果可以看出,對衛星姿態誤差和角速度數據進行特征提取和故障分類。
1)采用GRU單元比普通權重單元訓練難度更低,識別正確性更高,其中網絡層次越深故障診斷表現效果越好,GRU單元更容易達到全局最優。
2)全連接層采取ReLU激活函數效果有明顯提高,自適應學習率調節的訓練算法訓練速度更快,故障診斷系統效果也更優。
帶有GRU單元的改進深度循環神經網絡可采用線性整流激活函數,訓練過程中采用自適應梯度下降算法,可以有效防止訓練時梯度炸裂,并且該網絡的故障診斷準確率達到了95.7%。未能準確識別的情況其數據特征有一定相似度,根據仿真結果,預計采取更深層次的網絡可以達到更好的故障診斷效果。該故障診斷算法使循環神經網絡在航天領域表現出更好的工程性。故障分類后,在訓練好的故障診斷網絡中延伸出解碼器和編碼器進行回歸訓練,即可對基于時序的故障進行定量預測,便于設計故障容錯。