CN112462792B - 一种基于Actor-Critic算法的水下机器人运动控制方法 - Google Patents

一种基于Actor-Critic算法的水下机器人运动控制方法 Download PDF

Info

Publication number
CN112462792B
CN112462792B CN202011432207.8A CN202011432207A CN112462792B CN 112462792 B CN112462792 B CN 112462792B CN 202011432207 A CN202011432207 A CN 202011432207A CN 112462792 B CN112462792 B CN 112462792B
Authority
CN
China
Prior art keywords
network
actor
critic
underwater robot
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011432207.8A
Other languages
English (en)
Other versions
CN112462792A (zh
Inventor
孙延超
杜雨桐
王卓
吴淼
秦洪德
韩光洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN202011432207.8A priority Critical patent/CN112462792B/zh
Publication of CN112462792A publication Critical patent/CN112462792A/zh
Application granted granted Critical
Publication of CN112462792B publication Critical patent/CN112462792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/04Control of altitude or depth
    • G05D1/06Rate of change of altitude or depth
    • G05D1/0692Rate of change of altitude or depth specially adapted for under-water vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Feedback Control In General (AREA)

Abstract

一种基于Actor‑Critic算法的水下机器人运动控制方法,本发明涉及水下机器人运动控制方法。本发明的目的是为了解决现有水下机器人难以在运动过程中实时调节参数,且受到干扰时,控制器对水下机器人速度和姿态的控制精度低问题。过程为:一、初始化参数;二、确定速度控制系统和艏向控制系统的控制律;三、设定神经网络;四、确定当前网络的输入和输出;五、确定目标网络的输入和输出;六、更新Actor当前网络权值参数;七、更新Critic当前网络权值参数;八、重复执行四至七n次,第n次将更新后的当前网络权值参数复制到目标网络;九、重复执行八,得到控制律参数值。本发明用于水下机器人运动控制领域。

Description

一种基于Actor-Critic算法的水下机器人运动控制方法
技术领域
本发明涉及基于Actor-Critic算法的水下机器人运动控制方法。
背景技术
自主水下机器人(Autonomous Underwater Vehicle,AUV)作为探索海洋的重要技术手段,近几年在海洋环境科学、生物学、考古学、地理学等许多学科领域具有革命性应用,给许多研究提供了重要帮助,也因此受到社会各界的广泛关注。AUV复杂的动力学特性和多变的海洋环境对其运动控制提出了巨大挑战,因此,对AUV运动控制方法开展研究具有重要实践意义。在海洋中行进时,AUV受到的干扰包括洋流扰动、模型部分不确定等因素,而AUV执行的大部分任务都需要其具有良好的精确性,即对控制器的精度要求极高。部分传统控制方法依托于动力学方程进行推导,并通过反复实验选择合适的控制参数组成控制器,这种方法有着较高的稳定性,但人工选择参数的方式注定了其参数不容易接近最优解,不利于控制器精度的提高。随着人工智能科学的不断发展,不同强化学习算法被陆续提出,它们也逐渐被应用在控制领域。但许多较为成熟的应用实例大多基于简单动力学模型,对于AUV这类复杂的系统,单独的强化学习控制器并不能保证良好的鲁棒性,在复杂的运动环境中无法实现快速而精确的控制效果,因此这类控制方法也很难实现实物应用。考虑上述两种控制方法各自的优劣,近几年也有很多将强化学习算法与传统控制相结合的控制器被提出,但它们大多是基于Q值表或DQN等value-based算法或Policy Gradient这种简单的policy-based算法。毫无疑问这两种算法都有其不可避免的缺陷,如Q值表和DQN算法在系统动作空间较大的情况下精度较差,Policy Gradient训练需要数据量较大等。因此本发明针对AUV的速度与姿态控制问题,综合上述控制方法的优点与缺点,提出一种基于改进Actor-Critic算法的参数自适应反步控制器,实现对AUV速度和姿态的控制。
发明内容
本发明的目的是为了解决现有水下机器人难以在运动过程中实时调节参数,且受到干扰时,控制器对水下机器人速度和姿态的控制精度低问题,而提出一种基于Actor-Critic算法的水下机器人运动控制方法。
一种基于Actor-Critic算法的水下机器人运动控制方法具体过程为:
步骤一、初始化参数;
步骤二、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;
步骤三、设定Actor-Critic神经网络,Actor-Critic神经网络包括四个RBF神经网络,分别为Actor当前网络、Actor目标网络、Critic当前网络和Critic目标网络;
步骤四、确定Actor当前网络的输入和输出;确定Critic当前网络的输入和输出;
步骤五、确定Actor目标网络的输入和输出;确定Critic目标网络的输入和输出;
步骤六、设定Actor网络的损失函数,对Actor网络的损失函数求梯度下降,并通过RBF神经网络更新公式更新Actor当前网络权值参数;
步骤七、计算Critic网络的损失函数,对Critic网络的损失函数求梯度下降,并通过RBF神经网络更新公式来更新Critic当前网络权值参数;
步骤八、重复执行步骤四至步骤七n次,第n次将更新后的critic当前网络权值参数复制到critic目标网络,将更新后的Actor当前网络权值参数复制到Actor目标网络;
步骤九、重复执行步骤八,直至Actor-Critic神经网络收敛,得到稳定的Q值;此时Actor当前网络输出动作,叠加噪声后,通过变换即为控制律参数值。
本发明的有益效果为:
本发明的目的是为了解决水下机器人系统不确定性强,运动环境易受干扰,而设计的传统控制器需要人工调参,参数很难达到最优解,对水下机器人速度和姿态的控制精度低问题,而提出一种基于Actor-Critic算法的水下机器人运动控制方法。本发明最终设计了一个可以实现在运动过程中参数实时调节的控制系统。在大致确定控制器初始参数后,改进后的Actor-Critic算法可以在实时运动中不断训练,输出连续动作,进而通过输出的连续值调节控制系统输出参数。本发明的优势在于,一方面控制器部分基于具体的AUV模型设计,确保了控制系统的稳定性和快速性;另一方面在稳定控制器的基础上利用强化学习算法对参数进行调整,达到不需要先验经验或样本,在实际运动中实时获取数据得到合适参数的效果,提高了控制系统的性能。提高了对水下机器人速度和姿态的控制精度。
附图说明
图1为本发明整体控制流程图;图2为RBF神经网络结构图;图3为theta=0.7,sigma=1时的OU噪声示例图;图4为theta=0.01,sigma=1时的OU噪声示例图;图5为theta=0.01,sigma=0.5时的OU噪声示例图;图6为改进后Actor-Critic算法结构图;图7为simulink仿真模型图;qf16是舶向值,v11是x轴速度,v12是y轴速度,v16是舶向角角速度。qf16_n是上一时刻舶向值,v11_n是上一时刻x轴速度,v12_n是上一时刻y轴速度,v16_n是上一时刻舶向角角速度;e为速度误差,ep为舶向角误差,u为纵向速度,ph为舶向角,v为y轴速度,r为舶向角速度,e_n为上一时刻的速度误差,ep_n为上一时刻的舶向角误差,u_n为上一时刻的纵向速度,ph_n为上一时刻的舶向角,v_n为上一时刻的y轴速度,r_n为上一时刻的舶向角速度;e_in为纵向速度误差,ep_in为舶向误差,u1为纵向速度导数,u_in为纵向速度,ph1为舶向角导数,ph_in为舶向角,v_in为y轴速度,r_in为舶向角角速度,e_nin为上一时刻纵向速度误差,ep_nin为上一时刻舶向误差,u_ni为上一时刻纵向速度导数,u_nin为上一时刻纵向速度,ph_n1为上一时刻舶向角导数,ph_inin为上一时刻舶向角,v_nin为上一时刻y轴速度,r_nin为上一时刻舶向角角速度;1/z为滞后模块,NNeval和NNtarget分别是当前网络和目标网络,F为力和力矩,Reward为回报函数,Loss update为损失函数,PG为梯度下降计算,new-value为神经网络权值更新,backstepping为反步法控制器,freeze为目标网络权值更新滞后,y是期望值,a1、a2、a3为示波器;图8为AUV模型图;图9为前四次训练速度控制效果图;图10为前四次训练角度控制器效果图;图11为单独的反步法速度控制效果图;图12为单独的反步法角度控制结果图;图13为单独的反步法速度控制局部放大图;图14为单独的反步法角度控制局部放大图;图15为基于actor-critic算法参数自适应速度控制器图;图16为基于actor-critic算法参数自适应角度控制器图;图17为基于actor-critic算法参数自适应速度控制器局部放大图;图18为基于actor-critic算法参数自适应角度控制器局部放大图;图19为基于actor-critic算法参数自适应速度控制器控制参数变化(以最后一次训练为例)图;图20为基于actor-critic算法参数自适应角度控制器控制参数变化(以最后一次训练为例)图;图21为模拟海流干扰下对速度的干扰示意图;图22为模拟海流干扰下对角度的干扰示意图;图23为海流干扰下对速度的控制示意图;图24为海流干扰下对角度的控制示意图。
具体实施方式
具体实施方式一:本实施方式一种基于Actor-Critic算法的水下机器人运动控制方法,具体过程为:
步骤一、初始化参数;
步骤二、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;
步骤三、设定Actor-Critic神经网络,Actor-Critic神经网络包括四个RBF神经网络,分别为Actor当前网络、Actor目标网络、Critic当前网络和Critic目标网络;
步骤四、确定Actor当前网络的输入和输出;确定Critic当前网络的输入和输出;
步骤五、确定Actor目标网络的输入和输出;确定Critic目标网络的输入和输出;
步骤六、设定Actor网络的损失函数,对Actor网络的损失函数求梯度下降,并通过RBF神经网络更新公式更新Actor当前网络权值参数,目标网络定期复制新权值参数;
步骤七、计算Critic网络的损失函数,对Critic网络的损失函数求梯度下降,并通过RBF神经网络更新公式来更新Critic当前网络权值参数;
步骤八、重复执行步骤四至步骤七n次(4个网络走n遍),第n次将更新后的critic当前网络权值参数复制到critic目标网络,将更新后的Actor当前网络权值参数复制到Actor目标网络;
步骤九、重复执行步骤八,直至Actor-Critic神经网络收敛,得到相对稳定的Q值;此时Actor当前网络输出动作,叠加噪声后,通过变换即为控制律参数值。
具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤一中初始化参数;具体为:
初始化神经网络参数θ、w为[-1,1]的随机数,并设置神经网络更新权值α、折扣率γ、ε;初始化控制器原始参数ku0、Kr10以及Kr20;初始化AUV模型参数质量m,无量纲水动力参数
Figure BDA0002826875040000031
Xu|u|、Nr
Figure BDA0002826875040000032
Nr|r|,水下机器人绕运动坐标系z轴的转动惯量Iz
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:所述步骤二中基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;具体过程为:
为了使用基于Actor-Critic算法的参数自适应反步控制器,实现对AUV的轨迹跟踪控制,本发明的目标,即设计控制器u使AUV系统在存在海流干扰的情况下,其速度v与姿态量η仍然能够跟踪期望值vd、ηd并使跟踪误差ev=v-vd、eη=η-ηd有预先给定的动态性能及稳态响应情况。
水下机器人的速度控制系统为:
Figure BDA0002826875040000033
其中,m为水下机器人的质量,
Figure BDA0002826875040000034
和Xu|u|均为无量纲水动力参数,u为水下机器人纵向速度,|u|为u的绝对值,
Figure BDA0002826875040000035
为水下机器人纵向加速度,τu为推进器纵向推力,v为水下机器人横向速度,r为水下机器人偏航角速度;
水下机器人速度控制系统的控制律为:
Figure BDA0002826875040000036
其中,ku为速度控制系统的控制律的待调节控制系数;ku>0;ud为目标速度;
Figure BDA0002826875040000037
为目标加速度;
水下机器人的艏向控制系统为:
Figure BDA0002826875040000041
其中,
Figure BDA0002826875040000042
为实际艏向角的一阶导数,
Figure BDA0002826875040000043
为r的一阶导数,Nr
Figure BDA0002826875040000044
Nr|r|均为无量纲水动力参数,|r|为r的绝对值,τr为转艏力矩,Iz为水下机器人绕运动坐标系z轴的转动惯量;
所述运动坐标系为:以水下机器人的重心为原点O,以指向水下机器人的艏向方向为x轴正向,以指向水下机器人的右舷方向为为y轴正向,以指向水下机器人的底部方向为z轴正向,且x轴、y轴、z轴符合右手螺旋定则的坐标系;
水下机器人艏向控制系统的控制律为:
Figure BDA0002826875040000045
其中,kψ1为艏向控制系统的控制律的第一个待调节控制系数,kψ2为艏向控制系统的控制律的第二个待调节控制系数;kψ1>0和kψ2>0。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是,所述步骤三中设定Actor-Critic神经网络,Actor-Critic神经网络包括四个RBF神经网络,分别为Actor当前网络、Actor目标网络、Critic当前网络和Critic目标网络;具体过程为:
四个RBF神经网络都是单输入层、单隐层和单输出层;
输入层节点数量为i,隐层节点数量为j,输出层节点数量为k,隐层节点基函数为高斯基函数,如下式所示,cj是第j个基函数的中心点,σj为基函数围绕中心点宽度,‖x-cj2表示向量x-cj的二范数,通常表示x与cj间的距离;x为神经网络输入;
Figure BDA0002826875040000046
式中,αj(x)为隐层节点基函数;f(·)是以e为底的指数函数。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:所述步骤四中确定Actor当前网络的输入和输出;确定Critic当前网络的输入和输出;具体过程为:
Actor当前网络输入的状态向量为St={s1u,s2u},其中,s1u为t时刻速度的偏差,s2u为t时刻速度的偏差变化率,输出的动作为at;叠加噪声得到的新动作
Figure BDA0002826875040000047
式中,πθ为Actor当前网络输出;S为状态向量;
Figure BDA0002826875040000048
为OU噪声;
叠加噪声得到的新动作a′t和环境交互,生成下一时刻的状态St+1;在本发明中表现为加噪声后作为力或力矩施加给AUV,和环境交互,生成下一时刻的状态矩阵;
Critic当前网络输入为:状态向量St={s1u,s2u}和a′t;Critic当前网络输出Qt
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤五中确定Actor目标网络的输入和输出;确定Critic目标网络的输入和输出;具体过程为:
Actor目标网络输入的状态向量为:叠加噪声的新动作a′t和环境交互生成的下一时刻的状态St+1,Actor目标网络根据输入的状态向量确定输出新动作at+1
Critic目标网络输入为:叠加噪声的新动作a′t和环境交互生成的下一时刻的状态St+1和at+1;Critic目标网络根据输入确定输出Qt+1
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:所述步骤六中设定Actor网络的损失函数,对Actor网络的损失函数求梯度下降,并通过RBF神经网络更新公式更新Actor当前网络权值参数,目标网络定期复制新权值参数;具体过程为:
Actor网络损失函数为:
Figure BDA0002826875040000051
其中,n为输出Q值数量,取值为1;Q(si,ai,w)是输入状态和动作后得到的价值;si为当前状态;ai为Actor当前网络输出动作;w为神经网络权值;
RBF神经网络更新公式为:
Figure BDA0002826875040000052
Figure BDA0002826875040000053
Figure BDA0002826875040000054
式中,Δcij和Δσj是径向基函数参数增量;Δwjk是神经网络权值增量;η为常数;wjk为第k个隐层权值;ydk为期望输出Q值;yk为当前输出Q值;xi为神经网络第i输入;cij为第i个输入量对第j个基函数的中心点;x为神经网络输入;cj为第j个基函数的中心点;E表示损失函数;f(·)为以e为底的指数函数。
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:所述步骤七中计算Critic网络的损失函数,对Critic网络的损失函数求梯度下降,并通过RBF神经网络更新公式来更新Critic当前网络权值参数;具体过程为:
通过Critic目标网络输出的Qt+1与回报函数R,得到期望值yi=R+γQt+1(St+1,at+1,w')
其中w'是Critic期望网络权值;
对于速度,设回报函数为速度与加速度相对于目标的差值,即R=-|ud-u|-|u1d-u1|,这样可以使训练过程同时考虑到速度和加速度的变化,使速度接近目标速度时回报值更大。对于舶向角,设计回报函数为R=-|ψd-ψ|-|ψ1d-ψ1|,同时考虑角度与角速度相对目标值的变化。
ud为目标速度;u为当前速度;u1d为目标加速度;u1为当前目标加速度;
ψd为目标舶向角;ψ为当前舶向角;ψ1d为目标舶向角导数;ψ1为当前舶向角导数;
计算TD误差:
Figure BDA0002826875040000061
其中γ是折扣率;进而得到损失函数:
Figure BDA0002826875040000062
式中,n为输出Q值数量,取值为1;w为神经网络权值;Q(si,ai,w)是输入状态和动作后得到的价值;si为当前状态;ai为当前动作;
对损失函数J(w)求梯度下降,并通过RBF神经网络更新公式来更新critic当前网络和权值参数。
其它步骤及参数与具体实施方式一至七之一相同。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是:所述步骤九中重复执行步骤八,直至Actor-Critic神经网络收敛,得到相对稳定的Q值;此时Actor当前网络输出动作,叠加噪声后,通过变换即为控制律参数值;
具体公式为:
ku=(a′tu-6)*0.2+Ku0;kψ1=(a′tψ1-7)*0.2+Kr10;kψ2=(a′tψ2-7)*0.2+Kr20
式中,Ku0、Kr10、Kr20为控制器原始参数;a′tu、a′tψ1和a′tψ2是Actor-Critic算法最终输出的动作值;*是乘号。其它步骤及参数与具体实施方式一至八之一相同。
参数定义
M为质量惯性矩阵;η=[x,y,z,φ,θ,ψ]T为AUV在固定坐标系下的六自由度位置与姿态值;ηd=[xd,yd,zdddd]T为AUV在固定坐标系下的六自由度位置与姿态期望值;eu=u-ud为速度误差;eη=η-ηd为姿态误差;v=[u,v,w,p,q,r]T为运动坐标系下的速度与角速度量;J为固定坐标系与运动坐标系之间的转换矩阵;CRB为刚体的科氏力和向心力矩阵;CA为附加质量的科氏力和向心力矩阵;D为水动力阻尼矩阵;gη为重力和浮力产生的力和力矩向量;τ为推进系统产生的控制力和力矩;u为推进器的控制量;为了使用基于Actor-Critic算法的参数自适应反步控制器,实现对AUV的轨迹跟踪控制,本发明的目标,即设计控制器u使AUV系统在存在海流干扰的情况下,其速度矩阵v与姿态量矩阵η仍然能够跟踪期望值vd、ηd并使跟踪误差ev=v-vd、eη=η-ηd有预先给定的动态性能及稳态响应情况。
AUV动力学模型变换
本发明考虑洋流扰动影响,设扰动为d,则AUV动力学模型变为:
Figure BDA0002826875040000063
考虑到本发明是基于AUV水平面运动来进行强化学习控制算法的研究,所以将六自由度动力学模型简化为水平面运动模型。简化基于哈尔滨工程大学水下机器人重点实验室研制的某型AUV的以下几个特点进行:
(1)该型号AUV重心与随体坐标系的原点重合,重心位于浮心下方且与位于同一垂线上,且假设重力与浮力平衡;
(2)该型号AUV的前后、左右基本上具备对称结构,考虑将模型进一步简化,假设上下面也近似为对称面,因此可以得到:Ixy=Ixz=Iyz=0
同时根据对称面性质,附加质量矩阵中非对角元素的值远小于对角元素,因此只需考虑附加质量矩阵中的对角元素即可,而对非对角元素进行忽略。
(3)该型号AUV采用舵桨联合控制,其执行机构包括一组垂直舵和一个纵向推进器,缺少侧向推进器,因此,控制输出具体如下式所示:τ=[τu 0 τr]
综上所述,简化后的AUV水平面运动学模型和动力学模型分别如下式所示:
Figure BDA0002826875040000071
为方便在仿真环境中对AUV控制性能进行验证,表1给出了哈尔滨工程大学某型AUV水平面无量纲水动力参数。
表1某型AUV水平面无量纲水动力参数
Figure BDA0002826875040000072
Actor-Critic算法改进
本发明控制器应用的强化学习算法是在Actor-Critic算法的基础上进行改进。Actor-Critic算法一般由两个神经网络构成,即根据状态(state)输出动作(actor)的actor网络和根据状态及动作输出评分的critic网络,本发明在此结构上的基础上采取了强化学习中常见的“双网络”改进方法,即把每个网络分为“当前网络(eval网络)”和“期望网络(target网络)”,期望网络的参数更新慢于当前网络,以实现打断前后两个Q值相关性的目的,提高了算法的稳定性。四个神经网络都使用RBF神经网络,每个网络分为输入层、隐含层和输出层,结构如图2。其中输入层输入节点数量为i,隐层节点数量为j,输出节点数量为k,其中隐层节点基函数为高斯基函数,如图示。wi是隐层到输出层间权值,cj是第j个基函数的中心点,σj为基函数围绕中心点宽度,‖x-cj2表示向量x-cj的二范数,通常表示x与cj间的距离。
Figure BDA0002826875040000073
除双网络外,Ornstein-Uhlenbeck噪声也被引入算法。OU噪声是一种时间相关噪声,其微分方程为:dxt=-θ(xt-μ)dt+σdWt;其中是μ均值,θ和σ都大于0,dWt是维纳过程(布朗运动)。如不考虑维纳过程,积分得到:xt=μ+(x0-μ)e-θt
其中维纳过程:W(t)-W(s)~N(0,σ2(t-s)),每一段时间的增量符合高斯分布,即OU噪声是从零时刻开始对高斯噪声的累加。噪声的加入能使确定性策略的强化学习算法拥有更强的探索能力,同时OU噪声的时序相关性使它不会高斯噪声一样相邻两步出现差值过大的情况,而是会绕着均值附近正向或负向探索一段距离,这有利于在一个方向上探索。即改进后的actor-critic算法主要由四个神经网络构成——actor当前网络、actor目标网络、critic当前网络和critic目标网络四个网络。目标状态与当前状态作差得到et,进而通过状态转换得到几个神经网络需要输入的状态st,状态作为actor当前网络的输入得到输出动作at,叠加OU噪声后作为力或力矩施加给作用对象(在本发明中为AUV)。同时at和状态st一同作为critic当前网络的输入得到评价值Qt。当动作作用于对象后,可通过环境得到新的状态st+1,与当前网络类似,actor目标网络的输入是st+1,输出是下一时刻的动作at+1,critic目标网络的输入是st+1和at+1,输出新的评价值Qt+1;回报函数R由新状态设计得到,与Qt+1共同构成损失函数Loss,用于更新神经网络权值。这样的结构使得动作输出兼有探索性的同时节省了训练样本数,双网络结构打破了相邻两次样本的相关性,使其更好地收敛。
自适应轨迹跟踪控制器设计
本发明对控制算法的验证在水平面进行,结合仿真所用AUV型号的特点,提出以下控制律:
Figure BDA0002826875040000081
进一步结合简化后的AUV动力学模型,提出对速度u和姿态中的舶向角ψ的控制律,对纵向速度的控制力为:
Figure BDA0002826875040000082
力矩为:
Figure BDA0002826875040000083
其中ku>0、
Figure BDA0002826875040000084
Figure BDA0002826875040000085
为控制系数。
理论基础
AUV的运动学方程及动力学模型
运动学方程
AUV运动学方程本质上反映的是大地坐标系与随体坐标系两者间的转换关系,当有外力作用于AUV上时,会使其产生线加速度和角加速度,从而使AUV的线速度和角速度发生变化,为了解线速度和角速度的变化引起的AUV在大地坐标系中最终的位姿变化,就会涉及到坐标转换矩阵。
当从大地坐标系向随体坐标系进行转化时,首先是绕Oz轴旋转偏航角ψ,接着绕Oy′轴旋转俯仰角θ,最后绕Ox″旋转横摇角
Figure BDA0002826875040000086
最终得到线速度关系转换矩阵R如下式所示:
Figure BDA0002826875040000087
角速度关系转换矩阵T如下式所示:
Figure BDA0002826875040000088
综上可得AUV的运动学方程如下式所示:
Figure BDA0002826875040000089
式中,
Figure BDA0002826875040000091
表示AUV的位置和姿态;
v=[u v w p q r]T,表示AUV的线速度和角速度;
R和T分别表示线速度关系转换矩阵和角速度关系转换矩阵,且均为正交阵。
AUV动力学模型
水下复杂的环境,给AUV的运动控制研究带来了一定的困难,因此,对AUV的运动受力分析显得尤为重要。本论文参考Fossen提出的AUV六自由度动力学模型,包括五个部分,即刚体惯性力和科氏向心力
Figure BDA0002826875040000092
附加质量力和附加科氏向心力
Figure BDA0002826875040000093
阻尼力D(ν)ν、重浮力产生的恢复力g(η)以及推进力τ。具体方程如下式所示:
Figure BDA0002826875040000094
刚体惯性力和刚体科氏向心力:
在对AUV进行动力学建模时,可以将AUV近似地看作刚体,AUV六自由度空间运动指的是沿大地坐标系中坐标轴的直线运动及转动运动,其刚体惯性力参数矩阵、刚体科氏向心力参数矩阵具体分别如下式所示:
Figure BDA0002826875040000095
Figure BDA0002826875040000096
附加质量力和附加科氏向心力:
AUV在水中作加速运动时,会受到来自流体的惯性力作用,具体表现为对AUV的反作用力,即附加质量力,它与AUV的加速度成正比,表示为
Figure BDA0002826875040000097
附加科氏向心力同样由AUV附加质量力引起,表示为CA(ν)ν。附加质量力参数矩阵和附加科氏向心力参数矩阵具体分别如下式所示:
Figure BDA0002826875040000101
式中:
Figure BDA0002826875040000102
阻尼力:
AUV在水下运动过程中,受到的阻尼力主要包括摩擦阻力和压差阻力两部分。阻尼力矩阵具体可以表示为线性阻尼力Dl(ν)和非线性阻尼力Dn(ν)之和,即:D(ν)=Dl(ν)+Dn(ν),其中非线性阻尼力与流速平方成正比且方向为来流方向。阻尼力参数矩阵具体如下式所示:
Dl(v)=-diag{Xu Yv Zw Kp Mq Nr}
Dn(v)=-diag{lXu|u||u| Yv|v||v| Zw|w||w| Kp|p||p| Mq|q||q| Nr|r||r|}
Figure BDA0002826875040000103
重力和浮力:
AUV在水中运动时同时受到重力和浮力的作用,重力和浮力分别作用于AUV的重心W和浮心B上,通常情况下它们在坐标系中不位于同一点,因此,AUV在同时受到重浮力作用时会产生力矩。将其转换到随体坐标系下,AUV的恢复力和力矩具体如下式所示:
Figure BDA0002826875040000104
因为本发明的仿真在水平面内进行,因此将AUV动力学方程简化为对纵向速度u和舶向角ψ的分别控制。控制输出具体如下式所示:τ=[τu 0 τr]
综上所述,简化后的AUV水平面运动学模型和动力学模型分别如下式所示:
Figure BDA0002826875040000111
自适应姿态跟踪控制器设计:
在对基于改进Q学习的参数自适应反步法控制器的结构进行设计前,需要对AUV基于反步法的速度和艏向控制器进行推导。反步法是属于非线性控制方法,它的基本思想是根据Lyapunov理论设计中间虚拟控制量,在保证稳定性的前提下设计反馈控制律,从而保证跟踪误差逐渐趋近于零。本发明对AUV基于反步法的速度和艏向控制律的推导是基于简化的AUV水平面数学模型进行的。
AUV的动力学方程为
Figure BDA0002826875040000112
位置矩阵与速度矩阵的转化关系为
Figure BDA0002826875040000113
设误差参考信号为:ηr=ηd
根据误差参考信号设计误差为:
Figure BDA0002826875040000114
其中α1为虚拟控制。
首先对z1求导:
Figure BDA0002826875040000115
设虚拟控制量为:
Figure BDA0002826875040000116
其中K1为正定对称矩阵。根据误差方程构造Lyapunov函数V1
Figure BDA0002826875040000117
对V1求导得:
Figure BDA0002826875040000118
显然此时z1部分负定。而后对z2求导得
Figure BDA0002826875040000119
进一步得到:
Figure BDA00028268750400001110
Figure BDA00028268750400001111
进而对V2求导得
Figure BDA00028268750400001112
代入
Figure BDA00028268750400001113
得:
Figure BDA00028268750400001114
设干扰为0,将动力学方程
Figure BDA00028268750400001115
代入上式得:
Figure BDA00028268750400001116
根据上式设计控制律:
Figure BDA00028268750400001117
将(2)代入(1)得:
Figure BDA0002826875040000121
即式(1)负定。由此可证明控制结果收敛。
而后根据AUV动力学模型以及运动学方程,分别得到对速度控制的纵向推力τu为:
Figure BDA0002826875040000122
对角度控制的偏航力矩τr为:
Figure BDA0002826875040000123
其中ku为速度控制器的参数,对应于式(2)中的K1,kψ1和kψ2为角度控制器的参数,对应式(2)中的K1和K2
综上所述,只需根据式(3)和式(4)分别设计速度和艏向控制律,同时保证速度和艏向控制器的控制系数ku、kψ1以及kψ2为正数,即能实现对AUV速度和艏向的良好控制。基于RBF神经网络的改进actor-critic算法
RBF神经网络:
RBF神经网络的连接权值修正函数采用反向传播的形式,神经网络的训练更新公式为:
Figure BDA0002826875040000124
Figure BDA0002826875040000125
Figure BDA0002826875040000126
下一时刻的权值为:
cij(t+1)=cij(t)+Δcij+α[cij(t)-cij(t-1)];σj(t+1)=σj(t)+Δσj+α[σj(t)-σj(t-1)]wjk(t+1)=wjk(t)+Δwjk+α[wjk(t)-wjk(t-1)]
其中η为神经网络学习率,f(·)为节点基函数,yk是神经网络输出值,ydk是期望输出,t表示迭代当前步,α为平滑因子,
Figure BDA0002826875040000127
表示损失函数。
算法中速度控制器与舶向角控制器四个网络的设置分别如下:
表2四个RBF神经网络节点数设置
Figure BDA0002826875040000128
Figure BDA0002826875040000131
改进后的Actor-Critic算法
传统Actor-Critic算法的框架主要由两个神经网络构成,即动作网络(actor)和评价网络(critic)。Actor的前身是policy-based的policy gradient方法,它能利用策略梯度算法原理从连续动作空间中选择合适的动作,但训练时需要的数据量大;而Critic网络的前身是value-based类算法,这类算法训练效率高但动作选择数量有限,对动作空间大的系统不够精确。结合上述两种方法的优缺点,Actor-Critic算法框架被提出。其中Actor网络基于Critic网络的评价输出更优的动作,Critic网络根据Actor输出动作而达到的状态修改选择行为的概率。但critic网络本身就很难收敛,加入actor后二者收敛会更难,为解决这个问题,参考DQN算法的双网络原理,把评价网络和当前网络分别再加上一个目标网络,目标网络的权值更新慢于当前网络,权值每隔几个训练回合定期从当前网络进行复制,这样就能达到解除两个相邻Q值相关性的目的,使神经网在训练时更容易收敛。
同时由于Acror-Critic算法属于确定性策略算法,即其动作网络输出π(s)S→A直接是一个确定的动作而非动作概率∑π(a∣s)=1。确定性策略直接输出动作,所以有着训练所需数据少、训练效率高速度快等优点,但同样因为只输出一个动作的特性,它无法探索环境。针对这一问题,Ornstein-Uhlenbeck噪声被引入算法,即Actor当前网络的输出直接叠加OU噪声,在规定范围内使动作拥有一定的随机性,使算法能探索环境。OU噪声是一种时间相关噪声,其微分方程为dxt=-θ(xt-μ)dt+σdWt,其中是μ均值,θ和σ都大于0,dWt是维纳过程(布朗运动)。如不考虑维纳过程,积分得到:xt=μ+(x0-μ)e-θt
其中维纳过程:W(t)-W(s)~N(0,σ2(t-s)),每一段时间的增量符合高斯分布,即OU噪声是从零时刻开始对高斯噪声的累加。同时OU噪声显然是一种均值回归函数,即如果上一时刻的值xt大于均值μ,则下一个状态就会变小,反之则会向增大的方向变化。噪声的加入能使确定性策略的强化学习算法拥有更强的探索能力,同时OU噪声的时序相关性和均值回归性使它不会高斯噪声一样相邻两步出现差值过大的情况,而是会绕着均值附近正向或负向探索一段距离,这有利于在一个方向上探索。由公式看出,显然当θ值越大,xt向均值靠近的速度就越快,而且是指数倍的靠近;σ2则是维纳过程的参数,在OU过程中它决定扰动的放大倍数。不同θ和σ值情况下噪声仿真效果如图3、图4、图5。
综上设计改进后的Actor-Critic算法如下:基于神经网络结构的改进actor-critic算法结构如图6:由图6可知,改进后的actor-critic算法主要由四个神经网络构成,即已经进行过陈述的actor当前网络、actor目标网络、critic当前网络和critic目标网络四个网络。目标状态与当前状态作差得到et,进而通过状态转换得到几个神经网络需要输入的状态st,状态作为actor当前网络的输入得到输出动作at,叠加OU噪声后作为力或力矩施加给作用对象(在本发明中为AUV)。同时at和状态st一同作为critic当前网络的输入得到评价值Qt。当动作作用于对象后,可通过环境得到新的状态st+1,与当前网络类似,actor目标网络的输入是st+1,输出是下一时刻的动作at+1,critic目标网络的输入是st+1和at+1,输出新的评价值Qt+1;回报函数R由新状态设计得到,与Qt+1共同构成损失函数Loss,用于更新神经网络权值。这样的结构使得动作输出兼有探索性的同时节省了训练样本数,双网络结构打破了相邻两次样本的相关性,使其更好地收敛。
四个神经网络的输入输出如下表:
表3神经网络输入输出
Figure BDA0002826875040000141
改进Actor-Critic算法控制器学习更新过程:众所周知,每一个神经网络的更新都需要若干个确定的输入输出样本对,根据实际输出与期望输出的偏差,通过梯度下降法和微分链式规则对权值不断进行调整,最终达到一个比较好的拟合效果。但是在强化学习中,并不能事先得到确定的输入输出样本对,而是通过AUV与环境交互得到实时样本,训练与仿真同时进行,这也是强化学习的一个优点,与传统的神经网络相比,不再需要大量的输入输出样本对等先验知识,仅通过与环境的不断交互,便可以进行学习。
在改进后的Actor-Critic算法中,当前网络每回合更新,而目标网络每隔n回合从当前网络复制更新后的权值。其中actor网络和critic网络的更新方法有所不同。Critic网络利用均方误差进行更新,即通过critic目标网络输出的新评价Qt+1与回报函数R,得到期望值yi=R+γQt+1(St+1,at+1,w')
计算TD误差:
Figure BDA0002826875040000142
其中γ是折扣率。进而得到损失函数:
Figure BDA0002826875040000143
对损失函数J(w)求梯度下降,并通过公式来更新critic网络权值参数。更新完成后每隔n个回合将参数复制到目标网络,依靠两个网络更新后的输出继续实现新参数迭代直至收敛,最后得到相对稳定的Q值。
对于actor网络,其损失梯度为
Figure BDA0002826875040000144
即输出动作与对应Q值,Q值越大表示采取的动作得到了更高的奖励,动作评价更高,因此我们希望得更大的Q值。综上对actor网络的损失理解为Q值越大损失越小,Q值越小损失越大,所以对当前网络输出的Q值取负就是actor网络的损失函数,损失函数为
Figure BDA0002826875040000145
得到损失函数后与critic网络更新方法相同,对J(θ)求梯度下降,并通过RBF神经网络更新公式进行当前critic网络权值更新,目标网络定期复制新权值参数。具体学习流程如表4。
表4基于RBF神经网络的Actor-Critic算法学习流程
Figure BDA0002826875040000146
Figure BDA0002826875040000151
整体控制器结构:本发明整体控制流程图如图1:
由图1可知,控制器主要由两部分构成,一是推导的反步法控制器,二是改进actor-critic算法。强化学习算法部分根据状态调整反步法部分的参数,即ku
Figure BDA0002826875040000152
Figure BDA0002826875040000153
以实现参数优化的目的,使控制器的效率更高。主要控制流程如表5:
表5控制器控制流程
Figure BDA0002826875040000154
针对AUV在运动中的动作特性,本发明对强化学习部分中的动作状态表示以及奖惩函数做如下设计:
改进Actor-Critic算法控制器状态和动作表示:
对于基于RBF神经网络的改进Actor-Critic算法控制器,不需要对状态空间进行离散划分,由于神经网络具有强大的拟合逼近能力,即可以对连续状态变量进行处理,所以只需将状态值直接输入即可。对于速度控制器,输入的状态向量可以表示为Su={s1u,s2u},其中s1u为速度的偏差,s2u为速度的偏差变化率;对于艏向控制器,输入的状态向量可以表示为Sψ={s,s,s},其中s为偏航角的偏差,s为偏航角的偏差变化率,s为AUV实时速度。对于动作的输出,将actor当前网络输出的动作乘以系数并加上常数,同时为了增加动作随机性增加学习覆盖,在处理过后的动作值上叠加OU噪声,即
Figure BDA0002826875040000161
最终得到的A直接作为对AUV输入的力或力矩。通过以上分析可知,这种形式的网络结构可以对动作进行连续输出。需要注意的是,需要分别对速度和艏向控制器的输入向量进行归一化处理,具体地,速度控制器的输入量s1u和s2u应分别除以2m/s,1m/s2,然后输入神经网络;艏向控制器的输入量s、s以及s应分别除以3rad,1rad/s,2m/s,然后输入神经网络;可知τur∈[-1,1],所以需要进行相应转换得到最终纵向推力和转艏力矩,即τ′u=τu·τumax,τ′r=τr·τrmax。其中,τumax和τrmax分别为最大纵向推力和最大转艏力矩。对于本文仿真所用AUV模型,τumax=800N,τrmax=2500N·m。改进Actor-Critic算法控制器奖惩函数设计此部分对回报函数R进行设计。对于速度,设回报为速度与加速度相对于目标的差值,即ru=-|ud-u|-|u1d-u1|,这样可以使训练过程同时考虑到速度和加速度的变化,使速度接近目标速度时回报值更大。同理对于舶向角,设计回报函数为rψ=-|ψd-ψ|-|ψ1d-ψ1|,同时考虑角度与角速度相对目标值的变化。与现有技术方案的比较:对于强化学习算法应用于AUV控制这一方向,除了本发明提出的将改进后的Actor-Critic算法与传统控制结合实现参数自适应的方案外,还有很对其他方案被提出。用Actor-Critic算法直接构成控制器,即Actor的动作输出直接作为力和力矩施加给AUV;将强化学习中的改进后的Q值法与S面控制方法结合,实现参数自适应的AUV控制。以下简单介绍这两种方案,并将它们与本发明的方案进行比较。
基于纯强化学习控制器方案:提出了一种基于Actor-Critic算法的控制器框架,这种纯粹的强化学习控制器不依赖于准确的动力学模型,在模型受到干扰或损害时有着更强的泛化能力,同时actor-critic的算法特点也更适用于拥有大动作空间的AUV系统。但从仿真结果来看,在稳态误差控制到一定范围内的时候依然会不时波动,并不能很好地稳定在一个确定的值,也就是说这种状态下的控制器准确性不高。同时因为actor-crritic算法是确定性算法,即输出动作是确定的,因此缺乏对环境的探索性。本发明在这篇文章的基础上对强化学习算法加以改进,提高了它的探索能力和收敛速度,同时引入强化学习与传统控制相结合的框架结构,控制结果拥有更强的稳定性和准确性。
基于Q值法等vaule-based算法控制器方案:
提出了一种将Q值法与S面控制方法结合控制器方案,通过强化学习算法部分对S面参数进行调整,达到参数优化的目的。因为这种方法中的Q值表方法部分输出的时传统控制器部分的参数而不是力和力矩,因此它可以在实现参数优化的同时避免一些强化学习输出不稳定的问题。根据仿真结果,控制器的稳定性和准确性也确实优于单纯的强化学习控制器。但本篇文章并没有考虑到Q值法这种基于价值的算法输出空间有限,而AUV有着精细的结构模型,动作空间极大,因此这种算法对于AUV来说精度是不够的。针对这一点,本发明将Q值法改为更适用于大动作空间的actor-critic算法,并加以改进,使运动精度更高。
仿真算例:
本发明使用Matlab软件搭建simulink模型进行仿真,各部分模型搭建如图7:
其中各部分模型功能如下。输入力与力矩矩阵和AUV模型如图8:
AUV模型水动力参数:
为方便在仿真环境中对AUV控制性能进行验证,表6给出了哈尔滨工程大学某型AUV水平面无量纲水动力参数。
表6某型AUV水平面无量纲水动力参数
Figure BDA0002826875040000171
初始坐标:
速度与姿态初始状态矩阵为:An=[0;0;0;0;0;0;];W0=[0.5;0;0;0;0;0];
仿真中海流干扰用三角函数表示:du=10*sin(t/5)*cos(y(5)/10);dv=0;dr=500*sin(t/10)*cos(y(5)/5)
控制器参数:
要求系统稳态控制精度达到0.005。控制器参数设置分为传统控制器部分和神经网络部分。其中反步法部分初始参数分别为Ku=3,Kψ1=3,Kψ2=1;神经网络参数分别以1为均值0.05为标准差按正态分布随机取值。其他参数如下表
表7预设性能参数取值
Figure BDA0002826875040000172
仿真分析:基于改进Actor-Critic算法的控制器:
为了与本发明中将强化学习与反步法结合的控制器进行对比,在本节中通过改进后的actor-critic算法直接输出力与力矩作用于AUV,设置速度目标值为1,角度目标值为2,通过搭建好的模型进行训练,得到如图9、10结果。图9和图10是在改进后的actor-critic算法直接输出力与力矩作用于AUV的情况下,第一至四次的控制及训练效果(每条曲线分别对应一至四次输出结果),由图可以看出,改进后的actor-critic算法无疑具有很高的训练效率,可以通过更新神经网络参数快速优化控制效果。
基于改进Actor-Critic算法的参数自适应控制器:
本发明将初始反步法部分初始参数设定为Ku=3,Kψ1=3,Kψ2=1,而后通过强化学习部分算法对参数进行调整,下面对加入与不加入actor-critic算法的两种仿真结果进行对比。图11-14为单独的反步法控制器控制效果图;图15-20为结合了改进后actor-critic算法的控制效果图。由于反步法的效果已经不错,整体图较难看出区别,因此将其放大进行对比。通过对比图13、14和图19、20的控制结果,很容易看出经过参数训练的控制器拥有更佳的快速性和稳定性,选择合适的强化学习参数后能十分有效地抑制超调。为测试控制器的鲁棒性,在仿真中加入如图21和22的干扰,对速度的最大干扰力约为22N,对角度的最大干扰力约为1000N。在干扰状态下,设计的控制器对速度和角度控制效果如图23和24。由控制效果图11-24可知,本发明设计的控制器能对海流干扰下偏离目标值的情况进行及时的矫正,具有优秀的鲁棒性。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (3)

1.一种基于Actor-Critic算法的水下机器人运动控制方法,其特征在于:所述方法具体过程为:
步骤一、初始化参数;
步骤二、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据简化后的AUV动力学模型和运动学方程确定速度控制系统的控制律以及艏向控制系统的控制律;
步骤三、设定Actor-Critic神经网络,Actor-Critic神经网络包括四个RBF神经网络,分别为Actor当前网络、Actor目标网络、Critic当前网络和Critic目标网络;
步骤四、确定Actor当前网络的输入和输出;确定Critic当前网络的输入和输出;
步骤五、确定Actor目标网络的输入和输出;确定Critic目标网络的输入和输出;
步骤六、设定Actor网络的损失函数,对Actor网络的损失函数求梯度下降,并通过RBF神经网络更新公式更新Actor当前网络权值参数;
步骤七、计算Critic网络的损失函数,对Critic网络的损失函数求梯度下降,并通过RBF神经网络更新公式来更新Critic当前网络权值参数;
步骤八、重复执行步骤四至步骤七n次,第n次将更新后的critic当前网络权值参数复制到critic目标网络,将更新后的Actor当前网络权值参数复制到Actor目标网络;
步骤九、重复执行步骤八,直至Actor-Critic神经网络收敛,得到稳定的Q值;此时Actor当前网络输出动作,叠加噪声后,通过变换即为控制律参数值;
所述步骤六中设定Actor网络的损失函数,对Actor网络的损失函数求梯度下降,并通过RBF神经网络更新公式更新Actor当前网络权值参数;具体过程为:
Actor网络损失函数为:
Figure FDF0000017527760000011
其中,n为输出Q值数量;Q(si,ai,w)是输入状态和动作后得到的价值;si为当前状态;ai为Actor当前网络输出动作;w为神经网络权值;
RBF神经网络更新公式为:
Figure FDF0000017527760000012
Figure FDF0000017527760000013
Figure FDF0000017527760000021
式中,Δcij和Δσj是径向基函数参数增量;Δwjk是神经网络权值增量;η为常数;wjk为第k个隐层权值;ydk为期望输出Q值;yk为当前输出Q值;xi为神经网络第i输入;cij为第i个输入量对第j个基函数的中心点;x为神经网络输入;cj为第j个基函数的中心点;E表示损失函数;f(·)为以e为底的指数函数;
下一时刻的权值为:
cij(t+1)=cij(t)+Δcij+α[cij(t)-cij(t-1)]
σj(t+1)=σj(t)+Δσj+α[σj(t)-σj(t-1)]
wjk(t+1)=wjk(t)+Δwjk+α[wjk(t)-wjk(t-1)]
其中η为神经网络学习率,f(·)为节点基函数,yk是神经网络输出值,ydk是期望输出,t表示迭代当前步,α为平滑因子,
Figure FDF0000017527760000022
表示损失函数;
所述步骤七中计算Critic网络的损失函数,对Critic网络的损失函数求梯度下降,并通过RBF神经网络更新公式来更新Critic当前网络权值参数;具体过程为:
通过Critic目标网络输出的Qt+1与回报函数R,得到期望值yi=R+γQt+1(St+1,at+1,w')
其中w′是Critic期望网络权值;
对于速度,设回报函数为速度与加速度相对于目标的差值,即R=-|ud-u|-|u1d-u1|,对于舶向角,设计回报函数为R=-|ψd-ψ|-|ψ1d-ψ1|;
ud为目标速度;u为当前速度;u1d为目标加速度;u1为当前目标加速度;
ψd为目标舶向角;ψ为当前舶向角;ψ1d为目标舶向角导数;ψ1为当前舶向角导数;
计算TD误差:
Figure FDF0000017527760000023
其中γ是折扣率;
进而得到损失函数:
Figure FDF0000017527760000031
式中,n为输出Q值数量;w为神经网络权值;Q(si,ai,w)是输入状态和动作后得到的价值;si为当前状态;ai为当前动作;
对损失函数J(w)求梯度下降,并通过RBF神经网络更新公式来更新critic当前网络和权值参数;
所述步骤九中重复执行步骤八,直至Actor-Critic神经网络收敛,得到稳定的Q值;此时Actor当前网络输出动作,叠加噪声后,通过变换即为控制律参数值;
具体公式为:
ku=(a|tu-6)*0.2+Ku0
kψ1=(a|tψ1-7)*0.2+Kr10
kψ2=(a|tψ2-7)*0.2+Kr20
式中,Ku0、Kr10、Kr20为控制器原始参数;a|tu、a|tψ1和a|tψ2是Actor-Critic算法最终输出的动作值;*是乘号;
所述步骤二中基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;具体过程为:
水下机器人的速度控制系统为:
Figure FDF0000017527760000032
其中,m为水下机器人的质量,
Figure FDF0000017527760000033
和Xu|u|均为无量纲水动力参数,u为水下机器人纵向速度,|u|为u的绝对值,
Figure FDF0000017527760000034
为水下机器人纵向加速度,τu为推进器纵向推力,v为水下机器人横向速度,r为水下机器人偏航角速度;
水下机器人速度控制系统的控制律为:
Figure FDF0000017527760000035
其中,ku为速度控制系统的控制律的待调节控制参数;ku>0;ud为目标速度;
Figure FDF0000017527760000036
为目标加速度;
水下机器人的艏向控制系统为:
Figure FDF0000017527760000041
其中,
Figure FDF0000017527760000042
为实际艏向角的一阶导数,
Figure FDF0000017527760000043
为r的一阶导数,Nr
Figure FDF0000017527760000044
Nr|r|均为无量纲水动力参数,|r|为r的绝对值,τr为转艏力矩,Iz为水下机器人绕运动坐标系z轴的转动惯量;
所述运动坐标系为:以水下机器人的重心为原点O,以指向水下机器人的艏向方向为x轴正向,以指向水下机器人的右舷方向为为y轴正向,以指向水下机器人的底部方向为z轴正向,且x轴、y轴、z轴符合右手螺旋定则的坐标系;
水下机器人艏向控制系统的控制律为:
Figure FDF0000017527760000045
其中,kψ1为艏向控制系统的控制律的第一个待调节控制参数,kψ2为艏向控制系统的控制律的第二个待调节控制参数;kψ1>0和kψ2>0;
所述步骤一中初始化参数;具体为:
初始化神经网络参数θ、w为[-1,1]的随机数,并设置神经网络更新权值α、折扣率γ、ε;初始化控制器原始参数ku0、Kr10以及Kr20;初始化AUV模型参数质量m,无量纲水动力参数
Figure FDF0000017527760000046
Xu|u|、Nr
Figure FDF0000017527760000047
Nr|r|,水下机器人绕运动坐标系z轴的转动惯量Iz
所述步骤三中设定Actor-Critic神经网络,Actor-Critic神经网络包括四个RBF神经网络,分别为Actor当前网络、Actor目标网络、Critic当前网络和Critic目标网络;具体过程为:
四个RBF神经网络都是单输入层、单隐层和单输出层;
输入层节点数量为i,隐层节点数量为j,输出层节点数量为k,隐层节点基函数为高斯基函数,如下式所示,cj是第j个基函数的中心点,σj为基函数围绕中心点宽度,‖x-cj2表示向量x-cj的二范数;x为神经网络输入;
Figure FDF0000017527760000048
式中,αj(x)为隐层节点基函数;f(·)是以e为底的指数函数。
2.根据权利要求1所述一种基于Actor-Critic算法的水下机器人运动控制方法,其特征在于:所述步骤四中确定Actor当前网络的输入和输出;确定Critic当前网络的输入和输出;具体过程为:
Actor当前网络输入的状态向量为St={s1u,s2u};
其中,s1u为t时刻速度的偏差,s2u为t时刻速度的偏差变化率;
Actor当前网络输出的动作为at
叠加噪声得到的新动作
Figure FDF0000017527760000051
式中,πθ为Actor当前网络输出;S为状态向量;
Figure FDF0000017527760000052
为OU噪声;
叠加噪声得到的新动作a′t和环境交互,生成下一时刻的状态St+1
Critic当前网络输入为:状态向量St={s1u,s2u}和a′t
Critic当前网络输出Qt
3.根据权利要求2所述一种基于Actor-Critic算法的水下机器人运动控制方法,其特征在于:所述步骤五中确定Actor目标网络的输入和输出;确定Critic目标网络的输入和输出;具体过程为:
Actor目标网络输入的状态向量为:叠加噪声的新动作a′t和环境交互生成的下一时刻的状态St+1,Actor目标网络根据输入的状态向量确定输出新动作at+1
Critic目标网络输入为:叠加噪声的新动作a′t和环境交互生成的下一时刻的状态St+1和at+1
Critic目标网络根据输入确定输出Qt+1
CN202011432207.8A 2020-12-09 2020-12-09 一种基于Actor-Critic算法的水下机器人运动控制方法 Active CN112462792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011432207.8A CN112462792B (zh) 2020-12-09 2020-12-09 一种基于Actor-Critic算法的水下机器人运动控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011432207.8A CN112462792B (zh) 2020-12-09 2020-12-09 一种基于Actor-Critic算法的水下机器人运动控制方法

Publications (2)

Publication Number Publication Date
CN112462792A CN112462792A (zh) 2021-03-09
CN112462792B true CN112462792B (zh) 2022-08-09

Family

ID=74800485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011432207.8A Active CN112462792B (zh) 2020-12-09 2020-12-09 一种基于Actor-Critic算法的水下机器人运动控制方法

Country Status (1)

Country Link
CN (1) CN112462792B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947505B (zh) * 2021-03-22 2022-11-25 哈尔滨工程大学 一种基于强化学习算法与未知干扰观测器的多auv编队分布式控制方法
CN113246121B (zh) * 2021-04-08 2022-04-08 浙江工业大学 一种基于Actor-Critic深度强化学习的同心管机器人控制方法
CN113253612B (zh) 2021-06-01 2021-09-17 苏州浪潮智能科技有限公司 一种自动驾驶控制方法、装置、设备及可读存储介质
CN113341972A (zh) * 2021-06-07 2021-09-03 沈阳理工大学 一种基于深度强化学习的机器人路径寻优规划方法
CN114967821A (zh) * 2022-03-29 2022-08-30 武汉城市职业学院 一种基于强化学习的光伏发电系统最大功率跟踪控制方法
CN114967713B (zh) * 2022-07-28 2022-11-29 山东大学 基于强化学习的水下航行器浮力离散变化下的控制方法
CN117647981A (zh) * 2023-11-23 2024-03-05 中船(北京)智能装备科技有限公司 一种无人艇智能航行控制方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107748566B (zh) * 2017-09-20 2020-04-24 清华大学 一种基于强化学习的水下自主机器人固定深度控制方法
CN108038545A (zh) * 2017-12-06 2018-05-15 湖北工业大学 基于Actor-Critic神经网络连续控制的快速学习算法
CN108803321B (zh) * 2018-05-30 2020-07-10 清华大学 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
CN110209152B (zh) * 2019-06-14 2022-04-05 哈尔滨工程大学 智能水下机器人垂直面路径跟随的深度强化学习控制方法
CN111079936B (zh) * 2019-11-06 2023-03-14 中国科学院自动化研究所 基于强化学习的波动鳍推进水下作业机器人追踪控制方法
CN111176122B (zh) * 2020-02-11 2022-05-13 哈尔滨工程大学 一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Adaptive Neural Network Control of AUVs With Control Input Nonlinearities Using Reinforcement Learning;Cui rongxin,et al.;《IEEE TRANSACTIONS ON SYSTEMS,MAN,AND CYBERNETICS:SYSTEMS》;20170630;第47卷(第6期);全文 *

Also Published As

Publication number Publication date
CN112462792A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112462792B (zh) 一种基于Actor-Critic算法的水下机器人运动控制方法
CN108803321B (zh) 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
Sun et al. Mapless motion planning system for an autonomous underwater vehicle using policy gradient-based deep reinforcement learning
CN112904728B (zh) 一种基于改进型趋近律的机械臂滑模控制轨迹跟踪方法
CN111290270B (zh) 一种基于Q-learning参数自适应技术的水下机器人反步速度和艏向控制方法
Liu et al. Fully-tuned fuzzy neural network based robust adaptive tracking control of unmanned underwater vehicle with thruster dynamics
CN112947505B (zh) 一种基于强化学习算法与未知干扰观测器的多auv编队分布式控制方法
Wang et al. Path planning under constraints and path following control of autonomous underwater vehicle with dynamical uncertainties and wave disturbances
CN111176122B (zh) 一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法
CN111240345B (zh) 基于双bp网络增强学习框架的水下机器人轨迹跟踪方法
CN111240344B (zh) 基于强化学习技术的自主水下机器人无模型控制方法
CN112965371B (zh) 基于固定时间观测器的水面无人艇轨迹快速跟踪控制方法
Wang et al. 3-D path planning with multiple motions for a gliding robotic dolphin
CN111857165B (zh) 一种水下航行器的轨迹跟踪控制方法
Zhang et al. A novel event-triggered robust neural formation control for USVs with the optimized leader–follower structure
CN113377121A (zh) 一种基于深度强化学习的飞行器智能抗扰动控制方法
Chocron et al. Dynamic reconfiguration of autonomous underwater vehicles propulsion system using genetic optimization
CN111273677B (zh) 基于强化学习技术的自主水下机器人速度和艏向控制方法
CN109709970B (zh) 一种水下机器人六自由度推力分配优化方法
CN117311142A (zh) 一种融合粒子群算法与神经网络预测控制的dp船舶运动控制与推力分配协同控制方法
CN116620566A (zh) 非合作目标附着多节点智能协同制导方法
CN113050420B (zh) 基于s面控制和td3的auv路径跟踪方法及系统
Zhu et al. Adaptive neural network fixed-time sliding mode control for trajectory tracking of underwater vehicle
Zhang et al. AUV 3D docking control using deep reinforcement learning
CN110703792B (zh) 基于增强学习的水下机器人姿态控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant