一种基于双BP神经网络Q学习技术的水下机器人参数自适应反步控制方法与流程

专利2022-11-25  60


本发明属于水下机器人控制器参数调节技术领域,具体涉及一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法。



背景技术:

水下机器人作为海洋资源探测和海底任务执行的重要工具和手段,其运动控制性能的好坏在很大程度上会影响任务完成的效果。目前,一些传统常规控制器以鲁棒性和可扩展性强的特点,在工业环境中得到了广泛的应用,但这些控制器通常不能得到最佳的调优,并不能达到令人满意的性能,在实际应用中,控制器的参数经过人工频繁调试后便固化在控制器中,无法适应被控过程中环境的变化,如何对控制器参数进行实时自主整定,以达到最优控制性能成为一个突出的问题。自适应控制可以通过对对象特征以及输入输出量的在线观测,按照一定的性能指标实现对控制器参数和性能的在线调节,而强化学习可以通过与环境的不断交互,积累经验和知识,在环境动态和底层未知的情况下接收强化信号,以此提高控制器的自适应能力,两者具有相通之处。

然而,传统强化学习的学习机制依赖于q值表,只能对离散的状态和动作空间进行学习,在进行状态和动作空间划分时势必会导致q值表过大,使得智能体在学习过程中会因无法遍历所有状态和动作空间而无法收敛,因此传统q学习的学习效率较低。同时,在利用传统反步法进行控制器参数的调节时,存在着控制器参数不易进行实时在线调整的问题。



技术实现要素:

本发明的目的是为解决传统q学习方法进行控制器参数调节时的学习效率低,以及传统反步法进行控制器参数调节时存在的参数不易实时在线调整的问题,而提出了一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法。

本发明为解决上述技术问题采取的技术方案是:一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,该方法包括以下步骤:

步骤一、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;

水下机器人的速度控制系统为:

其中,m为水下机器人的质量,和xu|u|均为无量纲水动力参数,u为水下机器人纵向速度,|u|为u的绝对值,为水下机器人纵向加速度,τu为推进器纵向推力,v为水下机器人横向速度,r为水下机器人偏航角速度;

水下机器人速度控制系统的控制律为:

其中,ku为速度控制系统的控制律的待调节控制增益;

水下机器人的艏向控制系统为:

其中,为实际艏向角的一阶导数,为r的一阶导数,nr、nr|r|均为无量纲水动力参数,|r|为r的绝对值,τr为转艏力矩,iz为水下机器人绕运动坐标系z轴的转动惯量;

所述运动坐标系为:以水下机器人的重心为原点o,以指向水下机器人的艏向方向为x轴正向,以指向水下机器人的右舷方向为为y轴正向,以指向水下机器人的底部方向为z轴正向,且x轴、y轴、z轴符合右手螺旋定则的坐标系;

水下机器人艏向控制系统的控制律为:

其中,为艏向控制系统的控制律的第一个待调节控制增益,为艏向控制系统的控制律的第二个待调节控制增益;

步骤二、建立由第一当前bp神经网络和第一目标bp神经网络组成的双bp神经网络模型一,其中,第一当前bp神经网络与第一目标bp神经网络的结构相同;

第一当前bp神经网络输入的状态向量为st={s1u,s2u},其中,s1u为t时刻速度的偏差,s2u为t时刻速度的偏差变化率,输出为动作值集合k′u,再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值k″u;

第一目标bp神经网络输入的状态向量为:当前状态st执行最优动作at后所得到的下一时刻的状态st 1,第一目标bp神经网络根据输入的状态向量确定输出;

步骤三、第一当前bp神经网络输出的实际q值为qm(st,at),第一目标bp神经网络输出的目标q值为第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值为rt 1(st 1,a),利用qm(st,at)、和rt 1(st 1,a)来计算td误差,再利用计算出的td误差对第一当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第一当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对第一当前bp神经网络继续进行训练;

且每经过n个时刻后,第一目标bp神经网络对第一当前bp神经网络的参数进行复制,实现对第一当前bp神经网络和第一目标bp神经网络参数的更新;

步骤四、每个时刻的状态向量依次输入第一当前bp神经网络后,利用步骤二中每个时刻的状态向量对应的最优动作值,计算出在每个时刻速度控制系统的控制律的待调节控制增益ku;

步骤五、建立由第二当前bp神经网络和第二目标bp神经网络组成的双bp神经网络模型二,其中,第二当前bp神经网络与第二目标bp神经网络的结构相同;

第二当前bp神经网络输入的状态向量为其中,为t时刻航向角的偏差,为t时刻航向角的偏差变化率,为t时刻水下机器人实时速度,输出为动作值集合再利用ε贪婪策略从动作值集合中选择出当前状态向量对应的最优动作值

第二目标bp神经网络输入的状态向量为:当前状态s′t执行最优动作a′t后所得到的下一时刻的状态s′t 1,第二目标bp神经网络根据输入的状态向量确定输出;

步骤六、第二当前bp神经网络输出的实际q值为qm(s′t,a′t),第二目标bp神经网络输出的目标q值为第二当前bp神经网络在当前状态s′t下选择最优动作a′t并执行后得到的奖赏值为rt 1(s′t 1,a),利用qm(s′t,a′t)、和rt 1(s′t 1,a)来计算td误差,再利用计算出的td误差对第二当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第二当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对第二当前bp神经网络继续进行训练;

