白文艷 張家銘 黃萬(wàn)偉 張 遠(yuǎn),2
1.北京航天自動(dòng)控制研究所,北京 100854 2.宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,北京 100854
高超聲速飛行器(Hypersonic Vehicle)一般是指飛行馬赫數(shù)大于5的飛行器。由于其飛行高度和馬赫數(shù)跨度大、飛行環(huán)境復(fù)雜,氣動(dòng)和氣熱特性變化劇烈,使得飛行器存在非線性強(qiáng)和不確定性大的特點(diǎn)[1-2]。傳統(tǒng)控制參數(shù)設(shè)計(jì)如增益預(yù)置法,是在選定特征點(diǎn)處對(duì)飛行器非線性模型進(jìn)行小擾動(dòng)線性化,隨后根據(jù)調(diào)度變量進(jìn)行插值,是一種成熟的控制方法,易于工程實(shí)現(xiàn),方法簡(jiǎn)單,但是該方法需要大量的增益調(diào)節(jié),還要滿足變量慢變的假設(shè),在非線性特性變化劇烈時(shí)性能較差。后來(lái)在增益預(yù)置法的基礎(chǔ)上,發(fā)展了線性變參數(shù)(LPV)方法,該方法降低了調(diào)參工作量,并可保證較好的穩(wěn)定性,具有工程實(shí)現(xiàn)性良好,設(shè)計(jì)相對(duì)簡(jiǎn)單的優(yōu)點(diǎn)[3-6]。但是,隨著飛行包線范圍擴(kuò)大,系統(tǒng)時(shí)變參數(shù)范圍隨之?dāng)U大,導(dǎo)致控制性能受到嚴(yán)重影響,難以滿足動(dòng)態(tài)特性變化下的姿態(tài)控制。針對(duì)上述問(wèn)題,研究在復(fù)雜環(huán)境下高超聲速飛行器的姿態(tài)控制參數(shù)自適應(yīng)調(diào)節(jié)至關(guān)重要。
智能控制尤其是以強(qiáng)化學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)為主的控制方法是目前研究的熱點(diǎn)之一。在航空航天控制領(lǐng)域,智能控制已逐漸成為未來(lái)發(fā)展方向[7-8]。強(qiáng)化學(xué)習(xí)(Reinforcement Learning)的特點(diǎn)是是智能體(Agent)與環(huán)境狀態(tài)交互,通過(guò)不斷試錯(cuò)的方式學(xué)習(xí)得到最優(yōu)策略,使累計(jì)回報(bào)期望最大,這一過(guò)程稱為馬爾科夫決策過(guò)程(Markov Decision Process,MDP)[9]。國(guó)內(nèi)外諸多學(xué)者研究應(yīng)用強(qiáng)化學(xué)習(xí)于飛行器控制系統(tǒng)。文獻(xiàn)[10]使用了強(qiáng)化學(xué)習(xí)算法設(shè)計(jì)了運(yùn)載火箭姿態(tài)控制器參數(shù);文獻(xiàn)[11]針對(duì)再入飛行器姿態(tài)控制問(wèn)題,應(yīng)用單網(wǎng)絡(luò)積分型強(qiáng)化學(xué)習(xí)(SNIRL)算法設(shè)計(jì)了姿態(tài)控制器。
本文提出采用基于深度 Q 網(wǎng)絡(luò)(Deep Q network, DQN)的強(qiáng)化學(xué)習(xí)算法實(shí)現(xiàn)飛行器動(dòng)靜態(tài)增益自適應(yīng)調(diào)節(jié)。利用強(qiáng)化學(xué)習(xí)與環(huán)境交互的優(yōu)點(diǎn),充分利用飛行狀態(tài)等實(shí)時(shí)信息,在選定的特征點(diǎn)處,自動(dòng)對(duì)控制增益調(diào)參,尋優(yōu)效率更高。
本文所研究對(duì)象為高超聲速滑翔飛行器[12],采用乘波體造型,尾舵采用正常式氣動(dòng)布局,頜下進(jìn)氣采取超燃沖壓發(fā)動(dòng)機(jī)。俯仰通道控制輸入為升降舵偏δφ,輸出為短周期模態(tài)下的攻角和俯仰角速率,其縱向運(yùn)動(dòng)模型為:
(1)
其中,V為飛行器的速度,θ為航跡角,ωz為俯仰角速率,α為攻角,H為飛行高度,x為飛行距離,m為飛行器的質(zhì)量,g為重力加速度,Jz為飛行器繞彈體系z(mì)軸的轉(zhuǎn)動(dòng)慣量,T為發(fā)動(dòng)機(jī)推力;L、D分別為飛行器所受升力和阻力,Mz為俯仰力矩,且有:
(2)
式中,CL、CD、Cm分別為升力系數(shù)、阻力系數(shù)和俯仰力矩系數(shù),均為攻角、側(cè)滑角、馬赫數(shù)及俯仰舵偏的函數(shù)組合;ρ為該垂直高度下的大氣密度,S為飛行器的橫截面積,bA為飛行器平均氣動(dòng)弦長(zhǎng),S和bA可以認(rèn)為是常數(shù)。
對(duì)高超聲速飛行器縱向模型進(jìn)行小擾動(dòng)線性化后得到:
(3)
式中,a1、a2、α3、b1、b2均為動(dòng)力學(xué)系數(shù)。
此時(shí)俯仰、偏航、滾轉(zhuǎn)三通道之間的耦合作用影響較小,可以忽略,并考慮攻角作為輸出量,不考慮各通道間的交連項(xiàng),選取縱向短周期狀態(tài)空間模型如下:
(4)
圖1所示為俯仰通道姿態(tài)控制系統(tǒng)結(jié)構(gòu)框圖:
圖1 俯仰通道姿態(tài)控制結(jié)構(gòu)
其中,Wφ為校正網(wǎng)絡(luò)傳遞函數(shù),Wsf為空氣舵伺服動(dòng)態(tài)特性,kα和kω分別為攻角反饋系數(shù)和角速度反饋系數(shù)。
簡(jiǎn)化后俯仰通道控制方程為:
δφ=kαΔα+kωΔωz1
(5)
傳統(tǒng)增益設(shè)計(jì)為人工離線調(diào)參,工程師依據(jù)經(jīng)驗(yàn)在選定的彈道特征點(diǎn)處進(jìn)行線性化并設(shè)計(jì)動(dòng)靜態(tài)增益,選取合適的調(diào)度變量形成插值表,缺點(diǎn)是線性化使模型產(chǎn)生誤差,插值表也會(huì)造成特征點(diǎn)間的狀態(tài)誤差,且人工調(diào)試費(fèi)時(shí)費(fèi)力。
本文采取離散動(dòng)作輸出的強(qiáng)化學(xué)習(xí)算法——深度Q網(wǎng)絡(luò)將飛行器作為智能體,與環(huán)境反饋并根據(jù)實(shí)時(shí)回報(bào)的機(jī)制調(diào)節(jié)增益。
深度 Q 網(wǎng)絡(luò)算法(Deep Q Network, DQN)是Q學(xué)習(xí)的升級(jí),也是基于值函數(shù)的強(qiáng)化學(xué)習(xí)算法的典型代表,主要應(yīng)用于無(wú)模型的離散動(dòng)作控制的場(chǎng)景[13]。
首先介紹經(jīng)典的Q學(xué)習(xí)算法,Q表是一張二維的表格,可以比較某個(gè)狀態(tài)下不同動(dòng)作的價(jià)值,用Q值表示,通過(guò)訓(xùn)練迭代更新,智能體選擇最大的Q值代表最優(yōu)策略。
Q表使用貝爾曼方程并采用兩個(gè)輸入:狀態(tài)和動(dòng)作,即可得到表中單元格的Q值:
Qπ(s,a)=E[rt+1+γrt+2+γ2rt+3+…|
st=s,at=a]
(6)
隨后,進(jìn)行 Q值更新:
Q(st,at)=(1-αQ)Q(st,at)+
αQ[rt+1+γmaxQ(st+1,at+1)]
(7)
其中,αQ為學(xué)習(xí)率,決定目標(biāo)函數(shù)在合適的時(shí)間收斂到局部最小值;γ為折扣率,介于0~1之間,越接近1代表智能體更看重未來(lái)獎(jiǎng)勵(lì);r為回報(bào)函數(shù),即為執(zhí)行動(dòng)作后給予的獎(jiǎng)勵(lì);Q(st,at)為當(dāng)前時(shí)刻Q值,Q(st+1,at+1)為下一時(shí)刻Q值。
Q學(xué)習(xí)通過(guò)Q表的大小和形式?jīng)Q定了其只能應(yīng)用于離散輸出的場(chǎng)景,而且狀態(tài)和動(dòng)作空間不能過(guò)大,否則Q表面臨數(shù)據(jù)量過(guò)大的問(wèn)題。
DQN將 Q學(xué)習(xí)中 Q表更新的過(guò)程用神經(jīng)網(wǎng)絡(luò)擬合,解決了Q表維數(shù)限制。狀態(tài)和動(dòng)作作為神經(jīng)網(wǎng)絡(luò)的輸入,Q值作為輸出,通過(guò)神經(jīng)網(wǎng)絡(luò)計(jì)算當(dāng)前狀態(tài)和未來(lái)狀態(tài)的Q值,不僅學(xué)習(xí)當(dāng)前狀態(tài)下的經(jīng)驗(yàn),也學(xué)習(xí)到了歷史經(jīng)驗(yàn)。即用一個(gè)函數(shù)Q(s,a,w)來(lái)表示Q(s,a),即用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行擬合,其中w為函數(shù)的參數(shù)。
Q(s,a)=Q(s,a,w)
(8)
DQN中存在2個(gè)結(jié)構(gòu)完全相同但是參數(shù)卻不同的網(wǎng)絡(luò):Q估計(jì)網(wǎng)絡(luò)和Q目標(biāo)網(wǎng)絡(luò), Q估計(jì)網(wǎng)絡(luò)使用的是最新的參數(shù),而Q目標(biāo)網(wǎng)絡(luò)參數(shù)使用的卻是很久之前的,Q(s,a,k)表示當(dāng)前網(wǎng)絡(luò)的輸出,用來(lái)評(píng)估當(dāng)前狀態(tài)動(dòng)作對(duì)的值函數(shù);Q(s,a,k-1)表示目標(biāo)網(wǎng)絡(luò)的輸出,因此當(dāng)agent對(duì)環(huán)境采取動(dòng)作a時(shí),可以根據(jù)上述公式計(jì)算出Q,并根據(jù)LossFunction更新當(dāng)前網(wǎng)絡(luò)參數(shù),每經(jīng)過(guò)一定次數(shù)的迭代,就將當(dāng)前網(wǎng)絡(luò)的參數(shù)復(fù)制給目標(biāo)網(wǎng)絡(luò)。這樣就完成了一次學(xué)習(xí)過(guò)程。
表1 給出了DQN算法的偽代碼
一個(gè)完整的馬爾科夫決策過(guò)程包含(S,A,P,r,γ),S為狀態(tài)集合,A為動(dòng)作集合,P為狀態(tài)轉(zhuǎn)移概率,r為回報(bào)函數(shù),γ為折扣因子。
2.2.1 環(huán)境狀態(tài)
環(huán)境狀態(tài)S主要選取飛行狀態(tài)量如高度、馬赫、動(dòng)壓,攻角偏差量,俯仰角速度偏差量等信息,為了充分利用可觀測(cè)的先驗(yàn)歷史信息,提出多拍歷史信息量作輸入,更能體現(xiàn)出一段時(shí)間飛行器姿態(tài)控制的變化情況,從而映射到控制器參數(shù)的變化情況。選擇控制周期為步長(zhǎng)的5倍,即連續(xù)5拍的信息量作為環(huán)境狀態(tài)集合∶
(9)
則環(huán)境狀態(tài)空間為40維。
2.2.2 動(dòng)作選擇
姿態(tài)控制器的待調(diào)節(jié)參數(shù)向量為kp和kd2個(gè)調(diào)節(jié)參數(shù)。DQN算法為離散動(dòng)作輸出的形式,以一定的調(diào)整變化值增減這2個(gè)參數(shù),調(diào)整步長(zhǎng)為0.1。
2.2.3 回報(bào)函數(shù)-
強(qiáng)化學(xué)習(xí)通過(guò)試錯(cuò)來(lái)探索最優(yōu)策略,獲取最大獎(jiǎng)勵(lì)。
回報(bào)函數(shù)體現(xiàn)了智能體在訓(xùn)練過(guò)程中所選策略的效果,針對(duì)飛行器姿控系統(tǒng),設(shè)計(jì)回報(bào)函數(shù)與狀態(tài)偏差、控制量有關(guān)。
(10)
其中,x=[ΔαΔωz1],u=δφ,Q為對(duì)稱半正定矩陣,R為對(duì)稱正定矩陣。
xTQx表征系統(tǒng)的控制效果,uTRu表征系統(tǒng)在控制過(guò)程中消耗的控制能量。
如圖2所示,將2.2設(shè)計(jì)的馬爾科夫模型加入到俯仰通道控制器中,根據(jù)DQN算法設(shè)計(jì)得到增益調(diào)參控制器。
圖2 DQN境益調(diào)參流程圖
綜上,具體設(shè)計(jì)步驟如下∶
1)建立帶有預(yù)設(shè)多種復(fù)雜非線性因素的飛行器姿態(tài)控制模型與姿態(tài)控制器結(jié)構(gòu);
選取N個(gè)平衡點(diǎn)。設(shè)飛行器姿態(tài)控制系統(tǒng)仿真試驗(yàn)運(yùn)行時(shí)間為T。
2)針對(duì)每一次飛行器姿態(tài)控制仿真實(shí)驗(yàn)結(jié)果,設(shè)計(jì)交互學(xué)習(xí)的馬爾科夫模型。
環(huán)境狀態(tài)S"選取連續(xù)5拍狀態(tài)數(shù)據(jù)及變化率,更好地體現(xiàn)一段時(shí)間內(nèi)姿態(tài)控制參數(shù)隨環(huán)境狀態(tài)信息變化的情況。
姿態(tài)控制器共2個(gè)待調(diào)節(jié)參數(shù),以0.1的步長(zhǎng)調(diào)整2個(gè)參數(shù)的增減。
回報(bào)函數(shù)設(shè)置狀態(tài)偏差為主要影響項(xiàng),主要影響攻角偏差和俯仰角速率偏差。
3)根據(jù)每一次飛行器姿態(tài)控制仿真實(shí)驗(yàn)結(jié)果對(duì)應(yīng)的交互學(xué)習(xí)環(huán)境狀態(tài)、參數(shù)調(diào)整動(dòng)作、回報(bào)函數(shù)以及歷史學(xué)習(xí)經(jīng)驗(yàn) Q值更新學(xué)習(xí)經(jīng)驗(yàn) Q值;
學(xué)習(xí)經(jīng)驗(yàn)Q值記為Q(s,a,k),為環(huán)境狀態(tài)s、參數(shù)調(diào)整行動(dòng)a、第k次的飛行器姿態(tài)控制仿真實(shí)驗(yàn)時(shí)對(duì)應(yīng)的學(xué)習(xí)經(jīng)驗(yàn)Q值;在第k次的飛行器姿態(tài)控制仿真試驗(yàn)結(jié)束時(shí),已知第k-1次仿真試驗(yàn)下所采取的參數(shù)調(diào)整動(dòng)作為a(k-1),所對(duì)應(yīng)的環(huán)境狀態(tài)為s(k-1),學(xué)習(xí)經(jīng)驗(yàn)Q值為Q(s,a,k-1);根據(jù)步驟2,獲得第k次環(huán)境狀態(tài)s(k)與第k次學(xué)習(xí)獎(jiǎng)勵(lì)r(k);更新學(xué)習(xí)經(jīng)驗(yàn)Q值∶
Q(s,a,k)=(1-αQ)Q(s,a,k-1)+
αQ[r(k)+γmaxQ(st+1,at+1,k-1)]
(11)
4)利用每一次飛行器仿真實(shí)驗(yàn)后更新的學(xué)習(xí)經(jīng)驗(yàn) Q值,選擇相應(yīng)參數(shù)調(diào)節(jié)動(dòng)作a,并獲得優(yōu)先行動(dòng)集合∶
Ωa(k)={argmaxQ(s,a,k)}
(12)
argmax(f(x))是使得f(x)取得最大值所對(duì)應(yīng)的變量點(diǎn)x(或x的集合),即得到最大Q值所對(duì)應(yīng)的參數(shù)調(diào)節(jié)下的控制增益。
5)根據(jù)步驟4)選擇的參數(shù)調(diào)節(jié)動(dòng)作,執(zhí)行飛行器姿態(tài)控制仿真實(shí)驗(yàn);若實(shí)驗(yàn)結(jié)果達(dá)成結(jié)束條件,則輸出控制器參數(shù),否則,跳轉(zhuǎn)至步驟3,更新學(xué)習(xí)經(jīng)驗(yàn)Q值。
根據(jù)第2章內(nèi)容進(jìn)行智能體的訓(xùn)練,采取3隱層的BP神經(jīng)網(wǎng)絡(luò),激活函數(shù)為Relu,其他具體訓(xùn)練參數(shù)配置如表2所示。
表2 訓(xùn)練參數(shù)配置
式(10)的累積回報(bào)經(jīng)過(guò)1000次訓(xùn)練迭代,回報(bào)函數(shù)值逐漸增大。隨著訓(xùn)練的進(jìn)行,控制增益逐漸收斂;圖3為隨著神經(jīng)網(wǎng)絡(luò)的更新,訓(xùn)練集的擬合誤差??梢钥闯稣`差范圍收斂在0.04左右;圖4所示第k次更新神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差值,具有線性遞減趨勢(shì),表示隨著神經(jīng)網(wǎng)絡(luò)的更新訓(xùn)練誤差逐漸減小。
取回報(bào)函數(shù)值最大的一組控制增益,將其注入俯仰通道姿態(tài)控制系統(tǒng),進(jìn)行仿真驗(yàn)證,得到攻角及俯仰角速率的時(shí)域和頻域特性曲線,其中式(4)中氣動(dòng)參數(shù)a1=0.5709,a2=-0.9638,α3=0.062,b1=0.9552,b2=9.0689
圖3 訓(xùn)練集擬合誤差
圖4 第k次更新訓(xùn)練誤差
圖5 攻角響應(yīng)曲線
圖6 俯仰角速率響應(yīng)曲線
圖5~6為采用強(qiáng)化學(xué)習(xí)訓(xùn)練的模型攻角及俯仰角速率的響應(yīng)變化曲線、bode圖??梢钥闯鰰r(shí)域頻域效果良好,經(jīng)過(guò)強(qiáng)化學(xué)習(xí)訓(xùn)練后的增益使控制器在5s左右快速而平穩(wěn)達(dá)到期望值,符合指標(biāo)要求。
采用深度Q網(wǎng)絡(luò)的強(qiáng)化學(xué)習(xí)方法應(yīng)用于飛行器俯仰通道姿態(tài)控制回路中,根據(jù)每一次飛行器姿態(tài)控制仿真實(shí)驗(yàn)結(jié)果對(duì)應(yīng)的交互學(xué)習(xí)環(huán)境狀態(tài)、參數(shù)調(diào)整動(dòng)作、學(xué)習(xí)獎(jiǎng)勵(lì)以及歷史學(xué)習(xí)經(jīng)驗(yàn)Q值,更新學(xué)習(xí)經(jīng)驗(yàn)Q值,選擇參數(shù)調(diào)節(jié)動(dòng)作,實(shí)現(xiàn)飛行器姿態(tài)控制增益自動(dòng)調(diào)節(jié)。針對(duì)傳統(tǒng)增益調(diào)度的缺點(diǎn),強(qiáng)化學(xué)習(xí)算法能夠有效減小人工經(jīng)驗(yàn)調(diào)參產(chǎn)生的偏差,獲得了良好的穩(wěn)態(tài)和動(dòng)態(tài)性能,具有一定的工程意義。