本发明涉及一种基于深度强化学习的飞行器航线跟踪方法,属于机器人智能控制领域。
背景技术:
飞行器的自动驾驶系统往往包含两个控制环路:外环根据指定航线产生期望的姿态;内环控制飞行器跟踪外环产生的指令。与外环控制器不同,内环控制器往往只对特定的飞行器、特定的飞行任务有效。目前大多数的飞行器自动驾驶系统都采用经典的pid控制。尽管pid控制足以完成大多数的控制任务,但是其在动态环境中的表现差强人意,比如:存在风扰、载荷变化、电压骤降等。
飞行器的航线跟踪控制问题是一个非常具有挑战性的研究领域,已经发展了数十年,但大多数研究仍停留在仿真阶段,极少有能投入实际应用的控制方法。根据采用的算法种类,目前机器人跟踪问题的控制算法主要包括六大类:pid(proportionintegrationdifferentiation)控制、模糊控制、自适应控制、滑模控制、反步控制和神经网络控制。
pid是一种较为传统的控制方法,在早期的简单机器人控制中被大量使用。但pid控制器需要根据控制的模型进行精细的调参,单独使用pid控制难以完成复杂的跟踪任务。模糊控制鲁棒性较强,对飞行器模型依赖程度较低,适用于强非线性和强耦合的系统,但其需要通过专家知识来构造模糊规则。自适应控制能够自动校正参数,只需要较少的先验知识,对飞行器模型要求也较低,早在1991年便被fossen用作机器人的跟踪控制,至今仍是机器人控制领域中十分热门的算法。其缺点是控制算法较为复杂,在非线性对象上应用相对受限,性能难以提升。滑模控制算法鲁棒性强,对飞行器模型不确定性和参数摄动不敏感,十分适用于飞行器的控制,并不断有学者提出更鲁棒、更稳定的控制算法,但在实际应用中滑模控制容易产生抖振问题,增大能耗,影响控制其性能。反步控制也是飞行器轨迹跟踪中常用的方法,它构造简单,可以很好的处理系统的非线性,并能通过李雅普诺夫理论提高稳定性,但其对模型精度要求较高。神经网络能逼近任意非线性函数,并且有自主学习的能力,随着机器学习和深度学习的发展,这种控制方法越来越受到学界的关注。但目前来说,神经网络的训练样本难以收集,并且实时更新的神经网络控制较难实现。
各种算法都有自己的长处和短板,因此现代控制算法中一般将两种或多种算法相结合,采用复合的控制方法来获得更优的控制效果,比如harun[backsteppingcontrolstrategyforanunderactuatedx4-auv]将pid控制与反步控制方法结合来实现机器人的平移和旋转操控。
传统控制方法通常通过精准的动力学模型设计控制器。但是,在实际应用过程中难以获得准确的飞行器模型。在这种情况下,我们需要更有效的,可以自适应、自学习的控制策略。基于神经网络的控制策略是解决上述难题的方法之一。强化学习是转移概率未知情况下马尔可夫决策过程的求解框架。大部分的控制问题都可以建模成马尔可夫决策过程,在飞行器控制问题中,转移概率即对应飞行器的动力学模型。因此,强化学习可实现无模型控制,从经验中学习控制策略。
与传统的控制方法不同,强化学习算法不需要飞行器的数学模型,是一种无模型的控制方法。强化学习基于动态规划的框架解决马尔可夫过程问题,且只需要马尔可夫过程的样本点作为训练样本。
技术实现要素:
本发明的目的是提出一种基于深度强化学习的飞行器航线跟踪方法,克服现有技术的不足之处,不依赖飞行器的动力学模型,以飞行器速度、高度、姿态、角速率等传感器信息作为神经网络输入,以油门、升降舵、副翼、方向舵等控制指令为输出,完成飞行策略网络的训练,达到轨迹跟踪的目标。
本发明提出的基于深度强化学习的飞行器航线跟踪方法,包括以下步骤:
(1)构建一个用于飞行器航线跟踪的马尔科夫模型,包括以下步骤:
(1-1)确定马尔科夫模型的状态变量:
用(x,y,z)表示飞行器在惯性坐标系下的水平面坐标x,y和高度z,用
设飞行器的目标高度在惯性坐标系下为zr,则飞行器所处高度z与目标高度之间的相对高度为z-zr,设飞行器目标航向在惯性坐标系下为
则飞行器的马尔科夫模型的状态变量s为:
其中,β表示飞行器的侧滑角,侧滑角是飞行器飞行速度方向与其纵向对称平面之间的夹角,上标t表示矩阵转置;
(1-2)确定马尔科夫模型的控制变量:
设定飞行器副翼的舵量τ1、飞行器升降舵的舵量τ2和飞行器方向舵的舵量τ3,得到马尔科夫模型的控制变量u,u=[τ1,τ2,τ3]t;
(1-3)确定马尔科夫模型的转移模型,表达式为:sk+1=f(sk,uk),
其中,s为飞行器状态变量,k为飞行器状态采样时刻,该转移模型为一个时间离散的黑箱函数,表示在当前采样时刻k的状态变量sk和控制变量uk与下一采样时刻的状态变量sk+1的关系;
(1-4)确定马尔科夫模型的一步损失函数,表达式为:;
其中,k表示采样时刻,ρ1、ρ2、ρ3、ρ4、λ1、λ2、λ3分别表示相应各项的权重系数,上述权重系数均大于零,其中的
(1-5)确定飞行器航线跟踪的目标函数如下:
满足:sk+1=f(sk,uk)k=1,…,∞
其中,uk≥1表示步骤(1-2)的控制变量u的输入序列{u1,u2,…},γ表示对未来损失的权衰减因子,0<γ<1,
(2)构建基于深度强化学习的评价网络与策略网络,包括以下步骤:
(2-1)构建一个策略网络:
策略网络的输入为状态变量s,策略网络的输出为控制变量u,策略网络表达式如下:
u=μ(s)
(2-2)构建一个评价网络:
评价网络的输入为状态变量s和控制变量u,评价网络的输出为累计损失量qμ(s,u),评价网络的表达式如下:
其中,t为求和变量,
(3)采用确定性策略梯度方法,对飞行器轨迹跟踪进行控制,具体步骤如下:
(3-1)设定最大迭代次数为m,每次迭代的最大实验步数为t,设定一个训练集,训练集大小为n,设定目标神经网络的追踪比率为τ,设定策略网络滞后时间为d,设定评价网络与策略网络的学习率分别为αω和
(3-2)设定步骤(2-1)策略网络μ的权重参数为
根据当前策略网络的权重
建立一个空的经验集r,并设置集合r大小为100万;从经验集r中抽取一个训练集,训练集的大小为n;
(3-3)迭代开始,令初始化时,迭代次数m为1;
(3-4)初始化策略网络滞后时间d=1,初始化采样时刻k=0,每次迭代的最大步数为t,初始化飞行器的状态变量s0记为:
并令sk=s0;
(3-5)利用步骤(3-2)的当前策略网络
(3-6)将步骤(3-4)至(3-5)得到的状态变量sk+1和一步损失函数ck+1,记为一个经验样本ek=(sk,uk,ck+1,sk+1),并将该经验样本存入步骤(3-2)的经验集r中;
(3-7)统计经验集中的经验样本个数nr,并对nr进行判定:若nr≤n,则转到步骤(3-12);若nr>n,则进入步骤(3-8);
(3-8)从经验集r中随机抽取n个经验样本e1,e2,…,en;
(3-9)按照以下公式分别更新步骤(3-2)的第一评价网络权重和第二评价网络权重:
δi=yi-q(si,ui|ωj),i=1,2,3…,n
其中,j=1,2,并将更新后的第一评价网络权重和第二评价网络权重记为新的当前评价网络;
(3-10)使策略网络滞后时间d=d+1,对d进行判定,若d相对d的余数为零,则进入步骤(3-11),若d相对d的余数不为零,则进入步骤(3-13);
(3-11)采用确定性策略梯度方法,对步骤(3-2)的策略网络权重进行更新:
其中,将更新后的策略网络记为新的当前策略网络,进入步骤(3-12);
(3-12)按照以下公式,对步骤(3-2)的第一目标评价网络、第二目标评价网络和目标策略网络权重进行更新:
(3-13)使采样时刻k=k+1,对k进行判定:若k<t,则返回步骤(3-5),若k≥t,进入步骤(3-14);
(3-14)使迭代次数m=m+1,对m进行判定:若m<m,则返回步骤(3-4),若m≥m,则将当前策略网络
本发明提出的基于深度强化学习的飞行器航线跟踪方法,,其特点和优点是:
1、本发明方法在飞行器模型未知的条件下实现对飞行器的航线控制。确定性策略梯度方法通过飞行器飞行轨迹的采样数据,通过自主学习出使得控制目标达到最优的评价网络与策略网络,该过程中不需要飞行器模型的任何假设与参数。
2、本发明方法将确定性策略梯度理论与人工神经网络相结合,设计了三个神经网络——评价网络1、评价网络2和策略网络。评价网络用于拟合强化学习中的值函数(q函数),策略网络在给定状态生成相应的控制策略。由于神经网络强大的表达能力,因此在飞行器模型比较复杂的情况也可以学习出理想的控制策略。同时双评价网络的设计可以很好的解决值函数过估计的问题。
3、本发明方法的可拓展性强,并不只适用于飞行器航迹跟踪控制问题,只需要重新设定状态变量、控制输入以及损失函数,调节神经网络的结构和参数即可拓展于飞行器控制的其他更加复杂的问题。
附图说明
图1为本发明方法涉及的飞行器六自由度示意图。
图2为本发明方法中的策略网络示意图。
图3为本发明方法中评价网络示意图。
图4为本发明方法中深度强化学习架构示意图。
图5为本发明方法的一个实施例中jsbsim和flightgear仿真平台示意图。
图6为本发明方法的实施例中累积奖励函数变化示意图。
图7为本发明实施例中飞行器高度误差示意图。
图8为本发明实施例中飞行器航向误差示意图。
图9为本发明实施例中飞行器侧滑角示意图。
图10为本发明实施例中飞行器横滚角示意图。
具体实施方式
本发明提出的基于深度强化学习的飞行器航线跟踪方法,包括以下步骤:
(1)构建一个用于飞行器航线跟踪的马尔科夫模型,包括以下步骤:
飞行器航线跟踪的马尔科夫模型包括四个组成部分:状态变量,控制变量,转移模型,一步损失函数;
(1-1)确定马尔科夫模型的状态变量:
如图1所示,用(x,y,z)表示飞行器在惯性坐标系下的水平面坐标x,y和高度z,用
设飞行器的目标高度在惯性坐标系下为zr,则飞行器所处高度z与目标高度之间的相对高度为z-zr,设飞行器目标航向在惯性坐标系下为
则飞行器的马尔科夫模型的状态变量s为:
其中,β表示飞行器的侧滑角,侧滑角是飞行器飞行速度方向与其纵向对称平面之间的夹角,上标t表示矩阵转置;
(1-2)确定马尔科夫模型的控制变量:
设定飞行器副翼的舵量τ1、飞行器升降舵的舵量τ2和飞行器方向舵的舵量τ3,得到马尔科夫模型的控制变量u,u=[τ1,τ2,τ3]t;
(1-3)确定马尔科夫模型的转移模型,表达式为:sk+1=f(sk,uk),
其中,s为飞行器状态变量,k为飞行器状态采样时刻,该转移模型为一个时间离散的黑箱函数,表示在当前采样时刻k的状态变量sk和控制变量uk与下一采样时刻的状态变量sk+1的关系;
(1-4)确定马尔科夫模型的一步损失函数,表达式为:;
其中,k表示采样时刻,ρ1、ρ2、ρ3、ρ4、λ1、λ2、λ3分别表示相应各项的权重系数,上述权重系数均大于零,其中的
(1-5)确定飞行器航线跟踪的目标函数如下:目标函数是使得飞行器到达并维持在指定的高度和航向,即期望累计损失函数的值为最小化:
满足:sk+1=f(sk,uk)k=1,…,∞
其中,uk≥1表示步骤(1-2)的控制变量u的输入序列{u1,u2,…},γ表示对未来损失的权衰减因子,0<γ<1,
(2)构建基于深度强化学习的评价网络与策略网络,包括以下步骤:
(2-1)构建一个策略网络,如图2所示:
策略网络的输入为状态变量s,策略网络的输出为控制变量u,策略网络表达式如下:
u=μ(s)
本实施例中策略网络的结构如图2所示,隐含层的结点数根均为100,隐含层同样采用relu激活函数;输出层包含三个结点,分别输出三个控制变量τ1,τ2,τ3,输出层激活函数采用tanh函数,将输出的控制变量限制在[-1,1]区间,再根据飞行器的控制变量限制范围进行放缩。
(2-2)构建一个评价网络:
评价网络的输入为状态变量s和控制变量u,评价网络的输出为累计损失量qμ(s,u),评价网络的表达式如下:
其中,t为求和变量,
该评价函数表示在给定状态变量与控制变量时,按照策略网络μ进行控制得到的一步损失函数的累积值。
本实施例中评价网络的结构如图3所示,其中隐含层结点数均为100,隐含层采用relu(rectifiedlinearunit)激活函数。输出层的输出即为期望的q值,输出层激活函数采用线性激活函数。另外值得注意的是,控制变量在评价网络的第二层隐含层输入到网络中。
(3)采用确定性策略梯度方法,对飞行器轨迹跟踪进行控制,具体步骤如下:
(3-1)设定最大迭代次数为m,本发明的一个实施例中,m=1000,每次迭代的最大实验步数为t,本发明的一个实施例中为t=600,设定一个训练集,训练集大小为n,本发明的一个实施例中n=64,设定目标神经网络的追踪比率为τ,本发明的一个实施例中τ=0.9,设定策略网络滞后时间为d,本发明的一个实施例中,d=2,设定评价网络与策略网络的学习率分别为αω和
(3-2)设定步骤(2-1)策略网络μ的权重参数为
根据当前策略网络的权重
建立一个空的经验集r,并设置集合r大小为100万;从经验集r中抽取一个训练集,训练集的大小为n;
(3-3)迭代开始,令初始化时,迭代次数m为1;
(3-4)初始化策略网络滞后时间d=1,初始化采样时刻k=0,每次迭代的最大步数为t,本发明的一个实施例中为t=600,初始化飞行器的状态变量s0记为:
并令sk=s0;
(3-5)利用步骤(3-2)的当前策略网络
(3-6)将步骤(3-4)至(3-5)得到的状态变量sk+1和一步损失函数ck+1,记为一个经验样本ek=(sk,uk,ck+1,sk+1),并将该经验样本存入步骤(3-2)的经验集r中;
(3-7)统计经验集中的经验样本个数nr,并对nr进行判定:若nr≤n,则转到步骤(3-12);若nr>n,则进入步骤(3-8);
(3-8)从经验集r中随机抽取n个经验样本e1,e2,…,en;
(3-9)按照以下公式分别更新步骤(3-2)的第一评价网络权重和第二评价网络权重:
δi=yi-q(si,ui|ωj),i=1,2,3…,n
其中,j=1,2,并将更新后的第一评价网络权重和第二评价网络权重记为新的当前评价网络;
(3-10)使策略网络滞后时间d=d+1,对d进行判定,若d相对d的余数为零,则进入步骤(3-11),若d相对d的余数不为零,则进入步骤(3-13);
(3-11)采用确定性策略梯度方法,对步骤(3-2)的策略网络权重进行更新:
其中,将更新后的策略网络记为新的当前策略网络,进入步骤(3-12);
(3-12)按照以下公式,对步骤(3-2)的第一目标评价网络、第二目标评价网络和目标策略网络权重进行更新:
(3-13)使采样时刻k=k+1,对k进行判定:若k<t,则返回步骤(3-5),若k≥t,进入步骤(3-14);
(3-14)使迭代次数m=m+1,对m进行判定:若m<m,则返回步骤(3-4),若m≥m,则将当前策略网络
本发明提出的一种深度强化学习的飞行器航迹跟踪控制方法,下面结合附图和具体实施例进一步详细说明。
本发明提出一种基于深度强化学习的飞行器航线跟踪控制方法,首先构建飞行器轨迹跟踪控制的马尔科夫决策过程模型,分别得到飞行器航线跟踪控制的状态变量,控制变量,转移模型,一步损失函数的表达式;分别建立策略网络和评价网络;通过强化学习,使得飞行器在航线跟踪控制训练中每前进一步不断更新策略网络和评价网络,直至收敛;得到用于航线跟踪控制的最终策略网络。
图4显示了本发明提出的基于深度强化学习的飞行器航迹跟踪控制方法的框架架构。本发明用固定目标函数的方式,将复杂的优化问题简化为回归问题,增加神经网络收敛的稳定性。在训练中,当前策略网络趋近于目标策略网络,当前评价网络趋近于目标评价网络。训练结束后,只需要当前策略网络就可以控制飞行器实现期望的轨迹跟踪控制任务。
本发明方法所采用的飞行仿真环境为开源平台,可通过网址/dongf17/gym-jsbsim获取仿真平台,本发明方法本领域技术人员通过编程即可实现。
下面结合一个具体实施例对本发明进一步说明如下。
仿真实验
(1)仿真设置
本发明提出的方法在仿真平台jsbsim平台上进行了训练和验证,有关仿真平台的相关说明请参照网址/dongf17/gym-jsbsim。本实施例中采用的飞行器型号为f15。
(2)仿真结果
(1)仿真设置
本发明提出的方法在仿真平台jsbsim平台上进行了训练和验证,有关仿真平台的相关说明请参照网址/dongf17/gym-jsbsim。本实施例中采用的飞行器型号为cessna172p。令最大迭代次数为m=1000,每次迭代的最大实验步数t=600,经验回放抽取的训练集大小n=64,目标神经网络的追踪比率τ=0.9,令策略网络滞后时间为d=2,评价网络与策略网络的学习率分别为αω=0.01和
(2)仿真结果
图6显示的是1000次训练中,奖励函数的变化。起始阶段,飞行器获得的累计奖励很小,随着训练次数的增加,累计奖励逐渐变大,最后趋于稳定。
图7-图10显示的是测试结果,即用训练产生的策略网络控制飞行器执行航迹保持任务。图7显示了飞行器的高度误差,图8显示了航向误差,图9和图10分别显示了飞行器的侧滑角和横滚角。在本次飞行中,飞行器的期望高度为1524米,飞行器初始航向误差大于40度。进入稳态后,高度误差小于0.75米,航向误差小于0.1度,侧滑角小于1.3度,横滚角小于0.4度。从图7-图10的结果可以看出,飞行器状态最终趋于稳定,证明本发明提出的方法可以不依赖飞行器模型就产生理想的控制策略。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
技术特征:
1.一种基于深度强化学习的飞行器航线跟踪方法,其特征在于,包括以下步骤:
(1)构建一个用于飞行器航线跟踪的马尔科夫模型,包括以下步骤:
(1-1)确定马尔科夫模型的状态变量:
用(x,y,z)表示飞行器在惯性坐标系下的水平面坐标x,y和高度z,用
设飞行器的目标高度在惯性坐标系下为zr,则飞行器所处高度z与目标高度之间的相对高度为z-zr,设飞行器目标航向在惯性坐标系下为
则飞行器的马尔科夫模型的状态变量s为:
其中,β表示飞行器的侧滑角,侧滑角是飞行器飞行速度方向与其纵向对称平面之间的夹角,上标t表示矩阵转置;
(1-2)确定马尔科夫模型的控制变量:
设定飞行器副翼的舵量τ1、飞行器升降舵的舵量τ2和飞行器方向舵的舵量τ3,得到马尔科夫模型的控制变量u,u=[τ1,τ2,τ3]t;
(1-3)确定马尔科夫模型的转移模型,表达式为:sk+1=f(sk,uk),
其中,s为飞行器状态变量,k为飞行器状态采样时刻,该转移模型为一个时间离散的黑箱函数,表示在当前采样时刻k的状态变量sk和控制变量uk与下一采样时刻的状态变量sk+1的关系;
(1-4)确定马尔科夫模型的一步损失函数,表达式为:;
其中,k表示采样时刻,ρ1、ρ2、ρ3、ρ4、λ1、λ2、λ3分别表示相应各项的权重系数,上述权重系数均大于零,其中的
(1-5)确定飞行器航线跟踪的目标函数如下:
满足:sk+1=f(sk,uk)k=1,...,∞
其中,uk≥1表示步骤(1-2)的控制变量u的输入序列{u1,u2,...},γ表示对未来损失的权衰减因子,0<γ<1,
(2)构建基于深度强化学习的评价网络与策略网络,包括以下步骤:
(2-1)构建一个策略网络:
策略网络的输入为状态变量s,策略网络的输出为控制变量u,策略网络表达式如下:
u=μ(s)
(2-2)构建一个评价网络:
评价网络的输入为状态变量s和控制变量u,评价网络的输出为累计损失量qμ(s,u),评价网络的表达式如下:
其中,t为求和变量,
(3)采用确定性策略梯度方法,对飞行器轨迹跟踪进行控制,具体步骤如下:
(3-1)设定最大迭代次数为m,每次迭代的最大实验步数为t,设定一个训练集,训练集大小为n,设定目标神经网络的追踪比率为τ,设定策略网络滞后时间为d,设定评价网络与策略网络的学习率分别为αω和
(3-2)设定步骤(2-1)策略网络μ的权重参数为
根据当前策略网络的权重
建立一个空的经验集r,并设置集合r大小为100万;从经验集r中抽取一个训练集,训练集的大小为n;
(3-3)迭代开始,令初始化时,迭代次数m为1;
(3-4)初始化策略网络滞后时间d=1,初始化采样时刻k=0,每次迭代的最大步数为t,初始化飞行器的状态变量s0记为:
并令sk=s0;
(3-5)利用步骤(3-2)的当前策略网络
(3-6)将步骤(3-4)至(3-5)得到的状态变量sk+1和一步损失函数ck+1,记为一个经验样本ek=(sk,uk,ck+1,sk+1),并将该经验样本存入步骤(3-2)的经验集r中;
(3-7)统计经验集中的经验样本个数nr,并对nr进行判定:若nr≤n,则转到步骤(3-12);若nr>n,则进入步骤(3-8);
(3-8)从经验集r中随机抽取n个经验样本e1,e2,...,en;
(3-9)按照以下公式分别更新步骤(3-2)的第一评价网络权重和第二评价网络权重:
δi=yi-q(si,ui|ωj),i=1,2,3...,n
其中,j=1,2,并将更新后的第一评价网络权重和第二评价网络权重记为新的当前评价网络;
(3-10)使策略网络滞后时间d=d+1,对d进行判定,若d相对d的余数为零,则进入步骤(3-11),若d相对d的余数不为零,则进入步骤(3-13);
(3-11)采用确定性策略梯度方法,对步骤(3-2)的策略网络权重进行更新:
其中,将更新后的策略网络记为新的当前策略网络,进入步骤(3-12);
(3-12)按照以下公式,对步骤(3-2)的第一目标评价网络、第二目标评价网络和目标策略网络权重进行更新:
(3-13)使采样时刻k=k+1,对k进行判定:若k<t,则返回步骤(3-5),若k≥t,进入步骤(3-14);
(3-14)使迭代次数m=m+1,对m进行判定:若m<m,则返回步骤(3-4),若m≥m,则将当前策略网络
技术总结
本发明涉及一种基于深度强化学习的飞行器航线跟踪方法,属于机器人智能控制领域。本方法首先构建飞行器轨迹跟踪控制的马尔科夫决策过程模型,分别得到飞行器航线跟踪控制的状态变量,控制变量,转移模型,一步损失函数的表达式;分别建立策略网络和评价网络;通过强化学习,使得飞行器在航线跟踪控制训练中每前进一步不断更新策略网络和评价网络,直至收敛;得到用于航线跟踪控制的最终策略网络。本发明方法的可拓展性强,并不只适用于飞行器航迹跟踪控制问题,只需要重新设定状态变量、控制输入以及损失函数,调节神经网络的结构和参数即可拓展于飞行器控制的其他更加复杂的问题。
技术研发人员:游科友;董斐;宋士吉
受保护的技术使用者:清华大学
技术研发日:.11.12
技术公布日:.02.18
如果觉得《一种基于深度强化学习的飞行器航线跟踪方法与流程》对你有帮助,请点赞、收藏,并留下你的观点哦!