国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DDPG的自主水下機器人角度控制研究

2023-06-01 13:44李凌霄王偉明賀佳飛
計算機仿真 2023年4期
關鍵詞:角度神經網絡動作

李凌霄,王偉明,賀佳飛,聞 程

(石家莊鐵道大學電氣與電子工程學院,河北 石家莊 050043)

1 引言

經典的控制理論在解決AUV這種復雜非線性模型時具有很多的局限性,比如傳統(tǒng)的PID控制[1],模糊控制[2],滑??刂芠3],在實際環(huán)境中通常會出現(xiàn)各種各樣的問題,PID控制雖然結構和實現(xiàn)較為簡便,但是在不確定性和干擾性強的被控對象中,參數(shù)的整定和調試會限制PID控制在高級應用中的性能。模糊控制和滑模控制不需要建立復雜的系統(tǒng)模型,但是模糊控制的控制精確度會隨著模糊處理的信息多少而降低,滑??刂频淖兞慷秳臃纫蚕噍^于其它方法有著很明顯的差距。這些控制方法都對在水下航行的AUV進行精確地角度控制帶來了很大的困難,為了解決傳統(tǒng)控制理論難以解決的難題,通過近些年來興起的強化學習的控制方法可以有效地進行AUV的水下控制[4]。強化學習是機器學習的一種分支,標準的強化學習過程是馬爾可夫決策[5],假設整個過程的狀態(tài)集合為S,轉化到到下一個時刻的狀態(tài)St+1僅僅和上一個狀態(tài)St有關,與之前的狀態(tài)無關。由于在實際過程中會遇到各種各樣的環(huán)境參數(shù),應用傳統(tǒng)的控制方法會陷入復雜的模型設計中,強化學習不要求預先給定任何數(shù)據,而是通過接收環(huán)境對動作的獎勵(反饋)獲得學習信息并更新模型參數(shù)[6],具有很強的環(huán)境適應性,非常適合水下非線性的AUV控制設計。

文獻[7]將神經網絡融合到了AUV的水下動力定位跟蹤,然而優(yōu)化的整體程度還不夠明顯。文獻[8]提出了一種DQN(Deep Q Network)的強化學習算法,這種算法將深度神經網絡和Q學習相結合,通過學習當前的動作與記憶回放單元中的經歷,達到有效的神經網絡參數(shù)更新,但收斂得過于緩慢。文獻[9]通過建立兩個深度神經網絡,Actor網絡用來輸出動作的選擇,Critic網絡則利用Actor網絡輸出的動作來進行Q值的評分,使得AUV在水下跟蹤復雜的軌跡時可以保持良好的精度和穩(wěn)定性,但是在復雜的非線性環(huán)境下表現(xiàn)欠佳,容易收到環(huán)境的干擾。文獻[10]提出了深度確定性策略梯度(Deep Deterministic Policy Gradient)的強化學習算法,解決了在狀態(tài)復雜的非線性環(huán)境中連續(xù)動作的控制要求,但在訓練中其價值網絡通常會將偏差高估,造成最后選擇的策略無法達到最優(yōu)。文獻[11]將DDPG算法應用于AUV的水下路徑跟蹤控制,很好地改善了在跟蹤參考路徑時的軌跡,但是訓練的過程過于繁瑣。

本文的創(chuàng)新在于將熵正則化的網絡輸出方式引入到DDPG的強化學習算法架構中,并將其應用到AUV的水下角度控制領域,通過AUV水下角度控制的訓練可知,改進后得DDPG算法相比于未改進前可以在更短得訓練時間內達到收斂,避免了Actor網絡的動作選擇局部最優(yōu),同時更容易達到全局最優(yōu)得控制效果。

2 AUV的運動數(shù)學模型

圖1為AUV的體坐標系,其中ROLL為翻滾角,PITCH為俯仰角,YAW為偏航角,分別記為φ、θ、ψ。

X、Y、Z分別是沿x、y、z軸方向上運動所受到的力,具體的計算公式如下

(1)

K、M、N分別是繞x、y、z軸進行旋轉產生的力矩,具體的計算公式如下

(2)

其中俯仰角的計算公式為

(3)

