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