陳海鵬, 閆 杰, 符文星
(西北工業(yè)大學無人系統(tǒng)研究院, 西安 710072)
推力下降故障為運載火箭典型非致命動力系統(tǒng)故障類型,因此,及時的故障診斷能夠及時預警,為后續(xù)的控制提供更有效的分配策略,避免任務的失敗。 傳統(tǒng)的故障診斷方法多基于模型實現,對解析模型的依賴較大,實際應用中建模的精確度高低是故障診斷準確與否的關鍵。 運載火箭本身是一個高復雜度的非線性系統(tǒng),難以精確建模,即使精確建模也難以直接在卡爾曼濾波器法、魯棒觀測器法等方法中應用,需要進一步簡化,且這一過程又會帶來一定程度的誤差。
基于知識的方法可以避免被控對象建立精確模型困難的問題,又能充分利用診斷對象特性的信息。 深度學習作為一種能夠深度提取數據特征的方法,在故障診斷領域具有較大潛力。 基于深度置信網絡(Deep Belief Network,DBN)的故障診斷適用于分類器以及特征的提取與識別。 蔣麗英等將主元分析與DBN 結合,用于航空發(fā)動機氣路系統(tǒng)故障診斷,并利用實測數據驗證該方法的準確性;Yang 等提出了一種基于改進DBN 的故障診斷方法,擺脫了傳統(tǒng)機器學習方法對樣本特征提取的依賴,有效克服了梯度消失、局部極值等問題,應用于滾動軸承數據的實驗中。 基于卷積神經網絡(Convolutional Neural Network,CNN)的故障診斷更適合處理大型數據,從中獲取與故障相關的信息。 Gu 等提出了一種基于時間模態(tài)特征提取的經驗模式分解變換方法,與結合卷積神經網絡,應用于軸承故障診斷中;Xie 等提出了一種基于離散小波變換和卷積神經網絡的滾動軸承故障診斷特征提取新方法,CNN所提取的特征反映原始信號的特征,并被訓練成Softmax 分類器,用于旋轉機械故障診斷。與DBN、CNN 相比,堆棧自編碼器(Stacked Au?toencoder,SAE)能夠在相對少的樣本數據下,結合特征提取與分類技術實現較優(yōu)的故障診斷結 果。 Pang 等提 出 了 一 種 基 于 優(yōu) 化結構的多隱層極限學習機的航空燃氣輪機氣路部件故障診斷方法,應用于手寫識別數據集和燃氣輪機診斷應用;Wang 等提出了一種堆棧監(jiān)督自動編碼器來對深度網絡進行預訓練,并從原始輸入數據中獲取深度故障相關特征,提高了分類器的分類精度。
目前還未有研究將基于深度學習的方法用于運載火箭推力下降的故障診斷中,本文利用運載火箭運動學模型,生成樣本數據,采用堆棧自編碼器訓練網絡,對推力下降故障進行檢測與估計,并通過數字仿真驗證在線故障診斷效果。
考慮運載火箭飛行過程中受到的氣動力、控制力、推力、引力及附加力,在發(fā)射坐標系下建立運載器的質心運動方程如式(1)所示。
式中,為火箭質量,v、v、v為發(fā)射坐標系下各軸速度分量,為發(fā)動機推力,、、為滾轉通道、偏航通道、俯仰通道的控制力,′、′為箭體坐標系下偏航、俯仰通道的附加哥氏力,C為運載火箭軸向力系數,為法向力系數對攻角的偏導,為當前飛行條件下的動壓,為運載火箭最大橫截面積,為攻角,為側滑角,g、g、g為引力加速度各軸的分量,、、為離心慣性加速度各軸的分量,、、為哥氏慣性加速度各軸分量,為箭體系到發(fā)射系的坐標轉換矩陣,為速度系到發(fā)射系的坐標轉換矩陣。
質心動力學運動方程如式(2)所示。
將過載與運載器質量及重力加速度乘積的比值定義為過載系數,如式(4)所示。
式中,n為軸向過載系數,n為法向過載系數,n為橫向過載系數。
自編碼器(Autoencoder,AE)本質為一個單隱含層的神經元網絡,屬于無監(jiān)督學習算法的一種,包含編碼與解碼2 個過程。 目的是通過尋求最優(yōu)的權重與偏差參數,使得輸出盡可能地重構輸入,因此每次訓練需要在獲得輸出時將誤差反向傳播,以優(yōu)化輸出結果。 編碼過程數據維度不斷降低,解碼過程數據維度逐漸恢復,因而輸出可視為輸入降維后的低維特征。 圖1 為自編碼器示意圖。
圖1 自編碼器示意圖Fig.1 Schematic diagram of the autoencoder
單個自編碼器包含輸入層, 維數為, 隱含層,維數為;輸出層^,維數為。 選擇sig?moid 函數作為神經元激活函數。
編碼過程中,利用激活函數() 將輸入投影到隱含層,公式如式(5)所示。
式中,為輸入層到隱含層權重矩陣,維數為×;為偏差向量,維數為。
解碼過程中,利用映射函數() 將隱含層投影到輸出層,公式如式(6)所示。
式中,為隱含層到輸出層權重矩陣,維數為×;為偏差向量,維數為。
根據上述2 個過程,每個訓練樣本x都被投影到隱含層表示l, 然后被映射到重構數據^。為了獲得參數、、、,采用均方重構誤差最小化的計算方式來重構誤差損失函數,如式(7)所示。
式中,為訓練樣本總數。 自編碼器采用梯度下降法訓練網絡參數,使損失函數(7)最小化。
堆棧自編碼器包含無監(jiān)督預訓練過程和有監(jiān)督微調訓練過程。 堆棧自編碼器由多層自編碼器組成,預訓練過程中,從第一層開始,每個AE 單獨訓練,目的是使輸入輸出間的誤差最小,每一層AE 訓練后的輸出作為其下一層AE 的輸入,繼續(xù)訓練下一層,直至訓練到最后一層。 監(jiān)督微調過程中,SAE 的初始權重與偏差值取預訓練過程獲得的輸入層與隱層之間的權重和偏差。 使用BP算法計算各層誤差,并使用梯度下降法完成各層權重和偏置的調節(jié)。
運載火箭動力系統(tǒng)發(fā)動機發(fā)生故障后,運載火箭推力表示如式(8)所示。
式中,為正常情況下推力, P為故障后推力,為推力下降程度,∈[0,1) 。
堆棧自編碼器學習網絡的輸入樣本應包含運載火箭推力下降故障的特征。 在可獲取的運載火箭外部信息中,推力變化直接影響過載的變化,因此利用過載n、n信息作為網絡的輸入。 樣本包含故障時刻與故障程度信息。 以0.5 s 為時間間隔、10%為推力下降間隔,存儲每次六自由度模型仿真的彈道過載信息,作為樣本數據,不同故障時刻下故障特征在樣本中得以體現。
SAE 網絡用于推力下降故障診斷的過程分為以下5 步:
1)獲取運行器不同時刻、不同推力下降程度的過載信號,作為網絡輸入;
2)確定訓練網絡的層數、學習率、迭代次數以及各層的節(jié)點數;
3)逐層訓練AE 網絡,得到訓練好的特征編碼,用于網絡微調環(huán)節(jié);
4)微調整個網絡,對網絡準確率進行判斷,如果準確率滿足要求,即結束訓練,否則從第3 步重復訓練;
5)訓練好的網絡在仿真模型中實時調用,針對實時過載信息進行前向訓練,根據訓練結果判斷故障的發(fā)生及推力下降程度的大小。
運載火箭推力下降故障診斷的流程如圖2所示。
圖2 動力系統(tǒng)推力下降SAE 網絡訓練及故障診斷流程圖Fig.2 Flowchart of SAE network training and fault diagnosis for power train thrust drop
輸入數據包含彈道的狀態(tài)數據與標簽數據。訓練樣本包含故障,并非利用重構誤差。 數據標簽為不同推力下降程度,范圍為0 ~1,如發(fā)生30%的推力下降,標簽記為0.7。
設運載火箭30 s 發(fā)生30%推力下降故障,保持相同的學習率,每層隱含層設置節(jié)點數100,分別對包含3 層、4 層、5 層、6 層隱含層的SAE 網絡進行訓練,并用于故障診斷,經過多次訓練,測試錯誤率如表1 所示。 可以看出,網絡層數對訓練結果的影響較小,為簡化計算,縮短計算時間,選用3 層網絡(即1 層隱含層)即可。
表1 不同網絡層數下的故障診斷結果Table 1 Fault diagnosis results of different network layers
設運載火箭30 s 發(fā)生30%的推力下降故障,以10 個節(jié)點為間隔,分別對10 ~300 隱含層節(jié)點數下的網絡進行故障診斷仿真。 將每次的測試錯誤率存儲并繪制成曲線,如圖3 所示。 可以看到,節(jié)點數小于160 時,測試錯誤率處于平穩(wěn)小值水平,且足夠節(jié)點數保證錯誤率最小,因此本次仿真采用100 節(jié)點數。
圖3 不同隱含層節(jié)點下的測試錯誤率Fig.3 Test error rate under different hidden layer nodes
在合適的學習率區(qū)間內,損失函數會突降,過小的學習率導致?lián)p失函數減小速度緩慢,過大的學習率導致?lián)p失函數震蕩甚至發(fā)散。 因此,最好的學習速率對應損失函數下降曲線最陡峭的部分。 為分析損失函數下降曲線的坡度,圖4 給出了學習率與損失函數的關系曲線。 可以看出,坡度最抖的區(qū)域在0.2 以內,隨著學習率繼續(xù)增大,損失函數不斷震蕩最后發(fā)散。 因此將學習率設置為0.1。
圖4 學習率與損失函數的關系曲線Fig.4 Relationship between learning rate and loss function
后續(xù)仿真中,深度學習網絡設置為3 層,隱含層節(jié)點數為100,學習率設置為0.1。 無故障情況下的診斷結果理論上為標準值1,利用本文方法的診斷結果如圖5 所示。 由圖可見,無故障情況下診斷結果與標準值1 非常接近,誤差在10以內,因此可將檢測結果小于10的診斷值視為無故障發(fā)生。
圖5 無故障情況診斷結果Fig.5 Diagnosis results of no?fault condition
同一推力下降程度(下降30%)不同時刻的外部過載情況如圖6 所示,普通神經網絡方法與深度學習及SAE 網絡方法診斷結果如圖7 所示。
圖6 30%推力下降下不同時刻的外部過載Fig.6 Overload of 30%thrust drop at different times
圖7 可得,同一推力下降故障下,不同時刻的故障能夠被準確檢測。 與普通神經網絡方法診斷結果相比,該方法更加平滑,且推力下降程度較普通神經網絡法精確20%。 兩種方法均可檢測出非因推力故障所引起的過載突變,新方法受該突變影響較小,神經網絡方法對該突變較為敏感,檢測到的推力下降程度處于波動狀態(tài)。
圖7 30%推力下降下不同時刻故障的診斷結果Fig.7 Diagnosis results of 30% thrust drop fault at different times
同一時刻(20 s)不同程度推力下降的外部過載情況如圖8 所示,其診斷結果如圖9 所示。
圖8 20 s 下不同程度推力下降的外部過載Fig.8 Overload of different thrust drop at 20 s
圖9 20 s 下不同程度推力下降故障的診斷結果Fig.9 Diagnossis results of different degrees of thrust drop at 20 s
圖9 可得,故障發(fā)生后,推力下降程度有一個大于給定推力下降程度的突變,并在較短時間內達到接近給定的推力下降程度值,因此能夠實現對不同推力下降程度的估計。 不同推力下降程度下,2 種方法均能對故障情況進行檢測,隨著故障程度增加,普通神經網絡的診斷結果存在較大波動,說明深度學習SAE 網絡能更好地適應推力下降程度較大的情況。
將訓練好的網絡加載到彈道中實時調用,隨機時刻和隨機程度推力下降的外部過載情況如圖10 所示,其診斷結果如圖11 所示。
圖10 隨機時刻及隨機程度推力下降的外部過載Fig.10 Overload of random time and random thrust drop
圖11 隨機時刻及隨機程度推力下降故障的診斷結果Fig. 11 Diagnossis results of random time and random thrust drop fault
由于訓練樣本以10%的推力下降程度為間隔,且本文采用的自編碼網絡目的是使輸出接近輸入,因此在線仿真中,設定隨機推力下降故障的診斷結果存在一定誤差。 在此誤差范圍內,能夠實現故障的判斷以及推力下降程度的診斷。 故障時刻越滯后,普通神經網絡方法對于故障程度的診斷誤差越大,故障程度越大,診斷結果的波動更加明顯,而深度學習SAE 網絡則能更好地適應以上2 種情況,能夠在多種故障條件下完成對故障的精確檢測。
本文實現了仿真條件下對運載火箭推力下降故障的辨別以及推力下降程度的準確估計,并結合離線與在線2 種方式驗證了該方法的可行性:
1)離線仿真中,推力下降程度有一個大于給定推力下降程度的突變,并在較短時間內達到接近給定的推力下降程度值。
2)在線仿真中,設定隨機推力下降故障的診斷結果存在一定誤差。 故障時刻越滯后,普通神經網絡方法對于故障程度的診斷誤差越大,故障程度越大,診斷結果的波動更加明顯,而深度學習SAE 網絡則能更好地適應以上2 種情況,在此誤差范圍內,能夠實現故障的判斷以及推力下降程度的診斷。
3)不同推力與時刻的下降故障能夠被準確檢測。 與普通神經網絡方法診斷結果相比,該方法精度提升20%,且更加平滑。