耿飛龍,李爽,*,黃旭星,楊彬,常建松,林波
1. 南京航空航天大學(xué) 航天學(xué)院,南京 210016 2. 北京控制工程研究所,北京 100190
航天器在極其復(fù)雜、嚴(yán)苛的空間環(huán)境下長時間工作,其控制系統(tǒng)執(zhí)行機(jī)構(gòu)難免出現(xiàn)各種故障。航天器控制系統(tǒng)發(fā)生故障,對航天器及航天任務(wù)的影響都將是巨大的。調(diào)查統(tǒng)計表明,32%的航天器故障來源于航天器軌道姿態(tài)控制系統(tǒng)[1]。姿態(tài)控制系統(tǒng)的容錯控制技術(shù)常被用于提高航天器姿態(tài)控制的魯棒性,保證故障情況下航天器姿軌控的精度,對航天器的正常運行尤為重要[2-4]。隨著人工智能技術(shù)的興起,基于人工智能技術(shù)的姿態(tài)容錯控制因其良好的適應(yīng)性以及魯棒性獲得了廣泛關(guān)注[5-6]。隨著航天技術(shù)的不斷發(fā)展,航天任務(wù)數(shù)量日益增多,相關(guān)數(shù)據(jù)逐漸累積[7],為深度學(xué)習(xí)在姿態(tài)控制系統(tǒng)故障診斷與容錯控制算法的應(yīng)用提供了充實的數(shù)據(jù)基礎(chǔ)。
基于人工智能技術(shù)的容錯控制屬于主動容錯控制范疇。主動容錯控制包含故障診斷、操縱律以及可重構(gòu)的反饋控制器三部分[8-9]。其中,故障診斷是實現(xiàn)容錯控制的前提,一直是容錯控制領(lǐng)域的研究熱點。人工智能技術(shù)主要以數(shù)據(jù)驅(qū)動的方式協(xié)助故障診斷[10]。Zhao等提出了一種基于支持向量機(jī)(SVM)的故障診斷方法,利用主成分分析(PCA)方法生成殘差進(jìn)行姿態(tài)控制系統(tǒng)故障分類,然后使用一對一支持向量機(jī)分辨?zhèn)鞲衅骱蛨?zhí)行機(jī)構(gòu)的故障[11]。Li等通過使用動態(tài)神經(jīng)網(wǎng)絡(luò),實現(xiàn)了反作用輪總線電壓故障、電流損耗故障或溫度故障診斷,并基于此確定了發(fā)生故障的反作用輪[12]。Hu等針對以反作用輪為執(zhí)行器的航天器姿態(tài)控制系統(tǒng),應(yīng)用核模糊C-均值法設(shè)計了能夠診斷已知或未知故障的故障診斷器[13]。Valdes等為編隊飛行中的脈沖等離子推進(jìn)航天器設(shè)計了一種以動態(tài)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的故障診斷方案,通過在線/離線學(xué)習(xí)的方式對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實現(xiàn)了高準(zhǔn)確率的故障診斷[14]。Ahn等從姿態(tài)控制系統(tǒng)模擬的多維時間序列數(shù)據(jù)中提取特征,并使用具有高斯過程的貝葉斯優(yōu)化算法來優(yōu)化基于兩種生成模型的神經(jīng)網(wǎng)絡(luò)參數(shù),最終得到檢測航天器姿態(tài)控制系統(tǒng)異常和表征故障的方法[15]。Li等通過建立描述電壓和溫度、電流、壓力以及充放電時間等變量之間相關(guān)性的神經(jīng)網(wǎng)絡(luò)模型,得到一種快速檢測航天器蓄電池異常的算法[16]。Huang等為保障未來載人火星探測器在火星進(jìn)入下降著陸段的控制系統(tǒng)穩(wěn)定性,采用基于BP神經(jīng)網(wǎng)絡(luò)的故障診斷算法,離線訓(xùn)練完畢后的網(wǎng)絡(luò)能夠?qū)崟r地對故障進(jìn)行診斷與分離[17]。
在控制器重構(gòu)機(jī)制及控制器設(shè)計方面,人工智能技術(shù)可通過前饋和反饋的方式實現(xiàn)自適應(yīng)控制的效果。Eroglu等在飛機(jī)姿態(tài)容錯控制系統(tǒng)中引入了深度循環(huán)神經(jīng)網(wǎng)絡(luò)以及深度卷積網(wǎng)絡(luò),通過分析飛行器狀態(tài)軌跡,在飛行器執(zhí)行器或引擎故障時,對自適應(yīng)控制器的控制參數(shù)進(jìn)行估計。相比于常規(guī)自適應(yīng)控制,該方法極大地提高了控制器協(xié)同系數(shù)的收斂速度[18]。Sahin等在此工作基礎(chǔ)上,不僅利用自適應(yīng)控制器來控制執(zhí)行器發(fā)生故障的飛行器,同時借助深度卷積網(wǎng)絡(luò)在風(fēng)向管故障時估計大氣數(shù)據(jù)[19]。黃怡欣等研究了執(zhí)行器故障條件下小行星探測器的姿態(tài)容錯控制問題[20]。Li等使用徑向基(RBF)神經(jīng)網(wǎng)絡(luò)對多種火星探測器的滑模控制器中的不確定項進(jìn)行估計,加強(qiáng)了其在火星進(jìn)入階段的魯棒性[21, 22]。Jiang等使用增強(qiáng)學(xué)習(xí)的方法,在火星進(jìn)入下降著陸任務(wù)的高不確定性條件下,得到全局最優(yōu)制導(dǎo)律[23]。上述研究分別針對故障診斷和可重構(gòu)的反饋控制器,運用人工智能技術(shù)提高故障診斷及容錯控制系統(tǒng)的整體性能,從而實現(xiàn)高魯棒性的自適應(yīng)容錯控制。在航天器智能故障檢測與容錯控制領(lǐng)域,目前主流的研究方法是借助于人工智能技術(shù)優(yōu)化故障檢測或容錯控制系統(tǒng)中的部分環(huán)節(jié)來提高系統(tǒng)的性能,缺乏利用人工智能技術(shù)替代傳統(tǒng)姿態(tài)控制系統(tǒng)的研究,其技術(shù)可行性目前尚未得到驗證。當(dāng)航天器故障診斷及容錯控制系統(tǒng)全部替換為深度神經(jīng)網(wǎng)絡(luò)等人工智能技術(shù)時,如何對神經(jīng)網(wǎng)絡(luò)的神經(jīng)元數(shù)量、網(wǎng)絡(luò)層數(shù)、激活函數(shù)等進(jìn)行尋優(yōu),還亟待深入研究。
本文針對未來航天器姿態(tài)控制系統(tǒng)執(zhí)行機(jī)構(gòu)的故障診斷與容錯控制問題,引入人工智能技術(shù),建立基于深度神經(jīng)網(wǎng)絡(luò)的故障診斷與自適應(yīng)容錯控制系統(tǒng),提高航天器姿態(tài)控制系統(tǒng)的控制效率、精度以及魯棒性。本文假設(shè)任務(wù)場景是利用冗余控制力矩陀螺保持三軸姿態(tài)穩(wěn)定的空間航天器,當(dāng)系統(tǒng)內(nèi)控制力矩陀螺失效后,對故障進(jìn)行快速診斷識別并控制剩余正常控制器,使航天器實現(xiàn)期望的控制目標(biāo)。根據(jù)萬能近似定理(universal approximation theorem),具備有限隱含層和有限神經(jīng)元的前饋神經(jīng)網(wǎng)絡(luò)能以任意精度擬合任意復(fù)雜度的函數(shù)[24]。通過運用深度神經(jīng)網(wǎng)絡(luò),對故障診斷映射,控制器再分配映射以及控制器映射進(jìn)行學(xué)習(xí)擬合,構(gòu)建不含任何傳統(tǒng)控制器的航天器姿態(tài)故障診斷及容錯控制系統(tǒng)。隨后,對所構(gòu)建的智能控制器參數(shù)進(jìn)行對比分析,通過優(yōu)化網(wǎng)絡(luò)神經(jīng)元數(shù)、網(wǎng)絡(luò)層數(shù)、激活函數(shù)等神經(jīng)網(wǎng)絡(luò)參數(shù),得到結(jié)構(gòu)最優(yōu)的深度神經(jīng)網(wǎng)絡(luò)姿態(tài)容錯控制器。通過與傳統(tǒng)容錯控制器的對比仿真,驗證了本文構(gòu)建的智能姿態(tài)容錯控制器的可行性,以及在控制效率、精度和魯棒性方面的優(yōu)勢。
圖1 坐標(biāo)系定義Fig.1 Definition coordinate system
假設(shè)三軸穩(wěn)定剛體航天器的控制力矩陀螺角動量遠(yuǎn)小于航天器本體角動量,對航天器本體的影響可以忽略。其中,航天器角速度變化可利用歐拉方程進(jìn)行描述,其形式如下:
(1)
式中:T為作用于剛體質(zhì)心上的力矩總和;J為剛體的轉(zhuǎn)動慣量矩陣;ω=[ωx,ωy,ωz]T為姿態(tài)角速度。
航天器姿態(tài)則利用姿態(tài)四元數(shù)進(jìn)行描述以避免奇異。基于四元數(shù)的航天器姿態(tài)運動學(xué)方程如下[25]:
(2)
(3)
(4)
當(dāng)航天器動力學(xué)參數(shù)和初始姿態(tài)信息已知時,即可利用以上模型進(jìn)行數(shù)值積分,獲得任意時刻的姿態(tài)角速度以及姿態(tài)四元數(shù)。
在航天器控制力矩陀螺發(fā)生故障的情況下,陀螺的實際輸出信號與其期望產(chǎn)生的輸出將會出現(xiàn)偏差??刂屏赝勇莶捎萌b一斜裝結(jié)構(gòu),總執(zhí)行機(jī)構(gòu)數(shù)量為4個,安裝矩陣如下:
(5)
式中:α為斜裝陀螺軸與XbbYb平面的夾角,以陀螺軸在Zb軸方向上分量的符號判斷正負(fù);β為斜裝陀螺軸在XbbYb平面上的投影與Xb軸的夾角,以該投影在Xb軸方向上分量的符號判斷正負(fù)。
假設(shè)控制力矩陀螺故障為突變故障,通常為陀螺內(nèi)部某零件發(fā)生突發(fā)性損壞。該故障類型導(dǎo)致控制力矩陀螺輸出發(fā)生突變,由正常輸出跳變?yōu)楣收陷敵?。在此基礎(chǔ)上,再假設(shè)控制力矩陀螺發(fā)生空轉(zhuǎn)故障,即控制力矩陀螺完全失效,無法改變自身的轉(zhuǎn)速而導(dǎo)致完全無法輸出力矩。
僅考慮單自由度情況下,令to作為力矩陀螺輸出的實際控制力矩,同時令tc作為控制器計算所需的控制力矩。為了對該力矩陀螺的故障模型進(jìn)行建模,這里采用如下式所示的線性模型。其中f為力矩陀螺故障參數(shù)。
to=f·tc
(6)
當(dāng)力矩陀螺無故障時,f設(shè)置為1;當(dāng)力矩陀螺發(fā)生故障,則f設(shè)置為0。在航天器內(nèi)有4個力矩陀螺時,將該式變?yōu)橄蛄啃问揭约熬仃囆问剑?/p>
(7)
To=MfTc
(8)
在實際任務(wù)中,航天器利用姿態(tài)控制系統(tǒng)實現(xiàn)姿態(tài)調(diào)整。姿態(tài)控制系統(tǒng)不僅將姿態(tài)控制指令轉(zhuǎn)化為控制力矩陀螺的控制信號,同時監(jiān)測系統(tǒng)的狀態(tài),并根據(jù)系統(tǒng)運行情況實時調(diào)整控制輸出。為實現(xiàn)以上功能,姿態(tài)控制系統(tǒng)應(yīng)具備故障診斷、確定控制力矩以及控制力矩分配的能力。航天器姿態(tài)控制系統(tǒng)的架構(gòu)示意圖如圖2所示。
圖2 航天器姿態(tài)控制系統(tǒng)Fig.2 Spacecraft attitude control system
由于傳統(tǒng)控制方法難以滿足強(qiáng)非線系統(tǒng)的高精度控制需求,本文通過引入深度神經(jīng)網(wǎng)絡(luò),實現(xiàn)智能故障診斷及容錯控制,提高航天器姿態(tài)控制效率、精度以及魯棒性。
為提高航天器故障診斷以及容錯控制效率,本文基于深度神經(jīng)網(wǎng)絡(luò)建立智能姿態(tài)控制系統(tǒng)。首先對深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和激活函數(shù)進(jìn)行簡要介紹,再分別建立故障診斷、智能控制以及力矩分配神經(jīng)網(wǎng)絡(luò)。
2.1.1 網(wǎng)絡(luò)結(jié)構(gòu)及優(yōu)化算法
深度神經(jīng)網(wǎng)絡(luò)具有極強(qiáng)的非線性擬合能力,理論上能夠擬合任意非線性映射。網(wǎng)絡(luò)節(jié)點之間的激活函數(shù)影響不同非線性系統(tǒng)的擬合效果。
深度神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖 3所示,該網(wǎng)絡(luò)為全連接神經(jīng)網(wǎng)絡(luò),即每個神經(jīng)元與上一層網(wǎng)絡(luò)的每個神經(jīng)元相連接。輸出層可根據(jù)不同的任務(wù)需求對其結(jié)構(gòu)進(jìn)行相應(yīng)的調(diào)整,滿足映射關(guān)系。
利用均方差(MSE)函數(shù)作為目標(biāo)函數(shù),并使用自適應(yīng)矩估計(Adam)法作為優(yōu)化算法,對已有數(shù)據(jù)樣本進(jìn)行離線訓(xùn)練后,最終獲得具有目標(biāo)功能的神經(jīng)網(wǎng)絡(luò)算法。
圖3 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Deep neural network structure
2.1.2 激活函數(shù)選擇
深度神經(jīng)網(wǎng)絡(luò)可通過調(diào)整神經(jīng)元之間的激活函數(shù),使網(wǎng)絡(luò)具備非線性映射的特征,從而使深度神經(jīng)網(wǎng)絡(luò)更好地逼近不同的非線性系統(tǒng)。本文通過對比隱藏層神經(jīng)元激活函數(shù),分析不同激活函數(shù)對于網(wǎng)絡(luò)學(xué)習(xí)效果的影響。通常使用的隱藏層激活函數(shù)有Sigmoid函數(shù)、tanh函數(shù)以及ReLu函數(shù)。其中,Sigmoid函數(shù)的公式為:
(9)
tanh函數(shù)公式為:
(10)
ReLu函數(shù)公式為:
f(x)=max(0,x)
(11)
Sigmoid函數(shù)由于其函數(shù)飽和使得梯度消失以及并不關(guān)于原點中心對稱等原因,目前已經(jīng)較少使用。為代替Sigmoid函數(shù),目前常用tanh函數(shù)以及ReLu函數(shù)。tanh函數(shù)由于其相當(dāng)于一個中心對稱且放大版的Sigmoid函數(shù),有效克服了Sigmoid函數(shù)的缺點。而ReLu函數(shù)相較于前兩種函數(shù),由于其非飽和的特性,能夠極大地加速隨機(jī)梯度下降收斂的過程[26]。因此,在之后的仿真試驗中,本文主要對以tanh函數(shù)或ReLu函數(shù)作為隱藏層激活函數(shù)的網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)效果比較。
故障診斷神經(jīng)網(wǎng)絡(luò)根據(jù)期望以及實際控制效果對力矩陀螺工作狀態(tài)進(jìn)行判斷。通過給定當(dāng)前以及前若干時刻力矩需求和實際力矩輸出的情況,可對當(dāng)前時刻各個控制力矩陀螺進(jìn)行故障診斷??紤]到陀螺故障為瞬變故障,本文故障診斷神經(jīng)網(wǎng)絡(luò)架設(shè)有三個隱藏層以及一個輸出層。輸出層神經(jīng)元激活函數(shù)為softmax函數(shù)[27],softmax回歸模型是logistic回歸模型在多分類問題上的推廣[28]:
(12)
式中:ai為上一層的第i個輸出;C為故障類別數(shù);yi為該類別的概率。最終輸出為發(fā)生故障概率最大的故障類型yi的序號i。
網(wǎng)絡(luò)輸入為當(dāng)前時刻各個控制力矩陀螺所需施加的力矩Tc(k)、經(jīng)過可能的故障控制力矩陀螺后輸出的實際控制力矩To(k)以及這兩者前一時刻的狀態(tài)Tc(k-1)與To(k-1),輸出為故障診斷結(jié)果F。則故障診斷網(wǎng)絡(luò)映射可表示為如下形式:
f:Tc(k),To(k),Tc(k-1),To(k-1)→F
(13)
通過以上方式,訓(xùn)練得到用當(dāng)前及前一個時刻的力矩陀螺的目標(biāo)輸出與實際輸出作為輸入,來判斷力矩陀螺自身狀態(tài)的故障診斷網(wǎng)絡(luò),實現(xiàn)故障類型實時診斷。
姿態(tài)控制神經(jīng)網(wǎng)絡(luò)的主要功能為根據(jù)航天器當(dāng)前狀態(tài)以及期望控制,對控制輸出進(jìn)行調(diào)整,提高姿態(tài)控制精度。對于非線性系統(tǒng)的控制問題,LQR可實現(xiàn)高精度的控制效果。航天器姿控系統(tǒng)的線性模型可以寫成如下形式:
(14)
LQR通過搜索最優(yōu)狀態(tài)反饋矩陣:
u=-[D,K]x=-Gx
(15)
使得代價函數(shù)最小:
(16)
式中:Q和R都為正定矩陣。
LQR設(shè)計的最優(yōu)控制如下:
u(t)=-R-1BTFx(t)=-Gx
(17)
式中:F為正定矩陣,并且是代數(shù)黎卡提方程的解:
-FA-ATF+FBR-1BTF-Q=0
(18)
由文獻(xiàn)[25]可以得到最優(yōu)控制:
u(t)=-[R-1J-1F11,R-1J-1F12]x
(19)
并且在該控制條件下,航天器的姿態(tài)仍然可以保持穩(wěn)定[25]。
(20)
(21)
(22)
通過輸入當(dāng)前角速度以及姿態(tài)誤差四元數(shù)的復(fù)數(shù)部分,網(wǎng)絡(luò)即可輸出三軸控制力矩。
力矩分配神經(jīng)網(wǎng)絡(luò)的主要功能為在確定了航天器當(dāng)前控制力矩需求的情況下,結(jié)合各個控制力矩陀螺的狀態(tài)進(jìn)行執(zhí)行機(jī)構(gòu)分配,實現(xiàn)魯棒容錯控制。當(dāng)力矩陀螺處于不同狀態(tài)時,姿態(tài)控制系統(tǒng)可利用冗余機(jī)構(gòu)對控制輸出進(jìn)行分配,實現(xiàn)自適應(yīng)容錯控制??刂品峙鋯栴}描述如下:一個動態(tài)系統(tǒng)具有輸入矩陣B∈Rn×l,且l>n,即系統(tǒng)狀態(tài)數(shù)量小于可施加的控制數(shù)量,具有冗余控制量。但每個控制量都具有界限約束(即umin和umax)。對于所需控制量md。則當(dāng)冗余控制實現(xiàn)所需控制量的同時,控制消耗達(dá)到最優(yōu),即可實現(xiàn)最優(yōu)控制,其形式如下:
(23)
若控制不能滿足等式條件約束,則應(yīng)最小化其誤差:
(24)
作為訓(xùn)練樣本,本文基于冗余機(jī)構(gòu)的力矩分配算法采用改進(jìn)偽逆重分配算法[29]。傳統(tǒng)偽逆矩陣分配算法在沒有破壞不等式約束的情況下時,得到力矩分配結(jié)果,其形式為:
u=BT(BBT)-1md≡B+md
(25)
當(dāng)系統(tǒng)輸出u不符合約束時,可利用改進(jìn)偽逆重分配算法求解符合約束的力矩,更新最優(yōu)力矩分配方案。改進(jìn)偽逆重分配算法的流程如下:
3)將輸出分為飽和輸出us以及冗余輸出ur,將us的值設(shè)定為其對應(yīng)的極限值。同樣將兩者對應(yīng)的控制矩陣也分為飽和矩陣Bs和冗余矩陣Br;
5)如果ur=null,則轉(zhuǎn)到第7步;
8)最終得到的u即為符合不等式約束的再分配輸出值。
當(dāng)航天器控制力矩陀螺發(fā)生空轉(zhuǎn)故障時,故障識別網(wǎng)絡(luò)檢測并識別出故障的發(fā)生以及故障類型,將故障類型信號發(fā)送給力矩分配神經(jīng)網(wǎng)絡(luò)。力矩分配網(wǎng)絡(luò)結(jié)合所需力矩,對輸出信號重分配。對故障陀螺發(fā)出需求零力矩輸出的控制信號,對其余正常陀螺發(fā)送按照所學(xué)習(xí)操縱律進(jìn)行重分配后的所需力矩控制信號。
基于改進(jìn)偽逆重分配算法獲得訓(xùn)練樣本,對深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中,網(wǎng)絡(luò)中含有數(shù)個隱含層,每個隱藏層含有若干個神經(jīng)元,激活函數(shù)、具體隱藏層層數(shù)以及神經(jīng)元數(shù)目將在仿真分析中給出。在生成訓(xùn)練樣本時,通過輸入設(shè)定好的故障診斷結(jié)果F得到對應(yīng)的輸入矩陣B∈Rn×l,并使用設(shè)定好的所需力矩Tr的序列,利用該算法生成控制力矩分配輸出作為網(wǎng)絡(luò)的輸出訓(xùn)練數(shù)據(jù)Tc。最終學(xué)習(xí)映射:
f:Tr,F→Tc
(26)
由于該力矩分配算法需要進(jìn)行矩陣求逆運算,且在超過控制量界限約束時需進(jìn)行迭代運算,神經(jīng)網(wǎng)絡(luò)方法則無此需求,因此理論上設(shè)計合理的力矩分配神經(jīng)網(wǎng)絡(luò)可減小分配過程的運算量。
本文對上述系統(tǒng)進(jìn)行了仿真試驗。仿真試驗包含兩部分:對于3種網(wǎng)絡(luò)的訓(xùn)練以及最終容錯姿態(tài)控制系統(tǒng)的仿真。仿真環(huán)境:CPU:i7-8750H,GPU:GTX1060(6G),matlab2016a,python3.6,tensorflow1.12。
3.1.1 故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
利用Matlab按照各個故障狀態(tài)時的故障力矩陀螺矩陣,各陀螺通過隨機(jī)數(shù)生成隨機(jī)力矩向量,并通過故障力矩陀螺矩陣得到三軸實際輸出力矩向量。得到16萬組各種故障情況下的力矩輸入輸出數(shù)據(jù)樣本。從數(shù)據(jù)集中隨機(jī)選取10%的樣本作為測試集,剩余90%將作為訓(xùn)練集。在訓(xùn)練集中再抽取20%的樣本作為訓(xùn)練時的驗證集,以供訓(xùn)練過程中驗證其訓(xùn)練效果。網(wǎng)絡(luò)設(shè)定含有3個隱藏層,每一層均含有64個神經(jīng)元。將數(shù)據(jù)集帶入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,每完成一次訓(xùn)練集的訓(xùn)練后對其中的驗證集進(jìn)行測試,當(dāng)驗證集準(zhǔn)確率經(jīng)過10次迭代學(xué)習(xí)后未減小時,停止訓(xùn)練。設(shè)置最大訓(xùn)練次數(shù)100次。訓(xùn)練完畢后使用測試集數(shù)據(jù)對其分類準(zhǔn)確率進(jìn)行驗證。
故障診斷網(wǎng)絡(luò)的準(zhǔn)確率隨訓(xùn)練次數(shù)的變化如圖 4所示。在經(jīng)過約60次的訓(xùn)練后,準(zhǔn)確率幾乎不再上升,此時停止訓(xùn)練。可以看到網(wǎng)絡(luò)在經(jīng)過多次迭代之后,其識別準(zhǔn)確率已經(jīng)可以達(dá)到較高水平,約97%。
圖4 故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練時準(zhǔn)確率變化Fig.4 Accuracy change for fault diagnosis neural network in training
3.1.2 姿態(tài)控制神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
首先通過仿真程序生成了約200萬組仿真姿態(tài)控制數(shù)據(jù),每個數(shù)據(jù)都為一組角速度向量和三軸所需力矩向量。本文利用Matlab搭建控制器模型,各軸角速度當(dāng)取值絕對值在[0.02,0.2]rad/s區(qū)間內(nèi)時,以0.06 rad/s作為間隔,當(dāng)取值絕對值在[0,0.02]rad/s區(qū)間內(nèi)時,以0.006 rad/s為間隔;在每個角速度情況下,隨機(jī)生成1 000個姿態(tài)誤差四元數(shù)作為四元數(shù)樣本,用其向量部分與角速度向量合并為網(wǎng)絡(luò)輸入向量。LQR狀態(tài)反饋矩陣如下:
計算出每個網(wǎng)絡(luò)輸入對應(yīng)的所需三軸力矩向量。從數(shù)據(jù)集中隨機(jī)選取10%的樣本作為測試集,剩余90%將作為訓(xùn)練集。在訓(xùn)練集中再抽取20%的樣本作為訓(xùn)練時的驗證集,以驗證其訓(xùn)練效果。隨后將數(shù)據(jù)代入網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,每完成一次訓(xùn)練集的訓(xùn)練后對其中的驗證集進(jìn)行測試,當(dāng)驗證集均方差經(jīng)過10次迭代學(xué)習(xí)后未減小時,停止訓(xùn)練。設(shè)置最大訓(xùn)練次數(shù)200次。訓(xùn)練完畢后使用測試集數(shù)據(jù)對其進(jìn)行驗證。
深度神經(jīng)網(wǎng)絡(luò)選擇如表 1所示的6種備選結(jié)構(gòu),全部都先后采用不同的隱藏層激活函數(shù)進(jìn)行試驗對比,綜合比較得出最優(yōu)結(jié)構(gòu)以及最佳隱藏層激活函數(shù)。
表1 姿態(tài)控制神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
訓(xùn)練結(jié)果如表 2所示??梢钥吹?,tanh激活函數(shù)的網(wǎng)絡(luò)在此環(huán)境下的訓(xùn)練集均方差普遍比ReLu激活函數(shù)低一個數(shù)量級,在測試集中,tanh激活函數(shù)網(wǎng)絡(luò)組的均方差也普遍小于ReLu組。在同種激活函數(shù)的網(wǎng)絡(luò)之中,tanh組的訓(xùn)練效果隨著網(wǎng)絡(luò)結(jié)構(gòu)的簡化而提高;ReLu組則是編號2與編號4型網(wǎng)絡(luò)出現(xiàn)了局部最優(yōu)訓(xùn)練效果。可以認(rèn)為tanh組最優(yōu)結(jié)構(gòu)在編號6型或更簡化的結(jié)構(gòu)中,而ReLu組最優(yōu)結(jié)構(gòu)則在編號2和編號4型相近的結(jié)構(gòu)中。由tanh組網(wǎng)絡(luò)訓(xùn)練效果與網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜度相反的結(jié)果可以得出,該組普遍存在過擬合的情況:相較于單層128神經(jīng)元的網(wǎng)絡(luò),單層64神經(jīng)元的網(wǎng)絡(luò)訓(xùn)練集以及測試集結(jié)果全面領(lǐng)先,且層數(shù)較少的網(wǎng)絡(luò)能夠在一定程度上避免過擬合。
表2 姿態(tài)控制神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
在本測試條件下,tanh激活函數(shù)的6號網(wǎng)絡(luò)能夠得到最優(yōu)的精度,而ReLu激活函數(shù)的2號網(wǎng)絡(luò)能達(dá)到該激活函數(shù)下的最高精度。最終選擇tanh激活函數(shù)的6號網(wǎng)絡(luò)作為下一步試驗的姿態(tài)控制網(wǎng)絡(luò)。
3.1.3 力矩分配神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
首先通過仿真程序生成了約160萬組仿真力矩分配數(shù)據(jù),每個數(shù)據(jù)都為一組三軸所需力矩向量、故障診斷結(jié)果和各個力矩陀螺的輸出力矩指令。通過Matlab中事先建立的先驗知識力矩分配算法,分別在[-10,-1]∪[1,10](N/m)、[-1,-0.1]∪[0.1,1](N/m)、[-0.1,-0.01]∪[0.01,0.1](N/m)和[-0.01,0.01](N/m)區(qū)間內(nèi),以2 N/m、0.2 N/m、0.02 N/m和0.002 N/m為間隔,生成操縱律樣本,且每種故障狀態(tài)均重新生成一次,最終得到在每種故障狀態(tài)和每種三軸力矩需求狀態(tài)下,各個力矩陀螺的輸出力矩指令。將該組數(shù)據(jù)作為訓(xùn)練集,在訓(xùn)練集中抽取20%的樣本作為訓(xùn)練時的驗證集,以供訓(xùn)練過程中驗證其訓(xùn)練效果。測試集重新按各軸力矩需求以5.1 N/m為間隔,從-70 N遍歷到70 N,且每種故障狀態(tài)均重新生成一次。隨后將數(shù)據(jù)代入網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,神經(jīng)網(wǎng)絡(luò)有4種備選結(jié)構(gòu),其參數(shù)如表 3所示,先后都采用不同的隱藏層激活函數(shù)進(jìn)行試驗對比。每完成一次訓(xùn)練集的訓(xùn)練后對其中的驗證集進(jìn)行測試,當(dāng)驗證集均方差經(jīng)過10次迭代學(xué)習(xí)后未減小時,停止訓(xùn)練。設(shè)置最大訓(xùn)練次數(shù)100次。訓(xùn)練完畢后使用測試集數(shù)據(jù)對其進(jìn)行驗證。
表3 力矩分配神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
訓(xùn)練結(jié)果如表 4所示??梢钥吹剿芯W(wǎng)絡(luò)訓(xùn)練到最終,驗證集均方差數(shù)量級都在個位數(shù)級,測試集均方差數(shù)量級也基本相同。ReLu激活函數(shù)網(wǎng)絡(luò)的驗證集均方差以及測試集均方差均要小于tanh激活函數(shù)網(wǎng)絡(luò)。同激活函數(shù)網(wǎng)絡(luò)當(dāng)中,ReLu組各個結(jié)構(gòu)的網(wǎng)絡(luò)訓(xùn)練結(jié)果相差并不大。故選擇ReLu 激活函數(shù)的3號網(wǎng)絡(luò)作為下一步試驗的力矩分配網(wǎng)絡(luò)。
表4 力矩分配神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
仿真場景為航天器在正常運行狀態(tài)時,突發(fā)力矩陀螺故障。在一定范圍內(nèi)隨機(jī)的初始角速度下,若航天器能夠?qū)崿F(xiàn)從當(dāng)前姿態(tài)四元數(shù)轉(zhuǎn)移到目標(biāo)姿態(tài)四元數(shù),則認(rèn)為該姿控系統(tǒng)有效。控制力矩陀螺安裝矩陣為:
航天器慣量矩陣為:
仿真步長為0.01 s,進(jìn)行仿真。
場景1:令各軸初始角速度在[-0.2,0.2](rad/s)內(nèi)隨機(jī)取值,令故障時間在[0,50]s內(nèi)隨機(jī)取值,仿真時長定為100 s,令故障種類為4個控制力矩陀螺中隨機(jī)一個發(fā)生空轉(zhuǎn)故障。其中選取初始角速度為[0.1,-0.15,0.1](rad/s),初始姿態(tài)四元數(shù)為[0.035 7, 0.848 6, 0.493 0, 0.188 6],目標(biāo)姿態(tài)四元數(shù)為[ 0.678 7 , 0.556 5 , 0.356 1, 0.320 7],在10 s時發(fā)生Xb軸控制力矩陀螺故障的情況進(jìn)行仿真模擬繪圖。仿真結(jié)果如圖5~9所示。
圖5 場景1下三軸角速度Fig.5 Three axes angular velocity under case 1
圖6 場景1下三軸控制力矩大小Fig.6 Three axes control moment under case 1
圖7 場景1下各控制力矩陀螺輸出力矩Fig.7 Output torque of each reaction wheel under case 1
圖8 場景1下姿態(tài)四元數(shù)變化情況Fig.8 Attitude quaternion variation under case 1
圖9 場景1下姿態(tài)四元數(shù)末狀態(tài)誤差Fig.9 End state error of attitude quaternion under case 1
根據(jù)仿真結(jié)果可知,航天器在第10 s前,圖7中所有力矩陀螺均正常運行,圖5中各軸角速度逐漸減小,圖8中姿態(tài)四元數(shù)逐漸收斂至目標(biāo)姿態(tài)四元數(shù);航天器在第10 s時,圖7顯示Xb軸力矩陀螺輸出T1突然減小至0,姿控系統(tǒng)隨即對輸出力矩進(jìn)行再分配。為補(bǔ)償原Xb軸控制力矩減少的量,冗余陀螺需要增加其在Xb軸上的控制力矩分量,Yb軸與Zb軸陀螺也需要補(bǔ)償因冗余陀螺輸出變化而導(dǎo)致的自身軸方向上控制力矩的變化。Yb軸與Zb軸陀螺均減小輸出,冗余陀螺輸出增加。最終,實現(xiàn)航天器角速度回0,圖9也顯示姿態(tài)四元數(shù)與目標(biāo)姿態(tài)四元數(shù)基本吻合,證明該容錯姿控系統(tǒng)有效。
在此基礎(chǔ)上,進(jìn)行1 000次蒙特卡洛仿真,最終得到的四元數(shù)平均絕對誤差,如表5所示。
表5 蒙特卡洛仿真四元數(shù)平均絕對誤差
可以看出1 000次的蒙特卡洛仿真四元數(shù)絕對誤差值都在10-2量級,該姿控系統(tǒng)能夠在單一控制力矩陀螺故障的情況下,令航天器姿態(tài)穩(wěn)定于目標(biāo)姿態(tài)。
場景2:故障場景假定為全部力矩陀螺的其中隨機(jī)兩個力矩陀螺發(fā)生空轉(zhuǎn)故障,其余正常運行;仿真時長定為200 s,其他條件與場景1相同。選取其中兩次不同的子場景進(jìn)行仿真分析,其初始角速度、初始姿態(tài)四元數(shù)和目標(biāo)姿態(tài)四元數(shù)均相同,分別為:[0.1,-0.15,0.1](rad/s)、[0.0357, 0.8486, 0.4930, 0.1886]、[0.6787, 0.5565, 0.3561, 0.3207]。仿真1在20 s時,Xb軸與Yb軸力矩陀螺發(fā)生空轉(zhuǎn)故障;仿真2在20 s時,Xb軸與Zb軸力矩陀螺發(fā)生空轉(zhuǎn)故障。兩組仿真中各個力矩陀螺輸出與姿態(tài)四元數(shù)如圖10~13所示。
在仿真1中,Xb軸與Yb軸力矩陀螺輸出力矩20 s之后歸零,但是姿態(tài)控制系統(tǒng)仍能夠維持航天器姿態(tài)穩(wěn)定,并使姿態(tài)四元數(shù)接近目標(biāo)姿態(tài)
圖10 場景2下仿真1各控制力矩陀螺輸出力矩Fig.10 Simulation 1 output torque of each reaction wheel under case 2
圖11 場景2下仿真1姿態(tài)四元數(shù)變化情況Fig.11 Simulation 1 attitude quaternion variation under case 2
圖12 場景2下仿真2各控制力矩陀螺輸出力矩Fig.12 Simulation 2 output torque of each reaction wheel under case 2
圖13 場景2下仿真2姿態(tài)四元數(shù)變化情況Fig.13 Simulation 2 attitude quaternion variation under case 2
四元數(shù)。而在仿真2中,冗余控制力矩陀螺輸出在20 s過后無法穩(wěn)定,仍保持著小幅度的震蕩,姿態(tài)四元數(shù)因此難以保持穩(wěn)定、無法收斂于目標(biāo)姿態(tài)四元數(shù)。在場景2中,容錯姿態(tài)控制系統(tǒng)在一定條件下,能夠令航天器到達(dá)并穩(wěn)定在目標(biāo)姿態(tài)。但也存在一些情況,航天器無法到達(dá)目標(biāo)姿態(tài),航天器姿態(tài)系統(tǒng)已到達(dá)其控制能力的極限,控制量自由度小于被控狀態(tài)自由度。
對于導(dǎo)致仿真1中能控制和仿真2中無法控制兩種結(jié)果的原因分析如下:仿真1中發(fā)生故障前,Xb軸與Yb軸力矩陀螺輸出力矩的符號相同,冗余陀螺輸出力矩中對應(yīng)Xb軸與Yb軸的分量符號也相同。發(fā)生故障后,經(jīng)由控制分配網(wǎng)絡(luò)的分配,由于冗余陀螺也可以在Xb軸與Yb軸輸出同號的控制力矩,無故障軸有另一正常陀螺進(jìn)行控制力矩補(bǔ)償,故在一定程度上冗余陀螺代替兩故障陀螺輸出仍可以使得航天器姿態(tài)穩(wěn)定。但在仿真2中,Xb軸與Zb軸力矩陀螺輸出力矩符號為異號,冗余陀螺無法同時在兩軸上輸出異號的控制力矩,被控量因此逐漸發(fā)散,最終姿態(tài)四元數(shù)無法收斂于目標(biāo)姿態(tài)四元數(shù)。兩仿真在同初始條件下,前20 s的航天器狀態(tài)完全相同,但因故障類型不同,在該時刻所需的控制力矩補(bǔ)償也會因情況而異。這對于安裝方式已經(jīng)固定的冗余陀螺來說,只有所需的控制補(bǔ)償與其輸出類型相似(此仿真中為輸出的正負(fù)號相對應(yīng))的情況下,才能使航天器穩(wěn)定在目標(biāo)姿態(tài)。此外,神經(jīng)網(wǎng)絡(luò)輸出誤差帶來的不確定性,也會導(dǎo)致航天器姿態(tài)穩(wěn)定難度增加。
本文基于深度神經(jīng)網(wǎng)絡(luò)設(shè)計了航天器姿態(tài)控制系統(tǒng)故障診斷與容錯控制方法。利用多個訓(xùn)練完備的深度神經(jīng)網(wǎng)絡(luò),替換故障診斷、控制器再分配以及姿態(tài)控制部分,得到不含任何傳統(tǒng)控制器的航天器故障診斷及容錯控制器。當(dāng)單一控制力矩陀螺出現(xiàn)故障時,故障診斷網(wǎng)絡(luò)利用自身強(qiáng)大的分類能力對故障類型進(jìn)行識別,姿態(tài)控制網(wǎng)絡(luò)根據(jù)當(dāng)前姿態(tài)和目標(biāo)姿態(tài)快速輸出相應(yīng)的控制信號,再利用力矩分配網(wǎng)絡(luò)對控制力矩再分配,使航天器姿態(tài)收斂并穩(wěn)定在目標(biāo)姿態(tài)附近。最終仿真結(jié)果表明,在僅出現(xiàn)單個力矩陀螺空轉(zhuǎn)故障的情況下,本方法能令航天器姿態(tài)四元數(shù)的差值保持在0.01左右;當(dāng)在兩個力矩陀螺出現(xiàn)空轉(zhuǎn)故障時,本方法僅能夠在一定條件下令航天器姿態(tài)到達(dá)并穩(wěn)定于目標(biāo)姿態(tài)。各神經(jīng)網(wǎng)絡(luò)理論上應(yīng)該可以學(xué)習(xí)任意控制律并實現(xiàn)相應(yīng)的控制效果。當(dāng)前本文仿真中的系統(tǒng)故障模型較為簡單,復(fù)雜模型下的故障診斷及容錯控制仍待后續(xù)進(jìn)一步研究。