且每经过n个时刻后,第二目标bp神经网络对第二当前bp神经网络的参数进行复制,实现对第二当前bp神经网络和第二目标bp神经网络参数的更新;

步骤七、当每个时刻的状态向量依次输入第二当前bp神经网络后,利用步骤五中每个时刻的状态向量对应的最优动作值,计算出在每个时刻艏向控制系统的控制律的待调节控制增益

本发明的有益效果是:本发明提出了一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,本发明利用基于双bp神经网络q学习算法与反步法相结合的方式实现对反步法控制器参数的自主在线调节,以满足控制参数能够实时在线调整的要求。同时由于引入了双bp神经网络以及经验回放池,其强大的拟合能力使得基于双bp神经网络q学习参数自适应反步的控制方法能够大大降低训练次数,以提升学习效率,在训练较少次数的情况下达到更好的控制效果。

通过利用bp神经网络的强大拟合能力对状态空间进行连续输入,以解决反步法控制器参数不易实时在线调整问题,以此提高反步法控制器在复杂环境下的适应能力,同时提高了传统q学习的学习效率。

附图说明

图1是本发明水下机器人的速度控制器结构框图;

图中,et为误差向量;

图2是本发明水下机器人的艏向控制器结构框图;

图3是bp神经网络中输入输出形式的示意图;

图中,s为输入状态向量,q(s,a1)、q(s,a2)、…、q(s,ak)为输出q值;

图4是惯性坐标系和运动坐标系的示意图;

图中,w为垂向速度,p为横摇角速度,q为纵倾角速度;

图5是有干扰情况下,基于双bp神经网络q学习参数自适应反步速度控制器训练后的效果对比图;

图6是有干扰情况下,基于双bp神经网络q学习参数自适应反步艏向控制器训练后的效果对比图;

图7为速度控制器在有外界干扰情况下输出的纵向推力图;

图8是为艏向控制器在有外界干扰情况下输出的偏航力矩图;

图9是为在有外界干扰情况下,速度控制器的控制增益ku在一个控制周期内的变化曲线图;

图10为在有外界干扰情况下,艏向控制器的第一个控制增益在一个控制周期内的变化曲线图;

图11为在有外界干扰情况下,艏向控制器的第二个控制增益在一个控制周期内的变化曲线图;

图12为在一个控制周期内,速度控制律的偏差和随着训练次数的变化曲线图;

图13为在一个控制周期内,艏向控制律的偏差和随着训练次数的变化曲线图。

具体实施方式

具体实施方式一:本实施方式所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,所述方法具体包括以下步骤:

步骤一、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;

水下机器人的速度控制系统如公式(1)所示:

其中,m为水下机器人的质量,和xu|u|均为无量纲水动力参数,u为水下机器人纵向速度,|u|为u的绝对值,为水下机器人纵向加速度,τu为推进器纵向推力,v为水下机器人横向速度,r为水下机器人航向速度;

定义速度偏差e为:e=ud-u,ud为水下机器人纵向期望速度,并对e求导得,为速度偏差变化率(在t时刻,e即为s1u,即为s2u),为水下机器人纵向期望加速度,考虑公式(2)的lyapunov正定函数(李雅普诺夫正定函数)v:

对公式(2)求导得:

其中,为v的导数;

为了保证速度偏差能够渐进收敛至零,只需满足lyapunov稳定性理论,即保证v正定的同时负定,因此,根据式(3),对纵向推力τu进行设计,得到水下机器人速度控制器的控制律;

则水下机器人速度控制系统的控制律为:

其中,ku为速度控制系统的控制律的待调节控制增益;

将式(4)代入式(3),可得:其中ku为速度控制器待调节的控制增益,由此可以看出,只要设计速度控制增益ku为正数,即可满足lyapunov稳定性理论,从而保证是负定的,最终保证速度控制器渐近稳定。

水下机器人的艏向控制系统如公式(5)所示:

其中,为实际艏向角的一阶导数,为r的一阶导数,nr、nr|r|均为无量纲水动力参数,|r|为r的绝对值,τr为转艏力矩,iz为水下机器人绕运动坐标系z轴的转动惯量;

所述运动坐标系为:以水下机器人的重心为原点o,以指向水下机器人的艏向方向为x轴正向,以指向水下机器人的右舷方向为为y轴正向,以指向水下机器人的底部方向为z轴正向,且x轴、y轴、z轴符合右手螺旋定则的坐标系;

定义艏向偏差z1和中间偏差z2分别为:z2=α-r,其中,为期望艏向角,为实际艏向角,α为中间虚拟控制量;

并对z1求导得:考虑公式(6)所示的lyapunov候选函数v1:

对公式(6)求导得:

为了保证v1渐近收敛,需要保证负定,因此,设计中间虚拟控制量并将α代入式(7)得:

其中,为艏向控制系统的控制律的第一个待调节控制增益;

从式(8)可以发现,只要设计控制增益为正数,即可满足lyapunov稳定性条件,从而使系统z1被镇定。

