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