力和力矩主要是由水下環(huán)境中的靜水壓力、浮力,阻力已經外加推力和控制力組成。其中,u、v、w分別是AUV在x、y、z軸方向上運動時的線速度;p、q、r分別是AUV繞x、y、z軸旋轉的角速度。Ix、Iy和Iz是車輛的慣性矩,xG、zG是AUV體系中x和z方向上的質心。由于在實際建造中AUV的俯仰角不可能達到完全垂直,因此添加一個[-30,30]的角度限制。

3 DDPG算法的設計與改進

3.1 DDPG算法

DDPG算法以DQN算法的理論為依據,借助Actor-Critic的算法[12]框架實現(xiàn)了在連續(xù)狀態(tài)下輸出對應的策略,同時采用DPG算法中確定性策略的方法[13],將輸出的動作由概率性變成確定性。圖2為DDPG算法原理結構圖。DDPG算法設置了兩種深度神經網絡,分別是Actor和Critic,每種網絡又分為現(xiàn)實主網絡與目標網絡,各個網絡的功能可概括如下[14]:

圖2 DDPG算法原理結構圖

主Actor網絡:進行網絡參數(shù)θQ的更新設置,以輸入的狀態(tài)St為基礎,選擇出當前的最優(yōu)動作at,輸出下一時刻的狀態(tài)St+1,獎勵R。

目標Actor網絡:根據記憶回放單元存放的采樣數(shù)據選擇最優(yōu)下一動作at+1。網絡參數(shù)θQ′定期從θQ更新。

主Critic網絡:更新網絡參數(shù)θμ,計算當前狀態(tài)-動作價值Q(St,at)。

目標Critic網絡:負責計算Q′(St+1,at+1)部分,用于生成目標Q值Q′=R+γQ(St+1,at+1),網絡參數(shù)θμ′定期從θμ更新。

3.2 獎勵函數(shù)的設計

AUV的學習效能以及控制效率的關鍵在于獎勵函數(shù)R的設置,為此,設計獎勵函數(shù)。

(4)

其中ξ是一個常數(shù),并且其數(shù)值大于零,θt和ψt為t時刻下AUV的俯仰角和偏航角,θ1和ψ1是t時刻下預設的角度,通過選取合適的ξ可以優(yōu)化獎勵函數(shù),提高AUV角度控制的學習效率。

在AUV的實際偏轉角度等于預設的偏轉角度時R=ζ,ζ為常數(shù),其數(shù)值與ξ有關。通過設立這步獎勵函數(shù)來使得角度達到預定值時,可以一直跟蹤預設角度。因此獎勵函數(shù)可以寫為

(5)

經過多次的仿真調試,在本設計中,ξ取60,ζ取-40。

3.3 網絡結構設計

以深度學習框架為基礎設計Actor和Critic兩種深度神經網絡。由狀態(tài)變量組成的狀態(tài)矩陣St作為現(xiàn)實Actor主網絡的輸入,Actor網絡的構架中使用三層隱藏層,第一層和第三層的節(jié)點數(shù)為32個,第二層的節(jié)點數(shù)為16個。將Critic網絡的構架進行改進,使用兩層隱藏層,避免由于網絡層數(shù)的過于復雜造成梯度計算的過大問題,其中每層的節(jié)點數(shù)都為16個。使用全網絡連接來作為神經網絡中各個節(jié)點之間的連接方式,使用tanh函數(shù)來對輸出層進行歸一化處理,避免各個參數(shù)權值的不同導致結果的量級問題。圖3為Actor網絡結構。圖4為Critic網絡結構。

圖3 Actor網絡結構

圖4 Critic網絡結構

3.4 DDPG算法的改進

在AUV實際的學習控制當中,Actor網絡經常會選擇那些概率比較大的動作作為自己的輸出,因此動作輸出的確定程度比較大,這就容易造成AUV不求上進,探索能力變弱,動作的可選擇范圍變窄,導致最終無法獲取最優(yōu)解。為了改善算法的Actor網絡輸出情況,本文采取熵正則化的方法使得Actor網絡輸出的動作具有較大的不確定性,增加可選擇動作的多樣性,避免局部優(yōu)化,使得AUV可以探索到最佳的策略。