对于z2,定义lyapunov正定函数v2如下:

对v2进行求导得:

将式(8)以及z1、z2、代入式(10)得:

其中,的二阶导数,τr为转艏力矩;

要令满足负定条件,则需要对偏航力矩τr进行设计,则水下机器人艏向控制系统的控制律如公式(12)所示:

其中,为艏向控制系统的控制律的第二个待调节控制增益;

步骤二、建立由第一当前bp神经网络和第一目标bp神经网络组成的双bp神经网络模型一,其中,第一当前bp神经网络与第一目标bp神经网络的结构相同;

第一当前bp神经网络输入的状态向量为st={s1u,s2u},其中,s1u为t时刻速度的偏差,s2u为t时刻速度的偏差变化率,输出为动作值集合k′u,再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值k″u;

第一目标bp神经网络输入的状态向量为:当前状态st执行最优动作at后所得到的下一时刻的状态st 1,第一目标bp神经网络根据输入的状态向量确定输出;

步骤三、第一当前bp神经网络输出的实际q值为qm(st,at),第一目标bp神经网络输出的目标q值为第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值为rt 1(st 1,a),利用qm(st,at)、和rt 1(st 1,a)来计算td误差,再利用计算出的td误差对第一当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第一当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对第一当前bp神经网络继续进行训练;

且每经过n(在本发明中取值为10)个时刻后,第一目标bp神经网络对第一当前bp神经网络的参数进行复制,实现对第一当前bp神经网络和第一目标bp神经网络参数的更新;

步骤四、每个时刻的状态向量依次输入第一当前bp神经网络后,利用步骤二中每个时刻的状态向量对应的最优动作值,计算出在每个时刻速度控制系统的控制律的待调节控制增益ku;

步骤五、建立由第二当前bp神经网络和第二目标bp神经网络组成的双bp神经网络模型二,其中,第二当前bp神经网络与第二目标bp神经网络的结构相同;

第二当前bp神经网络输入的状态向量为其中,为t时刻航向角的偏差,为t时刻航向角的偏差变化率,为t时刻水下机器人实时速度,输出为动作值集合再利用ε贪婪策略从动作值集合中选择出当前状态向量对应的最优动作值

第二目标bp神经网络输入的状态向量为:当前状态s′t执行最优动作a′t后所得到的下一时刻的状态s′t 1,第二目标bp神经网络根据输入的状态向量确定输出;

步骤六、第二当前bp神经网络输出的实际q值为qm(s′t,a′t),第二目标bp神经网络输出的目标q值为第二当前bp神经网络在当前状态s′t下选择最优动作a′t并执行后得到的奖赏值为rt 1(s′t 1,a),利用qm(s′t,a′t)、和rt 1(s′t 1,a)来计算td误差,再利用计算出的td误差对第二当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第二当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对第二当前bp神经网络继续进行训练;

且每经过n个时刻后,第二目标bp神经网络对第二当前bp神经网络的参数进行复制,实现对第二当前bp神经网络和第二目标bp神经网络参数的更新;

步骤七、当每个时刻的状态向量依次输入第二当前bp神经网络后,利用步骤五中每个时刻的状态向量对应的最优动作值,计算出在每个时刻艏向控制系统的控制律的待调节控制增益

为了提升水下机器人运动控制的自主性与智能性,保证其控制器的参数能够实时在线进行调整,从而提高在风浪流干扰下自主水下机器人的运动控制性能,同时为了避免基于q学习的控制器因状态空间划分过于细致导致无法收敛且收敛速度慢的问题,本发明设计了基于双bp神经网络q学习的参数自适应反步法速度和艏向控制器,将偏差和偏差变化率进行连续输入,同时分别将速度控制器和艏向控制器的参数值作为bp神经网络q学习系统的输出,将双bp神经网络q学习系统与反步法控制器相结合,从而在解决传统常规控制器参数不易实时在线调整以及在复杂环境下的适应性问题的同时,降低训练次数,提高学习效率。

在基于双bp神经网络q学习的参数自适应反步法控制器结构中,它的输入是连续的实时数据与期望值的偏差以及偏差变化率,输出则是需要调整的控制器的相应参数值。将水下机器人速度和艏向的基于双bp神经网络q学习的参数自适应反步法控制器设计为如图1和图2所示结构:

此处的基于双bp神经网络q学习参数自适应反步法控制器的设计中,强化学习不再是控制器的主体,控制器的主体为反步法,而基于双bp神经网络q学习的作用是对反步法的控制参数进行相应的优化调整,利用q学习的学习特点,在不断的试错学习中寻找到最优决策,满足对控制器的参数进行实时调整的要求,同时对偏差和偏差变化率进行连续输入。基于双bp神经网络q学习的参数自适应反步法速度控制器的输入是连续的速度偏差和速度偏差变化率,经过双bp神经网络q学习算法,输出的则不再是电压或纵向推力,而是速度控制器的参数k′u;同样,在基于双bp神经网络q学习的参数自适应反步法的艏向控制器中,它的输入为连续的航向角偏差、航向角偏差变化率以及水下机器人实时速度,经过双bp神经网络q学习算法,最终输出的是艏向控制器的两个控制参数

