羅錦彬
(龍巖學院 物理與機電工程學院,福建 龍巖 364000)
近年來,無人機引起了許多研究人員的極大興趣并獲得了廣泛的應用[1-3]。四旋翼無人機具有穩(wěn)定懸停、垂直起飛著陸、高機動性和簡單機械結(jié)構(gòu)等優(yōu)點,但由于其非線性動態(tài)、強耦合、多輸入多輸出等特點,難以實現(xiàn)高性能控制,復雜的任務和動態(tài)的環(huán)境也增加了控制的難度。針對四旋翼無人機的控制問題,諸如 PID(Proportional Integral Derivative)之類的線性控制器因其易于實施和可觀的性能常被用于四旋翼無人機的控制[4]。但當飛行器失去平衡時,該類方法的性能會下降,研究者對此提出了諸如反步控制器、具有分層動態(tài)遞歸反演的非線性控制器以及二階滑??刂破鞯姆蔷€性控制方法[5]。在現(xiàn)實應用場景中,四旋翼無人機經(jīng)常受到風等多種干擾??紤]到這些問題,有研究者提出了干擾抑制控制器,例如魯棒信號補償控制器[6]和基于基本函數(shù)神經(jīng)網(wǎng)絡 (RBFNN) 補償?shù)目刂破???箶_技術(shù)提高了四旋翼無人機在戶外工作時的性能。但是,這些方法無法優(yōu)化復合性能指標。對此,LQ(Linear Quadratic)控制將一般動力系統(tǒng)化為線性化系統(tǒng),通過求解Riccati方程得到最優(yōu)控制器。Riccati方程是 Hamilton-Jacobi-Bellman (HJB) 方程的簡化形式,而人工智能算法中的強化學習算法是求解HJB方程的有效方法。但是,現(xiàn)有基于強化學習的控制器沒有考慮計算消耗和執(zhí)行器的飽和度。
如何設計四旋翼無人機的控制策略使其適應環(huán)境的動態(tài)性是一個亟待解決的關(guān)鍵問題。針對現(xiàn)有控制方法存在的問題,本文基于深度強化學習這一人工智能中的主流算法,提出了無人機控制策略(記為DRLUAVC)。該策略利用Critic-Actor神經(jīng)網(wǎng)絡來實現(xiàn)無人機自動控制,采用基于事件觸發(fā)的控制更新機制以減少計算開銷。
首先對所使用的無人機模型進行介紹,并提出無人機控制優(yōu)化問題。將四旋翼無人機作為研究模型,其慣性坐標系(X、Y和Z)和機身坐標系(X′、Y′和Z′)如圖1所示。四旋翼無人機的動力學模型可表示為[7-8]:
(1)
其中m是四旋翼無人機的質(zhì)量;以慣性系為參考,px、py和pz是無人機在機身坐標系中的位置;φ、θ和ψ是描述機身坐標系相對于慣性坐標系方向的歐拉角;τ1、τ2和τ3為三軸的扭矩,τ4是總推力;Ix、Iy和Iz是機身坐標系三軸上的轉(zhuǎn)動慣量(MoI);L是從CoM 到每個執(zhí)行器中心的長度;JR記錄了執(zhí)行器的MoI,ΩR提供了執(zhí)行器的轉(zhuǎn)速;d1,…,d6是外部干擾。
圖1 坐標系
扭矩和總推力取決于執(zhí)行器的轉(zhuǎn)速,根據(jù)系統(tǒng)模型,可以得到推力和扭矩τ與轉(zhuǎn)速Ω的關(guān)系:
(2)
其中CT和CM是將轉(zhuǎn)速轉(zhuǎn)換為推力和扭矩的參數(shù)。假設執(zhí)行器的動力學模型是線性的,轉(zhuǎn)速Ω與控制信號u之間的關(guān)系可表示為:Ω=kmu+bm,其中km和bm是電機參數(shù)。
假設四旋翼無人機的控制信號受飽和邊界約束,即{|ui|≤λα}。四旋翼無人機的負載和功率非常有限,無法搭載一些強大的計算平臺。對此,設計了一種非周期性更新控制器來減少計算消耗。所提出的控制器會對傳感器的數(shù)據(jù)進行持續(xù)采樣,但控制動作和控制器參數(shù)將會按照單調(diào)遞增序列{δi|δi<δi+1}更新,其中δi是第i個觸發(fā)的時刻。
u=[u1,u2,u3,u4]T
(3)
觸發(fā)狀態(tài)用xj表示,而相關(guān)的控制動作是u(δj)。根據(jù)狀態(tài)誤差和控制約束,設計的四旋翼無人機控制器性能指標定義如下:
(4)
其中W是對稱正矩陣,可用于設置收斂速度;λ是一個正向量,可用于設置約束邊界;u是由策略μ(x(δj))生成的控制值(即動作)。所提出控制器的目標是穩(wěn)定系統(tǒng)式(3)并最小化性能指標式(4)。
在本節(jié)中,為四旋翼無人機設計了一個基于強化學習的控制器(記為DRLUAVC),所提出的控制器包含一個值函數(shù)(用于評估策略)和一個策略(用于生成動作)。DRLUAVC使用Critic網(wǎng)絡逼近價值函數(shù),使用Actor網(wǎng)絡確定動作。式(4)可以被轉(zhuǎn)化為
(5)
其中V*是最佳性能指標。
DRLUAVC是事件觸發(fā)控制器,當滿足設定條件時,會對動作進行更新??刂破鹘邮盏降南到y(tǒng)狀態(tài)是不連續(xù)的,最優(yōu)控制可以描述為:
(6)
(7)
采樣誤差定義為采樣狀態(tài)和實時狀態(tài)之間的差距,用ej表示:
ej=x(δj)-x(t)=xj-x
(8)
事件觸發(fā)條件具有以下形式:
(9)
其中,α是收斂速率,ru(xj)的定義如下所示:
(10)
(11)
事件觸發(fā)速率β2是用于平衡性能和計算消耗的。β2的值越小,說明事件觸發(fā)次數(shù)越多,計算消耗越大,性能越高。使用神經(jīng)網(wǎng)絡來計算V*和μ*,用于計算V*的網(wǎng)絡稱為Critic,用于近似μ*的網(wǎng)絡稱為Actor。所提出的事件觸發(fā)RL控制的詳細過程如算法1所示。
算法1 基于強化學習的無人機控制算法
1:初始化神經(jīng)網(wǎng)絡Critic和Actor權(quán)重
2:For eachiin Epoch_MAX do
3:隨機初始化x(0),x0←x(0),j←0
4:計算μ0
5:For eachtin Step_MAX do
6:u(t)←μj
8:觀察回報r(t)和新狀態(tài)x(t+ 1)
9:If‖x(t)-xj‖2>βzeTthen
10:rj←r(t),xj+1←x(t)
11:在經(jīng)驗緩沖區(qū)中保存轉(zhuǎn)移(xj,μj,rj,xj+1)
12:隨機從緩沖區(qū)采樣轉(zhuǎn)移
13:使用式(14)和式(15)更新網(wǎng)絡權(quán)重
14:計算μj+1
15:j←j+1
經(jīng)驗緩沖區(qū)用于存儲歷史的數(shù)據(jù),其中,xj和xj+1是系統(tǒng)狀態(tài),uj是控制值,rj是回報值。值函數(shù)Q(x,u)定義為:
(12)
其中ωc是系數(shù),εc是網(wǎng)絡和實際Q值之間的誤差。μ(x)定義為
(13)
其中ωα是系數(shù),φα表示隱藏層神經(jīng)元,tanh是激活函數(shù)。將式(12)和式(13)代入式(7)中,可以得到Critic網(wǎng)絡權(quán)重的更新公式,如下所示:
(14)
最優(yōu)控制μ(x)可以使Q(xj)值最小化。Critic網(wǎng)絡權(quán)重的更新公式如下所示:
(15)
控制器僅在事件觸發(fā)發(fā)生時進行控制更新,因此實際的控制規(guī)則如下所示:
(16)
(17)
(18)
此時,對式(17)取導數(shù)后可得:
(19)
其中K1和K2是參數(shù),用于調(diào)整約束邊界?!?-diag(μ2)j‖的最小值可以根據(jù)式(12)、式(13)用λ確定。如果滿足以下不等式,
(20)
(21)
仿真實驗部分使用無人機仿真軟件進行實驗評估,實驗環(huán)境配置為CPU i7-10700 2.9 GHz、64 GB內(nèi)存和1 TB固態(tài)硬盤。
用于仿真的無人機是四旋翼無人機,無人機的質(zhì)量為1500克,半徑為45厘米,重力加速度為9.8 m/s2,x、y、z軸的慣性矩分別為0.0175、0.0175和0.0318 Ns2/rad,電機矩為0.000099 Ns2/rad,推力系數(shù)CT為0.0000111 N(rad/s)-2,扭矩系數(shù)CM為0.000000149 N(rad/s)-2,電機速度系數(shù)km為646 rad/s,電機速度偏差為166 rad/s。執(zhí)行器的控制信號取值范圍為(0, 1)。Critic和Actor網(wǎng)絡的初始權(quán)重服從(-1, 1)的均勻分布,無人機的初始狀態(tài)也是隨機選擇的。Actor網(wǎng)絡隱藏層的神經(jīng)元數(shù)為100,Critic網(wǎng)絡隱藏層中的神經(jīng)元數(shù)為300。Actor網(wǎng)絡的激活函數(shù)為tanh。
在實驗中,一個步驟包括5個流程,即狀態(tài)輸入、動作計算、狀態(tài)更新、策略訓練和數(shù)據(jù)收集。為了分析步驟中各流程的計算時間,執(zhí)行1000個步驟,并統(tǒng)計每個流程的平均計算時間,結(jié)果如圖2所示。由圖2可知,策略訓練和動作計算所需的計算時間占總時間的80%以上。
仿真實驗提出了一個穩(wěn)定性控制任務來驗證所提出方法的控制性能,以評估本控制策略在維持穩(wěn)定性方面的性能。在此模擬過程中,無人機的初始狀態(tài)為[-5,5,0,0,0,0,0,0,0,0,0,0],無人機根據(jù)Actor網(wǎng)絡生成的動作保持穩(wěn)定。我們在系統(tǒng)中添加隨機的干擾噪聲,其方差為1。當事件觸發(fā)發(fā)生時,執(zhí)行動作的更新算法、Actor網(wǎng)絡的權(quán)重和Critic網(wǎng)絡的權(quán)重。如圖3、圖4所示,無人機從初始狀態(tài)很快被調(diào)節(jié)到了平衡穩(wěn)定狀態(tài)。由圖5可知,無人機的動作在2.5秒后變得穩(wěn)定,隨后保持著較小的變化幅度以對抗干擾。當滿足事件觸發(fā)條件時,動作不連續(xù)更新,雖然節(jié)省了計算資源,但是會導致如圖4所示的角速率抖動。通過上述結(jié)果和分析可知,所提出的策略能夠在隨機干擾的環(huán)境中保持穩(wěn)定,結(jié)合圖2中動作計算、狀態(tài)更新和策略訓練的計算時間結(jié)果可知,提出的策略維持無人機穩(wěn)定的計算時間開銷是可以接受的。
圖2 各流程的耗時
圖3 無人機的位置和速度變化情況
圖4 無人機的姿態(tài)變化情況 圖5 無人機的動作變化情況
本研究提出了基于深度強化學習算法的無人機自動控制策略,使用了兩個神經(jīng)網(wǎng)絡來優(yōu)化控制策略,并結(jié)合事件觸發(fā)的驅(qū)動模式來降低計算成本,提高系統(tǒng)的魯棒性。仿真實驗結(jié)果表明所提出的策略具有有效性。在未來的研究工作中,我們將針對更復雜的無人機系統(tǒng)優(yōu)化基于深度強化學習的控制器。