孫 丹,高 東,鄭建華+,韓 鵬
(1.中國科學(xué)院 國家空間科學(xué)中心,北京 100190; 2.中國科學(xué)院大學(xué) 國家空間科學(xué)中心,北京 100190)
四旋翼靈活方便的特點(diǎn)使其被廣泛應(yīng)用于各領(lǐng)域,智能化和自主性的要求越來越高,因此有必要對四旋翼的自主控制進(jìn)行研究。其中強(qiáng)化學(xué)習(xí)(reinforcement learning,RL)與最優(yōu)控制、自適應(yīng)控制關(guān)系密切[1,2],不需要被控對象準(zhǔn)確的數(shù)學(xué)模型,而是通過“試錯(cuò)”探索,不斷優(yōu)化得到最終的控制策略,為實(shí)現(xiàn)無人機(jī)智能化控制提供了新途徑。
已有學(xué)者將RL相關(guān)算法引入到了無人機(jī)控制中。Koch等[3]利用RL構(gòu)建智能飛行控制系統(tǒng),用于無人機(jī)的內(nèi)環(huán)姿態(tài)控制,其精度和性能優(yōu)于傳統(tǒng)的PID控制器。Wang等[4]利用RL原理進(jìn)行運(yùn)動(dòng)規(guī)劃,實(shí)現(xiàn)不確定環(huán)境和有噪聲情況下多無人機(jī)的避撞。Zeng等[5]利用深度RL進(jìn)行無人機(jī)的軌跡優(yōu)化。Rodriguez-Ramos等[6]利用RL中深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法實(shí)現(xiàn)無人機(jī)在移動(dòng)平臺上的自主降落。DDPG算法利用神經(jīng)網(wǎng)絡(luò)進(jìn)行值函數(shù)逼近,直接對價(jià)值期望求導(dǎo),不需要選取最優(yōu)動(dòng)作,適合四旋翼這種連續(xù)動(dòng)作狀態(tài)空間的情況,但是常規(guī)的DDPG算法在進(jìn)行四旋翼位置控制時(shí),容易出現(xiàn)靜差。關(guān)于該誤差產(chǎn)生的原因,有學(xué)者指出,RL中利用貝爾曼方程推導(dǎo)出的動(dòng)作值函數(shù),是有偏的[7]和非一致的[8],其中Hesselt等[7]證明了貝爾曼等式中的最大值操作將偏差引入到了動(dòng)作值估計(jì)中,從而導(dǎo)致了過估計(jì)。Zhang等[9]表明RL中狀態(tài)、動(dòng)作值估計(jì)的分布是偏斜的,使智能體傾向于選擇預(yù)期收益較低且被高估的可能性較高的策略,從而限制了算法的性能。為了降低算法中值估計(jì)誤差產(chǎn)生的影響,實(shí)現(xiàn)四旋翼位置的準(zhǔn)確跟蹤,Tyler Lu等[10]提出了一個(gè)本地備份流程用來確保全局一致性,從而減小估計(jì)偏差帶來的影響,但是該方法會(huì)導(dǎo)致算法復(fù)雜度的提高,不利于在四旋翼控制器中部署。
針對該問題,本文借鑒傳統(tǒng)控制方法中積分的思想,提出了帶積分補(bǔ)償器的改進(jìn)深度確定性策略梯度(deep deterministic policy gradient with integral compensator,DDPG-IC)控制器,用于四旋翼位置姿態(tài)的自主穩(wěn)定控制。本文首先介紹了四旋翼模型,然后簡單介紹了RL與DDPG算法的原理,分析了基于普通DDPG算法的四旋翼自主控制器在位置控制中容易產(chǎn)生靜差的原因,并將傳統(tǒng)控制中積分補(bǔ)償?shù)乃枷胍隦L算法中,提出了DDPG-IC算法,最后建立仿真環(huán)境,驗(yàn)證了基于DDPG-IC算法的四旋翼自主控制系統(tǒng)在消除位置靜差方面的有效性。
本節(jié)建立四旋翼模型的目的是產(chǎn)生交互數(shù)據(jù)用于控制算法的訓(xùn)練,不會(huì)對控制算法的設(shè)計(jì)產(chǎn)生影響。建模過程中涉及兩個(gè)坐標(biāo)系,分別為地球固連坐標(biāo)系和機(jī)體坐標(biāo)系。地球固連坐標(biāo)系 (E,XE,YE,ZE) 用于研究四旋翼相對于地面的運(yùn)動(dòng),以無人機(jī)起飛位置作為坐標(biāo)原點(diǎn)E,XE指向東,ZE指向地,YE的方向由右手定則得到。機(jī)體坐標(biāo)系 (B,XB,YB,ZB) 與四旋翼固連,其原點(diǎn)B取在四旋翼的重心位置,3個(gè)坐標(biāo)軸的指向與地球固連坐標(biāo)系一致,如圖1所示。
圖1 四旋翼及坐標(biāo)系
(1)
(2)
對四旋翼進(jìn)行受力分析,并通過拉格朗日方法對模型進(jìn)行簡化和線性化處理,得到簡化后的四旋翼無人機(jī)模型為[12]
(3)
其中,m表示四旋翼質(zhì)量,I1~I(xiàn)3為四旋翼的轉(zhuǎn)動(dòng)慣量,K1~K6為阻力系數(shù)。
強(qiáng)化學(xué)習(xí)一般將環(huán)境建模成馬爾科夫決策過程(Markov decision process,MDP),表示為M=(S,A,P,R,γ)[13], 其中S和A分別表示有限狀態(tài)集合和有限動(dòng)作集合,R(s,a) 為即時(shí)獎(jiǎng)勵(lì),γ∈[0,1] 為折扣因子,用來計(jì)算累積回報(bào),p(st+1|st,at) 為狀態(tài)轉(zhuǎn)移概率,它具有馬爾科夫特性,即
p(st+1|s1,a1,…,st,at)=p(st+1|st,at)
(4)
定義策略為狀態(tài)到動(dòng)作的映射,用符號π表示,定義狀態(tài)值函數(shù)Vπ(s)為從狀態(tài)s開始采用策略π后獲得的累積回報(bào)的期望值,即
Vπ(s)=E[∑t≥0γtR(st,π(st))]
(5)
在狀態(tài)s處依據(jù)策略π采取動(dòng)作a后獲得的累積回報(bào)為動(dòng)作值函數(shù),即
Qπ(s,a)=E[∑t≥0γtR(st,at)]
(6)
經(jīng)推導(dǎo),動(dòng)作值函數(shù)遵從貝爾曼期望等式
Qπ(s,a)=Eπ[Rt+1+γQπ(st+1,at+1)]
(7)
強(qiáng)化學(xué)習(xí)的目標(biāo)是優(yōu)化策略使得累積獎(jiǎng)勵(lì)J(π)=∑t≥0γtR(st,π(st)) 最大,DDPG算法即是強(qiáng)化學(xué)習(xí)中進(jìn)行策略優(yōu)化的一種算法。
四旋翼的控制信號由控制策略產(chǎn)生,將控制策略表示為函數(shù)Aμ,其中μ是參數(shù),策略函數(shù)的優(yōu)化方向?yàn)槔鄯e獎(jiǎng)勵(lì)增大。由DDPG算法可知,策略的梯度為
(8)
其中,ρAμ為服從確定性策略的狀態(tài)分布,QAμ(s,a) 為狀態(tài)動(dòng)作值函數(shù)值,但是該值難以準(zhǔn)確獲得,因此用一個(gè)近似函數(shù)Qω(s,a) 進(jìn)行逼近,ω為參數(shù),該近似函數(shù)稱為評價(jià)函數(shù)。評價(jià)函數(shù)通過最小化時(shí)間差分(temporal-difference,TD)誤差進(jìn)行優(yōu)化,TD誤差δt定義為
δt=rt+γQω(st+1,Aμ(st+1))-Qω(st,at)
(9)
最小化TD誤差的一個(gè)簡單方法是隨機(jī)梯度下降
(10)
其中,αω為學(xué)習(xí)速率。動(dòng)作函數(shù)中的參數(shù)更新為
(11)
其中,αμ為學(xué)習(xí)速率,式中用評價(jià)函數(shù)替換掉原來的動(dòng)作值函數(shù)真值。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練要求數(shù)據(jù)是相互獨(dú)立的,但是強(qiáng)化學(xué)習(xí)的數(shù)據(jù)是按照順序采集的,數(shù)據(jù)之間具有很強(qiáng)的關(guān)聯(lián)性。為了打破數(shù)據(jù)之間的關(guān)聯(lián)性,增強(qiáng)算法的穩(wěn)定性和效率,設(shè)置經(jīng)驗(yàn)回放緩存區(qū)(replay buffer)和獨(dú)立的目標(biāo)網(wǎng)絡(luò)[14]。
訓(xùn)練過程中發(fā)現(xiàn),基于常規(guī)DDPG算法的四旋翼控制器在進(jìn)行位置控制時(shí)存在靜差,四旋翼最終穩(wěn)定的位置與期望位置之間始終存在一個(gè)誤差。該靜差出現(xiàn)的一個(gè)主要原因是強(qiáng)化學(xué)習(xí)中得到準(zhǔn)確的值函數(shù)估計(jì)很難。DDPG算法使用神經(jīng)網(wǎng)絡(luò)來估計(jì)值函數(shù),并且通過最大化Q函數(shù)來優(yōu)化策略[15],因此,當(dāng)值函數(shù)的估計(jì)存在誤差時(shí),算法的性能和收斂性會(huì)受到很大影響。Lillicrap等[16]通過仿真實(shí)驗(yàn),比較了經(jīng)過訓(xùn)練之后的DDPG算法得到的值估計(jì)和真實(shí)回報(bào)的差別,發(fā)現(xiàn)在簡單任務(wù)中,DDPG估計(jì)的回報(bào)值與真實(shí)回報(bào)之間基本沒有系統(tǒng)誤差,但是任務(wù)越復(fù)雜,DDPG中的Q估計(jì)越不準(zhǔn)確,與真實(shí)回報(bào)之間的系統(tǒng)誤差越大。從式(8)中可以看出,DDPG算法中策略梯度的更新依賴狀態(tài)動(dòng)作值函數(shù)QAμ(s,a) 的估計(jì)值Qω(s,a), 如果學(xué)習(xí)到的該估計(jì)值不準(zhǔn)確,那么策略網(wǎng)略的梯度更新方向就存在偏差[17],導(dǎo)致算法無法收斂到全局最優(yōu)解。值函數(shù)估計(jì)不準(zhǔn)確在簡單系統(tǒng)或者是離散動(dòng)作空間中影響不大,但是對四旋翼這種復(fù)雜的連續(xù)狀態(tài)動(dòng)作空間的系統(tǒng)會(huì)產(chǎn)生較大的影響,導(dǎo)致位置控制出現(xiàn)靜差。同時(shí),DDPG算法中采用的TD學(xué)習(xí)、異步策略(off-policy)和非線性函數(shù)估計(jì)器會(huì)產(chǎn)生聯(lián)合效應(yīng),將方差和偏差引入到了估計(jì)器中[7]。
此外,獎(jiǎng)勵(lì)函數(shù)的設(shè)置對策略優(yōu)化的影響大。強(qiáng)化學(xué)習(xí)的目標(biāo)是最大化累積獎(jiǎng)勵(lì),因此獎(jiǎng)勵(lì)函數(shù)在強(qiáng)化學(xué)習(xí)算法中具有非常重要的作用,影響到算法的學(xué)習(xí)效果。通常,獎(jiǎng)勵(lì)函數(shù)根據(jù)具體任務(wù)人工進(jìn)行設(shè)置,若獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)不適合該任務(wù)的要求,那么最終學(xué)習(xí)到的策略在很大程度上無法滿足任務(wù)的要求。
為了消除靜差,提高四旋翼控制系統(tǒng)的準(zhǔn)確性,對算法的訓(xùn)練過程進(jìn)行調(diào)整,如增加訓(xùn)練步數(shù)、更改神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)等,能夠在一定程度上改善控制器的性能,減小位置靜差,但是無法將其消除;構(gòu)造更合適的獎(jiǎng)勵(lì)函數(shù)也能減小位置跟蹤靜差,但是需要仔細(xì)調(diào)整其中的系數(shù),算法的推廣性不好。由于傳統(tǒng)控制中普遍使用積分器解決靜差問題,本文借鑒其中思想,嘗試將積分補(bǔ)償引入到DDPG算法中,提出了DDPG-IC算法,用于解決DDPG算法在四旋翼位置控制中存在的靜差問題,同時(shí)降低算法受獎(jiǎng)勵(lì)函數(shù)設(shè)置的影響程度。
常規(guī)四旋翼DDPG控制器中將位置誤差作為狀態(tài),基于DDPG-IC算法的控制器引入積分器,將過去時(shí)刻的誤差進(jìn)行累積作為補(bǔ)償后的狀態(tài)誤差,即
(12)
其中,set為t時(shí)刻的狀態(tài)誤差,sci為補(bǔ)償后的狀態(tài)誤差,β為系數(shù),數(shù)值一般較小。這樣,輸入到策略網(wǎng)絡(luò)中的狀態(tài)包含了當(dāng)前的狀態(tài)誤差和過去的累積誤差,如果靜差存在,策略網(wǎng)絡(luò)會(huì)持續(xù)輸出動(dòng)作減小靜差,直到靜差為零,系統(tǒng)取得平衡。直接將積分補(bǔ)償后的狀態(tài)誤差添加到原始狀態(tài)空間中,會(huì)增加狀態(tài)空間的維度,增大算法的復(fù)雜度和探索的難度,所以采用積分補(bǔ)償后的狀態(tài)誤差替換原來的狀態(tài)誤差,使得狀態(tài)空間包含累積誤差的同時(shí),不會(huì)增加狀態(tài)空間的維度。
但是積分補(bǔ)償器的引入一定程度增加了系統(tǒng)的慣性,會(huì)增長控制器的調(diào)節(jié)時(shí)間,同時(shí),式(12)定義的積分補(bǔ)償狀態(tài)誤差包含當(dāng)前誤差與過去所有累積誤差,隨著時(shí)間和控制回合步數(shù)的增加,累積誤差的作用會(huì)越來越大,可能會(huì)導(dǎo)致控制算法過分考慮舊數(shù)據(jù)的累積誤差而降低對當(dāng)前狀態(tài)誤差的關(guān)注,從而降低算法的性能。針對該問題,引入權(quán)重因子λ,用于調(diào)節(jié)過去時(shí)刻誤差在累積誤差中的比重,因此積分補(bǔ)償后的狀態(tài)誤差變?yōu)?/p>
(13)
其中,λ∈[0,1], 該系數(shù)的加入使得以前時(shí)刻的誤差的作用逐漸降低,保證了算法對近期狀態(tài)誤差的關(guān)注,使得算法在關(guān)注當(dāng)前效果和過去累積誤差上達(dá)到平衡。式(12)是式(13)在λ=1時(shí)的特殊情況。
基于DDPG-IC算法的控制器結(jié)構(gòu)如圖2所示,控制器的整體框架采用策略-評價(jià)(actor-critic)構(gòu)架,既要滿足控制要求,又要保證四旋翼控制器的訓(xùn)練速度,因此需要選用合適的神經(jīng)網(wǎng)絡(luò)構(gòu)成控制策略和評價(jià)函數(shù)。策略網(wǎng)絡(luò)Aμ由包含兩個(gè)隱藏層的全連接神經(jīng)網(wǎng)絡(luò)構(gòu)成,每個(gè)隱藏層含有128個(gè)神經(jīng)元,隱藏層的激活函數(shù)為ReLU函數(shù)。該策略網(wǎng)絡(luò)接收補(bǔ)償后的四旋翼狀態(tài)誤差,輸出4個(gè)控制信號,為了保證輸出的控制信號符合四旋翼的要求,該網(wǎng)絡(luò)的輸出層采用tanh激活函數(shù)。評價(jià)網(wǎng)絡(luò)Qω(s,a) 的具體構(gòu)成如圖2所示,由包含兩個(gè)隱藏成的全連接神經(jīng)網(wǎng)絡(luò)構(gòu)成,每個(gè)隱藏層含128個(gè)神經(jīng)元、采用ReLU激活函數(shù),該網(wǎng)絡(luò)的輸入量為四旋翼當(dāng)前的狀態(tài)和4個(gè)控制信號,其中,四旋翼狀態(tài)直接作為輸入量輸入,而4個(gè)控制信號在第一個(gè)隱藏層中輸入。評價(jià)網(wǎng)絡(luò)的輸出層采用線性激活函數(shù),輸出Q函數(shù)的近似值,從而得到策略梯度,用于策略網(wǎng)絡(luò)的更新。積分補(bǔ)償器根據(jù)式(13)實(shí)現(xiàn),其中參數(shù)β的取值為0.01。
圖2 基于DDPG-IC算法的四旋翼控制器結(jié)構(gòu)
在強(qiáng)化學(xué)習(xí)的過程中,自主控制器根據(jù)四旋翼當(dāng)前的狀態(tài)st產(chǎn)生控制信號,該控制信號記作at,at作用于四旋翼,四旋翼給出下個(gè)狀態(tài)st+1和獎(jiǎng)勵(lì)值rt,將該數(shù)據(jù) (st,at,rt,st+1) 存放到經(jīng)驗(yàn)回放緩存區(qū)中。經(jīng)驗(yàn)緩存區(qū)有容量限制,結(jié)構(gòu)類似于隊(duì)列,數(shù)據(jù)按順序放入,當(dāng)里面數(shù)據(jù)存滿后,新的數(shù)據(jù)放入,最早的數(shù)據(jù)移除。后期自主控制器需要學(xué)習(xí)優(yōu)化時(shí),再隨機(jī)采樣從該緩存區(qū)中抽取數(shù)據(jù),用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。這種經(jīng)驗(yàn)回放的方法能夠打破數(shù)據(jù)之間的關(guān)聯(lián)性,促進(jìn)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的收斂和穩(wěn)定。
評價(jià)網(wǎng)絡(luò)通過最小化式(9)所示的TD誤差進(jìn)行優(yōu)化,可以看到,在優(yōu)化時(shí)利用了下個(gè)時(shí)刻的Q值,該值由同一個(gè)評價(jià)網(wǎng)絡(luò)產(chǎn)生,容易導(dǎo)致數(shù)據(jù)之間的關(guān)聯(lián)性,從而使訓(xùn)練不穩(wěn)定,因此設(shè)立單獨(dú)的目標(biāo)函數(shù)。設(shè)置目標(biāo)策略網(wǎng)絡(luò)Aμ′, 參數(shù)為μ′,結(jié)構(gòu)與圖2中的策略網(wǎng)絡(luò)Aμ的結(jié)構(gòu)一致,只是參數(shù)μ′的更新頻率低于μ的更新頻率;設(shè)置目標(biāo)評價(jià)網(wǎng)絡(luò)Qω′(s,a), 參數(shù)為ω′,結(jié)構(gòu)圖2中的評價(jià)網(wǎng)絡(luò)Qω(s,a) 的結(jié)構(gòu)一致,參數(shù)ω′的更新頻率低于ω。目標(biāo)網(wǎng)絡(luò)的參數(shù)更新公式為
μ′←ημ+(1-η)μ′
(14)
ω′←ηω+(1-η)ω′
(15)
其中,η<1。因此,評價(jià)網(wǎng)絡(luò)參數(shù)的更新變?yōu)?/p>
(16)
其中
(17)
yi=ri+γQω′(si+1,Aμ′(si+1))
(18)
動(dòng)作函數(shù)中的參數(shù)更新公式為
(19)
(20)
總結(jié)基于DDPG-IC算法的四旋翼控制器的訓(xùn)練學(xué)習(xí)過程見表1。
表1 基于DDPG-IC的四旋翼控制器優(yōu)化算法
利用上節(jié)提出的基于DDPG-IC算法的控制器,對四旋翼進(jìn)行數(shù)值仿真研究,驗(yàn)證積分補(bǔ)償?shù)募尤雽ξ恢酶欖o差的抑制作用。仿真采用的四旋翼模擬器根據(jù)式(3)進(jìn)行編寫,集成到OpenAI gym的環(huán)境中,四旋翼模型的相關(guān)參數(shù)設(shè)置見表2。仿真實(shí)驗(yàn)在Ubuntu 16.04操作系統(tǒng)中運(yùn)行,所有仿真程序采用Python編寫,神經(jīng)網(wǎng)絡(luò)用TensorFlow實(shí)現(xiàn),神經(jīng)網(wǎng)絡(luò)的訓(xùn)練利用Adam優(yōu)化器實(shí)現(xiàn),仿真過程中沒有采用并行計(jì)算。本文提出的基于DDPG-IC算法的控制器并不需要對象模型,仿真中的模型知識用來模擬學(xué)習(xí)過程中與智能體進(jìn)行交互的外部環(huán)境,而不直接提供任何信息。
表2 四旋翼動(dòng)力學(xué)模型參數(shù)設(shè)置
考慮到實(shí)際飛行中的安全因素,在仿真實(shí)驗(yàn)中給狀態(tài)量設(shè)置安全范圍,設(shè)定四旋翼3個(gè)姿態(tài)角的變化范圍為[-45°,45°],設(shè)定四旋翼的活動(dòng)范圍為長寬高都為10 m的立方體。四旋翼的初始狀態(tài)從安全范圍內(nèi)隨機(jī)取得,控制目標(biāo)是讓四旋翼從任意初始狀態(tài)穩(wěn)定飛行至目標(biāo)位置并實(shí)現(xiàn)懸停。
控制器結(jié)構(gòu)采用策略-評價(jià)(actor-critic)構(gòu)架,利用算法1對控制器進(jìn)行訓(xùn)練優(yōu)化,相關(guān)訓(xùn)練參數(shù)見表3。在訓(xùn)練的過程中,設(shè)置參數(shù)done,用來表明四旋翼的狀態(tài)是否超過了設(shè)置的安全范圍。如果四旋翼的實(shí)際位置和姿態(tài)超出了設(shè)定的安全范圍,該回合訓(xùn)練停止(參數(shù)done=True),所有狀態(tài)重新初始化開始下個(gè)回合的訓(xùn)練;如果控制過程中四旋翼的位置和姿態(tài)沒有超出范圍(參數(shù)done=False),會(huì)轉(zhuǎn)移到下個(gè)狀態(tài)繼續(xù)進(jìn)行訓(xùn)練。為了讓算法充分地進(jìn)行探索,同時(shí)提高訓(xùn)練效率,設(shè)置一個(gè)回合的學(xué)習(xí)最多持續(xù)1000步,之后重新初始化所有狀態(tài),開始新的訓(xùn)練回合。整個(gè)訓(xùn)練過程結(jié)束后,將控制器的結(jié)構(gòu)和參數(shù)保存下來,用于驗(yàn)證控制器在四旋翼定點(diǎn)懸停任務(wù)中的控制精度。
表3 控制器訓(xùn)練參數(shù)設(shè)置
分別搭建基于DDPG算法、基于DDPG-IC(λ=1)算法和基于DDPG-IC(λ=0.8)算法的四旋翼自主控制系統(tǒng),3種控制器的結(jié)構(gòu)一致,采用的網(wǎng)絡(luò)模型一樣,用3種算法分別從零開始訓(xùn)練控制策略,訓(xùn)練106步之后,將算法的結(jié)構(gòu)和參數(shù)保留下來,在允許范圍內(nèi)隨機(jī)給出四旋翼的初始狀態(tài),仿真50 s,驗(yàn)證3種控制器的控制效果。
由于獎(jiǎng)勵(lì)函數(shù)的設(shè)置對算法性能的影響大,為了將四旋翼控制到期望位置上,獎(jiǎng)勵(lì)函數(shù)應(yīng)該包含四旋翼狀態(tài)誤差,同時(shí)為了防止控制力的震蕩,將控制力也加入獎(jiǎng)勵(lì)函數(shù)。因此,將獎(jiǎng)勵(lì)函數(shù)設(shè)置為
在此設(shè)置下,經(jīng)過訓(xùn)練的3種控制器的控制效果如圖3所示,控制信號的變化如圖4所示,其中,實(shí)線表示基于DDPG算法的控制器,虛線代表基于DDPG-IC(λ=1)算法的控制器,點(diǎn)線為基于DDPG-IC(λ=0.8)算法的控制器。從圖3中可以看到,在沒有人工推導(dǎo)動(dòng)力學(xué)模型的前提下,3種控制器通過不斷優(yōu)化,自主學(xué)習(xí)到了穩(wěn)定控制四旋翼的控制策略。但是,基于常規(guī)DDPG算法的控制器在位置控制上明顯存在靜差,x、y、z這3個(gè)方向上的位置誤差分別為0.5 m, 0.7 m, 0.6 m,而兩種基于DDPG-IC算法的控制器能夠?qū)⑺男矸€(wěn)定控制到期望位置,位置誤差為0,表明積分補(bǔ)償?shù)囊肽軌蛴行o差。圖4表明,兩種基于DDPG-IC算法的控制器輸出的控制信號明顯比基于常規(guī)DDPG算法的控制器更加平穩(wěn),表明積分補(bǔ)償?shù)囊胗欣谠鰪?qiáng)控制器的穩(wěn)定性。
圖3 控制器作用下的位置姿態(tài)響應(yīng)曲線
圖4 控制器信號
將獎(jiǎng)勵(lì)函數(shù)設(shè)置為如下形式
該設(shè)置用于驗(yàn)證獎(jiǎng)勵(lì)函數(shù)粗糙的情況下算法的性能,控制器的控制效果和控制信號分別如圖5和圖6所示。圖5中實(shí)線所代表的基于常規(guī)DDPG算法的控制器控制效果差,位置和姿態(tài)響應(yīng)曲線沒有收斂,說明在獎(jiǎng)勵(lì)函數(shù)粗糙的情況下,基于常規(guī)DDPG算法的控制器沒有學(xué)習(xí)到穩(wěn)定的控制策略。基于DDPG-IC(λ=1)算法的控制器在圖中用虛線表示,它的控制效果優(yōu)于常規(guī)DDPG控制器,姿態(tài)控制沒有震蕩,說明累積誤差的加入增強(qiáng)了算法的穩(wěn)定性;但是DDPG-IC(λ=1)控制器的收斂速度太慢,在仿真的50 s時(shí)間內(nèi)都沒有將位置控制到期望位置。該問題產(chǎn)生的原因是累積誤差的比重太大,使得控制器過度關(guān)注累積誤差而導(dǎo)致控制器控制速率降低,控制性能下降。圖5中點(diǎn)線代表的DDPG-IC(λ=0.8)控制器能夠在短時(shí)間內(nèi)將無人機(jī)穩(wěn)定控制到期望位置,該控制器利用參數(shù)λ對過去的誤差進(jìn)行衰減,保證了當(dāng)前誤差與過去累積誤差的平衡,使得控制器仍然能夠?qū)W習(xí)到穩(wěn)定控制無人機(jī)姿態(tài)位置的控制策略,同時(shí)減少調(diào)節(jié)時(shí)間。此外,與圖3中的響應(yīng)曲線相比,在獎(jiǎng)勵(lì)函數(shù)變差的情況下,基于常規(guī)DDPG算法的控制器的控制效果明顯變差,甚至沒有穩(wěn)定收斂,而兩種基于DDPG-IC算法的控制器受影響較小,特別是DDPG-IC(λ=0.8)控制器,兩種獎(jiǎng)勵(lì)函數(shù)設(shè)置之下的響應(yīng)曲線基本不變,表明積分補(bǔ)償?shù)囊肽軌蚪档蛯W(xué)習(xí)算法對獎(jiǎng)勵(lì)函數(shù)設(shè)置的要求,提高了學(xué)習(xí)算法的性能。
圖5 控制器作用下的位置姿態(tài)響應(yīng)曲線
圖6 控制器信號
普通的RL算法應(yīng)用于無人機(jī)自主控制中容易出現(xiàn)位置靜差的現(xiàn)象,針對該問題,本文引入積分補(bǔ)償?shù)母拍睿岢隽薉DPG-IC(λ)算法,能夠在不增加算法復(fù)雜度的情況下有效解決位置跟蹤靜差的問題,進(jìn)一步提升了RL算法在無人機(jī)中的應(yīng)用范圍。仿真結(jié)果表明,在被控對象模型未知的情況下,基于DDPG-IC(λ)算法的四旋翼控制器能夠通過自主學(xué)習(xí),將四旋翼穩(wěn)定控制到期望位置。相比于普通DDPG算法,基于DDPG-IC(λ)算法的四旋翼控制器的位置控制誤差減小為零,控制系統(tǒng)的穩(wěn)定性和魯棒性增強(qiáng)。積分補(bǔ)償?shù)募尤肽軌蛴行恢渺o差,提高算法的穩(wěn)定性,同時(shí)能夠降低學(xué)習(xí)算法對獎(jiǎng)勵(lì)函數(shù)設(shè)置的要求;此外,衰減因子λ的引入能夠平衡累積誤差與當(dāng)前狀態(tài)誤差的比重,使得算法在保證性能的同時(shí)減少調(diào)節(jié)時(shí)間,提高了算法的性能。