将bp神经网络引入强化学习控制器中意味着,在某一时刻t,控制策略不再是由查询q值表得到,而是通过bp神经网络中的参数w进行表示,所以q值函数不再是一个个离散的值,而是连续的值,可以这样理解,即在状态为连续输入的情况下,经过神经网络,q值的输出也为连续的值。同时,神经网络参数的数量远小于q值表中状态空间的数量,一个参数值的改变会影响到各个状态-动作的q值函数。强化学习q值表中的值代表的是在某一状态s下采取某一动作a后所得到的q值函数,对应到bp神经网络中,设计如图3所示的输入输出形式:

由图3可知,bp神经网络的输入是状态s,通过隐层计算后,输出的是所有动作对应的q值函数,虽然神经网络对最大q值进行了拟合,即最大q值的输出是连续的,但由于每个最大q值对应着的是不同的动作,所以在最终执行最大q值所对应的动作时,所选择的动作是离散的。可以这样理解,假设预设离散动作共有a个,则输出层有相应a个神经元,最大q值在每次神经网络计算时只有一个,且当状态为连续输入时,最大q值为连续输出。综上所述,仅需要对动作空间进行划分。

双bp神经网络包括当前bp神经网络和目标bp神经网络,当前bp神经网络和目标bp神经网络采用同一种输入输出形式,在当前bp神经网络结构中其输入为当前状态st,输出则是实际q值,同时得到环境给予的即时回报值rt 1;在目标bp神经网络结构中其输入为执行动作at后所得到的下一时刻的状态st 1,经过目标神经网络输出q值后,选取最大q值,并与即时回报相叠加,作为当前bp神经网络的目标q值。

具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤二中,输出为动作值集合k′u,再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值;其具体过程为:

定义需要进行划分的动作空间为k′u0,k′u0∈[-1,2],将k′u0每隔0.2平均划分成16个动作值,16个动作值组成动作值集合k′u;再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值k″u。

动作值集合k′u={-1,-0.8,-0.6,-0.4,-0.2,…,1.4,1.6,1.8,2}。

基于强化学习的自适应反步速度控制器和艏向控制器,其动作选择方式为ε贪婪策略,ε∈(0,1),当ε=0时代表纯探索,当ε=1时代表纯利用,所以它的值介于0和1之间,且随着训练次数的增加,ε的值越来越趋近于1,表示训练到最后阶段,强化学习系统更加偏向于利用所学到的经验。

具体实施方式三:本实施方式与具体实施方式一不同的是:所述步骤三中,第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值为rt 1(st 1,a),rt 1(st 1,a)的表达式为:

rt 1(st 1,a)=c1·s1u2 c2·s2u2(13)

其中,c1和c2均为大于零的正数。

奖惩函数有比较明确的目标,是用来评价控制器性能好坏的,通常一个控制器的优劣是以其稳定性、准确性及快速性为依据,希望其能更快更准确地到达期望值,反映至响应曲线上应具有较快的上升速度,并且具有较小的超调与振荡。c1和c2均为大于零的正数,分别表示偏差及偏差变化率对奖惩函数影响的比重大小。

值得注意的是,由于r值定义的是偏差和偏差变化率平方的函数,而本发明希望所设计的控制器的偏差尽可能小,因此本发明将q值的迭代公式由原先的取最大值变为最小值。

具体实施方式四:本实施方式与具体实施方式一不同的是:所述步骤四中,待调节控制增益ku的计算方法为:

ku=ku0 k″u(14)

其中,ku0为速度控制系统的控制律的待调节控制增益的初始值。

将每个时刻对应的最优动作值k″u代入公式(14),即可获得各个时刻的待调节控制增益值。

具体实施方式五:本实施方式与具体实施方式一不同的是:所述步骤五中,输出为动作值集合再利用ε贪婪策略从动作值集合中选择出当前状态向量对应的最优动作值其具体过程为:

定义需要进行划分的动作空间为每隔0.2平均划分成16个动作值,16个动作值组成动作值集合每隔0.1平均划分成16个动作值,16个动作值组成动作值集合

再利用ε贪婪策略,从动作值集合中选择出当前状态向量对应的最优动作值从动作值集合中选择出当前状态向量对应的最优动作值

动作值集合动作值集合

具体实施方式六:本实施方式与具体实施方式一不同的是:所述步骤六中,第二当前bp神经网络在当前状态s′t下选择最优动作a′t并执行后得到的奖赏值为rt 1(s′t 1,a),rt 1(s′t 1,a)的表达式为:

其中,c1和c2均为大于零的正数。

具体实施方式七:本实施方式与具体实施方式一不同的是:所述步骤七中,艏向控制系统的控制律的待调节控制增益的计算方法为:

其中,为待调节控制增益的初始值,为待调节控制增益的初始值。

具体实施方式八:本实施方式与具体实施方式一不同的是:所述步骤三和步骤六中,从经验样本池中随机抽取固定数量的状态动作样本对,随机抽取的固定数量为2000个。

在经验样本池中的状态动作样本对数量未达到2000个时,就不进行抽取,将当前经验样本池中的全部状态动作样本对用于训练。

