掌桥专利:专业的专利平台
掌桥专利
首页

基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法

文献发布时间:2023-06-19 19:28:50


基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法

技术领域

本发明属于水下仿生机器人智能控制领域,涉及一种基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法。

背景技术

随着社会科学技术的发展和人类面临的日益严峻的生态环境问题,人类对海洋环境的探测和资源的开采需求日益增加。自主水下航行器(AUV)能够在近远海域水下环境监测、科学考察、水下考古、资源开发等任务,具有很好的科学和工程应用前景。仿蝠鲼水下机器鱼是一种新型的仿生AUV,相比传统的螺旋桨推进器,其具有更好的环境亲和性和高机动能力,复杂环境适应能力更强。近些年,仿生水下机器人的控制问题引起了学者们的研究兴趣和热情,相关领域的科学与技术问题也得到了极大的发展。

水下仿生机器人的控制问题是仿生机器人的难点之一,而航向控制作为姿态控制的一部分是水下仿生机器人实现其他任务的基础,是实现水下作业控制的基本要求之一。目前水下航向控制方法可以按照需不需要模型分为基于模型的方法和无模型的方法。基于模型的方法需要对控制对象建立数学模型,而仿生水下机器人的动力学模型相对于传统的刚性回转体AUV更加复杂,柔性体和液体的耦合作用更加明显,建立模型的难度更大,因此选用无模型的控制方法是比较好的选择。

模糊控制方法目前已经成功应用在了仿生水下机器人上,模糊控制的优势是不需要建立控制对象的模型,只需要根据人为经验设计成模糊规则库,然后根据人为设计的规则对控制对象进行控制。模糊控制的不足之处在于依赖专家经验和控制精度不高。相比于模糊控制方法,目前研究最热门的无模型的控制方法是强化学习方法(ReinforcementLearning,RL)。1956年Bellman提出了动态规划(DP)方法,1988年Sutton提出了时序差分(TD)算法,1992年Watkins提出了Q学习算法,2013年,Mnih等将深度学习和强化学习结合首次提出了深度强化学习算法,并成功应用在了Atari游戏上,使用RL算法玩的部分游戏已经超越了人类专业玩家的水平,2016年,深蓝学院的强化学习算法A1pha-go成功击败了人类世界冠军选手。

目前RL方法应用在实际样机上还有很多挑战。其中之一是如何在计算能力相对较低的系统中实现强化学习的控制问题。比如很多深度强化学习算法需要具有GPU高运算能力的工控机作为控制系统硬件,而目前很多控制器还都是单片机等微控制器作为主要的控制单元。

发明内容

要解决的技术问题

为了避免现有技术的不足之处,解决强化学习方法在实际系统应用的问题,本发明提出一种基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法,具体一种基于Q学习和胸鳍相位差的无模型仿蝠鲼机器鱼的航向控制方法。

技术方案

一种基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法,其特征在于步骤如下:

步骤1、建立仿蝠鲼机器鱼航向控制问题的有限马尔科夫模型:

1、建立航向控制的离散状态空间S:

S={s

其中:

s

s

……,

s

s

s

……,

s

s

其中,Δψ

2、建立离散动作空间A:仿蝠鲼机器鱼航向控制的动作空间为连续动作空间[-a

其中:a表示动作空间的元素,代表固定的胸鳍摆动的相位差,且0≤a≤a

3、设计奖励函数:

其中:δ为调整仿蝠鲼机器鱼的深度控制精度的参数;

所述r

步骤2、建立动作-价值函数表格Q(s,a):

步骤3、训练Q表格:

1、训练数据样本:以原始深度和姿态变化数据,计算t时刻奖励函数r

建立训练Q表的数据集Data

其中:

Data

Transition

2、Q(s

其中,α为学习率,γ为折扣因子;

3、从训练数据集中随机抽取数据,根据Q(s

步骤4、设计控制策略:

在状态为s时,选择使得Q(s,a)取得最大值的动作a。

所述原始深度和姿态变化实验数据通过实验手段获得或者前人做实验获得。

所述横滚偏差

所述当

所述步骤3训练Q表格使用python训练Q表格,程序流程图伪代码如下:

1)初始化学习率α和折扣因子γ;

2)赋值所有Q表中Q(s,a)初值为0;

3)设置经验池存储容量N,读入原始训练数据,并处理后存入经验池

4)循环步骤5-步骤7:

5)随机从经验池中抽样Transition并按照Q(s

6)计算

7)当

8)输出Q表中所有Q(s,a),训练结束。

所述ε的取值跟根据训练情况调节。

所述ε的取值ε=0.1。

所述δ取值3°。

有益效果

本发明提出的一种基于Q学习和胸鳍相位差的仿蝠鲼机器鱼航向控制方法,与传统的控制方法相比,本发明不需要建立控制对象模型,通过采集实验数据,离线训练Q表格,然后将表格移植到样机控制器中,通过查表的方式取得控制变量,控制样机在固定深度游动。与其他强化学习控制方法相比,其对硬件资源要求低,对空间需求小,功耗小,实现方便。其有益效果在于:

1)本发明方法的实现对控制器的硬件要求低,普通的单片机就可以实现,除了节约成本外,还达到节约空间和节约能源的效果。

2)相比于传统的经典PID控制方法,不需要建立控制对象的数学模型,由于仿生模型更加难以建立,因此可以节约大量时间成本。

3)相比于基于模糊控制的航向控制方法,本方法不需要专家经验来建立规则库就可以实现机器鱼的航向控制,Q表在训练的时候自己会学到“专家经验”。

