黃旭,柳嘉潤(rùn),*,賈晨輝,王昭磊,張雋
1. 北京航天自動(dòng)控制研究所,北京 100854
2. 宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,北京 100854
智能無(wú)人飛行器是由無(wú)人機(jī)、導(dǎo)彈等無(wú)人平臺(tái)及其有關(guān)設(shè)備組成的有機(jī)整體,具有感知、學(xué)習(xí)、決策等智能特征[1]。小型無(wú)人飛行器由于其經(jīng)濟(jì)性、可重復(fù)使用等特點(diǎn),常以原型機(jī)的形式來(lái)進(jìn)行相關(guān)智能技術(shù)的測(cè)試和驗(yàn)證,如美國(guó)國(guó)防部高級(jí)研究計(jì)劃局(DARPA)變外形飛行器項(xiàng)目中用來(lái)驗(yàn)證變形翼的MFX-1飛行器[2]。
對(duì)于小型無(wú)人飛行器,其飛行控制系統(tǒng)主要由制導(dǎo)控制外環(huán)以及姿態(tài)控制內(nèi)環(huán)組成,起到保持飛行器飛行穩(wěn)定和快速精確地到達(dá)飛行目標(biāo)等關(guān)鍵性作用。此類飛行器一般建模存在偏差并且是典型的復(fù)雜非線性系統(tǒng),這些無(wú)疑都給其飛行控制系統(tǒng)的設(shè)計(jì)增加了難度。除此之外,飛行器在飛行過(guò)程中也會(huì)受到如切變風(fēng)的外部不確定性干擾。為了有效解決此類問(wèn)題,各國(guó)研究人員在基于模型的控制方法上進(jìn)行了大量的研究工作:從經(jīng)典的PID控制,到自適應(yīng)控制[3]、滑模變結(jié)構(gòu)控制[4]、魯棒容錯(cuò)控制[5]、動(dòng)態(tài)逆控制[6]和模型預(yù)測(cè)控制[7]等。然而隨著被控對(duì)象復(fù)雜程度的增加、控制精度要求的提高、對(duì)對(duì)象和環(huán)境知識(shí)的減少,迫切需要提高控制系統(tǒng)的自適應(yīng)學(xué)習(xí)能力以及魯棒性等[8]。
隨著人工智能技術(shù)的發(fā)展,近20年一類數(shù)據(jù)驅(qū)動(dòng)的即基于強(qiáng)化學(xué)習(xí)的飛行控制方法進(jìn)入了控制科學(xué)領(lǐng)域研究學(xué)者的視野。強(qiáng)化學(xué)習(xí)可以使智能體不斷與環(huán)境進(jìn)行交互,從數(shù)據(jù)中學(xué)習(xí)相應(yīng)的飛行控制策略,而無(wú)需對(duì)模型進(jìn)行如約束簡(jiǎn)化等處理。20世紀(jì)末期華裔科學(xué)家吳恩達(dá)就在其智能直升機(jī)實(shí)驗(yàn)室進(jìn)行了很多強(qiáng)化學(xué)習(xí)相關(guān)的應(yīng)用研究:文獻(xiàn)[9]利用策略梯度算法對(duì)無(wú)人直升機(jī)懸停進(jìn)行了控制;文獻(xiàn)[10]對(duì)前者的方法進(jìn)行了拓展優(yōu)化,加入了偏差動(dòng)態(tài)規(guī)劃和線性二次校正器,使無(wú)人直升機(jī)可以完成高機(jī)動(dòng)動(dòng)作。且近幾年興起的深度強(qiáng)化學(xué)習(xí)則通過(guò)引入深度學(xué)習(xí)的表征能力以及對(duì)傳統(tǒng)強(qiáng)化學(xué)習(xí)算法的改進(jìn)優(yōu)化使其性能進(jìn)一步提升,其中有代表性的算法之一就是確定性策略梯度(Deterministic Policy Gradient,DPG)算法[11],本文所用的算法是其優(yōu)化版本即深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[12]。除此之外與之相對(duì)的還有基于隨機(jī)策略的置信域策略優(yōu)化(Trust Region Policy Optimization,TRPO)算法[13]和近端策略優(yōu)化(Proximal Policy Optimization,PPO)算法[14]等。文獻(xiàn)[15]提出了一種新型的策略梯度學(xué)習(xí)方法實(shí)現(xiàn)了四旋翼以任意姿勢(shì)手拋起飛后的姿態(tài)回正;文獻(xiàn)[16]在仿真環(huán)境中用強(qiáng)化學(xué)習(xí)訓(xùn)練四旋翼角速率內(nèi)環(huán)控制器,通過(guò)仿真驗(yàn)證其部分控制性能優(yōu)于PID控制器;文獻(xiàn)[17]提出了一種基于策略梯度算法的輔助控制器,將強(qiáng)化學(xué)習(xí)訓(xùn)練的控制器與設(shè)計(jì)的非線性控制器相結(jié)合,增強(qiáng)了智能體訓(xùn)練的速度和實(shí)際飛行器飛行中的穩(wěn)定性;文獻(xiàn)[18]將添加約束的誤差積分信息引入到智能體能觀察到的環(huán)境狀態(tài)中,改善了訓(xùn)練過(guò)程以及最終的控制穩(wěn)定性。以上文獻(xiàn)均以四旋翼為研究對(duì)象,通過(guò)改進(jìn)強(qiáng)化學(xué)習(xí)算法和優(yōu)化環(huán)境信息等方式來(lái)實(shí)現(xiàn)智能體對(duì)飛行器的有效控制。本文參考了以上文獻(xiàn)的部分思想并進(jìn)行改進(jìn)優(yōu)化,針對(duì)實(shí)驗(yàn)室自研的“麻雀-1”小型無(wú)人飛行器(簡(jiǎn)稱“麻雀”飛行器)模型進(jìn)行基于深度確定性策略梯度算法的飛行控制研究。從相關(guān)文獻(xiàn)以及工程經(jīng)驗(yàn)中總結(jié)可得出,使用未預(yù)訓(xùn)練的智能體在實(shí)際飛行過(guò)程中學(xué)習(xí)無(wú)法滿足飛行器實(shí)時(shí)性和工程化要求,所以此類方法一般需要建立離線訓(xùn)練模擬器,讓智能體在模擬器中學(xué)習(xí)飛行控制策略后再進(jìn)行實(shí)際飛行控制,該類飛行控制方法目前處于研究探索階段。
不同于無(wú)人直升機(jī)和四旋翼,“麻雀”飛行器為非傳統(tǒng)構(gòu)型的小型無(wú)人飛行器,縱平面中主要研究其高度速度控制。首先設(shè)計(jì)馬爾科夫決策過(guò)程(Markov Decision Process,MDP)時(shí),以多數(shù)據(jù)幀代替誤差積分將歷史信息引入到環(huán)境狀態(tài)中;并且為了提高樣本的多樣性在飛行器達(dá)到目標(biāo)狀態(tài)時(shí)還會(huì)給予智能體一定的稀疏獎(jiǎng)勵(lì)。接著設(shè)計(jì)基于比例微分(Proportion Differential,PD)控制的高度速度輔助控制器,該控制器性能較差僅能在一定程度上維持飛行穩(wěn)定,將智能體與該控制器的綜合信號(hào)作為飛行器控制信號(hào)以優(yōu)化智能體訓(xùn)練過(guò)程并且在在線飛行控制時(shí)兩者能有效互補(bǔ)。訓(xùn)練后的智能體擁有良好的飛行控制性能,并有很強(qiáng)的泛化能力和魯棒性。本文主要進(jìn)行了此智能飛行控制方法的研究探索工作,該方法具有一定的研究?jī)r(jià)值和工程參考價(jià)值。
“麻雀”飛行器為實(shí)驗(yàn)室自研的低成本重復(fù)使用飛行器,圖1為其設(shè)計(jì)外形圖。該飛行器由圓頭錐形頭部、柱形機(jī)身、腹部矩形進(jìn)氣道、1對(duì)梯形機(jī)翼、1片背鰭、3片“┴”形配置的尾舵、微型涵道風(fēng)扇發(fā)動(dòng)機(jī)組成。適用于低空低速飛行,主要用于相關(guān)飛行控制算法驗(yàn)證。該飛行器長(zhǎng)度約為0.4 m,直徑約為0.06 m,質(zhì)量約為0.7 kg。圖1中δ1、δ2以及δ3為3片尾舵的實(shí)際偏轉(zhuǎn)角,箭頭為定義的正方向,實(shí)際偏轉(zhuǎn)角由姿態(tài)控制器輸出的三通道等效舵偏角經(jīng)過(guò)舵分解得到。
圖1 “麻雀”飛行器外形
考慮“麻雀”飛行器縱平面運(yùn)動(dòng)模型。飛行器的體坐標(biāo)系按北天東定義,假設(shè)場(chǎng)景為平面大地且無(wú)風(fēng),并不考慮飛行器橫側(cè)向運(yùn)動(dòng)。
飛行器縱向運(yùn)動(dòng)方程為
H=y
(1)
(2)
(3)
α=φ-θ
(4)
(5)
式中:H為高度,即對(duì)應(yīng)飛行器在發(fā)射坐標(biāo)系Y方向上的位置y;Vx和Vy分別為X和Y方向上的速度;V為總速度;θ為速度傾角;φ為俯仰角;α為攻角。
飛行器受到推力P、重力mg和空氣動(dòng)力的作用,縱向動(dòng)力學(xué)方程為
(6)
(7)
(8)
(9)
(10)
(11)
式中:m為飛行器質(zhì)量;A為軸向氣動(dòng)力;N為法向氣動(dòng)力;ωz為飛行器繞體軸z1的轉(zhuǎn)動(dòng)角速度;Mz為俯仰氣動(dòng)力矩;Jz為俯仰轉(zhuǎn)動(dòng)慣量。其中,氣動(dòng)力和氣動(dòng)力矩計(jì)算方法為
A=CAqSref
(12)
N=CNqSref
(13)
(14)
(15)
式中:CA為軸向力系數(shù);CN為法向力系數(shù);CMz為俯仰力矩系數(shù);Cmq和Cαq分別為俯仰力矩系數(shù)關(guān)于俯仰角速度和攻角變化量的偏導(dǎo)數(shù);Sref為氣動(dòng)參考面積;Lref為氣動(dòng)參考長(zhǎng)度;q為動(dòng)壓。由于飛行高度較低,大氣密度ρ默認(rèn)不變,其他相關(guān)氣動(dòng)系數(shù)由高度H、速度V、攻角α和等效俯仰舵偏角δφ插值得出:
C*=C*(H,V,α,δφ)
(16)
從整個(gè)縱平面高度和速度控制模型可以看出,“麻雀”飛行器在縱平面的控制輸入為發(fā)動(dòng)機(jī)推力和其升降舵的等效俯仰舵偏角。該模型的狀態(tài)變量為X=[x,y,Vx,Vy,φ,ωz]T,即飛行器的位置、速度、姿態(tài)角和姿態(tài)角速度。由于飛行過(guò)程中高度、速度、攻角和等效俯仰舵偏角均在變化,從而相關(guān)的氣動(dòng)力系數(shù)和氣動(dòng)力矩系數(shù)也在變化,模型呈現(xiàn)非線性特性。本文的目標(biāo)就是在不對(duì)該模型進(jìn)行線性化等處理的情況下,利用深度強(qiáng)化學(xué)習(xí)通過(guò)飛行數(shù)據(jù)訓(xùn)練智能體自主學(xué)習(xí)飛行控制策略。
舵機(jī)特性和發(fā)動(dòng)機(jī)特性在仿真中用一階慣性環(huán)節(jié)串聯(lián)限幅環(huán)節(jié)表征。其中δφ=[-10°,+10°]且P=[0, 5] N,系統(tǒng)當(dāng)前時(shí)間步t的輸入為ut=[δφ t,Pt]T。
(17)
(18)
強(qiáng)化學(xué)習(xí)這類算法根本上是以試錯(cuò)的機(jī)制與環(huán)境進(jìn)行交互,通過(guò)最大化累積回報(bào)的方式來(lái)訓(xùn)練智能體學(xué)習(xí)最優(yōu)策略,它要解決的是序貫決策問(wèn)題,它不關(guān)心輸入長(zhǎng)什么樣,只關(guān)心當(dāng)前輸入下應(yīng)該采取什么動(dòng)作才能實(shí)現(xiàn)最終的目標(biāo),即使得整個(gè)任務(wù)序列達(dá)到最優(yōu)的策略[19]。強(qiáng)化學(xué)習(xí)中問(wèn)題常被描述為一個(gè)馬爾科夫決策過(guò)程,且MDP也是當(dāng)前強(qiáng)化學(xué)習(xí)理論推導(dǎo)的基石。標(biāo)準(zhǔn)的MDP由一個(gè)五元組(S,A,P,R,γ)構(gòu)成。
DDPG是離策略(Off-policy)的基于Actor-Critic[20]架構(gòu)的深度強(qiáng)化學(xué)習(xí)算法,一般以神經(jīng)網(wǎng)絡(luò)的形式來(lái)實(shí)現(xiàn)Actor函數(shù)和Critic函數(shù)。在該算法中,確定性策略μ(s|θμ)由Actor網(wǎng)絡(luò)表征,θμ為網(wǎng)絡(luò)參數(shù)。而狀態(tài)行為值函數(shù)Q(s,a|θQ)由Critic網(wǎng)絡(luò)表征,θQ為網(wǎng)絡(luò)參數(shù)。Actor網(wǎng)絡(luò)參數(shù)根據(jù)目標(biāo)函數(shù)J(μ)的梯度進(jìn)行更新[11]:
(19)
式中:E表示期望;ρμ為確定性策略的狀態(tài)分布;Qμ(s,a)為真實(shí)的狀態(tài)行為值函數(shù)。
Critic網(wǎng)絡(luò)參數(shù)則根據(jù)基于值函數(shù)的強(qiáng)化學(xué)習(xí)算法(如Q學(xué)習(xí)[21]算法)中最小化時(shí)間差分誤差[22](Time Difference error,TD-error)的形式進(jìn)行迭代更新:
(20)
(21)
式中:αQ為Critic網(wǎng)絡(luò)的學(xué)習(xí)率。
最終,Actor網(wǎng)絡(luò)參數(shù)就可按以下形式更新:
(22)
式中:αμ為Actor網(wǎng)絡(luò)的學(xué)習(xí)率。
除此之外,DDPG還充分借鑒了深度Q網(wǎng)絡(luò)算法[23](Deep Q Network,DQN)中的經(jīng)驗(yàn)回放和固定目標(biāo)網(wǎng)絡(luò)的思想。經(jīng)驗(yàn)回放需要在記憶回放單元中以(si,ai,ri+1,si+1)的形式存儲(chǔ)樣本,后進(jìn)行采樣學(xué)習(xí)以模擬人類大腦的回憶學(xué)習(xí)過(guò)程。固定目標(biāo)網(wǎng)絡(luò)的思想是需再增加一個(gè)目標(biāo)Actor網(wǎng)絡(luò)μ′(s|θμ′)和目標(biāo)Critic網(wǎng)絡(luò)Q′(s,a|θQ′)來(lái)減小樣本的相關(guān)性以優(yōu)化策略和狀態(tài)行為值更新結(jié)果。對(duì)式(19)~式(22)的網(wǎng)絡(luò)更新進(jìn)行以下改進(jìn):
yi=ri+1+γQ′(si+1,μ′(si+1|θμ′)|θQ′)
(23)
(24)
(25)
(26)
(27)
(28)
式中:N為每次批量學(xué)習(xí)時(shí)采樣的樣本量。
不同于DQN算法直接將策略網(wǎng)絡(luò)的參數(shù)賦值給目標(biāo)網(wǎng)絡(luò),DDPG采用的是更加平滑的類似慣性更新的思想進(jìn)行目標(biāo)網(wǎng)絡(luò)參數(shù)更新:
(29)
式中:τ為慣性更新率。
要訓(xùn)練智能體對(duì)飛行器進(jìn)行飛行控制,則首先需要明確智能體能觀察到的環(huán)境狀態(tài)、可執(zhí)行的動(dòng)作以及與環(huán)境交互過(guò)程中獲得的回報(bào)形式,即MDP的設(shè)計(jì)。
如果以單幀的高度速度誤差以及姿態(tài)角等信息作為智能體單次觀察到的狀態(tài),該狀態(tài)缺少環(huán)境的歷史信息并且外加學(xué)習(xí)過(guò)程中算法本身狀態(tài)行為值估計(jì)等原因,訓(xùn)練出的智能體在實(shí)際飛行控制時(shí)易產(chǎn)生明顯的穩(wěn)態(tài)誤差以及穩(wěn)定性較差等問(wèn)題。文獻(xiàn)[18]通過(guò)在狀態(tài)中引入帶限制的誤差積分有效改善了上述問(wèn)題并使訓(xùn)練結(jié)果得到優(yōu)化,但誤差積分本身不為飛行狀態(tài),傳感器不能直接測(cè)得,本文聯(lián)系深度強(qiáng)化學(xué)習(xí)應(yīng)用于游戲時(shí)常采用的多幀圖像同時(shí)輸入卷積神經(jīng)網(wǎng)絡(luò)的思路[24],選擇控制周期為步長(zhǎng)的5幀數(shù)據(jù)幀作為當(dāng)前時(shí)刻的環(huán)境狀態(tài),狀態(tài)空間為30維,單幀數(shù)據(jù)由高度偏差、高度變化量、速度偏差、速度變化量、俯仰角以及俯仰角速度張成:
(30)
等效俯仰舵偏信號(hào)和發(fā)動(dòng)機(jī)推力信號(hào)作為智能體動(dòng)作。相對(duì)于四旋翼這類多通道控制輸入均為電機(jī)轉(zhuǎn)速的飛行器,“麻雀”飛行器縱平面的控制量性質(zhì)不一致,即智能體的動(dòng)作輸出為等效俯仰舵偏角指令以及發(fā)動(dòng)機(jī)推力指令,這也給智能體的訓(xùn)練和回報(bào)函數(shù)的設(shè)計(jì)增加了難度:
at=[δφ t,Pt]T
(31)
立即回報(bào)與智能體執(zhí)行動(dòng)作后的狀態(tài)偏差值、動(dòng)作幅度以及達(dá)到目標(biāo)區(qū)間時(shí)獲得的稀疏獎(jiǎng)勵(lì)等相關(guān):
rt=-(w1|ΔHt|+w2|ΔVt|+w3|δφ t-1|+
(32)
立即回報(bào)中將所有的偏差均作為懲罰項(xiàng)(高度偏差|ΔHt|和速度偏差|ΔVt|),當(dāng)控制效果不佳時(shí)懲罰值將會(huì)很大,當(dāng)智能體控制飛行器在穩(wěn)態(tài)點(diǎn)附近時(shí)懲罰值接近于0,以此形式設(shè)置立即回報(bào)體現(xiàn)了智能體策略目標(biāo)是在整個(gè)飛行任務(wù)中控制飛行器在穩(wěn)態(tài)點(diǎn)處穩(wěn)定飛行。且飛行過(guò)程中還需要注意能量消耗(控制量項(xiàng)|δφ t-1|和|Pt-1|),能量消耗越大則立即回報(bào)越小。以上各懲罰因子分別取w1=0.5,w2=0.05,w3=0.005以及w4=0.001,即當(dāng)前時(shí)刻高度和速度偏差值越大,立即回報(bào)越小。w1大于w2表明智能體的控制目標(biāo)主要以高度控制為主,速度控制重要性弱于高度控制。w3和w4遠(yuǎn)小于w1和w2表明對(duì)偏差的控制重要程度要強(qiáng)于能量消耗。
本文所用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,均為多隱層反向傳播(Back Propagation,BP)前饋神經(jīng)網(wǎng)絡(luò),后文中簡(jiǎn)稱為BP神經(jīng)網(wǎng)絡(luò),由于輸入維數(shù)較低則無(wú)需使用多層卷積神經(jīng)網(wǎng)絡(luò)。對(duì)于Actor網(wǎng)絡(luò),其輸入層擁有30個(gè)神經(jīng)元對(duì)應(yīng)30維的環(huán)境狀態(tài);中間3個(gè)全連接形式的隱含層均擁有64個(gè)神經(jīng)元,激活函數(shù)為ReLU;輸出層擁有2個(gè)神經(jīng)元對(duì)應(yīng)2維的智能體動(dòng)作,激活函數(shù)為tanh,這樣添加偏置后就能讓智能體的輸出限定在一定的范圍內(nèi)。
圖2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
對(duì)于Critic網(wǎng)絡(luò),其輸入層擁有32個(gè)輸入神經(jīng)元對(duì)應(yīng)30維的環(huán)境狀態(tài)以及2維的智能體動(dòng)作;狀態(tài)輸入經(jīng)過(guò)2個(gè)64神經(jīng)元的全連接層后與動(dòng)作輸入經(jīng)過(guò)1個(gè)64神經(jīng)元的全連接層的輸出進(jìn)行同維求和,最后再經(jīng)過(guò)一個(gè)64神經(jīng)元的全連接層后輸出,輸出為1維對(duì)應(yīng)輸入狀態(tài)和動(dòng)作下的狀態(tài)行為值,激活函數(shù)均為ReLU。策略網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)應(yīng)一致。
PD高度速度輔助控制器的結(jié)構(gòu)如圖3所示。圖4(圖中Hc為參考高度)表明該控制器在定控制參數(shù)的條件下僅能一定程度上維持飛行穩(wěn)定,而無(wú)法單獨(dú)控制飛行器完成實(shí)際的飛行任務(wù)。
圖3 PD 輔助控制器結(jié)構(gòu)
圖4 PD 輔助控制器獨(dú)立控制結(jié)果
智能體離線訓(xùn)練時(shí),將策略Actor網(wǎng)絡(luò)的輸出信號(hào)和PD輔助控制器的信號(hào)綜合后作為控制信號(hào)進(jìn)行飛行控制。由于確定性策略中動(dòng)作選擇的固定性,需要在訓(xùn)練時(shí)對(duì)策略Actor網(wǎng)絡(luò)的輸出添加噪聲,以增強(qiáng)強(qiáng)化學(xué)習(xí)中的探索過(guò)程。
訓(xùn)練開(kāi)始時(shí)首先對(duì)策略Actor網(wǎng)絡(luò)以及策略Critic網(wǎng)絡(luò)的參數(shù)進(jìn)行隨機(jī)初始化,再將參數(shù)賦值給對(duì)應(yīng)的目標(biāo)網(wǎng)絡(luò)。接著開(kāi)始進(jìn)行實(shí)驗(yàn)(Episode),本文每次實(shí)驗(yàn)設(shè)定固定的飛行任務(wù)及飛行時(shí)間,初始狀態(tài)會(huì)在一定范圍內(nèi)隨機(jī)變化,將智能體的控制周期作為時(shí)間步(Time step),注意MDP中的st和at一類的下標(biāo)t代表時(shí)間步而不是指實(shí)際飛行時(shí)間。在每個(gè)時(shí)間步中,當(dāng)前狀態(tài)st輸入策略Actor網(wǎng)絡(luò)從而輸出當(dāng)前動(dòng)作at,at與輔助控制器的信號(hào)綜合作為控制系統(tǒng)輸入ut,這樣通過(guò)四階龍格庫(kù)塔積分便可得到飛行器下一時(shí)間步的飛行狀態(tài),從而得到下一時(shí)間步狀態(tài)st+1,并可根據(jù)設(shè)計(jì)好的回報(bào)函數(shù)形式計(jì)算立即回報(bào)rt+1,將(st,at,rt+1,st+1)作為一個(gè)飛行樣本存儲(chǔ)在記憶回放單元中就可以通過(guò)DDPG算法進(jìn)行飛行策略的學(xué)習(xí)即更新4個(gè)網(wǎng)絡(luò)對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)。
綜上,本文離線訓(xùn)練算法如算法1所示。
算法1 基于DDPG的飛行器控制離線訓(xùn)練算法1.隨機(jī)初始化策略Actor網(wǎng)絡(luò)和策略Critic網(wǎng)絡(luò)參數(shù)θμ,θQ;將策略網(wǎng)絡(luò)參數(shù)初始化對(duì)應(yīng)目標(biāo)網(wǎng)絡(luò)θQ'←θQ,θμ'←θμ;初始化存儲(chǔ)量為M的記憶回放單元D;在飛行模擬器中加載飛行器模型以及輔助控制器2. for Episode=1 to MaxEpisode do3. 初始化本次實(shí)驗(yàn)探索噪聲分布N(0,σ2)4. 設(shè)定范圍內(nèi)隨機(jī)初始化飛行器初始狀態(tài),得到s15. fort=1 to MaxStep do6. 通過(guò)st選擇動(dòng)作at=μ(st|θμ)+nt, nt為探索噪聲7. at和輔助控制器信號(hào)綜合得到控制信號(hào)ut8. 積分得到下一時(shí)間步飛行器狀態(tài),得st+19. 通過(guò)式(32)計(jì)算立即回報(bào)rt+110.將樣本(st,at,rt+1,st+1)存儲(chǔ)在記憶回放單元D中11.∥網(wǎng)絡(luò)更新12.在記憶回放單元D中進(jìn)行隨機(jī)采樣,取N個(gè)樣本13.按式(23)、式(25)~式(26)更新策略Critic網(wǎng)絡(luò)參數(shù)θQ14.按式(27)~式(28)更新策略Actor網(wǎng)絡(luò)參數(shù)θμ15.按式(29)更新2個(gè)目標(biāo)網(wǎng)絡(luò)參數(shù)θQ',θμ'16.if下一時(shí)刻飛行狀態(tài)超出飛行邊界時(shí)then17. break18.endif19.end for20.end for
在線控制與訓(xùn)練過(guò)程不同,深度強(qiáng)化學(xué)習(xí)的功能是訓(xùn)練智能體,在不考慮在線學(xué)習(xí)的前提下訓(xùn)練算法在實(shí)際飛行控制中不再生效,最終被用作飛行控制器的智能體為深度強(qiáng)化學(xué)習(xí)的一部分,對(duì)于DDPG而言,即其目標(biāo)Actor網(wǎng)絡(luò)。故最終進(jìn)行在線控制時(shí)的系統(tǒng)結(jié)構(gòu)如圖5所示,將5個(gè)數(shù)據(jù)幀的環(huán)境狀態(tài)輸入訓(xùn)練好的目標(biāo)Actor網(wǎng)絡(luò),網(wǎng)絡(luò)輸出的智能體動(dòng)作與PD輔助控制器的信號(hào)綜合以進(jìn)行飛行器的在線控制??梢栽谠诰€控制仿真時(shí)注入與訓(xùn)練時(shí)不同的不確定性以衡量智能體的控制能力。圖5中xt為PD控制需要的狀態(tài)變量,包括高度偏差、速度偏差以及它們的變化量。
圖5 智能體在線控制流程
綜合第2節(jié)內(nèi)容,智能體的訓(xùn)練過(guò)程中系統(tǒng)分為控制子系統(tǒng)和學(xué)習(xí)子系統(tǒng)??刂谱酉到y(tǒng)實(shí)際上就是由在線控制的幾個(gè)環(huán)節(jié)構(gòu)成,在訓(xùn)練過(guò)程中控制過(guò)程是一個(gè)連續(xù)過(guò)程,智能體接收環(huán)境狀態(tài)后根據(jù)當(dāng)前的控制策略輸出控制量,被控對(duì)象即飛行器接收控制量改變運(yùn)動(dòng)狀態(tài)從而在搭建的環(huán)境中飛行,這就形成了一個(gè)閉環(huán)過(guò)程。相比于控制子系統(tǒng),學(xué)習(xí)子系統(tǒng)則是離散的,DDPG是離策略的深度強(qiáng)化學(xué)習(xí)算法,這就意味著智能體的學(xué)習(xí)過(guò)程不是同智能體的探索過(guò)程同時(shí)進(jìn)行的,而是借助記憶回放單元中的數(shù)據(jù)以更新各網(wǎng)絡(luò)參數(shù)。本節(jié)進(jìn)行智能體訓(xùn)練過(guò)程分析。
訓(xùn)練中每次實(shí)驗(yàn)飛行器初始狀態(tài)取值區(qū)間見(jiàn)表1,訓(xùn)練的相關(guān)參數(shù)見(jiàn)表2。訓(xùn)練中的飛行任務(wù)與2.2節(jié)PD輔助控制器獨(dú)立控制時(shí)的任務(wù)一致,控制周期為0.01 s,積分周期為0.002 s,單次實(shí)驗(yàn)最大飛行時(shí)間為100 s。初始姿態(tài)角在高度為50 m、速度為30 m/s的定速平飛狀態(tài)配平值附近。
表1 訓(xùn)練中初始飛行狀態(tài)
表2 訓(xùn)練參數(shù)
累積回報(bào)曲線可以一定程度上反映智能體在訓(xùn)練過(guò)程中的性能變化。訓(xùn)練過(guò)程中每10次實(shí)驗(yàn)的平均累積回報(bào)Rave隨實(shí)驗(yàn)次數(shù)變化情況如圖6 中紅色曲線所示。訓(xùn)練開(kāi)始時(shí),部分實(shí)驗(yàn)中飛行器會(huì)在大偏差狀態(tài)下飛行從而使累積回報(bào)達(dá)到很大的負(fù)值情況;同時(shí)也會(huì)存在沒(méi)有達(dá)到100 s的單次實(shí)驗(yàn)時(shí)間就發(fā)生墜機(jī)和其他超界的情況(累積回報(bào)在-1 000左右的情況);智能體在140次實(shí)驗(yàn)后其飛行控制能力開(kāi)始有顯著提升并達(dá)到飛行控制要求,且時(shí)間差分誤差逐漸達(dá)到收斂要求。
圖6 累積回報(bào)及時(shí)間差分誤差曲線
由于智能體要同時(shí)履行制導(dǎo)和姿控兩項(xiàng)任務(wù),狀態(tài)空間和動(dòng)作空間維度較大,這些都提高了智能體的訓(xùn)練難度。前期實(shí)驗(yàn)中在沒(méi)有PD輔助控制器的條件下進(jìn)行智能體訓(xùn)練時(shí),對(duì)于定高定速的簡(jiǎn)單飛行任務(wù)智能體在2 000次實(shí)驗(yàn)前均達(dá)不到穩(wěn)定控制的要求,可見(jiàn)此類輔助控制器可以在一定程度上改善智能體的訓(xùn)練過(guò)程。
針對(duì)訓(xùn)練時(shí)的飛行任務(wù),智能體在線控制結(jié)果如圖7所示,控制量及姿態(tài)角曲線如圖8所示。智能體有效學(xué)習(xí)了飛行器的控制策略,相比于PD輔助控制器單獨(dú)控制結(jié)果,其控制性能在快速性和準(zhǔn)確性上都有很大提升。
圖7 智能體在線控制結(jié)果
圖8 控制量及姿態(tài)角曲線
智能體能同時(shí)適應(yīng)爬升和下降兩大類的飛行任務(wù)。應(yīng)對(duì)爬升任務(wù)時(shí),其快速性明顯優(yōu)于PD輔助控制器,達(dá)到目標(biāo)高度后可以穩(wěn)定在定速平飛狀態(tài),穩(wěn)態(tài)誤差在0.1 m以內(nèi)。對(duì)于下降任務(wù),存在極少量的超調(diào),穩(wěn)態(tài)誤差在0.06 m以內(nèi),具體控制結(jié)果見(jiàn)表3。為了進(jìn)一步測(cè)試智能體的魯棒性和泛化能力,本文還進(jìn)行了變?nèi)蝿?wù)、參數(shù)拉偏以及注入干擾等相關(guān)內(nèi)容的仿真。
表3 智能體控制結(jié)果
在智能體訓(xùn)練中,飛行器的初始狀態(tài)被限制在45~55 m之間的平飛模式周圍?,F(xiàn)將初始狀態(tài)拓展到10~100 m的高度,且跟蹤高度均為50 m,仿真結(jié)果如圖9所示,智能體能適應(yīng)所有設(shè)置的初始狀態(tài)。
圖9 變初始高度的控制結(jié)果
將飛行任務(wù)改變?yōu)橹悄荏w在訓(xùn)練時(shí)未學(xué)習(xí)過(guò)的地面發(fā)射任務(wù):發(fā)射高度為2 m,發(fā)射角為30°,彈射速度為25 m/s,目標(biāo)為跟蹤20 m高度和速度Vc=32 m/s的定速平飛狀態(tài)。仿真結(jié)果如圖10所示,飛行器在彈出后3 s左右達(dá)到目標(biāo)高度,高度穩(wěn)態(tài)誤差為0.04 m,速度穩(wěn)態(tài)誤差為0.08 m/s。綜上,智能體能一定程度上適應(yīng)訓(xùn)練時(shí)未學(xué)習(xí)過(guò)的飛行任務(wù)。
圖10 地面發(fā)射任務(wù)控制結(jié)果
飛行器建模時(shí)存在模型不確定性,現(xiàn)將飛行器的自身參數(shù)即質(zhì)量和轉(zhuǎn)動(dòng)慣量拉偏5%,與此同時(shí)拉偏5%的大氣密度,并分別將氣動(dòng)參數(shù)拉偏10%~50%,測(cè)試智能體的魯棒性。仿真結(jié)果如圖11所示,未考慮模型不確定性訓(xùn)練出的智能體能有效完成30%以內(nèi)氣動(dòng)參數(shù)拉偏的飛行任務(wù),且在控制中能依舊保持一定的快速性以及準(zhǔn)確性。
圖11 智能體在模型不確定條件下的控制結(jié)果
在飛行器高度50 m、速度30 m/s的定速平飛過(guò)程中,分別在10~11 s時(shí)注入+5°的風(fēng)攻角擾動(dòng),在20~30 s時(shí)在俯仰角速度測(cè)量處注入最大值為1.0×10-4rad/s的隨機(jī)白噪聲,在30~40 s 時(shí)注入發(fā)動(dòng)力推力下降20%的故障,控制結(jié)果見(jiàn)圖12。
圖12 注入擾動(dòng)和故障條件下的控制結(jié)果
對(duì)于攻角擾動(dòng),飛行器在干擾結(jié)束后經(jīng)歷了1.5 s左右較劇烈的狀態(tài)調(diào)節(jié)后恢復(fù)到了定速平飛狀態(tài)。對(duì)于姿態(tài)角速度測(cè)量誤差,智能體能有效維持飛行器的飛行穩(wěn)定,高度穩(wěn)態(tài)誤差為0.06 m,速度穩(wěn)態(tài)誤差為0.02 m/s。對(duì)于發(fā)動(dòng)機(jī)推力下降故障,推力控制信號(hào)從2.73 N增加至3.48 N,飛行器高度降為49.55 m,速度降為29.27 m/s,影響很小。
本文研究了一種基于深度確定性策略梯度算法的飛行控制方法:以多數(shù)據(jù)幀為環(huán)境狀態(tài),設(shè)計(jì)了含稀疏獎(jiǎng)勵(lì)的獎(jiǎng)勵(lì)函數(shù),并增加了PD輔助控制器,進(jìn)行了智能體訓(xùn)練以及其飛行控制性能測(cè)試。該方法有別于傳統(tǒng)分回路設(shè)計(jì)方法,有利于降低設(shè)計(jì)復(fù)雜度,是一種端到端的解決方案。智能體訓(xùn)練以及仿真結(jié)果表明:
1) 含稀疏獎(jiǎng)勵(lì)的獎(jiǎng)勵(lì)函數(shù)形式會(huì)增加對(duì)優(yōu)秀飛行數(shù)據(jù)的獎(jiǎng)勵(lì)即能有效提高樣本多樣性,PD輔助控制器能在訓(xùn)練初期穩(wěn)定飛行過(guò)程,以上2條關(guān)鍵技術(shù)點(diǎn)均能提高訓(xùn)練中智能體的學(xué)習(xí)效率。
2) 多數(shù)據(jù)幀作為環(huán)境狀態(tài)時(shí)可代替誤差積分將歷史信息作為知識(shí)供智能體學(xué)習(xí),能有效改善智能體的控制性能,減小穩(wěn)態(tài)誤差。
3) 智能體除了能完成訓(xùn)練時(shí)的飛行控制任務(wù)外,還能一定程度上適應(yīng)變?nèi)蝿?wù)控制、參數(shù)拉偏和擾動(dòng)故障等訓(xùn)練時(shí)未學(xué)習(xí)的情況,體現(xiàn)了其泛化能力和魯棒性。
當(dāng)然,此類方法用于飛行控制也存在一些技術(shù)上的問(wèn)題,需要繼續(xù)深入研究,本文最后給出問(wèn)題及研究設(shè)想:
1) 本文研究的DDPG算法包括目前大多數(shù)強(qiáng)化學(xué)習(xí)用于飛行控制的研究,其強(qiáng)化學(xué)習(xí)方法不基于模型(Model-free)。而實(shí)際上對(duì)于工程師而言飛行器的數(shù)學(xué)模型是明確的且建立比較準(zhǔn)確以及含很多經(jīng)驗(yàn)知識(shí),未來(lái)可能以基于模型(Model-based)和基于半模型的形式將以上知識(shí)引入智能體的知識(shí)學(xué)習(xí)中。
2) 雖然可以從理論上嚴(yán)格證明DDPG等算法的穩(wěn)定性和收斂性,從而保證系統(tǒng)的整體穩(wěn)定。但由于不基于模型,目前此類控制方法的控制性能主要通過(guò)大量的時(shí)域仿真進(jìn)行分析,穩(wěn)定性證明難以給出。且神經(jīng)網(wǎng)絡(luò)的可解釋性也是世界性難題,需要繼續(xù)深入研究。
3) 本文給出的縱平面非線性模型經(jīng)過(guò)了一定簡(jiǎn)化,理論上通過(guò)具有掉高補(bǔ)償?shù)腜ID控制等方式也能較理想解決此問(wèn)題。后續(xù)會(huì)基于更復(fù)雜的模型,通過(guò)在訓(xùn)練階段注入模型不確定性和嚴(yán)重故障等手段,研究其容錯(cuò)等相關(guān)性能。
4) 實(shí)際在線控制時(shí),一部分不確定性可以基于智能體的泛化能力和魯棒性得到有效適應(yīng)。但一旦出現(xiàn)無(wú)法控制的情況,可能還需依賴遷移學(xué)習(xí)和小樣本在線學(xué)習(xí)等手段進(jìn)行適應(yīng)。