对于模型一,t时刻获得的状态动作样本对为(st,at,st 1,rt 1),其中,st为t时刻输入第一当前bp神经网络的状态向量,st 1为当前状态st执行最优动作at后所得到的下一时刻的状态,rt 1为第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值。每个时刻获得的状态动作样本对均存入经验回放池中。

在本发明中,将式(12)代入式(11)可以得到:

式中,为艏向控制器第二个待调节的控制增益,从式(18)中可以看出,只要设计控制增益为正数即可保证艏向控制器的稳定性。

将z1和z2代入式(18),可以得到艏向控制器的转艏力矩τr如下:

综上所述,只需根据式(4)和式(19)分别设计速度和艏向控制律,同时保证速度和艏向控制器的控制增益ku、以及为正数,即能实现对auv速度和艏向的良好控制。

对于bp神经网络参数的更新,采用梯度下降法。对于速度控制器和艏向控制器,分别建立一个bp神经网络,此网络分别作为速度控制器和艏向控制器的实际输出,即为当前bp神经网络,速度控制器的输出为16个动作所对应的q值函数,而艏向控制器的输出为32个动作所对应的q值,其中前16个代表艏向控制器的第一个参数值所对应的q值函数,后16个代表的是艏向控制器的第二个参数所对应的q值函数。此外,还需要对速度控制器和艏向控制器分别建立一个与基于实际输出的bp神经网络结构相同的进行期望输出的神经网络,即目标bp神经网络。从而在强化学习与环境的交互过程中不断得到输入输出样本对,进而对神经网络的参数进行更新。注意,此处的更新都是对最优动作所对应的q值进行的,对于非最优动作所对应的q值,其误差为0,即不进行更新。bp神经网络的实际输出值为qm(st,at),期望输出值为rt 1(st 1,a) γmaxqm-1(st 1,a′),从而得到td误差,如式(20)所示。

其中,rt 1(st 1,a)为t 1时刻的回报值,qm(st,at)为进行实际输出的bp神经网络的输出值,qm-1(st 1,a′)为进行期望输出的bp神经网络的输出值,γ为折扣率,at为t时刻最优动作。

有了实际输出值与期望输出值的偏差后,可以根据式(34)通过梯度下降对当前bp神经网络的参数w进行更新。

对于目标bp神经网络,其参数每隔10步更新一次,取自当前bp神经网络前10步的参数值。

相关关键技术

bp神经网络:bp神经网络是一种按误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络模型之一。它使用梯度下降和链式规则通过反向传播不断调整网络权值和阈值,从而实现对任意非线性函数的逼近。

反步法:一种处理控制对象模型不确定性的有效的构造性控制律设计方法,通过提出虚拟控制律、逐层递增lyapunov函数的二次型个数等方式,逐步递推出最后符合要求的控制律。

水下机器人坐标系选取:讨论水下机器人六自由度空间运动时,通常需要选取两种不同的坐标系,即惯性坐标系和运动坐标系。惯性坐标系用于描述水下机器人的位置和姿态,以e-ξηζ表示,e为原点,且ξ、η、ζ轴两两相互垂直,并符合右手螺旋定则。运动坐标系用于描述水下机器人运动信息,以o-xyz表示,o为原点,且x、y、z轴两两相互垂直,并符合右手螺旋定则。具体如图4示:

水下机器人运动学模型:水下机器人运动学方程反映的是惯性坐标系与运动坐标系两者间的线速度和角速度转换关系。水下机器人在惯性坐标系下的线速度和角速度分别如式(21)和式(22)所示:

式中,η1=[x,y,z]τ分别表示水下机器人的位置和姿态;ν1=[u,v,w]τ,ν2=[p,q,r]τ,分别表示水下机器人的线速度和角速度;

j1(η2)和j2(η2)分别表示线速度转换矩阵和角速度转换矩阵,分别如式(23)和式(24)所示:

水下机器人动力学模型:采用fossen提出的自主水下机器人六自由度动力学模型,如下所示:

式中,为惯性力和科氏向心力、为附加质量力和附加阻尼力、d(ν)ν为阻尼力、g(η)为重浮力、τ为推进器推力。

马尔可夫决策过程(markovdecisionprocess,mdp):强化学习算法的研究主要基于马尔可夫决策模型,其实质表明了系统当前所处的状态向下一时刻状态转移的概率,强化学习在下一时刻状态所得到的即时回报值仅与当前的状态和所选择的动作有关,而与历史状态和历史动作的选择无关。马尔可夫决策过程可由五元组{s,a,p,r,j}来表示,其中s为有限的环境状态空间;a为有限的系统动作空间;p(s,a,s′)∈[0,1]为状态转移概率,表示在状态s下选择动作a后使环境状态转移到状态s′的概率;r(s,a,s′):为智能体从状态s执行动作a转移到状态s′后所获得的即时回报值;j为决策优化目标函数,通常j采用折扣型累积回报值来表示:

式中,γ∈(0,1]为折扣因子,改变γ的值可以控制智能体在学习过程中对短期收益和长期收益考虑的程度。