4)本发明实现简单,泛化能力强,除了可以应用于仿生水下机器人外,还能应用于传统水下AUV。

附图说明

图1为本发明仿蝠鲼机器鱼航向控制方法流程图;

图2为本发明Q表格训练程序流程图

图3为本发明仿蝠鲼机器鱼航向控制方法原理图

图4为本发明仿蝠鲼机器鱼基于胸鳍相位差航向控制试验结果图。

具体实施方式

现结合实施例、附图对本发明作进一步描述:

本发明提出的一种基于Q学习的无模型仿蝠鲼机器鱼的航向控制方法,其特征在于包括以下步骤:

1:建立仿蝠鲼机器鱼航向控制问题的有限马尔科夫模型:

步骤1-1)建立航向控制的离散状态空间S:

通过传感器获得航向角度的反馈为ψ∈[0°,360°),设传感器反馈航向为航向真值,期望航向的取值范围为ψ′∈[0°,+360°),由此可以推得航向偏差Δψ的取值范围:

Δψ=ψ-ψ′,Δψ∈(-360°,+360°)。

当Δψ∈(-360°,-180°)时,根据角度变化周期为360°可知,其等价于Δψ∈(0°,180°),同理,当Δψ∈(180°,360°)时,等价于Δψ∈(-180°,0°),因此Δψ的取值范围可以等价于Δψ∈[一180°,180°]。

为了将状态空间离散化,将状态空间简化为2n+1元素,即设状态空间

S={s

其中,

s

s

……,

s

s

s

……,

s

s

其中,Δψ

步骤1-2)建立离散动作空间A:

实际仿蝠鲼机器鱼航向控制的动作空间为连续动作空间[-a

A={a

其中a表示动作空间的元素,代表固定的胸鳍摆动的相位差,且0≤a≤a

步骤1-3)设计奖励函数计算方法:

在时刻t,状态为s

其中δ为一个小量,取值范围在期望控制精度附近,影响仿蝠鲼机器鱼的航向控制精度,当期望控制精度为3°时,我们可以取δ=3°;

2:建立动作-价值函数表格Q(s,a);

表1

3:训练Q表格;

步骤3-1)训练数据样本准备,具体步骤包括:

1)通过实验手段获得或者前人做实验获得的原始深度和姿态变化实验数据;

2)按照步骤1中的公式计算t时刻奖励函数r

3)建立训练Q表的数据集Data

其中

Data

Transition

步骤3-2)Q(s

其中,α为学习率,γ为折扣因子;

步骤3-3)从训练数据集中随机抽取数据,根据上步3-2)计算公式循环更新表格,直到Q表中Q价值的变化误差小于规定值ε=0.1;

使用python训练Q表格的程序流程图伪代码如下:

1)初始化学习率α和折扣因子γ;

2)赋值所有Q表中Q(s,a)初值为0;

3)设置经验池存储容量N,读入原始训练数据,并处理后存入经验池

4)开始循环:

5)随机从经验池中抽样Transition并按照3-2)中公式更新Q(s,a);

6)计算

7)当

8)输出Q表中所有Q(s,a),训练结束

4:设计控制策略:

表示在状态为s时,选择使得Q(s,a)取得最大值的动作a。

下面详细描述本发明的实施例,所述实施例的附图在附图中示出,参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

如图1所示,本发明第1步为把仿蝠鲼机器鱼航向控制问题建模为马尔科夫决策模型:

1)建立仿蝠鲼机器鱼航向控制的状态空间S;2)建立航向控制的动作空间A;3)奖励奖励函数。

1建立仿蝠鲼机器鱼航向控制的马尔科夫决策模型:

1-1)建立状态空间:

S={s

取n=10,另外设

s

s

s

s

s

s

s

s

…,

s

s

1-2)建立仿蝠鲼机器鱼航向控制的动作空间A:

本实施例中仿蝠鲼机器鱼的胸鳍振幅可调节范围为[0°,+50°]。当直游时,两侧胸鳍都是保持50°振幅不变。当左转弯时,右侧胸鳍振幅不变,左侧胸鳍改变;同理,当右转弯时,左侧胸鳍振幅保持不变,右侧胸鳍改变。

令动作空间A=(a

样机试验取a

1-3)设计奖励函数

根据公式(2),取δ=3°,则奖励函数为

2:建立动作-价值函数表格Q(s,a);

根据表1、状态空间和动作空间建立Q表:

表2:

3:训练Q表格;

步骤3-1)训练数据样本准备(通过做实验获得航向变化和胸鳍摆动角度变化的数据);

步骤3-2)基于python建立训练环境;

步骤3-3)基于Q算法更新Q表格,算法流程如图2所示:

1)程序初始化:对任意状态和动作初始化Q

2)数据处理:读取训练数据并计算奖励函数,将数据转换为{s

3)将数据存入经验池D;

4)开始循环:

在经验池D随机采样数据;

更新Q

计算对所有状态和动作计算根据公式(4)计算

如果

5)输出Q表格,训练结束;

4:设计控制策略:

如图3所示,为本发明的航向控制方法原理图,深度传感器给出控制对象的目前深度,然后与目标航向进行比较输出深度误差Δψ,Δψ输入到控制器进行解算,判断目前状态s,控制器根据控制策略

在Q表中查询使得状态价值函数取最大值的动作a作为胸鳍航向控制量的输出。

试验验证结果为设定航向为10°,试验结果如图4所示。

相关技术
  • 一种基于Q学习和胸鳍振幅的仿蝠鲼机器鱼航向控制方法
  • 基于Q学习和胸鳍振幅偏置的仿蝠鲼机器鱼横滚控制方法
技术分类

06120115928570