行星软着陆GPS有模型强化学习制导方法*
2022-01-05张阳康泮斌峰
张阳康,孙 晨,泮斌峰
(1.西北工业大学 航天学院·西安·710072;2. 航天飞行动力学技术国家级重点实验室·西安·710072)
0 引 言
行星表面软着陆是人类登陆外行星、探索太阳系的关键技术之一。过去十年间,众多国家和地区针对行星表面软着陆提出了具体可行的研究计划和技术方案[1-2]。行星表面软着陆从设想到实现、从控制到自主、从无人到有人的逐步发展的过程,对着陆过程的精确度、自主性和鲁棒性均有严格的任务要求。
动力下降制导是解决行星表面软着陆问题的重要技术之一[3]。动力下降是指着陆器在下降过程中通过变化的推力实现控制,保证最终能到达目标着陆点。经典的阿波罗制导律及其变种被成功地应用于月面和火星着陆的动力下降阶段[4-5],但其因为精确度和燃料消耗上的缺点还在不断地改善。除此之外,Lu[6]将用于求解两点边值问题的庞特里亚金最小值原理(Pontryagin Minimum Principle, PMP)优化方法应用在了软着陆问题当中,发展了三维燃料最优的制导律。Lu还提出了一种通用的动力下降方法,该方法提供一种间接方法的鲁棒形式,具有简便灵活的优点[7]。应用在动力下降段的另一种制导方式是基于轨迹优化的跟踪制导。该方法将燃料最优问题转化成了可确保收敛存在全局最优解的凸优化问题[8-9],也有着广泛的应用。
除了上述单一求解的方法,众多学者将人工智能的一些方法应用到了行星软着陆问题中,以克服一般求解方法自主性差、容错率低的缺点。Cheng[10]在结合深度神经网络近似行星不规则重力场的基础上,利用多个深度神经网络发展了一种实时优化控制制导律。Furfaro[11]则将强化学习算法当中经典的Q学习与零误差损失-零速度损失制导律(Zero-Effort-Miss/Zero-Effort-Velocity, ZEM/ZEV)相结合,发展出了基于开环燃料最优轨迹点的ZEM/ZEV反馈制导律,由Q学习算法选择出最优的轨迹点,由ZEM/ZEV制导律制导着陆器进行轨迹点间的转移,以实现在着陆初始点发生变动时,着陆器仍能以较高的精度着陆到指定位置。着陆问题的高维度、连续性决定了离散的Q学习较难获得扩展应用,因此Furfaro[12]又提出了结合深度强化学习与ZEM/ZEV的自适应广义制导律,大大扩展了ZEM/ZEV反馈制导律的应用范围。与此不同,也有一些学者尝试将在强化学习领域表现较好的算法直接应用在着陆问题中,如Chen[13]将近端策略优化(Proximal Policy Optimization, PPO)算法应用在了垂直起降的可重复使用火箭模型上,也取得了较好的效果。
目前,强化学习算法在制导领域中的应用主要可分为两个思路,一种思路是将着陆问题离散化、抽象化为强化学习算法适合应用的问题,例如将整个制导过程分阶段离散化[14-15]、将制导过程中的部分控制量分离出来并利用强化学习进行求解[16];另外一种思路是直接将强化学习领域的优质算法套用在着陆制导问题上,该思路也能取得不错的结果[17]。但着陆制导本身是个连续、非线性的复杂问题,离散化势必会使问题过于简化,导致结果的精度较低,造成现实不可行。同时,上述两种思路都保留了一些强化学习算法的固有缺陷,即数据利用率低、需要与环境进行大量交互、在现实中难以应用等。
针对以上问题,本文提出了基于引导策略搜索(Guided Policy Search, GPS)算法[18]的有模型强化学习着陆制导方法。该方法具有容错性强、数据利用率高、计算成本低等优点。本文第1部分建立了行星软着陆问题的动力学模型,第2部分介绍了基于GPS有模型强化学习的制导方法,第3部分给出了实验仿真结果,并进行了分析总结。
1 动力学模型及坐标系定义
本文以行星表面软着陆为例,为了简化实验,便于验证算法,用3自由度二维仿真模型替代着陆器动力学模型,并作出如下假定:
(1)多数行星表面大气稀薄,气动摩擦力、空气阻力、气动力等可忽略不计;
(2)在动力学下降段,着陆器距火星表面的距离为数千米,相对速度在百米/秒以内,因此可假定重力加速度为常值,重力加速度保持不变;
(3)过程中,着陆器消耗的燃料质量远远小于着陆器本身的质量;
(4)忽略着陆过程中产生的摄动加速度,以及由于建模不精确而产生的误差。
在上述假设前提下,整个着陆过程满足的动力学方程为[19]
(1)
其中,r和v表示着陆的位置和速度向量;ac表示器载发动力产生的加速度向量;T表示推力矢量;m表示着陆器质量;Isp表示推进系统的比冲;p是由摄动和未建模的动力学而产生的加速度,此处可忽略不计;g是行星表面的重力加速度,在着陆任务中可视为常值。
图1为行星表面无旋转的固连坐标系,这里将其作为参考坐标系。该坐标系的原点位于目标着陆点,从着陆点到目标点的连线为x轴横程水平方向,从行星表面竖直向上为y轴纵程方向。
图1 行星表面二维参考坐标系示意图
问题可描述为在着陆器满足约束条件的前提下,一方面要求着陆器达到目标着陆点时位置和速度误差尽可能小,另一方面在整个过程中燃料消耗为最优或次优,性能指标为
(2)
该性能指标表示终端时刻tF的燃料剩余最多,也即着陆过程的燃料消耗最少。其中,m(tF) 表示着陆器终端时刻的剩余质量;T表示着陆过程的推力。一方面,T需要满足式(2)的动力学约束;另一方面,T还要满足推力过程约束和终端约束。
(3)
(4)
m(t0)=m0
(5)
其中,Tmin、Tmax表示推力的最小值和最大值;式(4)表示初始时刻t0和终端时刻tF的位置和速度约束;式(5)表示初始质量约束。
2 基于GPS的着陆制导方法
2.1 GPS有模型强化学习方法
引导策略搜索算法[20]在分类上属于策略搜索算法的一种,其同时也是基于模型的强化学习方法的一种。与无模型强化学习方法直接与环境交互产生数据不同,引导策略搜索算法利用策略网络与控制器交互产生的数据,以及逐渐优化迭代的控制器产生的数据进行学习。图2展示了无模型强化学习、有模型强化学习以及引导策略搜索算法之间的原理图[21]。
(a)无模型强化学习
引导策略搜索算法可以分为控制相和监督相两部分。在控制相部分中,利用与环境交互的数据建立模型,可以根据模型进行推算,因此样本的利用效率高,收敛速度快。在训练过程中,最优控制与监督学习的结合使得训练效果更好。同时,由于该算法最终得到的是一个优化后的策略,因此在测试时无需重新进行训练,求解速度较快[17]。过程中的状态转移方程可表示为
(6)
其中,xt+1表示在t+1时刻的状态;xt表示在t时刻的状态;ut表示在t时刻的动作;函数f为状态转移函数。即时奖励函数记为c(xt,ut),表示在每一个状态下以及采取一个动作之后都会获得一个奖励。引导策略搜索算法最终获得的是代表策略的一组策略参数,也就是在t时刻下从状态到动作的映射函数关系,可记为ut=πθ(xt)。一组完整的状态和动作集记为τ=x1,u1,x2,u2,…,xT,uT。
引导策略搜索算法的原理流程图如图3所示。首先,通过示教或者随机获取数据集D=τi,τi=x1i,u1i,x2i,u2i,…,xTi,uTi,然后再利用该数据集拟合出动力学模型。在整个算法中,最主要的两部分是最优控制求解和训练策略更新。
图3 引导策略搜索算法原理流程图
引导策略算法的求解思路,可以表示为在轨迹优化问题的基础上,加上状态转移过程和策略网络的约束条件,结合差分动态规划[22]以及随机梯度下降等方法求解最优策略的过程[23]
(7)
其中,式(7)第一行表示轨迹优化问题的性能指标,即在整个时域范围内,最小化策略τ的总代价,同时要满足后两行的策略约束和状态转移过程约束。其中,π表示选取动作值的神经网络;θ表示其参数;xt-1表示t-1时刻的状态值;ut-1表示t-1时刻的动作值;f表示状态转移方程;xt表示通过f求得的下一时刻t的状态值。
2.2 着陆制导方法设计
本文提出的着陆制导方法是在第1部分提出的动力学模型的基础上,利用引导策略搜索基本原理实现的。伪代码流程如表1所示[22]。
表1 GPS着陆制导律设计
图4 GPS算法训练和测试流程图
针对该着陆问题,为方便处理终端和约束条件,将状态表示为包含位置(x,y)、速度(vx,vy)和质量mass的一个五维的向量,分别表示为着陆器的横纵坐标、水平垂直速度以及质量
state=[x,y,vx,vy,mass]
(8)
将动作表示为二维的向量,为了方便处理推力大小的约束,将该二维向量处理为包含两个角度的向量。第一维的角度用来决定推力的大小,第二维的角度用来表示推力与速度方向的夹角,用来决定推力方向的公式如式(9)所示
action=[Theta_1,Theta_2]
(9)
产生的推力和加速度分量可以通过推力最大值、最小值以及质量表示为
(10)
(11)
奖励函数由过程奖励函数和终端奖励函数两部分组成
r(xt,ut)=lf(x)+l(x)+l(u)
(12)
l(x)=δ1(z(x,px)+z(y,py))+δ2(z(vx,pvx)+z(vy,pvy))
(13)
(14)
lf(x)=z(x,px)+z(y,py)+
z(vx,pvx)+z(vy,pvy)
(15)
奖励函数中各个奖励项存在重要程度和难易程度的差别,需要考虑添加权重系数和补偿项进行平衡。式中各权值及补偿系数取值分别为δ1=0.0001,δ2=0.0001,ω1=0.01,ω2=0.0001,px=py=0.01,pvx=pvy=1。由于速度项比位置项更难满足,因此速度项对应的p值更大。
为验证算法的有效性,选取火星进行行星软着陆制导试验仿真验证。其中,动力学及环境模型的各个参数设置如表2所示。
表2 着陆制导问题中的参数设置
3 仿真试验及结果分析
3.1 iLQR仿真结果
结合动力学方程以及奖励函数,利用上述原理在MATLAB平台下进行iLQR仿真求解。取时域长度为T=1100,步长h=0.03,可得到各状态量随时域步数的变化曲线,结果如图5所示。
图5 iLQR求解着陆制导问题状态量变化曲线
iLQR是一种经典的差分动态规划方法,属于非线性最小二乘优化的高斯-牛顿法[21]。由于iLQR可以考虑着陆过程中的过程奖励和终端奖励,其可以很方便地与其他方法进行结合。该方法是时变的,仅仅在单一轨迹附近有效。针对着陆制导问题,也有很多不同的方法可以得到比较好的结果。图6是同伦方法[24]、ZEM/ZEV反馈算法以及iLQR方法的结果之间的对比。
图6 不同方法求解着陆制导问题的结果对比
图6对几种不同方法求解着陆制导问题的结果进行了对比。ZEM/ZEV是指用传统ZEM/ZEV反馈制导律[25]获得的结果;ZEM/ZEV_based是指针对传统ZEM/ZEV方法可能存在的着陆器触及地面的缺点,增加加速度基准项改善后得到的结果[26];Fuel_Optimum是指利用同伦法求得的燃料最优解。从对比图图6可以明显地看出:
(1)单从各个制导律的着陆轨迹来看,利用iLQR获得的结果与利用同伦方法获得的结果基本相似,具有较优的弹道曲线和较好的全局特性。
(2)由于iLQR算法通过奖励函数进行了更新和改善,其根据任务需求可以比较方便地添加过程约束和终端约束,从而能够更好地与智能算法进行结合,具有更广的适用性和更高的可扩展性。
因此,本文采用iLQR方法作为引导策略搜索算法中的优化控制器。由于iLQR方法在求解过程中会考虑系统模型,这也就决定了引导策略搜索算法是一种基于模型的强化学习方法。
3.2 GPS仿真结果
本文的目的是将引导策略搜索算法应用在火星表面着陆问题中,计划实现在实际着陆过程中,当出现初始着陆位置扰动时,着陆器仍能以一定的精度软着陆在指定位置。在离线训练部分,优化控制器部分采用iLQR算法,策略更新部分利用深度神经网络。其中,在更新求解策略参数θ时,采用了四层神经网络:一个输入层、两个隐藏层,以及一个输出层。将五维状态值作为输入,二维动作值作为输出。中间隐藏层的神经元个数均为64,激活函数均采用Tanh函数,利用随机梯度下降算法进行更新。Tanh是神经网络常用的激活函数,可将输入转化到良好的输出范围内,其数学表达式如式(16)所示。在回合更新求解权值乘子λ的过程中,将λ值作为权重值进行处理,采用Adam优化求解器。
(16)
首先,在引导策略搜索算法中,训练过程的初始位置为x0=[-500m,1500m,75m/s,-75m/s,1905kg]。取整体循环次数K=5,时域长度T=1100。策略参数更新循环次数loop=10000,回合单次权重值更新循环次数loop=4。在这里,令循环次数较小的原因是防止权重值更新过快,导致没有学习到原始轨迹附近的区域,进而可能造成最终得到的策略网络结果发散而不可信。在测试过程中,假设着陆器初始水平位置出现随机变动,本文以初始位置横坐标满足均值mu=-500、方差sigma=5的正态分布为前提,如图7所示,进行100次重复试验,得到在不同初始位置的着陆轨迹结果如图8所示。每次循环的结束包括以下三种情况:
图7 依据均值mu=-500、方差sigma=5的正态分布随机选取100个初始着陆点的横坐标分布图
图8 利用引导策略搜索算法实现的正态分布下不同初始位置下的着陆轨迹
(1) 在给定时域长度数内,仍未满足精度要求,则该次循环结束;
(2) 着陆器纵坐标小于0,即表示现实中着陆器触及行星表面,则该次循环结束;
(3) 着陆器位置向量的二范数小于5,速度向量的二范数小于10,即表示成功着陆,则该次循环结束。
可以看出,在初始着陆位置随机变化时,利用引导策略搜索算法训练的策略神经网络,可以很好地实现快速着陆。所有的着陆轨迹均满足约束条件,最终的着陆点也符合理想着陆的精度要求。同时,整个学习过程只需要数次循环即可实现。相比之下,无模型强化学习方法近端策略优化需要20万次循环、1500万步来进行学习[13],行动者-评论家(actor-critic)方法需要上千次训练[12],引导策略搜索算法具有明显的时间和代价优势。另外,选取初始位置横坐标为-505m,进行10次重复试验。图9展示的是某次指导着陆器进行着陆时的状态量变化曲线。对10次重复试验的结果取平均值,得到的各个方向的着陆精度如表3所示。
表3 初始位置为-505m时,利用引导策略搜索算法指导着陆结果误差
图9 利用引导策略搜索算法实现的在初始位置变动时的着陆过程状态变化曲线
为了测试算法的鲁棒性,在上述初始状态值的基础上,在每一维状态值上添加均值为0、方差为0.3的高斯噪声干扰,重复试验100次,将着陆误差分布绘制在图10当中。从图10可以看出,各个分量的最终着陆误差都很好地保持在了一定的误差范围内。除受循环退出条件影响明显的着陆点横坐标受噪声干扰而波动范围略大外,其他状态量受初始噪声扰动的影响很小,这证明了该制导方法具有较好的鲁棒性。
图10 初始状态值在高斯噪声影响下的着陆误差分布
结合上述仿真试验,基于引导策略搜索算法,提出了适应初始位置变动、具有更好鲁棒性的着陆制导律。但与此同时,最终的着陆精度也存在一定损失。这里在区间[-520m,-490m]内每隔2m选取一个初始位置,作为初始横坐标位置,以均匀分布来取样,共有16种初始位置。考虑对每种初始位置进行10次重复试验,将着陆结果的误差反映在图11所示的误差图中。
图11表示的是在不同的初始着陆位置下,着陆终点的位置和速度误差分布。横坐标轴代表的是着陆初始点的水平位置,纵坐标轴代表的是着陆终端的位置和各个速度状态量的终端误差值。图中的点代表10次重复试验的均值,线的底端和顶端分别代表多次重复试验的最小值和最大值,用来反映结果的方差。从图11中可以看出,较好的着陆精度仅仅在一定的初始着陆位置区间内可取得。初始横坐标在区间[-508m,-500m]范围内变化时,着陆终端的位置和速度能够较好地满足精度要求;而偏离这个区间范围时,则会出现一定的精度损失。
图11 利用引导策略搜索算法实现的在不同初始位置下的着陆误差变化曲线
4 结 论
本文通过对传统行星表面软着陆制导算法进行改进,结合有模型强化学习方法,发展了基于引导策略搜索算法的着陆制导策略,解决了着陆器在初始位置扰动情况下的自主智能着陆问题,无需重规划即可获取较优的着陆弹道,实现了初始着陆位置小范围变动情况下的快速着陆。通过行星表面软着陆的仿真验证,可以得到如下两点结论:
(1)结合强化学习方法的着陆制导策略,面对扰动时无需重规划,通过策略可直接获取着陆轨迹,具有更高的容错率和更强的鲁棒性,整个着陆制导过程更加自主,更加智能;
(2)相比于无模型方法,有模型强化学习方法具有更高的数据利用率以及更小的时间代价,对于环境复杂多变、环境交互代价大的行星表面软着陆等问题具有更大的应用价值。