强化学习方法(reinforcementlearning,rl):强化学习方法是一种与有监督学习和无监督学习相区别的在线学习算法。强化学习算法将学习过程视为一个不断进行探索与评价的过程:首先,智能体感知环境状态,并根据初始策略选择某一动作施加于环境;然后,环境对该动作作出反应,得到下一状态,并给予该动作相应评价,反馈给智能体;最后,智能体根据环境给予的评价更新策略,并不断循环,最终找到最优策略。

理论基础

水平面运动学和动力学模型

考虑到水下机器人的数学模型比较复杂,在仿真的基础上对其进行控制器性能的验证具有一定的难度,与此同时,本发明主要对基于双bp神经网络q学习的参数自适应框架进行仿真验证,因此选取较简单的水平面运动学和动力学模型。将水下机器人六自由度动力学模型进行分解,并保留水平面三个自由度的运动学和动力学方程,具体如式(27)和式(28)所示:

其中,τu和τr分别为纵向推力和偏航力矩,由于该水下机器人具有欠驱动性,因此不具备横向推力。

基于公式(27)和(28),可以得到水下机器人速度控制系统和艏向控制系统。

q学习算法

q学习算法作为强化学习算法的一种,用状态-动作值函数对延迟奖励进行处理,即用q(s,a)来对累计奖赏值进行描述,然后用一张表格记录每一个状态-动作对的q值,这张表格即作为智能体行动的行为准则,根据当前状态st不断选取最大q值所对应的动作即为最优策略。在训练过程中,每一个状态-动作对所对应得q值的更新方式如式(29)所示:

式中,α表示学习率,学习率的大小决定了智能体的学习程度,当α趋近于0时,说明智能体不再学习;当α趋近于1时,说明智能体学习现在全部的知识,而对过去的经验全部遗忘。rt 1表示即时回报,指引这智能体不断进行学习;qm-1(st,at)表示(st,at)所对应的q值大小;qm-1(st 1,a′)表示状态st 1所对应的q值大小;γ表示折扣率,反映智能体对眼前利益和长远利益的关注程度。

使用q值表来对学习到的经验进行记录,这一特点决定了q学习算法值能适用于离散的任务,同时状态和动作空间不能过大,否则,智能体会因无法遍历每一个状态动作对而无法收敛,最终导致学习结果发散。

贪婪策略

在智能体学习的过程中,不仅需要考虑采取当前最大q值所对应的动作以获得较高回报,而且要求智能体在学习过程中尽可能选择不同的动作以得到更大回报,前者为强化学习过程中的利用问题,后者为强化学习过程中的探索问题。探索对在线学习至关重要,由于强化学习一般处于变化的环境中,当前的最优策略随着环境的变化在下一时刻可能为次优或错误的策略,因此在强化学习中需要平衡探索与利用的关系。ε贪婪策略是解决探索与利用关系的一种有效方法。智能体以1-ε的概率选择目前最大q值所对应的动作,以ε的概率随机选择其他动作执行,具体如式(30)所示:

式中,at 1表示下一时刻选择的动作。

马尔可夫决策过程

智能体与环境间的交互作用基于马尔可夫模型,它表示智能体得到的奖励值仅与当前的状态和动作有关,而与历史状态和动作无关。可由以下五元组来表示:

式中元素含义分别如下所示:

(1)s——状态空间,为系统中所有可能状态的集合,s、s′均为其中状态,是s的元素;

(2)a(s)——动作空间,为系统中s状态下所有可能动作的集合;

(3)——转移概率,智能体在状态s下采取动作a后,环境转移到状态st 1的概率;

(4)——即时回报,智能体在状态s下采取动作a使得环境转移到状态st 1后,所得到的奖励值;

(5)v——评价函数,长期累积回报值。

bp神经网络

1)bp神经网络模型

bp神经网络能学习和储存大量的输入输出模式映射关系,但不能对这种映射关系用某种确定的数学方程进行表达。bp神经网络的拓扑结构一般包括输入层、隐层和输出层。各层之间用权值连接,同时隐层和输出层各神经元均设置有激活函数和相应的阈值。

2)bp神经网络的学习算法

bp神经网咯主要采用梯度下降和微分链式规则对其权值wij、wki进行更新。具体训练过程可分为信号正向传播和误差反向传播。在信号的正向传播过程中,输入信号通过输入层、隐层处理,在经过输出层输出,若输出值与期望值不等,则产生误差;在误差反向传播过程中,误差被分给各个神经元,以网络误差的平方和最小为目标,对网络的权值和阈值进行调整。

bp神经网络的隐层数据计算为:

bp神经网络输出层数据计算为:

式中,f(·)为激活函数,此处隐层和输出层的激活函数均选为双曲正切函数。

bp神经网络权值更新公式如式(34)所示:

式中,dk和tk分别为神经网络期望输出和实际输出,η为神经网络学习率,α∈(0,1)为动量因子。

算法仿真

一、仿真参数设置

