周毅昕,程可濤,柳立敏,何賢軍,黃振貴
(1.南京理工大學(xué) 錢學(xué)森學(xué)院,南京 210094;2.南京理工大學(xué) 瞬態(tài)物理國家重點(diǎn)實(shí)驗(yàn)室,南京 210094)
傳統(tǒng)的彈道優(yōu)化程序計(jì)算量大、計(jì)算時(shí)間過長、同時(shí)還要求較高的計(jì)算資源,倘若每一次都需要實(shí)彈打靶勢必會(huì)耗費(fèi)很多的人力、物力,且拉長研發(fā)周期。因此更加精準(zhǔn)、更加便捷、更加快速的彈道優(yōu)化過程亟待開發(fā)研究。
機(jī)器學(xué)習(xí)目前被廣泛運(yùn)用于各個(gè)領(lǐng)域,如聶凱等根據(jù)深度強(qiáng)化學(xué)習(xí)的高效性提出了人工智能的軍事應(yīng)用前景,李先通等用強(qiáng)化學(xué)習(xí)的方法建立了一種時(shí)空特征深度學(xué)習(xí)模型,實(shí)現(xiàn)了對(duì)下一時(shí)隙的路徑行程時(shí)間進(jìn)行預(yù)測,選擇最優(yōu)路徑;趙紹東提出基于機(jī)器學(xué)習(xí)的支持向量機(jī)機(jī)器學(xué)習(xí)的(SVM算法)模型進(jìn)行建筑耗材降價(jià)分析與研究,得出建筑耗材價(jià)格選擇的優(yōu)化方案。張蕾等圍繞機(jī)器學(xué)習(xí)技術(shù)提出了面對(duì)海量數(shù)據(jù)效率更高的安全問題解決方案。最新更為高效精確的氣體傳感器,保證全局收斂和計(jì)算高效的梯度算法,都離不開機(jī)器學(xué)習(xí)的思想與幫助。機(jī)器學(xué)習(xí)會(huì)不斷擴(kuò)充它的教學(xué)數(shù)據(jù),使程序在學(xué)習(xí)的過程中逐漸變得更加“智能”,且機(jī)器學(xué)習(xí)的主要作用是預(yù)測,從而得到最優(yōu)決策。
本文將機(jī)器學(xué)習(xí)中具有高效率、低損耗、高精確特點(diǎn)的強(qiáng)化學(xué)習(xí)與彈道優(yōu)化問題相結(jié)合,提出了基于強(qiáng)化學(xué)習(xí)的彈道優(yōu)化研究,以期將二者結(jié)合,改進(jìn)現(xiàn)有彈道優(yōu)化方法中存在的不足,推動(dòng)我國彈道優(yōu)化研究朝著智能化方向發(fā)展。
強(qiáng)化學(xué)習(xí)在彈道優(yōu)化中的作用與傳統(tǒng)函數(shù)相比,其優(yōu)點(diǎn)在于不需要建立彈道優(yōu)化的數(shù)學(xué)模型,即傳統(tǒng)彈道優(yōu)化過程中所需要的優(yōu)化目標(biāo)函數(shù)、約束函數(shù)、選取優(yōu)化設(shè)計(jì)變量與關(guān)聯(lián)方程都不需要在機(jī)器學(xué)習(xí)中建立,取而代之的是彈載計(jì)算機(jī)在不斷的迭代學(xué)習(xí)過程中,調(diào)整導(dǎo)彈在飛行過程中不同狀態(tài)下的指令控制,來達(dá)到最優(yōu)目標(biāo)的控制效果。
本文將彈道方程組與Q-learning算法相結(jié)合,研究基于Q-learning算法的機(jī)器學(xué)習(xí)在彈道優(yōu)化上的應(yīng)用,給出在Q-learning算法下彈道優(yōu)化結(jié)果,并與參考模型的計(jì)算結(jié)果進(jìn)行對(duì)比,以驗(yàn)證機(jī)器學(xué)習(xí)與彈道優(yōu)化相結(jié)合的可行性。
為了構(gòu)建標(biāo)準(zhǔn)條件下的質(zhì)點(diǎn)彈道基本方程,計(jì)算中采取了以下假設(shè):
1) 在導(dǎo)彈飛行的任何階段,導(dǎo)彈攻角均為0;
2) 不考慮風(fēng)速等其他因素的影響,導(dǎo)彈僅受重力和阻力影響;
3) 假設(shè)地面為無限擴(kuò)展的水平面,不考慮地球表面曲率影響;
4) 忽略科氏慣性力;
5) 導(dǎo)彈結(jié)構(gòu)視為一個(gè)質(zhì)點(diǎn),僅在3個(gè)方向上的平動(dòng),不存在轉(zhuǎn)動(dòng)。
結(jié)合以上假設(shè),從最簡單的彈道方程組模型入手,建立了炮彈在3DOF(自由度)的只受重力和阻力的外彈道方程組作為參考模型,模型具體如下所示:
(1)
傳統(tǒng)的彈道優(yōu)化方法主要有利用高斯偽譜法將彈道最優(yōu)控制問題轉(zhuǎn)化為非線性規(guī)劃問題,進(jìn)而用SQP算法求解彈道優(yōu)化設(shè)計(jì)問題;或者利用hp自適應(yīng)偽譜法進(jìn)行離線彈道優(yōu)化,得到多條最優(yōu)彈道控制數(shù)據(jù)后訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),得到神經(jīng)網(wǎng)絡(luò)制導(dǎo)控制器;或?qū)?dǎo)彈優(yōu)化計(jì)劃建立相應(yīng)模型,采用分段優(yōu)化全程彈道的方法。
四階龍格庫塔法的截?cái)嗾`差、時(shí)間復(fù)雜度和空間復(fù)雜度都很好,常使用于工程上求解常微分方程的問題。因此本文選擇龍格庫塔法對(duì)彈道方程組求解。
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一個(gè)分支領(lǐng)域,在強(qiáng)化學(xué)習(xí)中,智能體通過不斷“試錯(cuò)”的方式進(jìn)行學(xué)習(xí),在智能體與環(huán)境的不斷交互下,獲得獎(jiǎng)賞,并在價(jià)值策略的驅(qū)動(dòng)下朝著最大化累計(jì)獎(jiǎng)勵(lì)的方向迭代優(yōu)化,從而不斷提高智能體自身的決策能力。首先環(huán)境會(huì)給智能體一個(gè)觀測值(狀態(tài)),智能體在接收到環(huán)境給的觀測值之后,在價(jià)值策略的引導(dǎo)下進(jìn)行決策并做出動(dòng)作,與智能體進(jìn)行交互的環(huán)境在動(dòng)作的作用下發(fā)生變化,即從狀態(tài)A轉(zhuǎn)移到狀態(tài)B,并向智能體返回狀態(tài)B以及相應(yīng)的獎(jiǎng)勵(lì)值。智能體會(huì)根據(jù)環(huán)境給予的獎(jiǎng)勵(lì)更新自己的策略,從而實(shí)現(xiàn)在探索環(huán)境的同時(shí),更新自己的動(dòng)作策略,進(jìn)而優(yōu)化自身的決策能力。本文選取強(qiáng)化學(xué)習(xí)中較為基礎(chǔ)典型的Q-learning算法進(jìn)行研究。
Q-learning算法是強(qiáng)化學(xué)習(xí)算法中價(jià)值本位(value-based)的算法。Q代表s和a的價(jià)值函數(shù)Q(s,a),即在某一時(shí)刻的狀態(tài)(state)下,采取某一動(dòng)作(action)能夠得到的獎(jiǎng)賞的期望。Q-learning算法的思想核心就是將某一時(shí)刻的狀態(tài)和動(dòng)作以及其能夠得到的獎(jiǎng)賞期望構(gòu)建成為一張Q表來儲(chǔ)存Q值。Q值如表1所示,a表示智能體可選擇的動(dòng)作,s表示智能體所處的狀態(tài),獎(jiǎng)賞值為在該狀態(tài)做出該動(dòng)作時(shí),環(huán)境所反饋的回報(bào)(reward)的估計(jì)值。例如,Q(s1,a1)= -1代表智能體在s1狀態(tài)下做出a1動(dòng)作,可獲得的獎(jiǎng)賞值為-1。
表1 Q值
Q表的更新以時(shí)間差分法的方式進(jìn)行,其具體公式如下:
(,)←(,)+[+max′(′,′)-(,)]
(2)
其中:為獎(jiǎng)勵(lì)性衰變系數(shù)(衰減因子),為控制收斂的學(xué)習(xí)率。當(dāng)0<<1時(shí),通過不斷地嘗試搜索空間,值會(huì)逐步地趨近最佳值。決定時(shí)間的遠(yuǎn)近對(duì)回報(bào)的影響程度,表示犧牲當(dāng)前收益,換取長遠(yuǎn)收益的程度。
在下一個(gè)狀態(tài)′中選取最大的(′,′)值乘以獎(jiǎng)勵(lì)性衰變系數(shù)再加上真實(shí)回報(bào)值作為的現(xiàn)實(shí)值,而把過往Q表里的(,)作為的估計(jì)值。以表1為例,具體實(shí)現(xiàn)步驟如下:
(3)
式中:為的現(xiàn)實(shí)值;為的估計(jì)值;為現(xiàn)實(shí)值與估計(jì)值的差值。
具體實(shí)現(xiàn)代碼如下:
1) 構(gòu)建并初始化Q表;
2) 初始化導(dǎo)彈運(yùn)動(dòng)狀態(tài)參數(shù) ;
3) 根據(jù)導(dǎo)彈狀態(tài)基于策略選擇動(dòng)作;
4) 根據(jù)動(dòng)作更新狀態(tài)信息與反饋獎(jiǎng)勵(lì);
5) 根據(jù)新的動(dòng)作得到的反饋更新Q表;
6) 進(jìn)入下一個(gè)狀態(tài),判斷是否完成訓(xùn)練輪次;
7) 重復(fù)步驟2~6直到回合結(jié)束;
()的估計(jì)不僅僅只有這個(gè)狀態(tài),按照同樣的規(guī)則持續(xù)展開,可以發(fā)現(xiàn),其與后續(xù)、,…都有關(guān)系,這些都能夠用來估計(jì)實(shí)際值,當(dāng)衰減因子按以下3種情況取值,分別為:
()=+()=+*[+()]=
+*[+[+()]]()=
+*+*+*+*+…
(4)
為1 時(shí),相當(dāng)于完全考慮未來的獎(jiǎng)勵(lì),沒有忽略,即:
()=+1*+1*+1*+1*+…
(5)
在(0~1)范圍內(nèi)時(shí),數(shù)值越大,對(duì)未來情況的重視程度越大,可以說智能體越有遠(yuǎn)見,即:
()=+*+*+*+*+…
(6)
當(dāng)為0時(shí),完全不考慮將來的情況,只有當(dāng)前的回報(bào)值,即:
()=
(7)
在對(duì)炮彈進(jìn)行控制優(yōu)化時(shí),強(qiáng)化學(xué)習(xí)算法將彈載計(jì)算機(jī)作為智能體,將飛行過程中的炮彈的姿態(tài)、運(yùn)動(dòng)等外界信息視為環(huán)境,并以炮彈的飛行速度方向與水平方向間的夾角(彈道傾角)作為狀態(tài),智能體(彈載計(jì)算機(jī))的動(dòng)作為給炮彈施加垂直于速度方向的加速度,以此不斷改變炮彈的飛行軌跡。
因此,基于Q-learning算法的簡控彈道方程組可在參考彈道方程組的基礎(chǔ)上得到,具體如下:
(8)
其中:為智能體作用的加速度;其余變量與式(1)中相同。
假定空氣密度為1.206 kg/m,炮彈最大橫截面積為0.018 86 m,阻力系數(shù)為0.25;炮彈質(zhì)量為30 kg,直徑為155 mm,出膛速度是800 m/s。
當(dāng)出射角為45°時(shí),基于Matlab采用四階龍格庫塔法對(duì)參考模型進(jìn)行求解,可得到炮彈無控飛行軌跡如圖1,射程是14 532.84 m,后文將通過與優(yōu)化后射程進(jìn)行對(duì)比驗(yàn)證Q-learning算法在彈道優(yōu)化上的可行性:
圖1 炮彈無控飛行軌跡曲線
以最遠(yuǎn)距離為目標(biāo)進(jìn)行優(yōu)化時(shí),在30°、35°、40°、45°、50°、55°、60°初始彈道傾角進(jìn)行3DOF彈道控制,其他初始參數(shù)與無控狀態(tài)一致,測量無控情況下和在Q-learning模型中給法向過載進(jìn)行控制的距離進(jìn)行仿真,其中Q-learning算法的學(xué)習(xí)效率為0.05,貪婪度為0.8,獎(jiǎng)勵(lì)折扣為0.99,狀態(tài)選擇為速度與水平面間的夾角,動(dòng)作為作用于垂直速度方向向上或向下,大小為5 m/s的加速度,優(yōu)化結(jié)果如表2所示。
表2 以最遠(yuǎn)距離為目標(biāo)的優(yōu)化與無控彈道的結(jié)果
為炮彈在無控情況下落點(diǎn)處的距離;為Q-learning算法中有控(存在法向過載)情況下的落點(diǎn)距離。由表可知,針對(duì)不同的初始彈道傾角,Q-learning算法均能不同程度的提升炮彈的射程,可知Q-learning強(qiáng)化學(xué)習(xí)算法在以最遠(yuǎn)距離作為優(yōu)化目標(biāo)時(shí)具有較好的優(yōu)化作用。
在有阻力情況下,當(dāng)初始傾角為30°時(shí)以最遠(yuǎn)飛行距離為目標(biāo)時(shí),進(jìn)行了1 000次Q-learning強(qiáng)化學(xué)習(xí)訓(xùn)練后的機(jī)器控制結(jié)果如圖2所示。
圖2 最遠(yuǎn)距離控制結(jié)果曲線
圖2中,橫坐標(biāo)為炮彈的水平飛行距離,縱坐標(biāo)為導(dǎo)彈的飛行高度。炮彈從膛內(nèi)以一定的初速度斜向射出去,可以看作水平方向上受外界阻力的直線運(yùn)動(dòng)和豎直方向上受重力的上拋運(yùn)動(dòng)的合成運(yùn)動(dòng)。由圖2可知,與無控情況下進(jìn)行對(duì)比,經(jīng)過Q-learning強(qiáng)化學(xué)習(xí)訓(xùn)練后的最遠(yuǎn)飛行距離為15 674.25 m,大于無控狀態(tài)下的最遠(yuǎn)飛行距離15 026 m,增加了4.3%。
圖3表示了該次飛行過程中智能體進(jìn)行1 000次強(qiáng)化學(xué)習(xí)過程中對(duì)炮彈做出的控制動(dòng)作過程。圖中以加速度的離散數(shù)據(jù)_mean作為縱坐標(biāo),以時(shí)間為橫坐標(biāo)。加速度為智能體每一次采取動(dòng)作直接產(chǎn)生控制后炮彈的過載,加速度的波動(dòng)曲線是在+5和0的離散動(dòng)作區(qū)間內(nèi)智能體所采取的動(dòng)作集合。通過實(shí)時(shí)產(chǎn)生加速度指令,實(shí)現(xiàn)控制彈體姿態(tài),進(jìn)而控制彈道軌跡。
圖3 飛行過程中的控制結(jié)果曲線
以最大落點(diǎn)速度為目標(biāo)進(jìn)行優(yōu)化時(shí),同樣在30°、35°、40°、45°、50°、55°、60°初始彈道傾角進(jìn)行3DOF彈道優(yōu)化控制,仿真計(jì)算無控情況下和在Q-learning算法中控制法向過載的最大落點(diǎn)速度,優(yōu)化結(jié)果如表3所示。
表3 以最大落點(diǎn)速度為目標(biāo)的優(yōu)化與無控彈道的結(jié)果
如表3所示,表示炮彈在無控情況下落點(diǎn)處的速度;表示在Q-learning模型中給法向過載的情況下的落點(diǎn)處的速度。由表3可以看出,優(yōu)化后的炮彈落點(diǎn)速度均大于無控條件下的炮彈速度。
當(dāng)初始傾角為30°時(shí),以最大落點(diǎn)速度為目標(biāo),進(jìn)行1 000次Q-learning強(qiáng)化學(xué)習(xí)后控制結(jié)果如圖4所示。
圖4 最大落點(diǎn)速度控制結(jié)果曲線
其中橫坐標(biāo)為炮彈飛行的水平距離,縱坐標(biāo)為炮彈的落點(diǎn)速度,由圖4可以看出在炮彈抵達(dá)最高點(diǎn)前,由于空氣阻力的存在炮彈的速度有減小的趨勢,在開始下落后炮彈速度開始增大,圖4曲線可以看出在速度降到最低(即飛行過程達(dá)到最高點(diǎn))后有上揚(yáng)的趨勢。通過分析比較發(fā)現(xiàn),經(jīng)過優(yōu)化學(xué)習(xí)后的最終落點(diǎn)速度大于無控狀態(tài)下的落點(diǎn)速度。
初始傾角為30°的優(yōu)化過程如圖5所示,以加速度的離散數(shù)據(jù)_mean作為縱坐標(biāo),以控制時(shí)間作為橫坐標(biāo),其加速度曲線波動(dòng)原理與圖3一致。
圖5 飛行過程中的控制結(jié)果曲線
提出了一種基于強(qiáng)化學(xué)習(xí)中Q-learning算法的制導(dǎo)炮彈簡控彈道優(yōu)化控制方法,該方法效率高,能有效提升射程,具有通用性。以最遠(yuǎn)射程和最大落點(diǎn)速度為目標(biāo)時(shí),智能體經(jīng)過學(xué)習(xí)后對(duì)彈道的優(yōu)化控制能滿足預(yù)期要求,能夠通過Q-learning算法進(jìn)行彈道優(yōu)化。初步證實(shí)了機(jī)器學(xué)習(xí)在彈道優(yōu)化上的可行性,為后期進(jìn)一步探索打下基礎(chǔ)。
對(duì)于不同的優(yōu)化目標(biāo),該優(yōu)化方法只需改變Q-learning算法中的環(huán)境約束條件,就能得到對(duì)應(yīng)的彈道優(yōu)化控制結(jié)果。