許軻, 吳鳳鴿, 趙軍鎖
(中國科學(xué)院軟件研究所, 北京 100190)
近年來,隨著衛(wèi)星軟硬件技術(shù)的迅速發(fā)展,衛(wèi)星逐漸向小型化、低成本化、快速設(shè)計及部署的方向發(fā)展,每年有過百顆小衛(wèi)星成功發(fā)射,這些小衛(wèi)星有著不同的載荷和任務(wù)目標、物理參數(shù)和軌道等,因此對其姿態(tài)控制系統(tǒng)的要求也不盡相同。而隨著軟件定義衛(wèi)星概念的提出,利用可重組的動態(tài)載荷和智能性更強的姿態(tài)控制算法,有助于研發(fā)出更加通用的姿態(tài)控制系統(tǒng)。此外,隨著衛(wèi)星數(shù)量的增加,地面測控系統(tǒng)也越來越難以滿足需求,太空環(huán)境的不穩(wěn)定性[1]和衛(wèi)星本身可能出現(xiàn)的故障[2-3]等因素也對衛(wèi)星姿態(tài)控制系統(tǒng)的自主性和適應(yīng)性提出了更高的要求。因此,有必要研發(fā)新型的衛(wèi)星姿態(tài)智能控制系統(tǒng)。
基于深度學(xué)習和強化學(xué)習算法已經(jīng)成功地解決了很多具有挑戰(zhàn)性的問題,如圍棋程序和機器人學(xué)習[4]。AlphaZero[5]作為基于深度強化學(xué)習的圍棋程序新版本,在棋類游戲的離散狀態(tài)空間下已經(jīng)體現(xiàn)出了其在沒有棋譜等先驗知識的情況下學(xué)會多種棋類游戲并且超越人類的能力。引導(dǎo)策略搜索(Guided Policy Search,GPS)[4]作為一種基于模型(model-based)的算法,可以在機器人控制這種高維連續(xù)狀態(tài)空間下重復(fù)實驗中不斷優(yōu)化控制效果,完成機器人拾取物體等動作。而深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[6]作為一種非基于模型(model-free)的算法,也在OpenAI Gym[7]仿真平臺上實現(xiàn)了多種控制任務(wù)的自主學(xué)習,完成傳統(tǒng)控制算法難以完成的復(fù)雜控制目標,如自主學(xué)習雙足行走等。這些實驗結(jié)果表明深度強化學(xué)習(Deep Reinforcement Learning,DRL)算法可以達到軟件定義衛(wèi)星姿態(tài)控制系統(tǒng)對自主性、智能性、適應(yīng)性的要求。
然而機器學(xué)習算法普遍對計算平臺的計算能力和存儲能力有較高的要求,衛(wèi)星姿態(tài)控制系統(tǒng)往往使用的是PID控制[8-9]、滑??刂芠10]、模糊控制[11-12]等傳統(tǒng)控制算法。PID控制算法易于理解和實現(xiàn),需要的計算資源少,仍然是目前衛(wèi)星姿態(tài)控制使用的主流基礎(chǔ)控制算法,然而該算法需要針對不同的硬件系統(tǒng)和軟件進行調(diào)節(jié),無法快速適應(yīng)空間環(huán)境的變化和空間任務(wù)的變化?;?刂频闹饕康氖翘幚砜刂葡到y(tǒng)的非線性,和PID控制一樣,有自適應(yīng)能力的問題。智能控制算法如模糊控制,提升了系統(tǒng)的適應(yīng)能力,然而模糊控制系統(tǒng)需要專家知識進行系統(tǒng)設(shè)計,而不是根據(jù)實時生成的數(shù)據(jù)進行調(diào)節(jié)。軟件定義衛(wèi)星搭載的超算平臺大大提升了衛(wèi)星的計算能力,因此使得基于機器學(xué)習的控制算法成為可能,從而進一步提升控制算法的自適應(yīng)能力和自主性。
本文使用了基于模型的深度強化學(xué)習算法來建立姿態(tài)控制系統(tǒng)。該算法主要由3部分構(gòu)成:動力學(xué)模型網(wǎng)絡(luò)、控制策略網(wǎng)絡(luò)以及基于啟發(fā)式搜索的優(yōu)化方法。其中,動力學(xué)模型網(wǎng)絡(luò)使用深度學(xué)習網(wǎng)絡(luò)、可以根據(jù)地面仿真和在線生成數(shù)據(jù)的學(xué)習生成動力學(xué)模型,使用基于模型的算法比非基于模型的算法收斂速度更快,可以更快的速度找到優(yōu)化策略??刂撇呗跃W(wǎng)絡(luò)同樣使用深度學(xué)習網(wǎng)絡(luò),可以根據(jù)地面仿真和啟發(fā)式搜索優(yōu)化的效果來學(xué)習控制策略,同時為啟發(fā)式搜索的優(yōu)化提供具有一定效果的初始策略,加速算法的收斂。啟發(fā)式搜索根據(jù)動力學(xué)模型和強化學(xué)習原理進行策略迭代,在每一步實際執(zhí)行控制策略時尋找更優(yōu)的策略。通過這種深度強化學(xué)習算法,姿態(tài)控制系統(tǒng)可以在衛(wèi)星物理參數(shù)未知、執(zhí)行機構(gòu)和傳感器不同、衛(wèi)星軌道不同的情況下根據(jù)在線生成的數(shù)據(jù)不斷優(yōu)化姿態(tài)控制的效果。
背景分為3個部分,包括姿態(tài)仿真系統(tǒng)、傳統(tǒng)控制算法和強化學(xué)習算法。首先介紹姿態(tài)仿真系統(tǒng),由于衛(wèi)星發(fā)射成本較高,在進行姿態(tài)控制算法實驗時,需要在仿真環(huán)境下進行仿真實驗,仿真系統(tǒng)主要考慮到衛(wèi)星姿態(tài)動力學(xué)、運動學(xué)模型和空間干擾力矩。衛(wèi)星的姿態(tài)動力學(xué)介紹衛(wèi)星角速度隨執(zhí)行機構(gòu)控制力矩的變化規(guī)律,運動學(xué)模型介紹衛(wèi)星姿態(tài)四元數(shù)隨角速度的變化規(guī)律。衛(wèi)星姿態(tài)動力學(xué)和運動學(xué)模型是進行衛(wèi)星姿態(tài)控制的基礎(chǔ)模型。然后介紹傳統(tǒng)控制算法,PID控制算法仍然是衛(wèi)星姿態(tài)控制的主流算法,因此主要介紹基于PID的衛(wèi)星姿態(tài)控制算法相關(guān)研究進展。最后介紹強化學(xué)習算法的基礎(chǔ),主要介紹應(yīng)用較為廣泛的Q學(xué)習算法,以及在Q學(xué)習基礎(chǔ)上結(jié)合深度學(xué)習發(fā)展起來的深度強化學(xué)習。
如圖1所示,衛(wèi)星姿態(tài)動力學(xué)模型的輸入為衛(wèi)星所受的空間環(huán)境力矩,輸出為衛(wèi)星姿態(tài)角速度,動力學(xué)模型主要依賴于衛(wèi)星的動力學(xué)方程。
如果假設(shè)衛(wèi)星為剛體,那么衛(wèi)星姿態(tài)的動力學(xué)模型表達式為
(1)
式中:M為衛(wèi)星的控制力矩,為3維空間矢量;H為衛(wèi)星的角動量;ω為衛(wèi)星的角速度;t為時間。式(1)表示了衛(wèi)星的角速度和控制力矩根據(jù)轉(zhuǎn)動慣量變化的關(guān)系。
以四元數(shù)表示衛(wèi)星的姿態(tài),那么衛(wèi)星姿態(tài)運動學(xué)表達式為
(2)
(3)
式中:ωx、ωy和ωz分別為衛(wèi)星姿態(tài)角速度在三維坐標軸的分量。
此外,衛(wèi)星的姿態(tài)還會受到空間干擾力矩的影響,主要包括重力梯度力矩、空氣阻力力矩、太陽光壓力矩和潮汐力矩等。
根據(jù)文獻[13]的攝動力數(shù)據(jù),結(jié)合經(jīng)驗公式推算出干擾力矩如表1所示,可見在不同的軌道高度下,不同類型的干擾力矩對姿態(tài)的影響也有所不同。在低軌狀態(tài)下,地球重力梯度力矩和空氣阻力力矩是主要的干擾力矩;在中軌狀態(tài)下,地球重力梯度力矩依舊是主要的干擾力矩,而空氣阻力力矩已經(jīng)大幅下降,太陽光壓力矩、月球和太陽重力梯度力矩影響增大;而在地球同步軌道狀態(tài)下,地球重力梯度力矩也大幅下降,空氣阻力力矩則可以忽略不計。
圖1 衛(wèi)星姿態(tài)控制系統(tǒng)過程圖Fig.1 Procedure chart of satellite attitude control system
表1 3種經(jīng)典軌道狀態(tài)下的干擾力矩Table 1 Disturbance torque under three classic orbit statesN·m
主要考慮了3種干擾力矩的影響:地球重力梯度力矩、空氣阻力力矩和太陽光壓力矩。每種干擾力矩的影響主要依據(jù)文獻中使用的經(jīng)驗公式進行仿真計算。
地球重力梯度力矩計算式為[14]
(4)
空氣阻力力矩計算式為[14]
(5)
式中:CD為空氣阻力參數(shù);ρ為大氣密度參數(shù),由標準大氣模型計算得到;Vr為衛(wèi)星相對于大氣的速度;A為衛(wèi)星的迎風面積;Cp為壓力中心相對于衛(wèi)星中心距離的向量;v為風速的單位方向向量。這些參數(shù)可以根據(jù)經(jīng)驗進行初始化。
太陽光壓力矩計算式為[15]
Ts=-PAcosα(Cnen+Ctet)
(6)
式中:P為距離1 AU的太陽輻射壓力常數(shù),1 AU≈1.496×1 011m;en和et分別為衛(wèi)星的法向和切向向量;α為太陽角度;Cn和Ct表達式分別為
Cn=(1+crcs)cosα+Bfcr(1-cs)+
Ct=(1-crcs)sinα
其中:cr為表面反射率;cs為鏡面反射系數(shù);ef和eb分別為前向和后向輻射系數(shù);Bf和Bb分別為前向和后向的非朗伯系數(shù)。
將3種干擾力矩和控制力矩Tc相疊加,可以給出衛(wèi)星所受的合力矩的影響,即本節(jié)所述的衛(wèi)星姿態(tài)動力學(xué)方程中的M值:
M=Tc+Tg+Ta+Ts
(7)
雖然PID控制有前面所述的缺點,但因為其實現(xiàn)簡單,計算資源要求較低,仍然被大量衛(wèi)星姿態(tài)控制系統(tǒng)所使用。PID控制算法的定義如下[16]:
(8)
式中:Kp、Ki和Kd是非負參數(shù),分別為比例、積分和微分系數(shù);e(t)為當前狀態(tài)和目標狀態(tài)的誤差值;τ為積分中間變量。PID控制算法的原理如圖2所示,反饋環(huán)節(jié)通過對3種誤差的調(diào)節(jié)實驗控制過程,y(t)表示當前狀態(tài),r(t)表示目標狀態(tài)。
通常使用比例(P)和微分(D)環(huán)節(jié)設(shè)計衛(wèi)星姿態(tài)控制算法,用式(9)表示:
a=Kpqe+Kdωe
(9)
式中:qe為衛(wèi)星姿態(tài)四元數(shù)的誤差;ωe為衛(wèi)星角速度的誤差;a為執(zhí)行機構(gòu)的控制力矩輸出。忽略積分環(huán)節(jié)可以增加控制算法對誤差的反應(yīng)速度,但可能會導(dǎo)致控制的穩(wěn)定度下降。
PID控制算法的性能會受到傳感器誤差和空間環(huán)境的干擾力矩的影響,導(dǎo)致衛(wèi)星的姿態(tài)確定系統(tǒng)穩(wěn)定性降低。因此一種平滑角速度觀測器[9]的方法被提出以提升衛(wèi)星姿態(tài)的估計精度:
a=Kpqe+KdC(q)ωe
(10)
式中:C(q)為根據(jù)衛(wèi)星姿態(tài)對角速度的補償矩陣。這類改進方法提升了控制算法輸入的精度和穩(wěn)定度,從而提升了算法的性能。
PID控制算法的性能同樣會受到執(zhí)行機構(gòu)誤差的影響,導(dǎo)致衛(wèi)星的姿態(tài)控制穩(wěn)定性下降。因此一種非線性模型[2]被提出,用來處理執(zhí)行機構(gòu)飽和,死區(qū)非線性和動量輪速度限制的問題。一種基于最優(yōu)控制的方法[8]被提出,使用磁力矩器幫助動量輪進行動量卸載,防止其到達速度上限。這一類改進可以提升控制系統(tǒng)輸出的性能。
圖2 PID控制算法原理圖Fig.2 Schematic diagram of PID control algorithm
為了提升控制系統(tǒng)的整體性能,一種基于量化控制的方法[17]被提出用來改進PID控制的反饋機制。此外,一種使用線性二次型控制算法的方法被提出,能夠比傳統(tǒng)PID控制降低8%的能量消耗[18]。在能量有限的太空環(huán)境中,節(jié)約能源可以讓衛(wèi)星整體的運行更加穩(wěn)定。
這些在傳統(tǒng)PID控制基礎(chǔ)上改進的方法需要對不同問題分別建模分析并且加以改進,然而基于機器學(xué)習的深度強化學(xué)習姿態(tài)控制算法可以根據(jù)實時生成的數(shù)據(jù)利用神經(jīng)網(wǎng)絡(luò)的泛化能力對這些問題進行整體優(yōu)化。例如在輸入不穩(wěn)定的情況下,狀態(tài)觀測器的補償矩陣可以通過深度強化學(xué)習中的模型網(wǎng)絡(luò)進行學(xué)習優(yōu)化,同時執(zhí)行機構(gòu)的非線性誤差也可以通過深度強化學(xué)習中的策略網(wǎng)絡(luò)進行自適應(yīng)的學(xué)習改進;此外,能量消耗也可以通過強化學(xué)習的價值函數(shù)給出,讓強化學(xué)習算法在優(yōu)化控制效果的同時盡量降低系統(tǒng)的能量消耗。
PID控制仍可作為智能控制算法的基礎(chǔ)策略,為強化學(xué)習控制提供初始化功能。強化學(xué)習包含以下幾個部分:智能體、智能體所處的環(huán)境和所執(zhí)行的動作。在每個離散時間步長t內(nèi)智能體會觀測其所處的環(huán)境得到t時刻的狀態(tài)st,根據(jù)該狀態(tài)執(zhí)行動作at,并且獲得此時的獎勵值rt以及達到下一時刻的狀態(tài)st+1。在一個具有隨機性的環(huán)境中,包含一個初始狀態(tài)分布p(s0),狀態(tài)轉(zhuǎn)移模型p(st+1st,at)和獎勵函數(shù)r。
Q學(xué)習[19]作為強化學(xué)習里的一類基本算法,使用:
(11)
隨著深度學(xué)習技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)對高維度且高度非線性的函數(shù)擬合能力越來越強,神經(jīng)網(wǎng)絡(luò)對復(fù)雜Q值的表示能力也越來越強,因此在DDPG算法中,使用了神經(jīng)網(wǎng)絡(luò)擬合Q值,加強了強化學(xué)習算法對高維空間內(nèi)復(fù)雜任務(wù)的學(xué)習能力。假設(shè)擬合函數(shù)為θQ,那么損失函數(shù)的定義如下:
(12)
式中:Q(st,atθQ)為t時刻網(wǎng)絡(luò)對Q值的估計;最后兩項為t時刻執(zhí)行動作之后的效果。DDPG算法通過最小化損失函數(shù)來擬合Q值。該算法同時使用神經(jīng)網(wǎng)絡(luò)來擬合策略函數(shù)μ(sθμ),該函數(shù)會根據(jù)當前狀態(tài)和網(wǎng)絡(luò)中的參數(shù)確定執(zhí)行的策略,因此網(wǎng)絡(luò)同時需要對策略網(wǎng)絡(luò)進行學(xué)習,更新算法定義如下:
(13)
μ′(s)=μ(sθμ)+N
(14)
式中:N為隨著時間衰減的噪聲值。不同于傳統(tǒng)有監(jiān)督學(xué)習的是,直接對Q值網(wǎng)絡(luò)和策略網(wǎng)絡(luò)的更新收斂性能不佳,需要設(shè)計額外的目標網(wǎng)絡(luò)來穩(wěn)定網(wǎng)絡(luò)參數(shù),具體介紹在2.1節(jié)中。
機器學(xué)習算法通常使用梯度下降算法進行算法收斂的計算,但在模型梯度不可靠的時候,也會采取其他方案進行優(yōu)化計算。對應(yīng)于梯度下降算法,啟發(fā)式搜索類的算法是另一種對神經(jīng)網(wǎng)絡(luò)等機器學(xué)習算法進行優(yōu)化的方案。梯度下降算法的優(yōu)點是收斂速度快,缺點是容易陷入局部最優(yōu)。而啟發(fā)式搜索類的算法收斂速度較慢,但是一種全局性的優(yōu)化算法。因此,在很多實際應(yīng)用中,也會采用基于啟發(fā)式搜索的優(yōu)化方法進行機器學(xué)習算法收斂過程的計算。
常用的啟發(fā)式搜索算法有很多種,如粒子群優(yōu)化、人工蜂群算法、蟻群算法、螢火蟲算法、模擬退火算法和進化策略等。每種算法的優(yōu)缺點和應(yīng)用場景都有所不同。本文對啟發(fā)式搜索算法的具體選取在2.3節(jié)中介紹。
基于模型的深度強化學(xué)習算法由以下3個部分組成:模型網(wǎng)絡(luò)、策略網(wǎng)絡(luò)和啟發(fā)式搜索。如圖3所示,模型網(wǎng)絡(luò)為啟發(fā)式搜索提供動力學(xué)模型,并且從實際執(zhí)行的數(shù)據(jù)中學(xué)習,提高模型的精度。策略網(wǎng)絡(luò)為模型預(yù)測控制提供根據(jù)經(jīng)驗優(yōu)化的初始策略,并且從實際執(zhí)行的數(shù)據(jù)中學(xué)習,優(yōu)化初始策略。模型策略根據(jù)模型網(wǎng)絡(luò)提供的動力學(xué)模型和策略網(wǎng)絡(luò)提供的初始策略進行優(yōu)化,通過強化學(xué)習尋優(yōu),進一步優(yōu)化策略,并且實際執(zhí)行控制輸出。此外,本文算法在初始化時可用PID控制等對策略網(wǎng)絡(luò)和模型網(wǎng)絡(luò)進行初始化。
圖3 基于模型的深度強化學(xué)習算法原理圖Fig.3 Schematic diagram of model based deep reinforcement learning algorithm
本文算法的運行過程如下:
步驟1隨機初始化模型網(wǎng)絡(luò)和策略網(wǎng)絡(luò),或者通過遷移學(xué)習等進行預(yù)初始化。
步驟2由策略網(wǎng)絡(luò)根據(jù)當前狀態(tài)計算出當前策略,然后使用模型網(wǎng)絡(luò)預(yù)測下一狀態(tài)并給出Q值,交給啟發(fā)式搜索進行下一步優(yōu)化。
步驟3使用啟發(fā)式搜索在當前策略的鄰域進行搜索,以找到具有更高Q值的策略。
步驟4執(zhí)行啟發(fā)式搜索給出的優(yōu)化后的策略,并且獲取真實的狀態(tài)輸出和Q值,計算出模型預(yù)測誤差。
步驟5如果得到的Q值比初始化策略更好,則將此次結(jié)果作為策略網(wǎng)絡(luò)的訓(xùn)練集。
步驟6如果到達的狀態(tài)空間超出了安全閾值,則使用如PID控制等引導(dǎo)策略使其回歸到安全區(qū)域。
步驟7每一次執(zhí)行的結(jié)果都可以作為模型網(wǎng)絡(luò)的訓(xùn)練集。
步驟8如果狀態(tài)達到且穩(wěn)定在控制目標,則訓(xùn)練結(jié)束,否則返回步驟2。
機器學(xué)習算法已經(jīng)被應(yīng)用于衛(wèi)星姿態(tài)動力學(xué)構(gòu)建。本文使用深度學(xué)習神經(jīng)網(wǎng)絡(luò)構(gòu)建動力學(xué)模型。模型網(wǎng)絡(luò)st+1=fθs(st,at)使用前一時間點的動作-狀態(tài)對作為輸入,下一時間點的狀態(tài)作為輸出,θs為網(wǎng)絡(luò)中的參數(shù)。系統(tǒng)狀態(tài)st包括四元數(shù)q和三維角速度ω,策略輸出at為三維力矩。參數(shù)可以隨機初始化,也可以通過地面仿真或事先獲取的數(shù)據(jù)進行初始化,使用遷移學(xué)習等方法進行應(yīng)用。使用經(jīng)過預(yù)訓(xùn)練的網(wǎng)絡(luò)可以提高算法的在線性能。
加入模型網(wǎng)絡(luò)的算法比非基于模型的算法可以更快地收斂,因為模型網(wǎng)絡(luò)可以根據(jù)每次得到的數(shù)據(jù)進行優(yōu)化,而非基于模型的算法在找到合理的解之前會進行漫長的探索,從而收斂得更慢。而且模型網(wǎng)絡(luò)在使用其他控制算法時也可以進行優(yōu)化,讓算法的適應(yīng)性更強。
策略網(wǎng)絡(luò)同樣使用深度網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò)模型:at=gθa(st),當前狀態(tài)st為模型的輸入,θa為網(wǎng)絡(luò)參數(shù),生成的策略at為模型的輸出。類似地,模型參數(shù)可以隨機初始化,也可以通過PID控制等引導(dǎo)策略進行初始化,從而加快算法的收斂速度,并且降低算法進入發(fā)散不可控區(qū)域的可能性。
與模型網(wǎng)絡(luò)不同的是,數(shù)據(jù)中的策略并不是一個“正確的策略”,實際執(zhí)行的策略也是在不斷優(yōu)化中生成的,無法保證每次學(xué)習都讓策略得到優(yōu)化。因此,需要使用模型預(yù)測控制作為優(yōu)化方法使得生成的數(shù)據(jù)可以保證不斷優(yōu)化,從而讓策略網(wǎng)絡(luò)的學(xué)習進一步優(yōu)化。策略網(wǎng)絡(luò)的輸出也并不直接給出控制輸出,而是作為模型預(yù)測控制的輸入給出合理的初始策略。
和GPS算法不同的是,基于深度學(xué)習的策略網(wǎng)絡(luò)可以給出一個全局的初始化策略,和任務(wù)路徑無關(guān),并且可以根據(jù)不同的任務(wù)學(xué)習模仿新的引導(dǎo)策略,提升在線適應(yīng)的能力。
啟發(fā)式搜索包括多種性能優(yōu)異的算法,如:模擬退火算法[20]、粒子群算法[21]和進化策略[22]算法等。它們使用策略網(wǎng)絡(luò)的輸出作為輸入,輸出獎勵值最高的動作作為最優(yōu)策略。每個時間點內(nèi)的獎勵函數(shù)為
t時刻的獎勵函數(shù)為狀態(tài)st下執(zhí)行動作at導(dǎo)致的狀態(tài)st+1和目標sT之間的二次差值。負號代表二者距離越近獎勵值越高。
模擬退火算法和AlphaGo中使用的蒙特卡羅搜索樹同屬于蒙特卡羅-馬爾可夫鏈(Monte Carlo-Markov Chain,MCMC)方法,較適合于應(yīng)用在多維連續(xù)空間的控制算法中。然而該算法的隨機游走過程不利于并行化實現(xiàn),因此本文使用易于并行化且同樣在強化學(xué)習中被證明有效的自然進化策略算法來進行優(yōu)化,以提高算法的收斂速度。
自然進化策略計算式為
式中:左邊為參數(shù)的更新梯度;右邊為計算方法;θa為策略網(wǎng)絡(luò)的參數(shù),也可以直接對動作輸出進行直接優(yōu)化;N(0,I)為標準差為0,方差為單位矩陣的正態(tài)分布矩陣,目的是生成一個與θ維度相同的隨機變量;σ為該隨機變量的標準差;為一個小量的正數(shù);F函數(shù)是強化學(xué)習的價值函數(shù),該更新公式可以使得θ參數(shù)朝F值最大的方向移動。
通過并行化執(zhí)行該過程,同時生成n個隨機正態(tài)分布,并且統(tǒng)一對θ參數(shù)執(zhí)行更新過程:
該并行化更新算法可以大幅降低運行時間。
算法1基于模型的深度強化學(xué)習算法
初始化:θa和θs。
while未到控制目標 do
生成初始策略ain←gθa(st)和最優(yōu)策略aopt
while啟發(fā)式搜索 do
在范圍內(nèi)搜索:aout←ain+rand()
狀態(tài)預(yù)測:st+1←fθs(st,aout)
進化策略更新:aopt
end while
執(zhí)行aopt并得到數(shù)據(jù)
根據(jù)數(shù)據(jù)優(yōu)化θa和θs
end while
本文使用基于STK(Satellite Tool Kit)開發(fā)的衛(wèi)星姿態(tài)控制仿真系統(tǒng)進行仿真實驗,仿真系統(tǒng)結(jié)構(gòu)如圖4所示,衛(wèi)星軌道和空間環(huán)境參數(shù)由STK生成,并且傳遞給仿真系統(tǒng)??刂破鲿鶕?jù)當前姿態(tài),控制指令和控制目標確定當前策略輸出給執(zhí)行器執(zhí)行,執(zhí)行器會輸出控制力拒,衛(wèi)星的姿態(tài)動力學(xué)會根據(jù)控制力矩和空間干擾力矩得到新的姿態(tài)信息,傳感器會將帶有測量誤差的姿態(tài)信息交給姿態(tài)確定系統(tǒng),并且返回給控制器,進行下一次控制循環(huán)。
圖4 衛(wèi)星姿態(tài)控制仿真系統(tǒng)結(jié)構(gòu)Fig.4 Satellite attitude control simulation system structure
圖5 控制算法比較Fig.5 Comparison of control algorithms
姿態(tài)仿真實驗對比了全連接網(wǎng)絡(luò)和基于目標網(wǎng)絡(luò)的模型網(wǎng)絡(luò)精度,同時對比了并行化前后算法的執(zhí)行時間。使用tanh作為激活函數(shù),3層全連接網(wǎng)絡(luò)神經(jīng)元個數(shù)分別為64、128和64,5層全連接網(wǎng)絡(luò)神經(jīng)元個數(shù)分別為32、128、512、128和32,目標網(wǎng)絡(luò)使用的神經(jīng)網(wǎng)絡(luò)設(shè)置與3層全連接網(wǎng)絡(luò)相同,學(xué)習速率設(shè)置為0.000 1。此外,進化策略使用1 024個線程同時進行策略計算,學(xué)習速率設(shè)置為0.01,為了提高搜索精度,算法的搜索范圍會隨著迭代過程而減小。
實驗結(jié)果如圖6所示,分別對比了3層全連接網(wǎng)絡(luò),5層全連接網(wǎng)絡(luò)和目標網(wǎng)絡(luò)的模型網(wǎng)絡(luò)收斂精度。每組實驗進行了20次,圖中圓點代表均值,直線的兩端分別為模型收斂之后的最后100次模型預(yù)測誤差的最大值和最小值。圖6(a)為3層全連接網(wǎng)絡(luò)的實驗結(jié)果,可見均值基本在1.0以上,其中可見多次均值貼近最小值,因為模型最后基本穩(wěn)定在最小值處,但仍然有小概率會出現(xiàn)模型效果變差的情況出現(xiàn)。圖6 (b)為5層全連接網(wǎng)絡(luò)的實驗結(jié)果,均值已經(jīng)能達到1.0以下,相比于3層網(wǎng)絡(luò)有小幅改進,同樣出現(xiàn)了均值貼近最小值的情況。圖6 (c)為目標網(wǎng)絡(luò)的實驗結(jié)果,可見均值已經(jīng)可以達到0.5左右,而最小值已經(jīng)可以接近于0,相比于全連接網(wǎng)絡(luò)有了明顯的提高。而最大值接近2.0,說明網(wǎng)絡(luò)的穩(wěn)定程度還需要改進。
圖6 不同網(wǎng)絡(luò)設(shè)置下的均方誤差Fig.6 Mean square error with different networks
對比圖6(a)~(c)可知,全連接網(wǎng)絡(luò)可以相對穩(wěn)定地收斂,然而網(wǎng)絡(luò)的最小值和均值無法降低,證明了不帶目標網(wǎng)絡(luò)的算法的理論精度要低于目標網(wǎng)絡(luò)。而帶目標網(wǎng)絡(luò)的算法收斂的穩(wěn)定程度有所不足,最小值和均值之間的間距偏大,但這一段距離都在全連接網(wǎng)絡(luò)的收斂精度之下,可見整體的收斂性能明顯高于全連接網(wǎng)絡(luò),在實際應(yīng)用時使用目標網(wǎng)絡(luò)會取得更好的預(yù)測結(jié)果。
總體統(tǒng)計結(jié)果如表2所示,結(jié)果表明,僅使用更深層的網(wǎng)絡(luò)對于動力學(xué)模型精度提升有限,且增加了系統(tǒng)的計算量。而使用基于目標網(wǎng)絡(luò)的算法能夠顯著提高動力學(xué)網(wǎng)絡(luò)的平均收斂精度,尤其是均值和最小值,均值平均收精度從0.913提升到0.448,最小值平均收精度從0.745提升到0.014。此外,經(jīng)過并行化的進化策略也使得收斂速度提高了10倍左右,大大提升了算法的在線運行能力。
表2 不同算法收斂精度及速度對比Table 2 Comparison of convergence accuracy and speed among different algorithms
本文使用深度強化學(xué)習算法學(xué)習動力學(xué)模型和全局策略,并且使用模型預(yù)測控制優(yōu)化控制策略。該算法框架下,可以使用不同的神經(jīng)網(wǎng)絡(luò)模型和策略優(yōu)化方法。得益于軟件定義衛(wèi)星的發(fā)展,機器學(xué)習的算法可以在軌運行甚至于在軌學(xué)習,衛(wèi)星姿態(tài)控制算法可以脫離傳統(tǒng)姿態(tài)控制算法使用機器學(xué)習算法,從而為整星提供更好的姿態(tài)控制服務(wù)。本文算法可以在衛(wèi)星物理參數(shù)未知的情況下學(xué)習得到優(yōu)化的控制策略,并且在引導(dǎo)策略效果變差時通過學(xué)習生成優(yōu)化的控制策略,使得衛(wèi)星姿態(tài)控制系統(tǒng)更加智能化、自主化,對環(huán)境的適應(yīng)性也有所提高。
實驗結(jié)果表明,基于目標網(wǎng)絡(luò)的動力學(xué)模型網(wǎng)絡(luò)可以明顯提升算法的收斂精度,而基于進化策略的啟發(fā)式搜索并行化算法可以大大提升算法的收斂速度,從而提高強化學(xué)習姿態(tài)控制系統(tǒng)在軌運行在線計算的能力。
本文所使用的強化學(xué)習算法為貪心算法,在面對可能具有多個局部最優(yōu)解的復(fù)雜控制問題如路徑跟蹤、目標追蹤等問題時較容易陷入局部最優(yōu)解。因此需要使用動態(tài)規(guī)劃或模型預(yù)測控制等全局優(yōu)化算法進一步提升算法的性能。神經(jīng)網(wǎng)絡(luò)目前使用的是全連接網(wǎng)絡(luò),泛化能力有限,在較為簡單的仿真環(huán)境中可以取得不錯的效果,然而實際空間環(huán)境更為復(fù)雜,需要使用泛化能力更強的卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建學(xué)習算法,并且可以使用遞歸神經(jīng)網(wǎng)絡(luò)擬合實際控制系統(tǒng)中的時間滯后效應(yīng)。