基于
DDPG
自主
水下
机器人
角度
控制
研究
凌霄
基金项目:国家自然科学基金青年科学基金项目(51807124);河北省自然科学基金青年基金项目(E2015210082)收稿日期:2021-06-30 修回日期:2021-08-07 第 40 卷 第 4 期计 算 机 仿 真2023 年 4 月 文章编号:1006-9348(2023)04-0422-05基于 DDPG 的自主水下机器人角度控制研究李凌霄,王伟明,贺佳飞,闻 程(石家庄铁道大学电气与电子工程学院,河北 石家庄 050043)摘要:针对自主水下机器人 AUV(Autonomous Underwater Vehicle)的水下角度控制问题,提出一种基于深度确定性策略梯度DDPG(Deep Deterministic Policy Gradient)的水下控制方法,采用熵正则化的方式改进 DDPG 算法的训练效果。仿真结果表明,改进后的 DDPG 算法在水下角度的控制方面相较于未改进的 DDPG 算法具有更快速、更稳定的控制效果,可以有效的提高 AUV 的水下角度控制性能,同时也具有较强的鲁棒性。关键词:自主水下机器人;深度确定性策略梯度;角度控制;熵正则化中图分类号:TP183;文献标识码:BResearch on Angle Control of Autonomous UnderwaterRobot Based on DDPGLI Ling-xiao,WANG Wei-ming,HE Jia-fei,WEN Cheng(School of Electrical and Electronic Engineering,Shijiazhuang Tiedao University,Shijiazhuang Hebei 050043,China)ABSTRACT:Aiming at the underwater angle control problem of AUV(Autonomous Underwater Vehicle),an un-derwater control method based on DDPG(Deep Deterministic Policy Gradient)is proposed.The entropy regulariza-tion method is used to improve the training effect of the DDPG algorithm.The simulation experiment results show thatthe improved DDPG algorithm has a faster and more stable control effect in the underwater angle control comparedwith the unimproved DDPG algorithm,which can effectively improve the underwater angle control performance of theAUV,and it also has strong robustness.KEYWORDS:Autonomous underwater vehicle;Deep deterministic policy gradient;Angle control;Entropy regulariza-tion1 引言经典的控制理论在解决 AUV 这种复杂非线性模型时具有很多的局限性,比如传统的 PID 控制1,模糊控制2,滑模控制3,在实际环境中通常会出现各种各样的问题,PID 控制虽然结构和实现较为简便,但是在不确定性和干扰性强的被控对象中,参数的整定和调试会限制 PID 控制在高级应用中的性能。模糊控制和滑模控制不需要建立复杂的系统模型,但是模糊控制的控制精确度会随着模糊处理的信息多少而降低,滑模控制的变量抖动幅度也相较于其它方法有着很明显的差距。这些控制方法都对在水下航行的 AUV 进行精确地角度控制带来了很大的困难,为了解决传统控制理论难以解决的难题,通过近些年来兴起的强化学习的控制方法可以有效地进行 AUV 的水下控制4。强化学习是机器学习的一种分支,标准的强化学习过程是马尔可夫决策5,假设整个过程的状态集合为 S,转化到到下一个时刻的状态 St+1仅仅和上一个状态 St有关,与之前的状态无关。由于在实际过程中会遇到各种各样的环境参数,应用传统的控制方法会陷入复杂的模型设计中,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数6,具有很强的环境适应性,非常适合水下非线性的 AUV 控制设计。文献7将神经网络融合到了 AUV 的水下动力定位跟踪,然而优化的整体程度还不够明显。文献8提出了一种DQN(Deep Q Network)的强化学习算法,这种算法将深度神经网络和 Q 学习相结合,通过学习当前的动作与记忆回放单224元中的经历,达到有效的神经网络参数更新,但收敛得过于缓慢。文献9通过建立两个深度神经网络,Actor 网络用来输出动作的选择,Critic 网络则利用 Actor 网络输出的动作来进行 Q 值的评分,使得 AUV 在水下跟踪复杂的轨迹时可以保持良好的精度和稳定性,但是在复杂的非线性环境下表现欠佳,容易收到环境的干扰。文献10提出了深度确定性策略梯度(Deep Deterministic Policy Gradient)的强化学习算法,解决了在状态复杂的非线性环境中连续动作的控制要求,但在训练中其价值网络通常会将偏差高估,造成最后选择的策略无法达到最优。文献11将 DDPG 算法应用于 AUV 的水下路径跟踪控制,很好地改善了在跟踪参考路径时的轨迹,但是训练的过程过于繁琐。本文的创新在于将熵正则化的网络输出方式引入到DDPG 的强化学习算法架构中,并将其应用到 AUV 的水下角度控制领域,通过 AUV 水下角度控制的训练可知,改进后得DDPG 算法相比于未改进前可以在更短得训练时间内达到收敛,避免了 Actor 网络的动作选择局部最优,同时更容易达到全局最优得控制效果。2 AUV 的运动数学模型图 1 为 AUV 的体坐标系,其中 ROLL 为翻滚角,PITCH为俯仰角,YAW 为偏航角,分别记为、。图 1 AUV 体坐标系示意图X、Y、Z 分别是沿 x、y、z 轴方向上运动所受到的力,具体的计算公式如下m?u-vr+wq-xG(q2+r2)+yGpq-?r()+zGpr+?q()=Xm?v-wp+ur-yG(r2+p2)+zGqr-?p()+xGqp+?r()=Ym?w-uq+vp-zG(q2+p2)+xGrp-?q()+yGrq+?p()=Z|(1)K、M、N 分别是绕 x、y、z 轴进行旋转产生的力矩,具体的计算公式如下Ix?p+(Iz-Iy)qr+m yG?w-uq+vp()-zG?v-wp+ur()=KIy?q+(Ix-Iz)rp+m zG?u-vr+wq()-xG?w-uq+vp()=MIz?r+(Iy-Ix)pq+m xG?v-wp+ur()-yG?u-vr+qw()=N|(2)其中俯仰角的计算公式为=cos q-sin r(3)力和力矩主要是由水下环境中的静水压力、浮力,阻力已经外加推力和控制力组成。其中,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框架实现了在连续状态下输出对应的策略,同时采用 DPG 算法中确定性策略的方法13,将输出的动作由概率性变成确定性。图 2 为 DDPG 算法原理结构图。DDPG 算法设置了两种深度神经网络,分别是 Actor 和 Critic,每种网络又分为现实主网络与目标网络,各个网络的功能可概括如下14:主 Actor 网络:进行网络参数 Q的更新设置,以输入的状态 St为基础,选择出当前的最优动作 at,输出下一时刻的状态 St+1,奖励 R。目标 Actor 网络:根据记忆回放单元存放的采样数据选择最优下一动作 at+1。网络参数 Q定期从 Q更新。主 Critic 网络:更新网络参数,计算当前状态-动作价值 Q(St,at)。目标 Critic 网络:负责计算 Q(St+1,at+1)部分,用于生成目标 Q 值 Q=R+Q(St+1,at+1),网络参数 定期从 更新。图 2 DDPG 算法原理结构图3.2 奖励函数的设计AUV 的学习效能以及控制效率的关键在于奖励函数 R的设置,为此,设计奖励函数。R=-t-1+t-1()(4)其中 是一个常数,并且其数值大于零,t和 t为 t 时刻下AUV 的俯仰角和偏航角,1和 1是 t 时刻下预设的角度,通过选取合适的 可以优化奖励函数,提高 AUV 角度控制的324学习效率。在 AUV 的实际偏转角度等于预设的偏转角度时 R=,为常数,其数值与 有关。通过设立这步奖励函数来使得角度达到预定值时,可以一直跟踪预设角度。因此奖励函数可以写为R=-t-1+t-1()|t-1|0.2t-1 0.2()|t-1|0.2t-1 0.2()(5)经过多次的仿真调试,在本设计中,取 60,取-40。3.3 网络结构设计以深度学习框架为基础设计 Actor 和 Critic 两种深度神经网络。由状态变量组成的状态矩阵 St作为现实 Actor 主网络的输入,Actor 网络的构架中使用三层隐藏层,第一层和第三层的节点数为 32 个,第二层的节点数为 16 个。将 Critic网络的构架进行改进,使用两层隐藏层,避免由于网络层数的过于复杂造成梯度计算的过大问题,其中每层的节点数都为 16 个。使用全网络连接来作为神经网络中各个节点之间的连接方式,使用 tanh 函数来对输出层进行归一化处理,避免各个参数权值的不同导致结果的量级问题。图 3 为 Actor网络结构。图 4 为 Critic 网络结构。图 3 Actor 网络结构图 4 Critic 网络结构3.4 DDPG 算法的改进在 AUV 实际的学习控制当中,Actor 网络经常会选择那些概率比较大的动作作为自己的输出,因此动作输出的确定程度比较大,这就容易造成 AUV 不求上进,探索能力变弱,动作的可选择范围变窄,导致最终无法获取最优解。为了改善算法的 Actor 网络输出情况,本文采取熵正则化的方法使得 Actor 网络输出的动作具有较大的不确定性,增加可选择动作的多样性,避免局部优化,使得 AUV 可以探索到最佳的策略。熵正则化的方法主要是通过熵进行动作概率的表示,在n 个概率分布当中,熵值的计算公式如下Entropy(p)=-ni=1pilnpi(6)熵值大则概率分布均匀,动作随机性大,如图 5(左);熵值小则概率分布较为集中,动作随机性小,如图 5(右)。图 5 概率分布图Actor 网络输出的动作有不同的概率密度,动作的集合向量 A,其熵值可以被表示为H(s;)=-a(a|s;)ln(a|s;)(7)在进行 Actor 网络参数优化的同时,需要考虑到熵值的大小,因此将熵设置成代价函数的正则项,新的函数在进行梯度更新的公式为J()+EsH(s;)=EsEA (|s;)g(s,a;)(8)3.5 算法的实现步骤实际环境中 AUV 的状态变量有 12 个,分别是三个空间坐标轴方向上的位移、角度、线速度和角速度,这些状态变量作为当前的的状态值 St,Actor 网络采取的动作值为 at,Critic网络评测的奖励值为 R,下一步的状态值为 St+1,主网络通过训练样本数据(St,St+1,R,at