法律状态公告日
法律状态信息
法律状态
2022-09-30
授权
发明专利权授予
2022-08-19
实质审查的生效 IPC(主分类):G05B13/04 专利申请号:2022107809929 申请日:20220705
实质审查的生效
技术领域
本发明属于深度强化学习以及智能控制相关技术领域,尤其涉及一种基于深度强化学习的水下航行器底层控制方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
在海洋开发日益重要的现在,水下航行器越来越得到各个国家的重视,无论是在民用还是在军用上,都扮演着重要的角色。但由于水下航行器具有强耦合性、高度非线性等特点,在水下环境运行时又容易受到洋流等因素干扰,导致水下航行器的控制难度增大。
水下航行器底层控制包括对推进器控制、传感器信号处理等。经典控制技术虽然在底层控制上取得重大成就,但水下航行器复杂的操作条件和面临的恶劣水下环境对底层控制要求更高。深度强化学习具有强大的感知能力与决策能力,能自主适应恶劣的水下环境与水下航行器复杂的操作条件,能很好地实现对水下航行器的底层控制。
近年来,深度强化学习在水下航行器的应用上表现出优异性能,尤其是策略-评价网络架构成为当今流行算法的基础。如今近端策略优化(PPO)算法以其优异的性能以及易于实现与调试的特点被广泛应用并取得不错的效果。但由于近端策略优化(PPO)自身限制学习率的特点,可能会导致学习效率低的问题。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于深度强化学习的水下航行器底层控制方法及系统,基于改进型近端策略优化算法,采用一种策略-评价网络结构,将采集到原始传感器信息进行处理,输出推进器与舵角指令,实现高精度与自适应的水下航行器底层控制。
本发明的第一个方面提供一种基于深度强化学习的水下航行器底层控制方法,包括:根据水下航行器的状态信息、动作信息建立水下航行器底层控制的马尔科夫决策模型;
基于所建立的水下航行器底层控制的马尔科夫决策模型,将水下航行器底层控制的系统控制目标转换为基于策略-评价网络的深度强化学习下的水下航行器底层控制目标;
根据水下航行器的状态信息得到新的动作信息、动作信息所对应的即时奖励值以及观测到的新的状态信息并存入经验回收池,通过经验回收池对策略-评价网络进行迭代训练;
将迭代训练后的策略-评价网络作为控制网络实现对水下航行器的底层控制。
进一步的,定义水下航行器底层控制系统的输入、输出、位置误差,所述输入包括传感器所测量的水下航行器的当前位置向量、当前的速度向量以及当前的加速度向量;所述输出包括推进器推力、水平舵舵角和垂直舵舵角;所述位置误差为传感器所测量的水下航行器当前的位置信息与路径规划所给出的参考位置信息之差。
进一步的,建立水下航行器的底层控制的马尔科夫决策模型,包括定义状态向量、定义动作向量、定义奖励函数;
所述定义状态向量包括水下航行器的当前位置向量、当前速度向量、当前加速度向量、参考位置信息以及上一时间步水下航行器底层控制系统的输出;
所述定义动作向量为定义第t个时间步的动作向量为第t个时间步的水下航行器底层控制系统的输出;
所述定义奖励函数根据水下航行器当前位置误差、与下一时间步的期望位置误差、水下航行器底层控制系统输出的动作、期望航向角、横倾角与横倾角速度所确定。
进一步的,所述基于策略-评价网络的深度强化学习下的水下航行器底层控制目标中策略网络的损失函数为:
其中,
进一步的,对于基于策略-评价网络的深度强化学习下的水下航行器底层控制目标的评价网络的损失函数为:
其中,
进一步的,所述策略-评价网络包括策略网络和评价网络,所述策略网络设置为两个,所述评价网络设置为一个;所述策略网络的输入为水下航行器的状态向量,输出为水下航行器当前状态下的动作;所述评价网络的输入为水下航行器的状态向量和动作向量,输出为当前状态下的动作对应的价值。
进一步的,训练所述的策略-评价网络包括:
随机初始化两个策略网络的网络参数以及评价网络的参数;
设置当前的时间步t = 0其所对应的状态变量分别作为两个策略网络的输入,分别得到当前时间步的输出动作
计算时序差分误差,基于时序差分误差计算评价网络的损失函数,基于评价网络的损失函数的梯度来更新评价网络的网络参数;计算策略网络的损失函数,基于策略网络的损失函数的梯度来更新策略网络的网络参数,不断的迭代训练,直至达到训练次迭代结束。
进一步的,所述策略网络包括一个输入层、两个隐藏层和一个输出层并且各层之间均为全连接的神经网络,所述隐藏层激活函数采用ReLu函数,输出层采用tanh函数。
进一步的,所述评价网络包括一个输入层、两个隐藏层和一个输出层并且各层之间均为全连接的神经网络,所述隐藏层激活函数采用ReLu函数,输出层采用线性函数。
本发明第二个方面提出一种基于深度强化学习的水下航行器底层控制系统,包括:
建立控制目标模块,其被配置为根据水下航行器的状态信息、动作信息建立水下航行器底层控制的马尔科夫决策模型;
控制目标转换模块,其被配置为基于所建立的水下航行器底层控制的马尔科夫决策模型,将水下航行器底层控制的系统控制目标转换为基于策略-评价网络的深度强化学习下的水下航行器底层控制目标;
训练模块,其被配置为根据水下航行器的状态信息得到新的动作信息、动作信息所对应的即时奖励值以及观测到的新的状态信息并存入经验回收池,通过经验回收池对策略-评价网络进行迭代训练;
控制模块,其被配置为将迭代训练后的策略-评价网络作为控制网络实现对水下航行器底层的控制。
以上一个或多个技术方案存在以下有益效果:
1、本发明针对的是水下航行器的底层控制,利用深度学习强大的感知能力处理水下航行器传感器信息,利用强化学习的决策能力输出推进器与舵角指令,与传统的底层控制方法相比自适应能力更强。因为是底层控制,与现有的深度强化学习控制水下航行器的方法相比更精确。
2、本发明的控制方法是无模型的,故不需要复杂的建模,而且可以很好地适用于强耦合性与强非线性特点的水下航行器。
3、本发明针对近端策略优化算法容易导致训练速度慢的特点进行优化,设置两个策略网络,选择奖励值高的动作存储在经验集中进行训练,在更新网络参数时对两个策略网络随机更新。
4、本发明对水下航行器的横倾角在奖励函数中进行控制设计,横倾角越小,奖励函数中这一项的奖励值越大。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明水下航行器控制方法的框架图;
图2为本发明中策略网络结构示意图;
图3是本发明中评价网络结构示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。
实施例一
如图1所示,本实施例公开了一种基于深度强化学习的水下航行器底层控制方法,
步骤1:根据水下航行器的状态信息、动作信息建立水下航行器底层控制的马尔科夫决策模型;
步骤2:基于所建立的水下航行器底层控制的马尔科夫决策模型,将水下航行器底层控制的系统控制目标转换为基于策略-评价网络的深度强化学习下的水下航行器底层控制目标;
步骤3:根据水下航行器的状态信息得到新的动作信息、动作信息所对应的即时奖励值以及观测到的新的状态信息并存入经验回收池,通过经验回收池对策略-评价网络进行迭代训练;
步骤4:将迭代训练后的策略-评价网络作为控制网络实现对水下航行器的底层控制。
在本实施例中,在所述步骤1之前,还包括定义水下航行器底层控制问题,包括四个部分:确定水下航行器系统输入、确定水下航行器系统输出、计算位置误差和建立水下航行器底层控制目标。
步骤0-1:确定水下航行器系统输入
系统输入包括传感器信息
步骤0-2:确定水下航行器系统输出
系统输出为
步骤0-3:计算位置误差
位置误差
步骤0-4:建立水下航行器底层控制目标
目标函数
其中,
在所述步骤1和步骤2中:建立水下航行器底层控制问题的马尔科夫决策模型,包括定义状态向量、定义动作向量、定义奖励函数以及将步骤0-4所建立的水下航行器底层控制目标转换为基于策略-评价网络下深度强化学习的控制目标。
步骤1-1:定义状态向量
状态向量为
其中,
步骤1-2:定义动作向量
定义第t个时间步的系统输出
步骤1-3:定义奖励函数
定义第t个时间步的奖励函数为r,奖励函数代表在状态
其中,
在本实施例中,
步骤1-4:将步骤0-4所建立的水下航行器底层控制目标转换为基于策略-评价网络的深度强化学习下的控制目标。
水下航行器的底层控制目标为
定义策略
其中,
状态为
其中,
其中,
对于深度强化学习框架中基于策略-评价网络的评价网络来说,损失函数
其中,
在所述步骤3中,基于策略-评价的深度强化学习算法是通过构建策略网络和评价网络来选择最优策略。
步骤3-1:策略网络的构建
如图2所示,策略网络是包括一个输入层、两个隐藏层和一个输出层并且各层之间均为全连接的神经网络。输入层的输入为观察量,神经元个数为观察量的维度;隐藏层神经元个数为512;输出层的输出为动作,神经元个数为动作的维度。隐藏层激活函数采用ReLu函数,输出层采用tanh函数。
通过构建策略网络来输出当前状态下的动作,为了使策略更加稳定,采用clip函数,限制新策略的变化幅度。此外,为了探索更加充分,采用两个策略网络产生动作,并保存奖励值高的动作。
步骤3-2:评价网络的构建
如图3所示,评价网络是包括一个输入层、两个隐藏层和一个输出层并且各层之间均为全连接的神经网络。输入层的输入为观察量,神经元个数为观察量的维度;隐藏层神经元个数为512,动作值作为第一个隐藏层的输入;输出层的输出当前时间步下动作的价值为
通过构建评价网络来输出当前动作对应的价值
步骤3-3:确定目标策略
根据所构建的策略-评价网络,将时间步t学习到的动作作为系统输出。
求解水下航行器的目标策略,即选择最优策略
步骤4-1:参数设置
策略网络学习率为
步骤4-2:初始化策略-评价网络参数
随机初始化策略-评价网络参数
步骤4-3:迭代开始,对策略-评价网络进行训练,初始化迭代次数episode = 1。
步骤4-4:设置当前时间步t=0,随机初始化水下航行器的状态变量
步骤4-5:根据两个策略网络得到当前时间步的输出动作
步骤4-6:水下航行器在当前状态
比较
如果经验集
步骤4-7:从经验集
步骤4-8:根据步骤4-7中计算得到的时序差分误差
步骤4-9:直接复制更新策略网络参数
步骤4-10:从经验集
计算
步骤4-11:若此时到达最大迭代次数M,则得到训练完成的策略网络参数
步骤4-12:迭代结束,将学习到的策略-评价网络作为控制网络,实现对水下航行器的底层控制。
实施例二
本实施例的目的是提供一种基于深度强化学习的水下航行器底层控制系统,包括:
建立控制目标模块,其被配置为根据水下航行器的状态信息、动作信息建立水下航行器底层控制的马尔科夫决策模型;
控制目标转换模块,其被配置为基于所建立的水下航行器底层控制的马尔科夫决策模型,将水下航行器底层控制的系统控制目标转换为基于策略-评价网络的深度强化学习下的水下航行器底层控制目标;
训练模块,其被配置为根据水下航行器的状态信息得到新的动作信息、动作信息所对应的即时奖励值以及观测到的新的状态信息并存入经验回收池,通过经验回收池对策略-评价网络进行迭代训练;
控制模块,其被配置为将迭代训练后的策略-评价网络作为控制网络实现对水下航行器底层的控制。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
机译: 水下航行器的举升系统潜水艇,具有控制单元,该控制单元用于基于深度和压力来控制浮力装置浮袋装置中的气体填充水平
机译: 水下航行器控制装置,水下航行系统,水下航行器控制方法和程序
机译: 水下航行器,水下航行器控制器和水下航行器控制方法