劉安林,時正華
(河海大學(xué) 理學(xué)院,江蘇 南京 211100)
四旋翼飛行器作為一種復(fù)雜的無人技術(shù)設(shè)備,憑借其質(zhì)量輕、體積小、成本低、靈活機動的特點,在農(nóng)業(yè)植保[1]、工業(yè)監(jiān)測[2]、航空運輸[3]、軍事領(lǐng)域[4]等方面發(fā)揮廣泛效用.為保證飛行器能高效完成任務(wù),控制策略的設(shè)計至關(guān)重要.因此,許多研究著眼于對無人飛行系統(tǒng)進行智能化技術(shù)訓(xùn)練.
四旋翼飛行器是一種高度非線性、互相強耦聯(lián)的欠驅(qū)動系統(tǒng)[5].此外,加上實際飛行環(huán)境中的外部干擾,如何設(shè)計控制策略變得尤為復(fù)雜.為解決上述困難,當(dāng)前的研究提出了眾多控制策略.經(jīng)典的比例-積分-微分(PID)控制器[6]是根據(jù)系統(tǒng)誤差進行負反饋的過程,在穩(wěn)定的環(huán)境中已成功運用于四旋翼飛行器定高懸停、姿態(tài)控制等任務(wù).然而,PID算法忽略了系統(tǒng)中的非線性因素,具有超調(diào)量大、易受外部干擾等缺點,并且采用試錯法人工整定PID系數(shù)難以滿足控制性能的要求.為解決模型的非線性問題,增強抗干擾能力,涌現(xiàn)了眾多非線性控制策略,例如滑??刂芠7]、反步法[8]、自適應(yīng)控制[9]等.有些研究將上述幾種方法整合以提升控制策略的魯棒性[10,11],但是這些方法各有優(yōu)缺,并且模型的復(fù)雜性會加大控制策略的復(fù)雜度,不利于實施.
在過去幾十年中,人工智能的蓬勃發(fā)展也擴展到控制領(lǐng)域,許多研究學(xué)者基于神經(jīng)網(wǎng)絡(luò)、深度強化學(xué)習(xí)算法設(shè)計控制策略.具有強化學(xué)習(xí)功能的控制策略最早可以追溯到2005年,Waslande等[12]采用標(biāo)準(zhǔn)策略迭代方法實現(xiàn)了四旋翼飛行器的精準(zhǔn)跟蹤.近年來,Koch等[13]開發(fā)了高保真的仿真平臺用于測試飛行性能,同時使用深度確定性策略梯度(DDPG)、信賴域策略優(yōu)化(TRPO)以及近端策略優(yōu)化(PPO)算法進行內(nèi)環(huán)姿態(tài)控制,取得了比PID算法更優(yōu)的效果.Wang等[14]以及Hu等[15]分別使用DDPG、PPO算法對四旋翼飛行器進行速度控制,表明該算法在質(zhì)量和臂長方面的泛化能力優(yōu)于PID算法.然而,現(xiàn)有的強化學(xué)習(xí)控制策略大多集中在姿態(tài)和速度控制,位置控制相對較少.Tiwari等[16]利用增強隨機搜索(ARS)算法實現(xiàn)了對四旋翼飛行器的目標(biāo)位置控制.
基于上述文獻的啟發(fā),本文使用DDPG算法對四旋翼飛行器進行目標(biāo)高度及懸停控制.強化學(xué)習(xí)算法可以使智能體直接與環(huán)境進行交互,從神經(jīng)網(wǎng)絡(luò)中直接學(xué)習(xí)控制策略且無須對動力學(xué)模型進行假設(shè)和簡化.同時,DDPG算法控制策略使模型具有泛化能力.基于上述原因,本文使用DDPG算法對四旋翼飛行器進行目標(biāo)高度及懸??刂?為達到目標(biāo)高度控制效果,本文基于reward shaping理論設(shè)計了新穎的體現(xiàn)越界懲罰的獎勵函數(shù).由于智能體難以探索到最終目標(biāo),稀疏獎勵很難達到效果,本文設(shè)置多個獎勵引導(dǎo)智能體逐步到達目標(biāo).該函數(shù)設(shè)計越界懲罰,若智能體越界,將給出-10的懲罰并終止回合,解決了智能體易陷于環(huán)境邊界問題.仿真結(jié)果表明,本文的目標(biāo)高度控制策略的響應(yīng)速度比PID算法更快;在穩(wěn)態(tài)誤差性能指標(biāo)方面優(yōu)于增強隨機搜索(ARS)方法;在質(zhì)量、臂長方面具有泛化能力.本文的主要內(nèi)容安排如下:第一節(jié)建立了四旋翼飛行器的動力學(xué)模型,第二節(jié)主要介紹了所提出的基于深度確定性策略梯度的四旋翼飛行器的目標(biāo)高度控制,第三節(jié)介紹了仿真實驗的過程以及結(jié)果討論,驗證了DDPG控制器的有效性.第四節(jié)為全文結(jié)論.
本節(jié)將給出四旋翼飛行器的動力學(xué)模型的創(chuàng)建過程.四旋翼飛行器的基本結(jié)構(gòu)如圖1所示.
圖1 四旋翼飛行器及機體坐標(biāo)系
為描述四旋翼飛行器的位置和姿態(tài),建立了兩個坐標(biāo)系統(tǒng):地球固連坐標(biāo)系和機體坐標(biāo)系.四旋翼動力學(xué)模型主要根據(jù)牛頓第二運動定律建立,有
(1)
對于四旋翼飛行器的旋轉(zhuǎn)運動,依據(jù)動量矩方程建立模型.四旋翼飛行器由四個螺旋槳提供升力,升力方向始終與機體軸z軸的方向一致,四個旋翼分布在距質(zhì)心L的位置上.作用在機體上的總升力f為:
(2)
式(2)中:Ti(i=1,2,3,4)為不同螺旋槳提供的升力;ωi(i=1,2,3,4)表示螺旋槳轉(zhuǎn)速;cT為系數(shù).
通過分析由扭矩驅(qū)動的旋轉(zhuǎn)運動和由升力驅(qū)動的平移運動的動力學(xué)方程來建立模型.針對旋轉(zhuǎn)運動建立姿態(tài)動力學(xué)模型,將歐拉旋轉(zhuǎn)方程應(yīng)用于機體坐標(biāo)系,則施加到四旋翼飛行器上的合外力矩M可以表示為
(3)
(4)
對于平移運動,在地球固連坐標(biāo)系中應(yīng)用牛頓第二運動定律
(5)
(6)
式(6)中:S{·},C{·}分別表示sin(·),cos(·).最終,聯(lián)立旋轉(zhuǎn)運動和平移運動的動力學(xué)方程,可將四旋翼動力學(xué)表示為以下非線性微分方程:
對于四旋翼位姿控制問題,主要目標(biāo)是找到合適的控制策略以快速且穩(wěn)定的方式將四旋翼從初始狀態(tài)驅(qū)動到目標(biāo)狀態(tài)并懸停.基于策略梯度的算法最適合求解這類連續(xù)動作與連續(xù)狀態(tài)的問題.通常使用基于期望回報的梯度來調(diào)整參數(shù),尋找每一步的最佳動作,即策略梯度定理:
(7)
式(7)中:J(Aμ)為期望回報,ρAμ為策略Aμ的狀態(tài)分布,QAμ(s,a)為實際狀態(tài)價值函數(shù).
深度確定性策略梯度(DDPG)算法是一種策略學(xué)習(xí)方法,在策略梯度算法中引入神經(jīng)網(wǎng)絡(luò)模型.本節(jié)將給出使用DDPG算法對四旋翼飛行器進行目標(biāo)高度控制,并實現(xiàn)定點懸停的任務(wù).確定性策略是一種將每個狀態(tài)映射到最大概率的動作的策略,該動作是唯一確定的.因此,DDPG選擇給動作空間添加擾動量以實現(xiàn)探索,本文使用的是OU噪聲.
(8)
δt+1=rt+γQw(st+1,μ(st+1))-Qw(st,at)
(9)
式(9)中:rt為t時刻的獎勵;γ為折扣率;Qw(st,at)為critic目標(biāo)網(wǎng)絡(luò)Q值.
critic網(wǎng)絡(luò)通過最小化損失函數(shù)來更新參數(shù):
Qw(si,ai))2
(10)
wt+1=wt+αwwL(w)
(11)
式(10)~(11)中:L為損失函數(shù),N為批采樣尺寸,w為critic網(wǎng)絡(luò)參數(shù),αw為critic網(wǎng)絡(luò)學(xué)習(xí)率.
actor網(wǎng)絡(luò)的目標(biāo)是選出最佳動作,按DPG定理進行更新,更新方向為最大化Q值方向,actor網(wǎng)絡(luò)更新方式如下:
(12)
μt+1=μt+αμμJ(μ)
(13)
式(12)~(13)中:J(μ)為期望回報;μ為actor網(wǎng)絡(luò)參數(shù);Aμ(s)為表征actor網(wǎng)絡(luò)的策略;αμ為actor網(wǎng)絡(luò)學(xué)習(xí)率.
四旋翼飛行器目標(biāo)高度控制的確定性策略梯度算法的actor-critic網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 四旋翼控制的DDPG算法的AC框架
此外,DDPG為增加學(xué)習(xí)過程的穩(wěn)定性,分別創(chuàng)建目標(biāo)actor網(wǎng)絡(luò)、目標(biāo)critic網(wǎng)絡(luò),在訓(xùn)練完經(jīng)驗回放的數(shù)據(jù)之后,通過梯度下降法更新當(dāng)前網(wǎng)絡(luò)參數(shù),之后采用軟更新方法更新目標(biāo)網(wǎng)絡(luò)參數(shù).
w′←τw+(1-τ)w′
(14)
μ′←τμ+(1-τ)μ′
(15)
式(14)~(15)中:w′,μ′分別為目標(biāo)critic網(wǎng)絡(luò)參數(shù)及目標(biāo)actor網(wǎng)絡(luò)參數(shù);τ為目標(biāo)網(wǎng)絡(luò)的學(xué)習(xí)率.使用DDPG對四旋翼進行目標(biāo)高度控制的算法流程如下:
算法1 DDPG進行四旋翼目標(biāo)高度控制隨機初始化動作網(wǎng)絡(luò)的權(quán)重Aμ隨機初始化批評網(wǎng)絡(luò)的權(quán)重Qw初始化經(jīng)驗回放池D加載簡化的四旋翼動力學(xué)模型forepisode=1toMaxEpisodedo 初始化OU噪聲以實現(xiàn)動作探索 觀測初始四旋翼狀態(tài) fortimestep=1toMaxStepdo 選擇動作at=Aμ(st)+nt 根據(jù)控制信號at來運行動力學(xué)模型 獲得獎勵rt并到達下一狀態(tài)st+1 將經(jīng)驗(st,at,rt,st+1)存儲到經(jīng)驗回放池中 從回放池中隨機采樣經(jīng)驗 根據(jù)公式(10)(11)更新批評網(wǎng)絡(luò) 根據(jù)公式(12)(13)更新動作網(wǎng)絡(luò) 根據(jù)公式(14)(15)更新目標(biāo)網(wǎng)絡(luò) if超出安全范圍then break endif endforendfor
本實驗使用深度確定性策略梯度算法對四旋翼飛行器進行位姿訓(xùn)練,使飛行器到達目標(biāo)高度并懸停.使用第二節(jié)的動力學(xué)模型進行建模.基本的四旋翼參數(shù)如質(zhì)量、尺寸、轉(zhuǎn)動慣量展示如表1所示.
表1 四旋翼飛行器參數(shù)
本實驗是在Windows操作系統(tǒng)上運行,處理器為Intel Core i7-9700CPU@3.00GHz.該無人機仿真使用Python進行編程.對于網(wǎng)絡(luò)訓(xùn)練優(yōu)化,本文使用的是內(nèi)置Adam優(yōu)化器.深度確定性策略梯度算法的網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置如表2所示.
表2 DDPG算法訓(xùn)練參數(shù)
本實驗的任務(wù)是利用深度確定性策略梯度算法將四旋翼飛行器從初始位置處垂直驅(qū)動至目標(biāo)高度位置處懸停.首先初始位置是[0,0,0],設(shè)置目標(biāo)高度為[0,0,10].本實驗共進行1 200回合,每回合的最長運行時間為10秒,智能體每隔一個時間步長進行一次采樣,時間間隔為0.1秒.
為保證四旋翼飛行過程中的安全,實驗設(shè)置了安全范圍,對于位置x,y,范圍為[-150,150],對于高度z,范圍為[0,300].出于安全考慮,實驗的停止條件有兩個,一是越過安全范圍,二是超出回合最大運行時間.
獎勵函數(shù)作為強化學(xué)習(xí)中的核心部分,它引導(dǎo)智能體的期望行為,是強化學(xué)習(xí)的學(xué)習(xí)目標(biāo).針對四旋翼飛行器易陷入環(huán)境邊界的問題,本文基于回報函數(shù)塑造(rewardshaping)理論,設(shè)計了一個新穎的體現(xiàn)越界懲罰的獎勵函數(shù),引導(dǎo)智能體在邊界內(nèi)運動.本文所設(shè)計的獎勵函數(shù)為:
(16)
式(16)中:xe,ye,ze分別為當(dāng)前坐標(biāo)位置與目標(biāo)坐標(biāo)位置之間的差值,t為越界符號,未越界用0表示,越界用1表示.
本文基于reward shaping理論設(shè)計回報函數(shù),由于智能體難以探索到最終目標(biāo),稀疏獎勵很難達到效果.通過多個獎勵設(shè)置引導(dǎo)智能體逐步到達目標(biāo).每個時間步長給基礎(chǔ)獎勵1,克服保守行為,鼓勵智能體運動.以當(dāng)前位置與目標(biāo)位置之間的距離作為懲罰項.設(shè)計越界懲罰,如果智能體越界將給出-10的懲罰,并終止回合.
在獎勵函數(shù)設(shè)計中,本文的一個新穎的體現(xiàn)越界懲罰的獎勵函數(shù),不體現(xiàn)越界懲罰的獎勵函數(shù)為:
(17)
文獻[17]中使用Soft Actor-Critic (SAC)算法進行四旋翼飛行器的位姿控制,將文獻[17]中的獎勵函數(shù)用于本文的DDPG框架中,所設(shè)計的獎勵函數(shù)為:
(18)
本文將所設(shè)計的新穎的體現(xiàn)越界懲罰的獎勵函數(shù)公式(16)與公式(17)以及公式(18)中的獎勵函數(shù)進行試驗對比,通過兩個指標(biāo)衡量任務(wù)的訓(xùn)練效果,一是累計獎勵,二是穩(wěn)態(tài)誤差.本任務(wù)為目標(biāo)高度控制,因此穩(wěn)態(tài)誤差計算的是每回合實際高度與目標(biāo)高度之間的差值.在每回合中,較高的累計獎勵意味著較低的穩(wěn)態(tài)誤差,越接近目標(biāo)高度.訓(xùn)練過程中每回合的累計獎勵以及穩(wěn)態(tài)誤差對比如圖3~4所示.
從實驗對比圖可以看出,本文所設(shè)計的新穎的體現(xiàn)越界懲罰的獎勵函數(shù)(公式(16))在訓(xùn)練后期收斂,且獎勵值保持在一個很高的水平,而將文獻[17]中的獎勵函數(shù)用在DDPG算法中(公式(18))以及不體現(xiàn)越界懲罰的獎勵函數(shù)(公式(17))進行實驗,累計獎勵一直在波動,并未收斂.從誤差角度,本文所設(shè)計的獎勵函數(shù)使得誤差保持在一個較低的水平,訓(xùn)練后期逐步趨于0,而文獻[17]中的獎勵函數(shù)以及不體現(xiàn)越界懲罰的獎勵函數(shù)誤差還一直較高,說明本文所設(shè)計的新穎的獎勵函數(shù)的有效性.
(a)累計獎勵對比
(a)累計獎勵對比
使用本文所設(shè)計的獎勵函數(shù)的DDPG算法在訓(xùn)練的初期,沒有收斂,因此獎勵值很低并且波動較大,同時穩(wěn)態(tài)誤差很高.在750回合往后,獎勵值逐漸升高,并且獎勵值維持在一個較高的水平,說明訓(xùn)練效果較好且穩(wěn)定.使用深度確定性策略梯度算法對四旋翼飛行器進行目標(biāo)高度控制能夠使穩(wěn)態(tài)誤差保持在一個很低的水平,進一步說明了該算法在四旋翼飛行器目標(biāo)高度控制方面的有效性.為表明訓(xùn)練后期結(jié)果的穩(wěn)定性,本文展示最后100回合的累計獎勵和穩(wěn)態(tài)誤差的描述性統(tǒng)計,如表3所示.
表3 累計獎勵、穩(wěn)態(tài)誤差描述性統(tǒng)計
在訓(xùn)練的最后100回合中,獎勵值一直保持在一個很高的水平,且波動小,標(biāo)準(zhǔn)差為4.292 9,而穩(wěn)態(tài)誤差值同時保持很低的水平,標(biāo)準(zhǔn)差為0.943 5,說明訓(xùn)練效果穩(wěn)定.
為測試算法的穩(wěn)定性,使用DDPG算法進行目標(biāo)高度的控制任務(wù),將四旋翼由初始位置[0,0,0]驅(qū)動到[0,0,10]處懸停,并與整定良好的PID控制器進行對比,PID控制器參數(shù)設(shè)置為比例系數(shù)為15,積分系數(shù)為1,微分系數(shù)為15.結(jié)果如圖5所示.從圖5可以看出,在相同控制任務(wù)下,DDPG策略能夠更快的到達目標(biāo)高度,并在目標(biāo)高度10 m處懸停,稍有抖動,而PID需要5秒左右才能到達目標(biāo)高度懸停.
圖5 DDPG策略和PID控制器的位置控制響應(yīng)性能
為驗證控制系統(tǒng)的有效性,本文設(shè)置了兩個不同的目標(biāo)高度進行測試.其余的任務(wù)設(shè)置保持不變,目標(biāo)高度分別為[0,0,20]、[0,0,30].仿真結(jié)果表明,在不同的目標(biāo)高度下,飛行器均能快速到達指定高度并保持懸停.高度通道的響應(yīng)曲線如圖6所示.
(a)目標(biāo)高度為20 m
與其他強化學(xué)習(xí)算法相比,本文所提出的目標(biāo)高度控制DDPG方法在穩(wěn)態(tài)誤差性能指標(biāo)方面優(yōu)于Tiwari等[16]提出的增強隨機搜索(ARS)方法.分別使用兩種算法設(shè)置相同的任務(wù),初始位置[0,0,10],目標(biāo)位置[0,0,150],目標(biāo)高度控制性能對比如表4所示.由表4可得,在相同控制任務(wù)下,本文所使用的DDPG算法在進行目標(biāo)高度控制時,高度的穩(wěn)態(tài)誤差更小.
表4 控制器性能分析
四旋翼飛行器的位姿控制最終是要將控制策略運用于真機飛行.因此,模型的泛化能力和魯棒性尤為重要.本節(jié)主要研究對于不同質(zhì)量以及不同臂長的四旋翼控制策略的泛化能力.使用目標(biāo)高度控制任務(wù)進行模型泛化能力測試,將四旋翼從初始位置[0,0,0]驅(qū)動到目標(biāo)高度[0,0,10]處并懸停.
質(zhì)量對四旋翼飛行器的影響尤為顯著,因為在實際飛行中,經(jīng)常會給四旋翼飛行器加負載,如添加攝像頭等.本文通過逐步給四旋翼飛行器加負載的方式探究控制策略對于質(zhì)量的泛化能力.在固定其他參數(shù)不變的前提下,分別對整體質(zhì)量為0.958 kg、1 kg、1.1 kg的四旋翼進行目標(biāo)高度測試.不同負載的四旋翼飛行器訓(xùn)練效果如圖7所示.
在固定其他參數(shù)不變的情況下,對臂長進行泛化能力測試.將四旋翼的臂長L分別增大和減小25%對四旋翼飛行器進行目標(biāo)高度控制任務(wù),四旋翼飛行器的臂長分別為0.3 m、0.4 m、0.5m.不同臂長的四旋翼飛行器的目標(biāo)高度控制如圖8所示.
圖7 四旋翼飛行器質(zhì)量泛化能力測試
圖8 四旋翼飛行器臂長泛化能力測試
從圖7~8可以看出,在固定其他參數(shù),僅改變四旋翼飛行器質(zhì)量參數(shù)以及臂長參數(shù)的情況下,各通道的響應(yīng)曲線沒有太大變化,控制策略始終能完成四旋翼飛行器的目標(biāo)高度控制任務(wù),并實現(xiàn)懸停.通過對質(zhì)量、臂長的泛化能力測試,說明深度確定性策略梯度算法在四旋翼飛行器目標(biāo)高度控制方面具有魯棒性.
(1)本文基于回報函數(shù)塑造(reward shaping)理論,設(shè)計了一個新穎的體現(xiàn)越界懲罰的獎勵函數(shù),解決了飛行器易陷于環(huán)境邊界的問題.利用深度確定性策略梯度算法實現(xiàn)了四旋翼飛行器的目標(biāo)高度及懸停控制.該策略響應(yīng)速度快于PID算法.與增強隨機搜索(ARS)算法相比,該策略在高度上的穩(wěn)態(tài)誤差更小.
(2)在質(zhì)量、臂長方面對本文的控制策略進行了泛化能力測試,驗證了該策略的有效性與魯棒性.