为了研究基于双bp神经网络q学习参数自适应反步法控制器的控制效果,采用式(27)和式(28)所示的水下机器人数学模型,分别对水下机器人速度控制器和艏向控制器开展有海流干扰情况下的仿真实验。分别设置速度控制器的期望值为ud=1m/s,艏向控制器的期望值为速度控制器和艏向控制器的回报函数参数设置:c1=0.7,c2=0.3。同时选取单步控制步长ts=0.5s,仿真时间m=50s,q学习折扣率γ=0.9,q学习学习率α=1。速度控制器的当前bp神经网络的输入神经元为2个,输出神经元为16个;艏向控制器的当前bp神经网络输入神经元为3个,输出神经元为32个。速度和艏向控制器的目标bp神经网络采用与其各自相对应的输入输出神经元个数。bp神经网络的参数w初始化为[-1,1]的随机数,同时设置神经网络参数学习率β=0.05。且对速度和艏向进行初始化:u0=0m/s,v0=0m/s,r0=0rad/s。

二、仿真结果及分析

对速度和艏向控制器分别进行了300次的循环训练,并在训练过程中分别选取第1次、第50次和第300次的训练结果进行对比,以观察学习效果。有外界干扰情况下的具体仿真结果如图5至图11所示。其中图5和图6分别为有干扰情况下基于双bp神经网络q学习参数自适应反步速度控制器和艏向控制器训练后的效果对比图。图7和图8分别为速度控制器和艏向控制器在有外界干扰情况下输出的纵向推力和偏航力矩图。图9、图10及图11分别为在有外界干扰情况下速度控制器的控制增益ku、艏向控制器的两个控制增益在一个控制周期内的具体变化情况。

三、仿真实验分析

从图5及图6中可以看到,无论是速度控制器还是艏向控制器,在有外界干扰情况下,基于双bp神经网络q学习参数自适应反步法的控制效果在训练后都比训练前的控制器的控制效果好,并且随着训练次数的增加控制器的控制效果越好,这说明强化学习确实赋予了控制器学习能力,使其能够通过不断尝试最终找到最优的控制增益。

在有外界干扰情况下,从图5和图6中可以看出,基于双bp神经网络q学习参数自适应反步控制器训练完成后相比于训练前和训练中,除了有更快的上升速度外,还有更小的超调量及更好的抗干扰能力。训练完成后的速度控制器相比于训练前,控制器的上升时间由原来的8s最终降低为6s左右,由外界干扰引起的超调量也由原来的6.5%最终降为1.2%;而艏向控制器的上升时间由原来的15s最终降为12s左右,超调量由原来的6.4%最终降为2%。从图9、图10及图11中可以看到,在控制器训练前后,速度和艏向控制器的控制增益均产生了一定的变化,这说明将强化学习与反步法控制器相结合的效果是明显的。

图12和图13反映了在训练过程中,速度和艏向控制器的偏差和(此处偏差和指的是一个控制周期内速度和艏向偏差对时间的积分)随着训练次数的变化情况,可以发现,偏差和是随着训练次数的增加不断减少的,最终均稳定在某一个定值或在某几个较小值间徘徊,此时说明强化学习的训练已经趋于稳定。在有外界干扰下,速度和艏向控制器分别在训练80次和90次左右稳定。

本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。


技术特征:

1.一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,该方法包括以下步骤:

步骤一、基于反步法分别设计水下机器人的速度控制系统和艏向控制系统,再根据设计的速度控制系统以及艏向控制系统确定速度控制系统的控制律以及艏向控制系统的控制律;

水下机器人的速度控制系统为:

其中,m为水下机器人的质量,和xu|u|均为无量纲水动力参数,u为水下机器人纵向速度,|u|为u的绝对值,为水下机器人纵向加速度,τu为推进器纵向推力,v为水下机器人横向速度,r为水下机器人偏航角速度;

水下机器人速度控制系统的控制律为:

其中,ku为速度控制系统的控制律的待调节控制增益;

水下机器人的艏向控制系统为:

其中,为实际艏向角的一阶导数,为r的一阶导数,nr、nr|r|均为无量纲水动力参数,|r|为r的绝对值,τr为转艏力矩,iz为水下机器人绕运动坐标系z轴的转动惯量;

所述运动坐标系为:以水下机器人的重心为原点o,以指向水下机器人的艏向方向为x轴正向,以指向水下机器人的右舷方向为为y轴正向,以指向水下机器人的底部方向为z轴正向,且x轴、y轴、z轴符合右手螺旋定则的坐标系;

水下机器人艏向控制系统的控制律为:

其中,为艏向控制系统的控制律的第一个待调节控制增益,为艏向控制系统的控制律的第二个待调节控制增益;

步骤二、建立由第一当前bp神经网络和第一目标bp神经网络组成的双bp神经网络模型一,其中,第一当前bp神经网络与第一目标bp神经网络的结构相同;

第一当前bp神经网络输入的状态向量为st={s1u,s2u},其中,s1u为t时刻速度的偏差,s2u为t时刻速度的偏差变化率,输出为动作值集合k′u,再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值k″u;

第一目标bp神经网络输入的状态向量为:当前状态st执行最优动作at后所得到的下一时刻的状态st 1,第一目标bp神经网络根据输入的状态向量确定输出;

步骤三、第一当前bp神经网络输出的实际q值为qm(st,at),第一目标bp神经网络输出的目标q值为第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值为rt 1(st 1,a),利用qm(st,at)、和rt 1(st 1,a)来计算td误差,再利用计算出的td误差对第一当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第一当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对每经过n个时刻后,第一目标bp神经网络对第一当前bp神经网络的参数进行复制,实现对第一当前bp神经网络和第一目标bp神经网络参数的更新;