熵正則化的方法主要是通過熵進行動作概率的表示,在n個概率分布當中,熵值的計算公式如下

(6)

熵值大則概率分布均勻,動作隨機性大,如圖5(左);熵值小則概率分布較為集中,動作隨機性小,如圖5(右)。

圖5 概率分布圖

Actor網絡輸出的動作有不同的概率密度,動作的集合向量A,其熵值可以被表示為

(7)

在進行Actor網絡參數(shù)優(yōu)化的同時,需要考慮到熵值的大小,因此將熵設置成代價函數(shù)的正則項,新的函數(shù)在進行梯度更新的公式為

?θ[J(θ)+λ·Es[H(s;θ)]]=Es[EA~π(·|s;θ)[g(s,a;θ)]]

(8)

3.5 算法的實現(xiàn)步驟

實際環(huán)境中AUV的狀態(tài)變量有12個,分別是三個空間坐標軸方向上的位移、角度、線速度和角速度,這些狀態(tài)變量作為當前的的狀態(tài)值St,Actor網絡采取的動作值為at,Critic網絡評測的獎勵值為R,下一步的狀態(tài)值為St+1,主網絡通過訓練樣本數(shù)據(St,St+1,R,at)來進行角度的控制訓練,每一步的結果與上一步都是獨立不相關的,經過樣本的采集與更新,將參數(shù)輸送給目標網絡,然后進行目標網絡的更新,具體的算法流程如下:

步驟1:構建Actor網絡,以θQ作為神經網絡參數(shù),構建Critic網絡,以θμ作為神經網絡參數(shù)

步驟2:初始化神經網絡參數(shù)θQ和θμ

步驟3:把θQ和θμ參數(shù)值輸送給目標Actor網絡和目標Critic網絡。

步驟4:以Actor主網絡為基礎,通過熵正則化的方法使得Actor網絡輸出一個動作at。

步驟5:執(zhí)行at動作,經過神經網絡得到下一個由下步狀態(tài)變量組成的狀態(tài)St+1,同時返回一個獎勵值R。以元組形式表示這一過程中的數(shù)據(St,St+1,R,at),同時作為樣本數(shù)據的狀態(tài)轉換過程儲存到回放記憶單元作為在線網絡訓練的數(shù)據樣本。

步驟6:從記憶回放單元中提取樣本數(shù)據(St,St+1,R,at),以St和at為現(xiàn)實Critic主網絡的輸入,得到Q(St,at)。

步驟7:以St+1作為目標Actor的輸入,得到t+1狀態(tài)的動作at+1。

步驟8:St+1和at+1一起輸入到目標Critic網絡,得到Q′(St+1,at+1)。對目標Q值進行估計得到目標的Q值Q′=R+γQ(St+1,at+1),為折扣因子,表示γ估計得出的決策獎勵對當前決策的影響程度。

步驟9:最后的目的是讓現(xiàn)實Critic網絡輸出的Q值要接近于目標Q′的值,因此更新現(xiàn)實Critic網絡使得輸出Q盡量接近目標的Q′。更新的方法為使用損失函數(shù)Loss,用Adam optimizer進行現(xiàn)實Critic網絡的更新。

步驟10:進行現(xiàn)實Actor的更新,現(xiàn)實Actor輸出的動作與現(xiàn)實Critic里給出的評分有關,更新Actor使得Q值輸出最大,使用策略梯度的方法對總獎勵進行梯度計算以更新參數(shù),更新時引入帶熵值得正則項.

步驟12:在進行設定的步數(shù)后,將現(xiàn)實主網絡Actor和Critic中的參數(shù)作為目標Actor和Critic的參數(shù)輸入,更新目標網絡。

(9)

步驟13:最后回到現(xiàn)實主網絡Actor進行采樣,循環(huán)過程。

4 實驗驗證

實驗在64位的windows10系統(tǒng)下進行,使用Python3.8作為編譯的環(huán)境,深度神經網絡使用PyTorch1.8.1搭建,根據第2節(jié)的運動學模型建立AUV的仿真模型。

在本文的仿真中,經過多次調試,神經網絡的參數(shù)設置見表1。

表1 神經網絡參數(shù)值

