CN111240344B - 基于强化学习技术的自主水下机器人无模型控制方法 - Google Patents
基于强化学习技术的自主水下机器人无模型控制方法 Download PDFInfo
- Publication number
- CN111240344B CN111240344B CN202010087508.5A CN202010087508A CN111240344B CN 111240344 B CN111240344 B CN 111240344B CN 202010087508 A CN202010087508 A CN 202010087508A CN 111240344 B CN111240344 B CN 111240344B
- Authority
- CN
- China
- Prior art keywords
- neural network
- value
- action
- learning
- current
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000002787 reinforcement Effects 0.000 title claims abstract description 38
- 238000005516 engineering process Methods 0.000 title claims abstract description 8
- 238000013528 artificial neural network Methods 0.000 claims abstract description 269
- 230000009471 action Effects 0.000 claims abstract description 77
- 238000012549 training Methods 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 31
- 230000000875 corresponding effect Effects 0.000 claims description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 25
- 230000009977 dual effect Effects 0.000 claims description 17
- 230000001276 controlling effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 18
- 238000004088 simulation Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013016 damping Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 210000002364 input neuron Anatomy 0.000 description 2
- 230000007786 learning performance Effects 0.000 description 2
- 238000011158 quantitative evaluation Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241001316028 Euphaedusa tau Species 0.000 description 1
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/04—Control of altitude or depth
- G05D1/06—Rate of change of altitude or depth
- G05D1/0692—Rate of change of altitude or depth specially adapted for under-water vehicles
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
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
一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,属于机器人控制技术领域。为了解决现有的依赖于控制对象模型的水下机器人控制方法存在适用性有限的问题和控制精度不高的问题,以及不依赖控制对象模型的水下机器人控制方法存在训练量大的问题。本发明的控制器,将当前时刻和下一时刻的偏差和偏差变化率分别作为当前BP神经网络和目标BP神经网络的连续输入,当前BP神经网络的输出为实际Q值,目标神经网络的输出为期望Q值,另外将纵向推力和偏航力矩也作为神经网络的输出,从而当状态值平缓变化时,其动作输出为连续值;基于BP神经网络和Q学习的控制器实现水下机器人的控制。主要用于水下机器人的控制。
Description
技术领域
本发明涉及水下机器人的控制方法,属于机器人控制技术领域。
背景技术
水下机器人在海洋科学、生物学、考古学等众多学科领域具有革命性的应用,作为探索海洋的重要技术手段,水下机器人的研究和发展引起了社会的广泛关注。海洋环境复杂多变,充满危险与未知,如何在诸多不可预测因素作用下对水下机器人进行有效控制是一个亟需解决的问题。
随着机器学习的不断发展,科研人员希望赋予机器以学习能力,真正意义上实现智能化。将强化学习方法引入水下机器人智能控制系统,可以使控制系统具备自学习能力,能够在不断与环境交互的过程中累积经验,在以后遇到同样或者类似情况下自主作出最优决策,以此提高控制系统对环境的适应能力。
然而,基于传统强化学习控制器的学习机制依赖于Q值表,在其学习过程中,需要对状态空间和动作空间进行等值划分,划分得越细致,其学习效果越好,但训练次数会因此爆炸式增加,从而导致控制器因无法遍历每个状态空间和动作空间而无法收敛,同时由于训练次数的增加,导致学习速度慢,在实际投入工程实践有较大的局限。另外,传统基于Q值表的强化学习方法,其输出是离散的动作值,然而在实际的机器人控制中,控制器的状态和动作往往是连续的,连续的输入和输出才能使得基于强化学习的控制器更好地替代传统常规的控制器,所以现有的控制方法的效果有待于进一步提高。
发明内容
本发明是为了解决现有的依赖于控制对象模型的水下机器人控制方法存在适用性有限的问题和控制精度不高的问题,以及不依赖控制对象模型的水下机器人控制方法存在训练量大的问题。
一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,利用基于双BP神经网络强化学习的控制器对自主水下机器人进行控制,所述控制器包括基于双BP神经网络Q学习速度控制器;
所述速度控制器包含一个当前BP神经网络和一个目标BP神经网络,利用Q学习算法,实现当前BP神经网络和目标BP神经网络对应的整体控制器的学习;
速度控制器和艏向控制器中的当前BP神经网络中均包含一个状态BP神经网络和一个动作BP神经网络;
当前BP神经网络中的状态BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的Q值,所以状态BP神经网络也称Q值网络;
当前BP神经网络中的动作BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的动作值;
目标BP神经网络包含一个状态BP神经网络,目标BP神经网络的状态BP神经网络与当前BP神经网络中的状态BP神经网络结构相同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
速度控制器以Q学习的方式进行更新,从而实现自主水下机器人的速度控制。
进一步地,所述的控制器还包括基于双BP神经网络Q学习艏向控制器;
艏向控制器与速度控制器的结构相同;
对于艏向控制器,当前BP神经网络中的状态BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的Q值,状态BP神经网络也称Q值网络;当前BP神经网络中的动作BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的的动作值;
目标BP神经网络的结构与当前BP神经网络结构相同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
艏向控制器的工作过程与速度控制器的工作过程相同。
有益效果:
本发明属于一种不基于模型的控制方法,旨在提升水下机器人运动控制的自主性与智能性,利用基于双BP神经网络的强化学习的控制器直接替代传统意义上的控制器,从而赋予水下机器人自主学习的能力。同时本发明在传统基于Q值表的方法上使用了BP神经网络对其Q值进行了拟合,并将动作进行了连续输出。
与现有的神经网络控制方法相比,神经网络的学习过程较长,不利于在机器人运动控制中进行实时应用,并且其在训练过程中需要大量的导师信号,通常倒是信号难以获取。而本发明所采用的基于双BP神经网络的强化学习速度和艏向控制方法由于采用了强化学习的框架,并不需要导师信号,仅通过与环境交互后得到环境的反馈,便可以对神经网络进行更新。另外由于引进了经验样本池,使得神经网络有更快的收敛速度。
与传统Q值表的强化学习的方法相比,现有的强化学习系统在达到一个较好的效果前,需要经过大量的训练,学习效率有待提高。而本发明提出的基于双BP神经网络强化学习速度和艏向控制方法利用BP神经网络强大的拟合能力以及对经验样本训练池的使用,大大降低了强化学习系统的训练次数,提高了效率。
附图说明
图1为基于双BP神经网络Q学习速度控制器结构示意图;
图2为基于双BP神经网络Q学习艏向控制器结构示意图;
图3为状态BP神经网络结构示意图;
图4为动作BP神经网络结构示意图;
图5为固定坐标系和运动坐标系示意图;
图6-1为基于双BP神经网络Q学习速度控制器训练后的效果图;
图6-2为基于双BP神经网络Q学习艏向控制器训练后的效果图;
图6-3为基于双BP神经网络Q学习速度控制器纵向推力的效果图;
图6-4为基于双BP神经网络Q学习艏向控制器偏航力矩的效果图;
图6-5为基于双BP神经网络Q学习速度控制器偏差和的效果图;
图6-6为基于双BP神经网络Q学习艏向控制器偏差和的效果图;
图6-7为脉冲扰动下基于双BP神经网络Q学习艏向控制器学习性能对比的效果图。
具体实施方式
为了提升水下机器人运动控制的自主性与智能性,并且为了避免基于Q学习的控制器因状态空间划分过于细致导致无法收敛的问题,另外为了避免基于单一BP神经网络而导致的目标Q值与当前实际输出Q值具有相关性的缺陷,本发明设计了一种基于双BP神经网络Q学习技术的水下机器人控制器,将当前时刻和下一时刻的偏差和偏差变化率分别作为当前BP神经网络和目标BP神经网络的连续输入,当前BP神经网络的输出为实际Q值(图1和图2中的“实际输出”),目标神经网络的输出为期望Q值(图1和图2中的“期望输出”),另外将纵向推力和偏航力矩也作为神经网络的输出,从而当状态值平缓变化时,其动作输出为连续值。本发明通过利用BP神经网络强大的拟合能力,在达到水下机器人自主学习和自主决策的目标的同时,降低训练次数,提高学习效率。
在说明具体实施方式之前,首先对实施方式中的参数进行一下说明:MRB——惯性力矩阵;CRB——科氏向心力矩阵;MA——附加质量力矩阵;CA——附加阻尼力矩阵;D——阻尼力矩阵;g——重浮力;τu——推进器纵向推力;τr——舵力;——水下机器人在固定坐标系下的六自由度位置和姿态;ν=[u v w p q r]Τ——水下机器人在运动坐标系下的六自由度线速度和角速度;R——线速度旋转矩阵,为正交阵;T——角速度旋转矩阵,为正交阵;Su={s1u,s2u}——基于BP神经网络Q学习的速度控制器的输入向量;s1u——速度的实际值与期望值的偏差;s2u——速度的实际值与期望值的偏差变化率;——基于BP神经网络Q学习的艏向控制器的输入向量;——艏向角的实际值与期望值的偏差;——艏向角的实际值与期望值的偏差变化率;——水下机器人的实时速度;——艏向角的期望值;ud——速度的期望值;e——偏差值;at——基于BP神经网络Q学习控制器的最优输出动作;r——基于BP神经网络Q学习控制器的奖惩回报值;α——Q学习学习率;γ——Q学习折扣率;ε——Q学习贪婪率;β——BP神经网络学习率;w——BP神经网络权值向量;Ek——最优性能指标函数。
具体实施方式一:结合图1和图2说明本实施方式,图1为基于双BP神经网络Q学习速度控制器结构示意图,图2为基于双BP神经网络Q学习艏向控制器结构示意图。
本实施方式所述的一种一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,利用基于双BP神经网络强化学习的控制器对自主水下机器人进行控制,包括以下步骤:
设计基于双BP神经网络Q学习速度控制器和艏向控制器;基于双BP神经网络Q学习速度控制器的输入是速度的偏差和速度的偏差变化率的连续值,经过Q学习算法,输出的则是连续的纵向推力;在基于双BP神经网络Q学习的艏向控制器中,因为考虑到艏向的偏转与水下机器人的实时速度也有一定的关系,所以该艏向控制器的输入为艏向角的偏差、艏向角的偏差变化率以及水下机器人的实时速度的连续值,经过Q学习算法,最终输出的是连续的偏航力矩值;双BP神经网络结构的采用,打破了样本间的关联性,使得BP神经网络能够更好地进行收敛。
所述速度控制器和艏向控制器均包含一个当前BP神经网络和一个目标BP神经网络,利用Q学习算法,实现当前BP神经网络和目标BP神经网络对应的控制器的学习;
速度控制器和艏向控制器中的当前BP神经网络中均包含一个状态BP神经网络和一个动作BP神经网络;
对于速度控制器,当前BP神经网络中的状态BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的Q值,所以状态BP神经网络也称Q值网络;当前BP神经网络中的动作BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的动作值;
目标BP神经网络的结构与当前BP神经网络结构相同,实际上本实施方式中,目标BP神经网络的结构与当前BP神经网络结构相同,即目标BP神经网络也包含状态BP神经网络和动作BP神经网络,但是在本发明的整体过程中,可以不用目标BP神经网络的动作BP神经网络,所以针对于本发明而言,可以只要包含目标BP神经网络的状态BP神经网络即可。目标BP神经网络的状态BP神经网络输入与当前BP神经网络的状态BP神经网络不同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
对于艏向控制器,当前BP神经网络中的状态BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的Q值,状态BP神经网络也称Q值网络;当前BP神经网络中的动作BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的的动作值;
目标BP神经网络的结构与当前BP神经网络结构相同,其状态BP神经网络输入与当前BP神经网络不同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
当前BP神经网络中的状态BP神经网络如图3所示,其输入为连续的状态值,输出为不同动作所对应的Q值;当前BP神经网络中的动作BP神经网络如图4所示,其输入为连续变化的当前时刻的状态值,输出为与Q值网络输出相对应的k个动作,将动作作为BP神经网络的输出,可保证在状态值平缓变化的情况下,最优动作也可以和最大Q值一样,进行连续输出。对于速度控制器,输出为k个纵向推力值;对于艏向控制器,输出为k个转艏力矩值。
将基于双BP神经网络Q学习的控制器学习过程,包括速度控制器和艏向控制器的学习过程,速度控制器和艏向控制器的学习过程分别包括以下步骤:
步骤1、初始化所有BP神经网络的权值w为[-1,1]的随机数,并设置α、γ、ε;α为Q学习学习率;γ为Q学习折扣率;ε为Q学习贪婪率;
步骤2、观察当前状态st;
步骤3、基于当前BP神经网络输出ak和Q(st,ak),其中k∈[1,10];
步骤4、根据ε贪婪策略选择动作at并执行动作at;
步骤5、根据式(7)对Q值进行拟合,得到Qm(st,at);
步骤6、观察新状态st+1和即时回报rt+1;
步骤8、根据式(12)至式(15)计算实际值与期望值的偏差;
步骤9、根据式(5)至式(6)更新当前BP神经网络的Q值网络参数wlj和wnl;
步骤10、根据式(5)至式(6)更新当前BP神经网络中的动作BP神经网络参数wlj和wnl;
n步迭代后,更新目标BP神经网络Q值网络参数wlj和wnl;
步骤11、返回步骤2,重复执行,直至满足结束条件(当训练次数到达设置的最大回合数),回合结束。
本实施方式中,所有的BP神经网络模型分别包括输入层、隐层和输出层:
输入层、隐层和输出层分别有j、l、n个神经元,输入层的输入向量为[x1,x2,...,xj]Τ,输出层的输出向量为[y1,y2,...,yn]Τ;输入层至隐层的联接权记为wlj,隐层至输出层的联接权记为wnl;隐层和输出层的输出均采用激活函数进行变换;
BP神经网络学习算法如下:
BP神经网络需要对输入层和隐层、隐层和输出层间的权值wlj、wnl进行更新;通常BP神经网络通过网络正向传播计算输入向量所对应的实际输出值,然后通过与期望输出值比较,计算误差函数,最后通过网络反向传播根据微分链式规则和梯度下降对权值进行更新,使得实际输出值无限逼近期望输出值;
对于输入层,有:
对于隐层,其输入和输出为:
隐层和输出层采用的激活函数为:
同理,输出层的输入和输出为:
隐层至输出层的权值调整公式为:
输入层至隐层的权值调整公式为:
基于双BP神经网络Q学习速度控制器和艏向控制器的状态和动作表示:
对于基于双BP神经网络Q学习的速度控制器和艏向控制器,不再对状态进行离散划分,由于BP神经网络具有强大的拟合逼近能力,即可以对连续变量进行处理,所以只需将状态值直接输入即可。对于速度控制器,输入的状态向量可以表示为Su={s1u,s2u},其中s1u为速度的偏差,s2u为速度的偏差变化率;对于艏向控制器,输入的状态向量可以表示为其中为偏航角的偏差,为偏航角的偏差变化率,为水下机器人纵向速度。
需要注意的是,需要分别对速度控制器和艏向控制器的输入向量进行归一化处理,具体地,速度控制器的输入量s1u和s2u应分别除以2m/s,1m/s2,然后输入神经网络;艏向控制器的输入量以及应分别除以3rad,1rad/s,2m/s,然后输入神经网络;由于速度控制器和艏向控制器的输出最终是根据f(x)和的形式得出,因此可知τu,τr∈[-1,1],所以需要进行相应转换得到最终纵向推力和转艏力矩,即τu′=τu·τumax,τr′=τr·τrmax。其中,τumax和τrmax分别为最大纵向推力和最大转艏力矩。对于本发明仿真所用AUV模型,τumax=800N,τrmax=2000N·m。
步骤5所述的对Q值进行拟合得到Qm(st,at)的过程如下:
当前BP神经网络对应的动作BP神经网络和Q值网络输入均为当前时刻的状态,那么{a1,Q(s,a1)},...,{ak,Q(s,ak)}对应的k个数据点在一定程度上反映了输入状态为st时,动作与Q值的关系;为了寻找更新动作ai时所需的损失函数,需要对这k个数据点进行拟合,同时可以得到任意动作的实际输出Q值;拟合方式如下:
其中,i=1,2,...,p表示不同的数据点,ai表示对应的动作;at为最优动作,即最大Q值所对应的动作;wi=||ai-at||2表示动作ai与at之间的距离函数;Qm(st,at)表示最大Q值的拟合值;Qm(st,ai)表示当前BP神经网络输出的Q值;
奖惩函数设计:奖惩函数是环境对当前水下机器人控制系统控制性能好坏的一种定量评价,控制系统通过这种定量评价的不断指引,从而不断提高控制性能,所以奖惩函数的设计具有重要作用。在水下机器人控制器的设计中,奖惩函数应该需要反映偏差及偏差变化率对控制性能的影响,与此同时,为了尽量减少控制信号的突然变化,本发明将奖赏函数形式如下:
其中,奖励函数中的第一项计算的是受控变量与其期望值之间的平方误差,σ表示下一时刻的误差向量,对于速度控制器对于艏向控制器Λ为二阶对角矩阵,代表的是σ的各个分量对奖惩函数的影响因子;a为奖励函数的量级控制参数,可以对奖励函数的量级进行控制,从而避免了学习过程中的数值不稳定性,观察式(8)可以发现,当a减小时,奖励函数的区间越小;奖励函数中的第二项通过计算当前控制信号与其前10步的平均控制信号的范数来对推进器的突然变化作出相应惩罚,对于速度控制器u=τu,对于艏向控制器u=τr;c1和c2均为大于零的正数,分别表示第一项和第二项对奖惩函数的影响因子。
目标函数确定:水下机器人速度和艏向的控制目标为使得水下机器人到达并维持期望速度和期望艏向,即最大化期望累计奖赏函数,因此马尔可夫决策过程模型的目标函数如式(9)所示:
步骤4所述根据ε贪婪策略选择动作at的过程如下:
基于双BP神经网络Q学习的速度控制器和艏向控制器,其动作选择方式为ε贪婪策略,ε∈(0,1),本发明采用一种随机概率ε随步数增加不断衰减的ε贪婪策略,当ε的值越来越趋近于0,表示训练到最后阶段,强化学习系统更加偏向于利用所学到的经验。具体动作选择策略如下:
式中,π*表示最优策略,at+1表示下一时刻需要选择的动作;ε贪婪策略如下:
ε=ε0·e(μ-step)ξ (10)
其中,ε0为初始值,μ为衰减因子,ξ是控制ε∈(0,1)区间内的控制因子,step表示控制回合数。
双BP神经网络Q学习控制器的学习更新过程如下:
当前BP神经网络按照梯度下降和微分链式规则对其权值进行修正;而目标BP神经网络中的权值完全复制当前BP神经网络的前10步权值。当前BP神经网络的输出值为实际需要进行修正的Q值Qm(st,at),而目标BP神经网络的输出值是状态st+1对应的最大Q值maxQm-1(st+1,a′),在当前状态st下选择最优动作at并执行后得到下一时刻状态st+1以及奖赏值rt+1,所以最终的期望输出值为rt+1(st+1,a)+γmaxQm-1(st+1,a′),从而在强化学习与环境的交互过程中不断得到输入输出样本对,进而计算TD误差,对神经网络的参数进行更新;
TD误差如下:
其中,rt+1(st+1,a)为t+1时刻的即时回报值,Qm(st,at)为拟合后的最大输出Q值,Qm-1(st+1,a′)为目标BP神经网络的输出值,γ为折扣率,at为t时刻最优动作。
步骤8所述计算实际值与期望值的偏差过程如下:
得到TD误差后,需要根据此偏差分别计算出当前BP神经网络的k个动作和k个Q值的偏差,计算公式分别如式(12)和式(13)所示:
式中,k∈{1,2,...,10},ΔQ(st,at)为最优动作对应的最大Q值的偏差,即TD误差(即对应的TD error),Qm(st,at)为拟合函数进行拟合后的最大输出Q值,Qm-1(st+1,a′)为目标BP神经网络的输出值,γ为折扣率,ΔQm(st,ak)为第k个Q值的偏差,Δak(st)为第k个动作的偏差。
步骤9所述更新当前BP神经网络的Q值网络参数包括以下步骤:
有了实际输出值与期望输出值的偏差后,便可以根据式(5)至式(6)通过梯度下降和链式规则对当前BP神经网络的参数wlj和wnl进行更新,并且针对Q值和动作两个方面的更新,具体将式中的E(t)分别具体定义如下:
式中,EQ(t)和Ea(t)分别表示第k个Q值和动作的损失函数。
实施例
实际上本发明可以适用于任何形式的自主水下机器人,即可以用于任何建模对应的自主水下机器人。由于本发明内容需要在仿真环境下进行模拟,以此来验证速度和艏向控制器的控制效果,所以需要对自主水下机器人进行数学建模来进行仿真实验。
水下机器人坐标系选取:确定水下机器人水下运动时的位置和姿态,首先需要确定进行运动分析所需的坐标系。本发明采用固定坐标系和运动坐标系,亦可称为定系和动系。
定系以E-ξηζ表示,E通常选取海平面上某点;ξ轴与η轴位于水平面内且相互垂直,且规定ξ轴以指向地理北为正向,η轴以指向地理东为正向;ζ轴以指向地心为正向。
动系以O-xyz表示,O为原点,通常选取为水下机器人的重心;x、y、z轴分别为经过O点的水线面、横剖面以及中纵剖面的交线。动系和定系均符合右手螺旋定则。两坐标系的选取具体如图5所示;
水下机器人运动学模型:假设固定坐标系与运动坐标系原点重合,则固定坐标系绕轴分别旋转三次后可与运动坐标系重合。线速度和角速度旋转矩阵可分别表示为:
最终,水下机器人运动学模型可表示为:
水下机器人动力学模型:采用Fossen在《Handbook of Marine CraftHydrodynamics and Motion Control》中提出的水下机器人六自由度动力学模型,如下:
其中,CRB(ν)ν为惯性力和科氏向心力,MRB为惯性力矩阵,CRB为科氏向心力矩阵;CA(ν)ν为附加质量力和附加阻尼力MA为附加质量力矩阵,CA为附加阻尼力力矩阵;D(ν)ν为阻尼力,D为阻尼力矩阵;g(η)为重浮力;τ为推进器推力。
水下机器人的数学模型比较复杂,考虑到本发明是基于水下机器人水平面运动来进行强化学习控制算法的研究,所以将六自由度运动模型简化为水平面运动模型。由水下机器人六自由度动力学模型可知,其在水平面的动力学方程可简化为如下形式:
式中,Ml为惯性矩阵,Cl为哥氏向心力矩阵,Dl为阻尼矩阵,τl=[τu 0τr]Τ缺少横向推进器,具有欠驱动性,νl=[u 0r]Τ表示运动坐标系下的线速度和角速度。
基于上述模型,利用具体实施方式中的方法进行仿真实验;
仿真参数设置:为研究基于强化学习控制器的效果,分别对水下机器人速度控制器和艏向控制器开展相应的仿真实验。速度控制器的期望值为ud=1m/s,艏向控制器的期望值为速度控制器和艏向控制器的回报函数及ε贪婪策略相关参数设置如下:c1=10,c2=0.01,Λ=diag([0.8,0.2]),ε0=0.4,μ=75,step=300,ξ=150。同时选取单步控制步长Ts=0.5s,单个控制周期仿真时间M=50s,强化学习折扣率γ=0.9,强化学习学习率α=1。速度控制器的BP神经网络的输入神经元为2个,艏向控制器的输入神经元为3个,输出神经元均为20个。BP神经网络的参数w初始化为[-1,1]随机数,同时设置神经网络参数学习率β=0.05。且对速度和艏向进行初始化:u0=0m/s,v0=0m/s,r0=0rad/s。
仿真结果及分析:我们对速度和艏向控制器分别进行了300次的循环训练,具体仿真结果如图6-1至图6-6所示。其中图6-1和图6-2分别为基于双BP神经网络的改进强化学习速度控制器和艏向控制器训练后的效果图。图6-3和图6-4分别为速度控制器和艏向控制器输出的纵向推力和偏航力矩。图6-5和图6-6分别为速度控制器和艏向控制器的速度偏差和及艏向偏差和随着训练次数增加的变化情况。
另外,为了验证基于双BP神经网络Q学习控制器的自主学习性能,对在无干扰情况下训练好后的艏向控制器第25秒处加上一定幅值的脉冲干扰,图6-7为脉冲干扰下基于双BP神经网络Q学习艏向控制器在第1次学习和第100次学习后的控制器效果对比图。
从图6-1和图6-2中可以看出,基于双BP神经网络Q学习速度控制器和艏向控制器在训练好后都具备一定的控制效果,都能达到期望速度和期望艏向。从图6-3和图6-4中可以看出速度控制器输出的纵向推力和艏向控制器输出的偏航力矩不再是离散的值,而是连续输出,除去个别跳变的点外,速度控制器和艏向控制器的控制输出大体上较为平稳。
从图6-5和5-6可以看出,基于双BP神经网络Q学习速度和艏向控制器分别在训练150次和120次左右就达到了稳定。
在图6-7中,加入了脉冲干扰,对脉冲干扰进行学习前,基于双BP神经网络Q学习的艏向控制器的控制效果如图中点划线所示,在脉冲干扰情况下对艏向控制器训练100次后,控制器的控制效果如图中实线所示,在训练100次后基于双BP神经网络Q学习的艏向控制器由脉冲扰动引起的超调量由第1次学习的5%降低为1.5%,同时调节时间由训练前的15秒左右降低为7秒左右。该仿真实验证明,基于双BP神经网络Q学习控制器确实具备一定的自学习和自适应能力,能够在训练过程中不断寻找到适合不同环境下的最优控制策略。
本发明与现有技术方案的比较:
本发明旨在提升水下机器人运动控制的自主性与智能性,利用基于双BP神经网络的强化学习的控制器直接替代传统意义上的控制器,从而赋予水下机器人自主学习的能力。同时本发明在传统基于Q值表的方法上使用了BP神经网络对其Q值进行了拟合,并将动作进行了连续输出。本质上,基于双BP神经网络的强化学习方法属于一种不基于模型的控制方法,传统的不基于模型的控制方法有PID、S面、神经网络等控制方法。以下简单介绍神经网络方法以及基于传统Q值表的强化学习方法,并将它们与本发明算法进行比较。
1、神经网络控制方法
神经网络控制方法着眼于从结构上对人脑进行模拟,从理论上说,神经网络可以逼近任意非线性函数,并且可以通过改变连接权系数来改变自身的输入输出映射,这些特性使得其非常适合于机器人的运动控制,在这方面Yuh作了大量的有益尝试。尽管神经网络方法在机器人控制中具有一定的优势,但同时也存在一定的局限性,比如,神经网络的学习过程较长,不利于在机器人运动控制中进行实时应用,并且其在训练过程中需要大量的导师信号,通常倒是信号难以获取。而本发明所采用的基于双BP神经网络的强化学习速度和艏向控制方法由于采用了强化学习的框架,并不需要导师信号,仅通过与环境交互后得到环境的反馈,便可以对神经网络进行更新。另外由于引进了经验样本池,使得神经网络有更快的收敛速度。
2、基于传统Q值表的强化学习方法
目前Q学习算法在移动机器人导航及路径规划、自主直升机控制、自动驾驶车辆等方面都进行了成功的应用,而对于水下机器人运动控制问题的研究还较少。蔡国飞等将强化学习算法应用于倒立摆系统,并通过对连续空间的离散化,证明了在满足一定条件下Q学习算法的收敛性。Ramanathan等人采用Q学习算法对非线性锥形罐中的液体液位进行控制,取得了令人满意的效果。Qian Shi等人将Q学习算法成功应用在了平衡车系统中,通过与传统的PID控制器相比较,强化学习控制器在稳定方面表现得更好,实现更小的稳态误差。但上述研究均指出,强化学习系统在达到一个较好的效果前,需要经过大量的训练,学习效率有待提高。而本发明提出的基于双BP神经网络强化学习速度和艏向控制方法利用BP神经网络强大的拟合能力以及对经验样本训练池的使用,大大降低了强化学习系统的训练次数,提高了效率。
需要注意的是,具体实施方式仅仅是对本发明技术方案的解释和说明,不能以此限定权利保护范围。凡根据本发明权利要求书和说明书所做的仅仅是局部改变的,仍应落入本发明的保护范围内。
Claims (4)
1.一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,其特征在于,利用基于双BP神经网络强化学习的控制器对自主水下机器人进行控制,所述控制器包括基于双BP神经网络Q学习速度控制器;
所述速度控制器包含一个当前BP神经网络和一个目标BP神经网络,利用Q学习算法,实现当前BP神经网络和目标BP神经网络对应的整体控制器的学习;
速度控制器和艏向控制器中的当前BP神经网络中均包含一个状态BP神经网络和一个动作BP神经网络;
当前BP神经网络中的状态BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的Q值,所以状态BP神经网络也称Q值网络;
当前BP神经网络中的动作BP神经网络的输入为速度的偏差和偏差变化率,经过Q学习算法,输出为k个纵向推力所对应的动作值;
目标BP神经网络包含一个状态BP神经网络,目标BP神经网络的状态BP神经网络与当前BP神经网络中的状态BP神经网络结构相同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
速度控制器以Q学习的方式进行更新,从而实现自主水下机器人的速度控制;速度控制器以Q学习的方式进行更新的过程包括以下步骤:
步骤1、初始化所有BP神经网络的权值为[-1,1]的随机数,并设置α、γ、ε;α为Q学习学习率;γ为Q学习折扣率;ε为Q学习贪婪率;
步骤2、观察当前状态st;
步骤3、基于当前BP神经网络输出ak和Q(st,ak),其中k∈[1,10];
步骤4、根据ε贪婪策略选择动作at并执行动作at;
步骤5、对Q值进行拟合,得到Qm(st,at);
步骤6、观察新状态st+1和即时回报rt+1;
步骤7、基于目标BP神经网络的状态BP神经网络输出
步骤8、计算实际值与期望值的偏差;所述计算实际值与期望值的偏差过程如下:
得到TD误差后,需要根据TD误差分别计算出当前BP神经网络的k个动作和k个Q值的偏差,计算公式分别如下:
式中,k∈{1,2,...,10},ΔQ(st,at)为最优动作对应的最大Q值的偏差,即TD误差,Qm(st,at)为拟合函数进行拟合后的最大输出Q值,Qm-1(st+1,a′)为目标BP神经网络的输出值,γ为折扣率,ΔQm(st,ak)为第k个Q值的偏差,Δak(st)为第k个动作的偏差;
步骤9、更新当前BP神经网络的Q值网络参数;所述更新当前BP神经网络的Q值网络参数的过程包括以下步骤:
有了实际输出值与期望输出值的偏差后,通过梯度下降和链式规则对当前BP神经网络的参数进行更新,并且针对Q值和动作两个方面的更新,Q值和动作的损失函数分别如下:
式中,EQ(t)和Ea(t)分别表示第k个Q值和动作的损失函数;
步骤10、更新当前BP神经网络中的动作BP神经网络参数;
n步迭代后,更新目标BP神经网络Q值网络参数;
步骤11、返回步骤2,重复执行,直至满足结束条件回合结束。
2.根据权利要求1所述的一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,其特征在于,步骤5所述的对Q值进行拟合得到Qm(st,at)的过程如下:
当前BP神经网络对应的动作BP神经网络和Q值网络输入均为当前时刻的状态,{a1,Q(s,a1)},...,{ak,Q(s,ak)}对应k个数据点;为了寻找更新动作ai时所需的损失函数,需要对k个数据点进行拟合,同时得到任意动作的实际输出Q值;拟合方式如下:
其中,i=1,2,...,p表示不同的数据点,ai表示对应的动作;at为最优动作,即最大Q值所对应的动作;wi=||ai-at||2表示动作ai与at之间的距离函数;Qm(st,at)表示最大Q值的拟合值;Qm(st,ai)表示当前BP神经网络输出的Q值。
3.根据权利要求2所述的一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,其特征在于,步骤4所述根据ε贪婪策略选择动作at的过程如下:
基于双BP神经网络Q学习的速度控制器和艏向控制器,其动作选择方式为ε贪婪策略,ε∈(0,1),采用一种随机概率ε随步数增加不断衰减的ε贪婪策略,当ε的值越来越趋近于0,表示训练到最后阶段,强化学习系统更加偏向于利用所学到的经验,具体动作选择策略如下:
式中,π*表示最优策略,at+1表示下一时刻需要选择的动作;ε贪婪策略如下:
ε=ε0·e(μ-step)/ξ
其中,ε0为初始值,μ为衰减因子,ξ是控制ε∈(0,1)区间内的控制因子,step表示控制回合数。
4.根据权利要求1至3任意一项所述的一种基于双神经网络强化学习技术的自主水下机器人无模型控制方法,其特征在于,所述的控制器还包括基于双BP神经网络Q学习艏向控制器;
艏向控制器与速度控制器的结构相同;
对于艏向控制器,当前BP神经网络中的状态BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的Q值,状态BP神经网络也称Q值网络;当前BP神经网络中的动作BP神经网络的输入为艏向角的偏差和偏差变化率,经过Q学习算法,输出为k个转艏力矩所对应的的动作值;
目标BP神经网络的结构与当前BP神经网络结构相同,目标BP神经网络的状态BP神经网络输入为当前状态st执行最优动作at后所得到的下一时刻的状态st+1,并且目标BP神经网络的状态BP神经网络参数总是为当前BP神经网络状态BP神经网络前10步所更新的神经网络参数;
艏向控制器的工作过程与速度控制器的工作过程相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010087508.5A CN111240344B (zh) | 2020-02-11 | 2020-02-11 | 基于强化学习技术的自主水下机器人无模型控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010087508.5A CN111240344B (zh) | 2020-02-11 | 2020-02-11 | 基于强化学习技术的自主水下机器人无模型控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240344A CN111240344A (zh) | 2020-06-05 |
CN111240344B true CN111240344B (zh) | 2023-04-07 |
Family
ID=70869748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010087508.5A Active CN111240344B (zh) | 2020-02-11 | 2020-02-11 | 基于强化学习技术的自主水下机器人无模型控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240344B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111890363B (zh) * | 2020-07-27 | 2022-12-30 | 四川大学 | 一种基于快速自适应梯度神经网络算法的机械臂运动规划方法 |
CN112558465B (zh) * | 2020-12-03 | 2022-11-01 | 大连海事大学 | 一种带有输入限制的未知无人船有限时间强化学习控制方法 |
CN113064422B (zh) * | 2021-03-09 | 2022-06-28 | 河海大学 | 基于双神经网络强化学习的自主水下航行器路径规划方法 |
CN113050686B (zh) * | 2021-03-19 | 2022-03-25 | 北京航空航天大学 | 一种基于深度强化学习的作战策略优化方法及系统 |
CN115586782B (zh) * | 2022-10-17 | 2024-04-12 | 湖南大学 | 一种自主式水下机器人运动控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549384A (zh) * | 2015-09-01 | 2016-05-04 | 中国矿业大学 | 一种基于神经网络和强化学习的倒立摆控制方法 |
CN108762281A (zh) * | 2018-06-08 | 2018-11-06 | 哈尔滨工程大学 | 一种基于记忆关联强化学习的嵌入式实时水下机器人智能决策方法 |
WO2019033636A1 (zh) * | 2017-08-16 | 2019-02-21 | 哈尔滨工业大学深圳研究生院 | 基于最小化损失学习的不平衡样本分类方法 |
CN109739090A (zh) * | 2019-01-15 | 2019-05-10 | 哈尔滨工程大学 | 一种自主式水下机器人神经网络强化学习控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9679258B2 (en) * | 2013-10-08 | 2017-06-13 | Google Inc. | Methods and apparatus for reinforcement learning |
US10860926B2 (en) * | 2018-05-18 | 2020-12-08 | Deepmind Technologies Limited | Meta-gradient updates for training return functions for reinforcement learning systems |
-
2020
- 2020-02-11 CN CN202010087508.5A patent/CN111240344B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105549384A (zh) * | 2015-09-01 | 2016-05-04 | 中国矿业大学 | 一种基于神经网络和强化学习的倒立摆控制方法 |
WO2019033636A1 (zh) * | 2017-08-16 | 2019-02-21 | 哈尔滨工业大学深圳研究生院 | 基于最小化损失学习的不平衡样本分类方法 |
CN108762281A (zh) * | 2018-06-08 | 2018-11-06 | 哈尔滨工程大学 | 一种基于记忆关联强化学习的嵌入式实时水下机器人智能决策方法 |
CN109739090A (zh) * | 2019-01-15 | 2019-05-10 | 哈尔滨工程大学 | 一种自主式水下机器人神经网络强化学习控制方法 |
Non-Patent Citations (3)
Title |
---|
梁霄 ; 张均东 ; 李巍 ; 郭冰洁 ; 万磊 ; 徐玉如 ; .水下机器人T-S型模糊神经网络控制.电机与控制学报.2010,(第07期),全文. * |
梁霄 ; 徐玉如 ; 李晔 ; 万磊 ; 秦再白 ; .基于目标规划的水下机器人模糊神经网络控制.中国造船.2007,(第03期),全文. * |
段勇 ; 徐心和 ; .基于模糊神经网络的强化学习及其在机器人导航中的应用.控制与决策.2007,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111240344A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240344B (zh) | 基于强化学习技术的自主水下机器人无模型控制方法 | |
CN111290270B (zh) | 一种基于Q-learning参数自适应技术的水下机器人反步速度和艏向控制方法 | |
CN111966118B (zh) | 一种rov推力分配与基于强化学习的运动控制方法 | |
CN112904728B (zh) | 一种基于改进型趋近律的机械臂滑模控制轨迹跟踪方法 | |
CN106292287B (zh) | 一种基于自适应滑模控制的uuv路径跟踪方法 | |
CN111240345B (zh) | 基于双bp网络增强学习框架的水下机器人轨迹跟踪方法 | |
CN112462792B (zh) | 一种基于Actor-Critic算法的水下机器人运动控制方法 | |
CN111176122B (zh) | 一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法 | |
CN110908281A (zh) | 无人直升机姿态运动有限时间收敛强化学习控制方法 | |
CN112947505B (zh) | 一种基于强化学习算法与未知干扰观测器的多auv编队分布式控制方法 | |
CN112859889B (zh) | 基于自适应动态规划的自主式水下机器人控制方法和系统 | |
CN113377121B (zh) | 一种基于深度强化学习的飞行器智能抗扰动控制方法 | |
CN111273677B (zh) | 基于强化学习技术的自主水下机器人速度和艏向控制方法 | |
CN112650233A (zh) | 死区限制下基于反步法与自适应动态规划的无人船轨迹跟踪最优控制方法 | |
CN111857165A (zh) | 一种水下航行器的轨迹跟踪控制方法 | |
CN117311142A (zh) | 一种融合粒子群算法与神经网络预测控制的dp船舶运动控制与推力分配协同控制方法 | |
CN113050420B (zh) | 基于s面控制和td3的auv路径跟踪方法及系统 | |
CN115480580A (zh) | 一种基于nmpc的水下机器人路径跟踪与避障的控制方法 | |
Li et al. | Prioritized experience replay based reinforcement learning for adaptive tracking control of autonomous underwater vehicle | |
Yu | Saturated backstepping control for boat with disturbance estimator | |
Wang et al. | Course tracking control for smart ships based on a deep deterministic policy gradient-based algorithm | |
He et al. | Design and implementation of self-tuning control method for the underwater spherical robot | |
CN117784619B (zh) | 一种基于零和微分博弈的欠驱动无人艇容错控制方法 | |
CN117519136B (zh) | 一种考虑大曲率转弯的无人艇路径跟踪方法 | |
CN114661056B (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 |