步骤四、每个时刻的状态向量依次输入第一当前bp神经网络后,利用步骤二中每个时刻的状态向量对应的最优动作值,计算出在每个时刻速度控制系统的控制律的待调节控制增益ku;

步骤五、建立由第二当前bp神经网络和第二目标bp神经网络组成的双bp神经网络模型二,其中,第二当前bp神经网络与第二目标bp神经网络的结构相同;

第二当前bp神经网络输入的状态向量为其中,为t时刻偏航角的偏差,为t时刻偏航角的偏差变化率,为t时刻水下机器人实时速度,输出为动作值集合再利用ε贪婪策略从动作值集合中选择出当前状态向量对应的最优动作值

第二目标bp神经网络输入的状态向量为:当前状态s′t执行最优动作a′t后所得到的下一时刻的状态s′t 1,第二目标bp神经网络根据输入的状态向量确定输出;

步骤六、第二当前bp神经网络输出的实际q值为qm(s′t,a′t),第二目标bp神经网络输出的目标q值为第二当前bp神经网络在当前状态s′t下选择最优动作a′t并执行后得到的奖赏值为rt 1(s′t 1,a),利用qm(s′t,a′t)、和rt 1(s′t 1,a)来计算td误差,再利用计算出的td误差对第二当前bp神经网络的参数进行更新;

每个时刻对应的状态动作样本对均存入经验样本池,在第二当前bp神经网络训练的空闲时间,从经验样本池中随机抽取固定数量的状态动作样本对,利用抽取的状态动作样本对对第二当前bp神经网络继续进行训练;

且每经过n个时刻后,第二目标bp神经网络对第二当前bp神经网络的参数进行复制,实现对第二当前bp神经网络和第二目标bp神经网络参数的更新;

步骤七、当每个时刻的状态向量依次输入第二当前bp神经网络后,利用步骤五中每个时刻的状态向量对应的最优动作值,计算出在每个时刻艏向控制系统的控制律的待调节控制增益

2.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤二中,输出为动作值集合k′u,再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值;其具体过程为:

定义需要进行划分的动作空间为k′u0,k′u0∈[-1,2],将k′u0每隔0.2平均划分成16个动作值,16个动作值组成动作值集合k′u;再利用ε贪婪策略从动作值集合k′u中选择出当前状态向量对应的最优动作值k″u。

3.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤三中,第一当前bp神经网络在当前状态st下选择最优动作at并执行后得到的奖赏值为rt 1(st 1,a),rt 1(st 1,a)的表达式为:

rt 1(st 1,a)=c1·s1u2 c2·s2u2

其中,c1和c2均为大于零的正数。

4.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤四中,待调节控制增益ku的计算方法为:

ku=ku0 k″u

其中,ku0为速度控制系统的控制律的待调节控制增益的初始值。

5.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤五中,输出为动作值集合再利用ε贪婪策略从动作值集合中选择出当前状态向量对应的最优动作值其具体过程为:

定义需要进行划分的动作空间为每隔0.2平均划分成16个动作值,16个动作值组成动作值集合每隔0.1平均划分成16个动作值,16个动作值组成动作值集合

再利用ε贪婪策略,从动作值集合中选择出当前状态向量对应的最优动作值从动作值集合中选择出当前状态向量对应的最优动作值

6.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤六中,第二当前bp神经网络在当前状态s′t下选择最优动作a′t并执行后得到的奖赏值为rt 1(s′t 1,a),rt 1(s′t 1,a)的表达式为:

其中,c1和c2均为大于零的正数。

7.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤七中,艏向控制系统的控制律的待调节控制增益的计算方法为:

其中,为待调节控制增益的初始值,为待调节控制增益的初始值。

8.根据权利要求1所述的一种基于双bp神经网络q学习技术的水下机器人参数自适应反步控制方法,其特征在于,所述步骤三和步骤六中,从经验样本池中随机抽取固定数量的状态动作样本对,随机抽取的固定数量为2000个。

技术总结
一种基于双BP神经网络Q学习技术的水下机器人参数自适应反步控制方法,它属于水下机器人控制器参数调节技术领域。本发明解决了传统Q学习方法进行控制器参数调节时的学习效率低,以及传统反步法进行控制器参数调节时存在的参数不易实时在线调整的问题。本发明利用基于双BP神经网络Q学习算法与反步法相结合的方式实现对反步法控制器参数的自主在线调节,以满足控制参数能够实时在线调整的要求。同时由于引入了双BP神经网络以及经验回放池,其强大的拟合能力使得基于双BP神经网络Q学习参数自适应反步控制方法能够大大降低训练次数,以提升学习效率,在训练较少次数的情况下达到更好的控制效果。本发明可以应用于水下机器人控制器参数的调节。

技术研发人员:王卓;张佩;秦洪德;孙延超;邓忠超;张宇昂;景锐洁;曹禹
受保护的技术使用者:哈尔滨工程大学
技术研发日:2020.02.11
技术公布日:2020.05.19

转载请注明原文地址: https://bbs.8miu.com/read-267655.html

最新回复(0)