設置進行的總回合數(shù)為1500次,得到獎勵函數(shù)曲線,圖6為改進前后的獎勵函數(shù)曲線對比,其中,橫坐標為訓練的回合數(shù),縱坐標為獎勵值R。

圖6 改進前后的獎勵函數(shù)曲線對比

由圖可以看出未改進的算法計算出的獎勵值在550回左右才達到收斂,并且在后面回合數(shù)的訓練中,獎勵始終在45到55內來回波動,效果表現(xiàn)的不太理想。改進后的算法的獎勵值在100回左右就達到了收斂,并且在之后的訓練回合中,波動的范圍較小。

搭建強化學習環(huán)境進行仿真來驗證DDPG算法對AUV進行角度控制的效果,通過預先給出相應的角度,使得AUV經過仿真環(huán)境的訓練學習之后可以跟據預設的指令進行角度的跟蹤。

在改進后的算法經歷1500回合的訓練之后,進行角度跟蹤的測試,測試俯仰角和偏航角的追蹤效果。翻滾角主要根據AUV的尾翼來進行設計,主要目的是為了控制AUV航行時的姿態(tài),并且大多數(shù)是有界的,因此在本設計中不考慮翻滾角對角度控制的影響。

使用DDPG算法進行與改進后的DDPG算法的效果對比,圖7為DDPG的俯仰角跟蹤曲線。圖8為改進后的DDPG俯仰角跟蹤曲線。

圖7 DDPG的俯仰角跟蹤曲線

圖8 改進后DDPG的俯仰角跟蹤曲線

圖9為DDPG的偏航角跟蹤曲線。圖10為改進后的DDPG偏航角跟蹤曲線。

圖9 DDPG的偏航角跟蹤曲線

圖10 改進后DDPG的偏航角跟蹤曲線

可以看出在相同情況下的角度跟蹤控制,無論是俯仰角還是偏航角,改進后的DDPG算法都具備更優(yōu)良的控制效果。在穩(wěn)態(tài)誤差方面,改進后的DDPG算法也表現(xiàn)得更為出色,具有更高的穩(wěn)態(tài)控制精度。

在實際環(huán)境中,AUV在控制作業(yè)時避免不了外界因素的干擾,為了驗證該算法的抗干擾性和魯棒性,在實驗過程中10秒的時候分別對俯仰角和偏航角施加一個階躍擾動,模擬水下環(huán)境的瞬時干擾,圖11為俯仰角變化曲線,圖12為偏航角變化曲線。

圖11 俯仰角變化曲線

圖12 偏航角變化曲線

通過仿真可以看出,俯仰角和偏航角在10秒時都受到了階躍信號的瞬時干擾,并且出現(xiàn)了震蕩的效果,但是在很短的時間內就又跟蹤到了期望角度。

5 結束語

針對AUV的角度控制問題,本文提出了一種基于強化學習DDPG算法的角度跟蹤方法,通過調整深度神經網絡和加入熵正則化的方法,來對DDPG算法進行改進,使得AUV可以在水下環(huán)境下無需進行系統(tǒng)性的模型建立就可以進行相應的角度控制。

通過實驗結果可以表明:①改進后的DDPG算法在角度控制時有著更高的控制精度,可以提高約50%的穩(wěn)態(tài)控制精度,同時在收到干擾時也可以很快地達到穩(wěn)定狀態(tài),具有較強的魯棒性和抗干擾能力;②改進后得DDPG算法相比于未改進之前的算法獎勵曲線的穩(wěn)定誤差優(yōu)化了6倍左右,優(yōu)化效果更好;③引入熵正則化的DDPG強化學習算法在訓練時可以迅速地達到收斂狀態(tài),在應用于AUV的水下角度控制時具有良好的控制效果,應用前景廣泛。

猜你喜歡
角度神經網絡動作
神奇的角度
神經網絡抑制無線通信干擾探究
一個涉及角度和的幾何不等式鏈的改進
動作描寫要具體
角度不同
人啊
基于神經網絡的拉矯機控制模型建立
復數(shù)神經網絡在基于WiFi的室內LBS應用
非同一般的吃飯動作
基于支持向量機回歸和RBF神經網絡的PID整定