趙 啟, 甄子洋, 龔華軍, 胡 洲, 董艾昕
(1.南京航空航天大學自動化學院,南京 211000; 2.四川航天系統工程研究所,成都 610000)
無人機因獨特的優(yōu)勢,在軍用和民用領域得到越來越多的重視和應用[1]。面對更加復雜的飛行環(huán)境與任務,單機的性能已經無法滿足實際使用需求,因而多機編隊逐漸成為執(zhí)行任務的主力,世界各國均加大了對無人機編隊控制技術的研究。
無人機編隊控制技術經過國內外學者多年研究已經擁有很多控制方法,如一致性理論[2]以及現代控制理論中的自適應控制[3]、魯棒控制[4]等。由于PID控制具有實現簡單、無需模型等特點,其應用也最為廣泛但是PID,控制往往需要不同通道獨立設計,同時智能化程度不足,面對日益復雜的任務需求,需要一種智能化控制器來提高無人機自主學習能力。
強化學習(Reinforcement Learning,RL)基本過程是設計一個交互器與環(huán)境交互獲得策略的改進[5]。強化學習的一個顯著優(yōu)勢便是在獲得最佳策略的過程中不需要提前得到環(huán)境的模型,目前強化學習已應用于編隊控制方面。文獻[6]采用Q學習的方法,使得僚機在隨機環(huán)境中學習與長機保持在特定距離內;文獻[7]利用DDPG(Deep Deterministic Policy Gradient)算法實現了對多無人機的導航;針對多機的聚集問題,文獻[8]改進了動作-評論家結構,將傳統網絡結構優(yōu)化并結合雙重記憶庫方法,實現了多無人機聚集;文獻[9]則在傳統的Q學習算法中添加變化學習率因子,實現了無人機在長-僚拓撲下的聚集;為解決無人機編隊協調控制問題,文獻[10]提出一種ID3QN(Imitative Dueling Double Deep Q-Network)算法,相較于傳統算法提高了學習效率,最后通過半物理仿真系統進行了驗證。
但是,利用強化學習解決無人機編隊控制問題仍有一些缺陷。如上述成果中無人機均采用質點模型,與實際飛行情況差別較大;控制器只控制速度或航向單一通道;上述成果只實現了無人機聚集而沒有精確保持期望隊形。為此,本文基于深度強化學習的DDQN(Double Deep Q-Network)算法設計無人機編隊控制器。建立的環(huán)境采用線性運動學模型,與實際環(huán)境更為接近;設計僚機動作庫與引導性復合獎勵函數,幫助僚機更好地學習策略;基于DDQN算法設計的控制器能夠同時控制速度和航向兩個通道,使無人機學習的策略更為靈活;通過仿真驗證DDQN控制器效果并與傳統PID控制對比。
本文研究長-僚機模式下的固定翼無人機編隊控制問題。在設定的控制場景中,無人機編隊由一架長機帶領若干架僚機組成期望編隊執(zhí)行任務。長機接收地面站飛行指令,僚機通過接收長機與編隊位置等信息實時解算出飛行指令。假設長、僚機都在同一高度飛行,不考慮飛機之間的碰撞,每架飛機均配備自動駕駛儀,編隊控制器在采樣間隔內輸出僚機控制指令,并通過底層飛控對僚機進行控制。長、僚機都采用相同的一階速度保持器和二階航向保持器的駕駛儀模型[11],并使用文獻[12]的編隊飛行三維數學模型,寫成狀態(tài)空間的形式為
(1)
本文研究的目標是使僚機通過學習能夠自主跟隨長機速度并維持期望編隊。如圖1所示,在X方向僚機速度跟隨長機,Y方向能夠維持期望隊形距離。
圖1 僚機學習目標示意圖
為達到上述目標,采取深度強化學習技術解決無人機編隊控制問題,提高無人機智能化程度。
強化學習優(yōu)化過程是一個使智能體在與環(huán)境交互過程中獲得最大的累積獎勵過程,常采用馬爾可夫決策過程(MDP)建模,并將MDP定義為一個四元組〈S,A,R,p(s′|s,a)〉。其中:S為環(huán)境觀測狀態(tài)集合;A為智能體可采用的動作集合;R為交互過程獲得的累計獎勵;p(s′|s,a)為環(huán)境狀態(tài)轉移函數。智能體與環(huán)境完整的交互過程可通過四元組表示,即在交互的每一時間步t,觀測到環(huán)境狀態(tài)st∈S,并根據策略π(at|st)在采取動作at∈A,執(zhí)行at后,環(huán)境狀態(tài)以p(st+1|st,at)的概率轉移到新的狀態(tài)st+1,并得到即時獎勵值rt。整個過程目標是學習到一個最優(yōu)策略π*=p(a|s),并能夠最大化期望折扣獎勵Rt
(2)
式中:T為終止時刻;0≤γ≤1,為獎勵折扣因子;rt為t時刻即時獎勵。
雙重Q學習[13]是DeepMind在Q學習[14]與深度Q學習[15]的基礎上進一步提出的解決強化學習問題的算法。該算法保持了DQN算法的經驗回放機制與使用目標網絡的特性,與DQN算法的不同點在于采用當前網絡選擇動作,用目標網絡估計Q值,降低DQN算法存在的神經網絡過擬合問題。具體做法為:用兩個結構相同、參數分別為θ與θ-的神經網絡,主網絡輸出估計值Q,而目標網絡則輸出目標值yDoubleQ,目標值與估計值的誤差定義為損失函數,具體算式為
(3)
(4)
其中:θ-表示目標網絡權重;θ表示主網絡權重。從式(3)中可看出,目標網絡中估計目標值需要通過主網絡選擇動作。利用梯度下降法更新主網絡權重θ,而目標網絡權重每隔固定時間步復制主網絡權重。具體表達如下
θ←θ-α·(yDoubleQ-Q(s,a|θ)·▽θQ(s,a|θ)
(5)
θ-←θ
(6)
其中:α表示學習率;▽θQ(s,a|θ)表示梯度。
根據2.1節(jié)對強化學習的基本原理介紹,依次設計編隊控制問題的狀態(tài)空間、動作空間、獎勵函數與停止條件。
2.2.1 狀態(tài)空間
從上述無人機編隊模型可看出,長機與僚機狀態(tài)需要經過通信鏈路傳輸,以便控制器決定控制策略。因此定義狀態(tài)空間S={s1,s2,s3,s4,s5,s6,s7,s8,s9},其中
(7)
式中:ev=vL-vF,為長機與僚機的相對速度;eψ=ψL-ψF,為長機與僚機的相對航向角;ey=yd-y,為隊形誤差,yd為期望隊形距離。
2.2.2 動作空間
無人機編隊中,僚機通過改變速度與航向角達到速度跟隨長機,在Y方向實現隊形距離保持??刂破鬏敵隽艡C航向角與速度指令,采樣時間內指令維持不變。在實際飛行情況中,無人機飛行速度范圍較大,結合航向角范圍,若直接輸出飛行指令則會導致可選動作過多(現實情況中超過100種指令動作),不利于后期訓練,因此將僚機速度與航向指令離散化并設計僚機動作庫。
設計僚機速度指令-1,0,1,分別為減速、勻速和加速3種動作;航向指令-1,0,1,分別為左偏航、航向不變和右偏航3種動作;經組合共9種僚機機動動作A,見表1。
表1 僚機機動動作
定義動作(a1,a2)∈A。將動作轉為具體離散化指令
(8)
式(8)表示,若僚機當前速度為v,則下一時刻期望速度為vd;若當前航向角為ψ,則下一時刻期望航向角為ψd。
為了更加符合無人機真實飛行環(huán)境,為速度指令與航向角指令添加限幅,即
(9)
式中:[vmin,vmax]表示速度范圍;[-ψmax,ψmax]表示無人機航向范圍。
2.2.3 獎勵函數
本文研究的編隊控制問題不僅需要達到期望隊形,還要保持期望隊形繼續(xù)飛行,除此以外,還要使得僚機控制指令滿足一定的指標。在上述條件下,設計了一種復合引導性獎勵函數。具體表達為
(10)
2.2.4 停止條件
DDQN控制器在學習過程中,設置每輪訓練時間為Tf,在驗證過程中,當編隊隊形距離過大或過小時提前結束本輪訓練,在訓練過程中設置的停止條件為
(11)
式中,ymin,ymax分別為編隊設定最小和最大距離。
本文采用DDQN算法解決無人機編隊控制,使僚機速度跟隨長機,并在Y方向上保持到期望隊形距離,保持飛行。DDQN編隊控制系統結構如圖2所示。
圖2 DDQN編隊控制系統結構圖
圖2中編隊飛行環(huán)境包括長機與僚機,MDP元素與上文設計相同。記憶庫用于存儲當前狀態(tài)、動作、獎勵、是否停止及新的狀態(tài)。在每一時間步,從記憶庫隨機采樣,批量更新神經網絡參數。神經網絡用于輸出動作價值Q,并經過動作選擇輸出動作庫指令,指令根據式(9)轉化為僚機的速度指令與航向指令輸入到編隊飛行環(huán)境中,僚機接受指令響應,更新狀態(tài)空間并根據式(10)計算當前獎勵,將其返回到記憶庫儲存,循環(huán)此過程直到訓練結束。
常見的動作選擇策略為ε-greedy策略,即選擇隨機動作的概率為ε,而選擇獎勵值最高的動作的概率為1-ε。本文在此基礎上添加εdecay參數使得探索概率逐漸降低并與訓練回合相關,即ε-greedy-soft策略,既能保證無人機探索能力獲得獎勵,又使得訓練后期探索概率降低達到訓練穩(wěn)定,具體做法為
(12)
式中:εdecay代表衰減數;e表示已經進行的回合數;eset表示設定的回合數,即eset回合后ε開始衰減。
采用DDQN的無人機編隊控制算法訓練時,前文定義的狀態(tài)空間信息組成聯合狀態(tài)S輸入到主神經網絡中,根據ε-greedy-soft策略選擇出動作a,輸出到僚機控制器中,并得到下一時刻狀態(tài)S_和當下的獎勵r,此過程產生的〈S,a,r,S_〉保存在記憶庫中,記憶庫滿后進行隨機采樣,依照式(5)更新主網絡權重。
參數設置:本文實驗建立的Double DQN神經網絡為256,512,256全連接層,激活函數均使用ReLU函數,網絡參數均使用Adam算法更新,其他超參數設置見表2。表中:emax為最大訓練回合數;batchSize表示抽樣數據量;M表示記憶庫最大容量;Maxstep表示每輪訓練最大步數。
表2 參數設置
訓練設置:長、僚機速度范圍為[30 m/s,70 m/s],航向角范圍為[-20°,20°]。初始時刻,長機與僚機速度均為50 m/s,航向角為0°,初始隊形與僚機保持X,Y方向500 m。訓練開始時,為長機施加隨機速度指令vLc、航向指令ψLc和期望距離yd。訓練結果獎勵如圖3所示。
圖3 每輪平均獎勵值
從圖3可以看出,初始時刻,僚機處于探索階段,無法得到獎勵,獎勵值為負,之后逐漸優(yōu)化動作策略,使得獎勵上升為正,在第500回合后,獎勵全部為正。當隨機施加長機指令與期望距離時,添加的噪聲方差較大,所以每輪獎勵差別較大,但是全為正獎勵。
將訓練好的控制器保存代入Simulink模型驗證,仿真時間為150 s,采樣時間為0.5 s。改變長機飛行指令與期望距離進行驗證,并在設計PID控制器與設計的深度強化學習DDQN控制器中進行對比,則僚機速度、長僚機相對速度、僚機航向角、Y方向間距變化與Y方向間距絕對值誤差分別如圖4~6所示。
圖4 長-僚機速度變化與相對速度曲線
從圖4~6可看出,僚機能夠通過訓練,學習跟隨長機,滿足智能化需求。由圖4可看出,PID控制器與DDQN編隊控制器均能夠控制僚機速度以跟隨長機。但是,PID控制器在前50 s長機加速階段并不能很好地跟隨長機,到50 s后跟蹤效果較好,而DDQN控制器則可以從初始時刻便很好地進行速度跟隨,且速度誤差基本能夠保持在0.1 m/s,這與獎勵函數設計一致。
由圖5~6可以看出,僚機能夠調整航向角、改變與長機的Y方向隊形間距,兩種控制器均能使僚機保持在期望距離,PID控制器初始時刻輸出航向角指令變化范圍更大,最大接近25°。距離控制雖然響應更快,但是初始yd=250 m時80 s內并不能保持到期望距離,原因在于PID控制器通過距離誤差輸出控制指令,而當初始時刻誤差較大時,通過控制器解算出的控制指令更大,因此初始時刻變化范圍更大,調節(jié)時間更長,響應超調更大。而DDQN控制器自學習到的跟蹤策略輸出指令更為平穩(wěn),也更早達到穩(wěn)定。由圖6可看出,距離跟蹤誤差基本小于1 m,與獎勵函數設計相同。
圖5 長-僚機航向角變化與Y方向距離變化
圖6 長-僚機Y方向距離誤差
通過上述仿真實驗可知,DDQN控制器在無任何先驗知識的情況下,通過訓練控制僚機自學習到跟蹤長機的最優(yōu)策略,極大地提高了無人機的智能化程度。除此以外,PID控制器需設計X,Y方向兩個控制器分別控制速度與間距,兩個控制器參數需要分別調節(jié),而DDQN控制器只需一個控制器即可輸出兩個指令控制編隊,該結果說明了本文DDQN控制器的有效性。
本文研究的編隊控制問題,引入以深度強化學習為基礎設計的DDQN編隊控制器。仿真表明,所設計的編隊控制器能夠有效控制僚機跟蹤長機,維持期望距離編隊。同時,DDQN控制器能夠提高無人機智能化與學習能力,與傳統控制器相比具有更好的控制效果。此外,深度強化學習在控制領域尚未研究充分,如信息不確定性、狀態(tài)不能完全觀測和引入多機協作與競爭機制等問題,未來將繼續(xù)對其進行理論研究,如何將訓練時間縮短,使無人機盡快學習到最優(yōu)策略也有待進一步研究解決。