康國華,金晨迪,郭玉潔,喬思元
(南京航空航天大學(xué)航天學(xué)院,南京 210016)
近年來隨著航天任務(wù)復(fù)雜度的提高,航天任務(wù)已經(jīng)不再局限于單星或多星組網(wǎng)的對(duì)地觀測、通信、導(dǎo)航等常規(guī)領(lǐng)域,空間維修、在軌加注、捕獲等復(fù)雜操控技術(shù)等日益受到關(guān)注。國外已有航天公司計(jì)劃未來運(yùn)用衛(wèi)星進(jìn)行小行星捕獲探測任務(wù)[1-2]。比如NASA的ARM任務(wù)計(jì)劃捕獲一顆近地軌道的小行星或者從一些較大的小行星上獲取碎片,并將其運(yùn)送至地月系統(tǒng)中。這類任務(wù)中新組合體的姿態(tài)控制問題是目前亟待解決的問題。
組合體在形成過程中,由于服務(wù)航天器和目標(biāo)航天器之間角速度等狀態(tài)的不匹配、慣量估計(jì)誤差等會(huì)在組合瞬間帶來未知大小的姿態(tài)擾動(dòng),組合體姿態(tài)紊亂,按照原有控制方式將無法穩(wěn)定組合體姿態(tài),甚至無法進(jìn)行后續(xù)操作,需要尋求新的控制方式在模型精度存在誤差下,使得組合體重新回到三軸穩(wěn)定狀態(tài)。
國內(nèi)外學(xué)者針對(duì)組合體航天器的姿態(tài)控制已開展了較長時(shí)間的研究。文獻(xiàn)[3]提出了一種基于動(dòng)力學(xué)模型的自適應(yīng)線性反饋控制方法,但其在仿真中只考慮了平面情況。文獻(xiàn)[4]提出了一種非合作附著體的自適應(yīng)控制,對(duì)多種附著情形下的穩(wěn)定控制進(jìn)行了仿真校驗(yàn)。文獻(xiàn)[5]提出了兩種基于角動(dòng)量守恒的關(guān)節(jié)阻尼控制和關(guān)節(jié)函數(shù)參數(shù)化協(xié)調(diào)控制,但在仿真中假設(shè)條件比較理想:抓捕機(jī)構(gòu)和目標(biāo)航天器間的相對(duì)速度為零,目標(biāo)相對(duì)于抓捕航天器的質(zhì)量體積小,不考慮飛輪飽和等。文獻(xiàn)[6]提出了一種自適應(yīng)變結(jié)構(gòu)控制算法,算法簡單,辨識(shí)精度相對(duì)較高。文獻(xiàn)[7]提出了一種基于機(jī)械臂耦合力矩評(píng)估的組合航天器姿態(tài)協(xié)調(diào)控制方法,文獻(xiàn)[8-9]采用滑模變結(jié)構(gòu)控制實(shí)現(xiàn)組合體姿態(tài)穩(wěn)定,文獻(xiàn)[10]提出了一種基于干擾觀測器的有限時(shí)間控制策略,文獻(xiàn)[11-13]對(duì)推力受限情況下的空間機(jī)器人與目標(biāo)航天器形成的組合體的姿控進(jìn)行研究。
上述算法雖都解決了一定場景下的組合體控制問題,但都是通過控制反饋(先控制再看結(jié)果)的模式,未能實(shí)現(xiàn)對(duì)多種控制目標(biāo)的快速響應(yīng),即沒有記憶性,難以滿足未來復(fù)雜航天任務(wù)的要求。針對(duì)這一需求,本文將能有效處理耦合約束[14]的模型預(yù)測控制算法引入,該算法能夠有效克服控制過程中的不確定性和非線性,方便操縱變量中的各種約束,已在工業(yè)生產(chǎn)中廣泛應(yīng)用[15-16]。但其二次規(guī)劃求解過程需要較多的計(jì)算資源,在航天領(lǐng)域應(yīng)用還需改進(jìn)。鑒于深度學(xué)習(xí)算法在多參數(shù)尋優(yōu)上的優(yōu)勢,可以將兩者結(jié)合起來。通過前期的場景訓(xùn)練,實(shí)現(xiàn)在實(shí)際應(yīng)用中的快速響應(yīng)。隨著航天器在軌操作次數(shù)增加,每次操作過程都會(huì)產(chǎn)生大量數(shù)據(jù)并遙測下傳,該數(shù)據(jù)可為深度學(xué)習(xí)技術(shù)的在軌實(shí)現(xiàn)提供樣本信息。目前工業(yè)生產(chǎn)中已對(duì)兩種算法的結(jié)合進(jìn)行了一定研究,如Ph中和過程預(yù)測,加熱爐爐溫預(yù)測等。
結(jié)合上述兩種算法特性,本文提出了一種基于深度學(xué)習(xí)的模型預(yù)測算法,該方法通過模型預(yù)測控制對(duì)深度學(xué)習(xí)算法進(jìn)行在線訓(xùn)練,完成當(dāng)前場景訓(xùn)練后,可利用深度學(xué)習(xí)算法代替模型預(yù)測算法進(jìn)行航天器姿態(tài)控制,從而實(shí)現(xiàn)低硬件需求下的智能控制。
模型預(yù)測控制是基于當(dāng)前時(shí)刻的狀態(tài),通過計(jì)算接下來幾個(gè)預(yù)測周期內(nèi)的控制力矩,進(jìn)而獲取接下來幾個(gè)周期內(nèi)的預(yù)測值,其計(jì)算過程和時(shí)間關(guān)聯(lián)緊密,需要對(duì)傳統(tǒng)的航天器姿態(tài)動(dòng)力學(xué)模型進(jìn)行離散化修改,使控制力矩參與到角度更新。假設(shè)組合體為剛性連接,整個(gè)組合體為剛體對(duì)其動(dòng)力學(xué)與運(yùn)動(dòng)學(xué)進(jìn)行建模。
假設(shè)組合體航天器的慣量參數(shù)已辨識(shí)。則航天器連續(xù)姿態(tài)動(dòng)力學(xué)方程可寫為:
(1)
式(1)通過移項(xiàng)可得到關(guān)于角速度的微分方程:
(2)
式(2)即為常用的航天姿態(tài)動(dòng)力學(xué)模型。對(duì)此模型進(jìn)一步線性化,對(duì)式(2)右邊項(xiàng)在任意(wr,Tr)處進(jìn)行泰勒展開,只保留一次項(xiàng),得到:
(3)
簡化式(3)在(0,0)處展開:
(4)
式(4)仍是連續(xù)方程,上述方程時(shí)間量體現(xiàn)在角速度的變化,需要對(duì)其進(jìn)行離散化處理,采用近似離散化,即:
(5)
式中:E為單位矩陣,t為航天器姿態(tài)控制周期。
結(jié)合式(5),可將式(4)離散化為:
(6)
式(6)即為離散化后的航天器姿態(tài)動(dòng)力學(xué)方程,可用于模型預(yù)測控制。
以四元數(shù)方式表示航天器姿態(tài)運(yùn)動(dòng),考慮存在角加速度:
(7)
I-1為航天器慣性張量的逆,T為控制力矩。
將式(7)進(jìn)一步寫為以下形式:
(8)
將式(8)中的A,B近似離散化:
(9)
式中:E為4×4單位矩陣,t為控制周期。
將式(9)代入式(8)可得離散化后用于模型預(yù)測的航天器姿態(tài)運(yùn)動(dòng)學(xué)模型:
I-1T(k))
(10)
式中:姿態(tài)四元數(shù)q可由姿態(tài)敏感器測量得到的航天器姿態(tài)角經(jīng)公式轉(zhuǎn)換獲得。
基于深度學(xué)習(xí)的模型預(yù)測算法以模型預(yù)測算法為前期控制算法,通過控制結(jié)果來在線訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)。當(dāng)完成該場景下的訓(xùn)練后,深度學(xué)習(xí)將完全代替模型預(yù)測算法實(shí)現(xiàn)對(duì)航天器姿態(tài)控制的接管。通過對(duì)場景庫的不斷豐富,可實(shí)現(xiàn)多場景下的快速姿態(tài)控制,算法整體流程圖如圖1所示。相比于傳統(tǒng)智能算法,本方案加入深度學(xué)習(xí)網(wǎng)絡(luò)場景庫以增加算法的記憶性,即在對(duì)當(dāng)前場景訓(xùn)練完成之后,將訓(xùn)練權(quán)值與目標(biāo)存入對(duì)應(yīng)數(shù)據(jù)庫中,每次更新控制目標(biāo)之后,優(yōu)先通過查詢數(shù)據(jù)庫中已有場景進(jìn)行匹配,加強(qiáng)算法對(duì)航天器的控制效率。
圖1 基于深度學(xué)習(xí)的模型預(yù)測算法整體流程圖Fig.1 Overall flow chart of model prediction algorithm based on deep learning
2.2.1模型預(yù)測方程
(11)
式中:k表示當(dāng)前時(shí)刻,k+1為下一時(shí)刻,當(dāng)前時(shí)刻的四元數(shù)和三軸角速度都可通過傳感器測量得到,慣性張量I為已辨識(shí)完成的量,A1為3×4矩陣,計(jì)算公式同式(5)第一項(xiàng)。
為了簡化公式表達(dá),如無特殊說明,式(11)都將以如下形式出現(xiàn):
x(k+1)=A(k,t)x(k)+B(k,t)T(k)
(12)
設(shè)定預(yù)測時(shí)域?yàn)镹,預(yù)測時(shí)域內(nèi)系統(tǒng)的狀態(tài)量可由式(13)計(jì)算獲得:
x(k+N|k)=AN(k,t|k)x(k|k)+
AN-1(k,t|k)B(k,t|k)T(k|k)+…+
A(k,t|k)B(k,t|k)T(k+N-2|k)+
B(k,t|k)T(k+N-1|k)
(13)
為了明確各量之間的關(guān)系,對(duì)系統(tǒng)未來時(shí)刻的輸出狀態(tài)量以矩陣的形式表達(dá):
Y(k)=αx(k|k)+βμ(k)
(14)
式中:
通過式(14)即可預(yù)測出時(shí)域N內(nèi)每個(gè)控制周期的控制力矩和姿態(tài)。
2.2.2滾動(dòng)優(yōu)化
為了求解符合要求的最優(yōu)控制量,需要設(shè)定合適的優(yōu)化目標(biāo),論文采用如下目標(biāo)函數(shù):
ρ(k)=[Y(k)-Yref(k)]TQ[Y(k)-Yref(k)]+
uT(k)Ru(k)
(15)
式中:Yref為參考輸出軌跡,Y(k),u(k)定義與式(14)相同,Q為狀態(tài)量權(quán)重對(duì)角矩陣,R為控制量權(quán)重對(duì)角矩陣。
整個(gè)目標(biāo)函數(shù)的功能是使系統(tǒng)能夠盡快且平穩(wěn)的達(dá)到期望值,即希望控制時(shí)間最優(yōu),并且將控制量引入到目標(biāo)函數(shù),避免控制量跳變對(duì)系統(tǒng)性能的影響。
由式(14)可得:
(16)
將式(16)代入式(15):
ρ(k)=[α(x(k|k)-xref(k|k))+βμ(k)]TQ·
[α(x(k|k)-xref(k|k))+βμ(k)]+
uT(k)Ru(k)
(17)
將式(17)經(jīng)過矩陣運(yùn)算,可寫成二次規(guī)劃形式:
(18)
式中:H(k)=2(βTQβ+R),f(k)=2βTQα·[x(k|k)-xref(k|k)],σ(k)={α[x(k|k)-xref(k|k)]}TQα[x(k|k)-xref(k|k)]。
對(duì)式(18)進(jìn)行求解,即可解得在預(yù)測時(shí)域內(nèi)一系列系統(tǒng)狀態(tài)量與控制量,模型預(yù)測取第一個(gè)控制量作為實(shí)際控制量作用于系統(tǒng)輸入,下一控制周期開始,預(yù)測時(shí)間同時(shí)向前推移,通過這種滾動(dòng)優(yōu)化實(shí)現(xiàn)最優(yōu)時(shí)間的航天器姿態(tài)控制。
針對(duì)不同控制目標(biāo)和場景需要不同的控制參數(shù),但在同一控制目標(biāo)下,如果航天器模型參數(shù)未發(fā)生變化,其控制參數(shù)不變,所以論文采用卷積神經(jīng)網(wǎng)絡(luò),利用其權(quán)值共享的優(yōu)點(diǎn),設(shè)計(jì)深度學(xué)習(xí)網(wǎng)絡(luò)。
2.3.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
(19)
式中:各四元數(shù)結(jié)構(gòu)定義與式(7)相同。
qe0,qe1,qe2分別對(duì)應(yīng)三軸方向矢量與旋轉(zhuǎn)角度的正弦值的乘積,數(shù)值中已包含三軸方向和旋轉(zhuǎn)角度信息,所以僅需對(duì)其控制參數(shù)進(jìn)行訓(xùn)練,qe2為旋轉(zhuǎn)角度余弦值,不需要額外加入至訓(xùn)練中。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,針對(duì)三軸穩(wěn)定控制需要用同一組誤差四元數(shù)與三軸角速度計(jì)算出三軸控制力矩,所以卷積神經(jīng)網(wǎng)絡(luò)采用三組卷積核,分別對(duì)應(yīng)計(jì)算三軸控制力矩。為了利用梯度下降法對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,需要對(duì)計(jì)算的三軸控制力矩需要進(jìn)行激活,這里采用tanh函數(shù),保留數(shù)據(jù)的正負(fù)特性。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Convolution neural network structure
2.3.2深度學(xué)習(xí)網(wǎng)絡(luò)控制
利用第2.2節(jié)中的模型預(yù)測控制在每個(gè)控制周期中所計(jì)算的控制力矩作為輸出樣本,當(dāng)前時(shí)刻組合航天器的姿態(tài)四元數(shù)與三軸角速度作為輸入樣本,進(jìn)行在線訓(xùn)練。
當(dāng)卷積神經(jīng)網(wǎng)絡(luò)的輸出誤差小于10-9可認(rèn)為在該場景下完成卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。將該場景下的控制參數(shù)數(shù)據(jù)存入場景庫,數(shù)據(jù)格式如表1所示。
表1 深度學(xué)習(xí)網(wǎng)絡(luò)場景庫格式Table 1 Library format of deep learning network
后續(xù)控制將優(yōu)先查詢場景庫中的數(shù)據(jù),如查詢到當(dāng)前場景已在前期進(jìn)行訓(xùn)練完成并入庫,則直接選用該組數(shù)據(jù),利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行組合體姿態(tài)控制。如該場景并未入庫,則匹配與期望目標(biāo)最相近的場景作為訓(xùn)練輸入,加快訓(xùn)練速度。
為了對(duì)所提出的方法進(jìn)行仿真分析校驗(yàn),利用Matlab構(gòu)建模型預(yù)測控制和深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),整個(gè)仿真運(yùn)行環(huán)境如表2,3所示。
表2 仿真軟硬件環(huán)境參數(shù)Table 2 Software and hardware environment for simulation
表3 組合航天器慣性參數(shù)Table 3 Inertial parameters of combined spacecraft
航天器初始狀態(tài)設(shè)定、預(yù)期目標(biāo)設(shè)定和模型預(yù)測控制程序設(shè)定與3.2節(jié)相同。設(shè)置卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)率為10,每次模型預(yù)測控制周期內(nèi)都對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,設(shè)定當(dāng)輸出誤差小于10-9時(shí),網(wǎng)絡(luò)訓(xùn)練已完成。當(dāng)卷積神經(jīng)網(wǎng)絡(luò)在控制過程中誤差大于10-4時(shí),需重新啟用模型預(yù)測控制,修正卷積神經(jīng)網(wǎng)絡(luò)的控制參數(shù)。
表4 姿態(tài)仿真結(jié)果統(tǒng)計(jì)表Table 4 Statistical results of attitude simulation
圖3 四元數(shù)q0變化曲線Fig.3 The q0 curve
圖4 四元數(shù)q3變化曲線Fig.4 The q3 curve
圖5 x軸角速度變化曲線Fig.5 x axis angular velocity
圖6 y軸角速度變化曲線Fig.6 y axis angular velocity
圖7 z軸角速度變化曲線Fig.7 z axis angular velocity
表5 姿態(tài)仿真結(jié)果統(tǒng)計(jì)表Table 5 Statistical results of attitude simulation
圖8 四元數(shù)q0變化曲線Fig.8 The q0 curve
圖10 x軸角速度變化曲線Fig.10 x axis angular velocity
圖11 y軸角速度變化曲線Fig.11 y axis angular velocity
圖12 z軸角速度變化曲線Fig.12 z axis angular velocity
圖13~15給出了深度學(xué)習(xí)網(wǎng)絡(luò)在訓(xùn)練過程中的力矩輸出量,實(shí)線部分為模型預(yù)測算法給出的控制力矩用于對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練,虛線部分為深度學(xué)習(xí)網(wǎng)絡(luò)輸出的控制力矩,從圖中可以看出單次訓(xùn)練在20 s之內(nèi)都可跟隨上模型預(yù)測控制輸出。對(duì)整體15000 s的仿真分析可知,在初次對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行訓(xùn)練后,當(dāng)輸出誤差小于設(shè)定值時(shí),實(shí)際深度學(xué)習(xí)網(wǎng)絡(luò)控制參數(shù)并未訓(xùn)練至最優(yōu),需要后續(xù)多次模式切換來進(jìn)一步訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò),使深度學(xué)習(xí)網(wǎng)絡(luò)達(dá)到一個(gè)收斂值。
上述整個(gè)控制過程的硬件計(jì)算時(shí)長為71.4 s,相比3.2節(jié)的仿真時(shí)長393.8 s縮短了約5倍。在算法上降低了對(duì)計(jì)算硬件的需求,節(jié)省了計(jì)算資源。
圖13 x軸控制力矩曲線Fig.13 x axis control torque curve
圖14 y軸控制力矩曲線Fig.14 y axis control torque curve
圖15 z軸控制力矩變化曲線Fig.15 z axis control torque curve
表6 場景切換深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練用時(shí)統(tǒng)計(jì)表Table 6 Statistics time of deep learning network training
圖16 多次期望四元數(shù)變化控制結(jié)果圖Fig.16 Control results after changing desired quaternion
論文針對(duì)組合航天器在組合瞬間存在姿態(tài)擾動(dòng)且組合后需要重新設(shè)計(jì)姿態(tài)控制率的問題,提出了一種基于深度學(xué)習(xí)的航天器模型預(yù)測控制方案。仿真分析表明,該方案在20 s內(nèi)實(shí)現(xiàn)了對(duì)組合航天器姿態(tài)穩(wěn)定的控制,控制精度在10-4量級(jí)。相比只依靠模型預(yù)測進(jìn)行姿態(tài)控制,系統(tǒng)硬件消耗時(shí)間經(jīng)統(tǒng)計(jì)由393.8 s降低至71.4 s,算法效率提高約5倍,表明該算法降低了對(duì)硬件要求,為依賴大量計(jì)算資源的模型預(yù)測控制運(yùn)用于航天奠定了一定基礎(chǔ)。此外,相比于傳統(tǒng)的姿態(tài)控制算法和自適應(yīng)等智能算法,論文提出的算法能夠在大角度和角速度偏差下實(shí)現(xiàn)不同目標(biāo)場景下的控制參數(shù)自主調(diào)節(jié)。通過建立場景數(shù)據(jù)庫,控制參數(shù)能自主匹配,縮短了多任務(wù)場景下姿態(tài)穩(wěn)定所需要的時(shí)間,在30 s內(nèi)實(shí)現(xiàn)控制精度為10-4量級(jí)的控制效果。未來可通過豐富訓(xùn)練結(jié)果場景庫,實(shí)現(xiàn)不同目標(biāo)組合的快速姿態(tài)穩(wěn)定控制。