APP下载

强化学习控制方法及在类火箭飞行器上的应用

2023-06-21柳嘉润贾晨辉骆无意巩庆海冯明涛

宇航学报 2023年5期
关键词:模拟器飞行器控制器

黄 旭,柳嘉润,贾晨辉,骆无意,巩庆海,冯明涛

(1. 北京航天自动控制研究所,北京 100854;2. 宇航智能控制技术国家级重点实验室,北京 100854)

0 引 言

智能控制作为控制理论的第3个里程碑以及人工智能与工业界融合发展的抓手,需具备学习能力和泛化能力等特征[1]。其中,强化学习凭借其自学习、强决策能力,以及结合深度学习后的端到端感知学习决策能力,在包括航空航天在内的许多领域得到了研究与应用。当前,各类飞行器任务多样化及复杂度增加带来了新的控制需求[2-4],许多学者基于强化学习方法在飞行器控制技术智能化的各个环节[1]开展研究,如智能感知[5]、智能控制律[6-7]、智能协同与博弈[8-9]等。本文主要关注智能控制律环节,研究智能方法在飞行器姿态控制中的应用。

强化学习方法在实物飞行器上实现的案例主要面向小型无人飞行器:文献[10]利用人类飞行员控制直升机的飞行数据学习直升机模型,并离线训练强化学习控制器完成了一系列特技飞行任务;文献[11]基于简化的四旋翼飞行器模型离线训练智能体,实现了从位置、角速度等信息到电机推力的端到端控制,并控制飞行器实物以各类姿态抛出后回正;文献[12]基于无模型策略梯度算法训练智能体,实现了实物四旋翼飞行器定点悬停和轨迹跟踪控制;文献[13-14]基于贝叶斯类方法在线求解四旋翼飞行器的飞行安全边界,通过切换控制律保护在线强化学习过程。

由于飞控计算机算力、安全可靠要求等工程约束,强化学习常以离线训练结合在线固化智能体的形式应用于实物飞行器控制中,考虑在线学习则需要设计安全控制器等进行保护。该类研究多关注端到端控制模式,控制效果与飞行模拟器的建模、算法设计以及实际飞行环境等紧密相关。文献[15]通过状态空间预测结合神经网络在线学习实现了小型可回收火箭的动力控制,但方法并非强化学习。

与实物实现相比,基于强化学习的飞行方法研究更为多样。除在线学习控制策略外,还有多种强化学习与现代控制方法结合作为不确定性补偿器、参数调节器、辅助控制器的控制框架,且多关注飞行器高度速度控制或三通道耦合姿态控制等问题。文献[16]提出一种增量模型与强化学习结合的在线学习框架,在无全局先验模型并无智能体预训练的条件下实现了飞行器在线自学习控制;文献[17]基于Actor-Critic架构对高速飞行器的系统总扰动进行估计以设计高度通道的鲁棒反步控制器;文献[18]基于强化学习在线调节变外形高速飞行器自抗扰姿态控制器的增益以增强系统的动态性能;文献[19]针对高速飞行器的高度速度控制问题提出了数据驱动的强化学习辅助控制方法,其中滑模控制器控制飞行器稳定飞行,强化学习控制器则优化跟踪性能。飞行器容错控制问题中,文献[20]针对飞行器执行机构故障设计了基于单Critic网络的最优自适应补偿控制器,实现了对参考输入的一致最终有界跟踪;文献[21]提出了含增量模型的启发式动态规划算法,实现了全状态可观测条件下的导弹故障容错控制。

本文工作属于航天控制“智能+”[22]阶段,开展了强化学习控制从问题设计到实际系统实现的全流程研究:通过与飞行模拟器交互学习完成高效可泛化的控制律设计并进行飞行验证,也为之后的在线学习等研究工作打下基础。不同于其他基于强化学习的实物飞行控制研究,本文针对的类火箭飞行器动力系统不确定性强,姿态动力学特性更接近运载火箭。该基于强化学习训练类火箭飞行器姿态控制智能体并在实际系统上实现的研究工作,在当前认知中属于首次,对工程研制也有一定的参考价值。

1 技术验证飞行器简介

1.1 飞行器参数、结构及控制形式

本文使用的类火箭技术验证飞行器外形如图1所示。飞行器直径为0.35 m,总高度(含起落架)为1.97 m,起飞质量约为35 kg,单次最长飞行时间为5 min。

图1 低空飞行模式下的飞行器结构图Fig.1 Structure of the vehicle in low altitude flight mode

飞行器安装有单台微型涡喷发动机,发动机台架试车最大推力550 N,对应燃料消耗率为1.32 kg/min。由2台伺服电机驱动发动机偏转,分别在正交的两个方向产生摆角以控制飞行器俯仰和偏航通道姿态。4台同型号涵道风扇的推力线位于同一横截面上,控制飞行器滚转通道姿态。

1.2 飞行器数学模型

该飞行器数学模型形式与“孔雀”飞行器[23]基本一致,主要差别为发动机推力矢量模型和涵道风扇力矩模型(“孔雀”飞行器由2台发动机控制位置和姿态)。发动机推力矢量可以表示为:

(1)

式中:[Px,Py,Pz]T为发动机推力矢量在箭体系的分量;P为发动机推力;δ1和δ2为正交方向的两个摆角,分别指向箭体坐标系ZT轴和YT轴的反方向,见图2。

图 2 体坐标系及控制输入定义图(底视)Fig.2 Definition diagram of the body coordinate system and control inputs (bottom view)

理想条件下涵道风扇推力线落在安装截面内,且同一直径线上的一对涵道风扇推力相同,方向相反,建模时仅考虑其产生的力矩。设n=1,2,3,4,分别对应4个涵道风扇的编号,见图2。定义MC,n=[MCx,n,MCy,n,MCz,n]T为涵道风扇n产生的控制力矩,FC,n=[FCx,n,FCy,n,FCz,n]T为涵道风扇n产生的推力,定义cn=[cx,n,cy,n,cz,n]T为箭体顶点指向涵道风扇n安装位置的矢量。以上矢量均在箭体的体坐标系下定义。定义lT=[-Xcg,hTy,hTz]T,其中Xcg为箭体顶点到质心的铅垂距离,hTy和hTz分别为体轴YT和ZT的质心横移。则有:

(2)

1.3 飞行控制系统设备配置

飞行控制系统中主要设备的性能指标如表1所示。箭载综合控制器包括主控模块、GPS模块、数据传输模块和电源功率分配模块等。主控模块以STM32F407为中央处理器,GPS模块采用Novatel公司的GPS OEM板卡。综合控制器还能以10 ms/帧的速率存储飞行数据。惯性测量单元采用PN132型光纤陀螺捷联惯性导航组件。伺服舵机选用2台KST公司的X30-28-180电动舵机。

表1 设备的关键技术参数Table1 Main technical parameters of the equipment

2 智能体训练

2.1 深度确定性策略梯度算法

DDPG是一种无模型深度强化学习算法,即环境的状态转移模型等信息对于智能体未知,且无显式模型学习过程。该类算法通过经验回放等手段,利用环境交互数据提升智能体性能。

DDPG基于Actor-Critic框架,通过将样本存储在记忆回放单元中实现离策略(off-policy)更新,且其4个神经网络学习架构可以有效减小样本相关性从而优化智能体的学习过程。DDPG的具体算法本文不再赘述,可参考文献[24]。其中策略Critic网络以最小化批量采样样本的时间差分误差为目标更新网络参数:

(3)

式中:s表示智能体的观测状态,si+1为环境状态为si时智能体执行动作ai后的下一拍环境状态;μ(s|θμ)表示由策略Actor网络拟合的确定性策略;θμ为其网络参数;Q(s,a|θQ)表示由策略Critic网络拟合的状态行为值函数;θQ为其网络参数;μ′和Q′则表示目标Actor网络和目标Critic网络;r为立即回报,可根据具体场景进行设计;γ表示计算时间差分误差时的折扣因子,本文取0.99;αQ为策略Critic网络的学习率。

策略Actor网络通过确定性策略梯度进行网络参数更新,以αμ表示其学习率:

(4)

两个目标网络的参数惯性更新,以τ表示惯性更新率,取0.001:

(5)

2.2 问题描述及智能体训练

智能体训练总体框架如图3所示,智能体与飞行模拟器进行交互以学习控制策略。飞行模拟器中设置有测量噪声、飞行环境干扰以及传感器和执行机构的动态特性等,且导航与制导算法均已事先设计。

图3 基于DDPG算法的智能体训练总体框架Fig.3 Framework of agent training based on DDPG

首先明确智能体任务:在飞行器的起飞段和悬停段控制发动机摆角及涵道风扇推力,在保证系统稳定的同时使飞行器姿态有效跟踪制导系统输出的程序角指令。

基于以上任务设计相应的马尔科夫决策过程(Markov decision process, MDP)模型,MDP中智能体可观测的环境状态由飞行器最近5帧姿态角偏差以及当前时刻的姿态角速度构成。俯仰通道状态如下(以下只阐述俯仰通道,偏航和滚动通道同理):

(6)

式中:φt和ωz,t分别为当前时刻传感器测得的飞行器俯仰角和俯仰角速度;φcx,t为当前时刻制导律给出的俯仰程序角;et-1为上一控制时刻的俯仰角误差,其他同理。该状态空间形式参考深度强化学习用于雅达利游戏时以多帧图片作为状态输入的思想,基于多拍误差et-k(k=1,2,3,4)引入环境的历史信息。除此之外,通过角速度引入系统动态。算法虽然不直接学习环境的状态转移模型,但模型信息隐式包含在状态行为值函数中[25]。

回报函数中将姿态角误差和控制指令变化量作为惩罚项,从而在减小跟踪误差的同时抑制控制指令的大幅振荡:

rt=-(w1|et|+w2|δt-δt-1|)+r+

(7)

式中:δt为当前时刻俯仰通道的等效控制指令,即δt=at=μ(st)+nt,nt为探索噪声,等效控制指令经过控制分配后得到伺服电机偏转角指令(滚转通道为涵道风扇推力指令);w1和w2分别为误差和控制指令变化量的权重,分别取0.2和0.04;r+为单步一次性奖励,引导智能体在单次实验(episode)中控制飞行器完成整段飞行任务,本文取1.0。

训练时模拟器的主要参数如表2所示。单次实验流程图见图4,飞行器状态超出有效界或达到单次最大实验时间时实验均会结束。单次实验包含上升段和悬停段,不考虑下降段。

表2 飞行模拟器的主要参数Table 2 Main parameters of the flight simulator

图4 单次实验流程图Fig.4 Flow chart of the single episode

训练的超参数取值见表3。智能体采用多层全连接神经网络,Actor网络设定为单隐层轻量化神经网络:6个输入神经元对应6维状态;隐层拥有32个神经元,激活函数为ReLU;1个输出神经元对应该通道的等效控制指令,激活函数为tanh,需添加比例因子以对应实际输出范围。Critic则含有3个隐含层,均拥有64个神经元;输入层为7个神经元对应6维状态及1维动作;输出层为单神经元,对应标量形式的状态行为值。

表3 智能体训练超参数Table 3 Super parameters of agent training

基于单次实验时间20 s与控制周期为10 ms的训练条件以及式(7)形式的回报函数,当智能体能完成整段飞行控制任务时,单次实验的累积回报趋于2 000。训练时累积回报随实验次数的变化曲线如图5所示,从40次左右实验开始,智能体能有效完成每一次的控制任务。相同训练条件下,当r+取0时,单次实验中完成整段飞行任务的累积回报趋于0,其训练的收敛速度不及前者。

图5 累积回报Fig.5 Curves of the cumulative reward

3 数学仿真和半实物仿真分析

将训练好的目标Actor网络作为智能体移植到C语言编写的数学仿真程序中,数学仿真时不再注入探索噪声:

δt=at=μ′(st)

(8)

在额定条件以及设定的上限、下限偏差组合的仿真状态下进行悬停仿真,并与标称PID控制器进行对比。上、下限组合的偏差带及各偏差极性见表4,动态特性从前至后分别为稳态增益、自然频率和阻尼比。额定条件无风,环境及箭体参数均无偏差,考虑所有执行机构和测量元件的动态特性,且惯组测量值受高斯白噪声影响。上下限考虑2 m·s-1的风速以及270°的风向角。

表4 偏差带及偏差极性Table 4 Deviation band and polarity

控制结果对比如图6所示。额定条件下,智能体控制下的系统快速性略优于标称PID控制器。由于数学仿真加入了模拟器中未建立的执行机构间隙和GPS修正等非线性因素,飞行器姿态有小幅波动,智能体控制下的波动幅度显著小于标称PID控制器。偏差状态下智能体的性能优势更加明显,系统超调量及调节时间都显著优于标称PID控制器。由于训练时未在模拟器中设置偏差状态,可知智能体可适应一定范围内的训练中“未经历”的环境变化,体现了方法的鲁棒性。

图6 数学仿真中俯仰角跟踪效果对比Fig.6 Comparison of pitch angle tracking performance in the mathematical simulation

将智能体装订到综合控制器中,搭建半实物仿真平台。由于该飞行器近似为轴对称体,偏航通道也使用与俯仰通道相同网络参数的智能体进行控制。滚转通道中智能体输出分配为4个涵道风扇的PWM指令。额定条件下半实物仿真结果如图7所示。半实物仿真时传输噪声以及采样、零阶保持器等非线性特性得以体现,与数学仿真相比,姿态角曲线呈现出更为明显的小幅波动。俯仰角和偏航角存在0.05°左右的稳态误差,滚转角存在约0.4°的稳态误差,均符合控制要求。综合控制器的CPU并非高性能配置,通过半实物仿真可知轻量化智能体对计算性能的需求不高,满足实时计算要求。

图7 半实物仿真下姿态跟踪结果Fig.7 Attitude tracking performance in the hardware-in-the-loop simulation

4 飞行试验及结果分析

4.1 试验设计

2021年9月—11月,在专用场地进行了低空悬停试验。试验场示意图如图8所示。牵引塔高度为15 m,呈边长为12 m的正方形分布。飞行器顶部软绳与牵引塔杆上方的钢索连接,可通过钢索进行飞行器的吊装和保护。保护限位软绳分别连接飞行器中部及牵引塔杆底部。

图8 飞行试验场示意图Fig.8 Schematic diagram of the flight test site

飞行任务包括起飞准备段、上升及悬停控制段以及匀速下降段。起飞准备段主要进行发动机点火与推力缓慢提升,该段结束时推力接近重力。约20 s时进入上升及悬停控制段,飞行器按设定速度位置曲线上升至指定高度并保持悬停。60 s时进入匀速下降段。试验过程如图9所示,起飞时惯组位置为发射惯性系原点。

图9 飞行试验示意图Fig.9 Schematic diagram of the flight test

外场飞行试验的主要干扰因素包括风、环境温度以及保护绳干扰。地面附近风干扰较为显著,随机性强。环境温度主要影响发动机实际推力。保护绳为非理想软绳,其自身硬度和重量会影响飞行过程,且绳可能与飞行器发生缠绕导致试验失败。另一方面,飞行器本体、控制设备的真实参数或特性与训练和仿真的设定值存在偏差。飞行试验能对智能体的鲁棒性进行考核。

4.2 试验结果分析

共进行了6架次飞行试验,其中2架次因保护绳意外缠绕导致失败,有效架次4次。试验过程中,对飞行器本体进行了一次降低刚度的改造以配合其他技术的验证。有效架次按试验时间分为:1)滚转通道控制;2)俯仰通道控制;3)改造后的俯仰通道控制;4)改造后的俯仰、偏航双通道控制。现取最有代表性的架次2的飞行数据进行分析。

该架次试验飞行器的位置曲线见图10。飞行器在20 s时离地,起飞瞬间由于发动机推力与飞行器重力基本相同,极易受环境(如风)的影响,且箭体存在初始姿态角偏差,位置偏移较大。

图10 飞行器位置变化(架次2)Fig.10 Curves of the vehicle position (Flight 2)

飞行器的姿态角以及控制命令曲线见图11~12。悬停过程中俯仰角跟踪效果良好,飞行状态平稳,0.5°左右的稳态误差表明模型参数与实际飞行器参数存在偏差。下降段飞行器受风和保护软绳干扰明显,且越接近地面越易受到发动机气流反作用影响,俯仰角变化幅度大于悬停段。该架次偏航通道采用标称PID控制器,偏航角振荡较大且跟踪效果不佳。滚转通道中涵道3的控制指令与涵道1一致,涵道4的控制指令与涵道2一致。实际试验过程见图13。

图11 姿态角跟踪结果(架次2)Fig.11 Attitude tracking performance (Flight 2)

图12 控制指令(架次2)Fig.12 Control signals (Flight 2)

图13 飞行试验图(架次2)Fig.13 Diagrams of the flight test (Flight 2)

另外3个架次的关键数据曲线见图14。4架次环境条件各异,智能体在不同飞行条件下均完成了控制任务,亦体现了方法的鲁棒性。

图14 姿态角跟踪结果(架次1,3,4)Fig.14 Attitude tracking performance (Flights 1, 3, 4)

综上,基于DDPG训练的轻量化神经网络形式的智能体能有效进行该类火箭飞行器的姿态控制:

1)由于在模拟器中考虑了传感器噪声以及执行机构动态特性等因素,飞行试验时智能体能有效适应。且本文描述的回报函数形式对控制指令变化量进行了限制,智能体带宽在合理范围内,对噪声不敏感。

2)智能体有较强的泛化能力和鲁棒性,飞行试验中如架次2的悬停段,俯仰角仅存在少量稳态误差,且能适应未学习的下降段姿态控制过程以及不同的飞行工况。

3)智能体对环境干扰的适应性强,外场的风干扰等因素不会造成飞行器失稳。

4)轻量化神经网络前向计算需求的运算资源少,每个控制周期中进行两次低维矩阵与向量乘法运算(输入层到隐层、隐层到输出层),以及隐层的ReLU和输出层的tanh两类激活函数运算。普通性能的飞控计算机足以执行该类计算,易于工程实现。

5 结 论

本文基于DDPG算法训练智能体进行了类火箭飞行器的姿态控制,在仿真环境下对比了其与标称PID控制器的控制效果,并完成了智能体从仿真环境到真实系统的迁移,进行了飞行试验。一系列结果表明该方法有很强的泛化能力和鲁棒性。现给出研究过程中的一些理论上和工程上的总结。

1) 应结合任务场景搭建模拟器。由于该类火箭飞行器系统较为复杂,尽量考虑了完整的飞行器模型,尤其是传感器噪声以及执行机构的动态特性等。否则在数学和半实物仿真中智能体的控制效果不佳,亦无法用于实际飞行。

2) 飞行模拟器中采样周期、控制周期、积分周期等参数需对应工程要求。如设定积分周期为10 ms时虽然能节约大量训练时间且智能体在模拟器中控制性能优秀,但该训练条件不符合工程设计要求,模拟器无法有效模拟实际系统的动态过程,训练出的智能体移植后无法通过数学仿真。

3) MDP模型需设计合理,不考虑控制指令增量限制和网络参数正则化时,控制量极易出现“bang-bang”的情况。引入历史信息能有效改善训练过程,可考虑循环神经网络等进行优化。

4) 强化学习本身“探索”与“利用”的矛盾依旧存在。模拟器任务复杂度提高,训练算法中超参数设置不合理,结合DDPG算法本身的限制均会导致训练收敛慢甚至无法收敛。

最后列出一些值得继续研究和思考的问题。

1) 智能体的可解释性问题。深度强化学习是解决端到端控制的重要思路之一,但这也意味着其针对的系统更加复杂,系统稳定性分析难度更大。当前单纯以智能体进行控制的方法常用蒙特卡洛仿真等手段验证其性能。

2) 机器学习算法应用问题。当前强化学习算法发展迭代迅速,如无模型的D4PG, LSTM-PPO以及基于模型的Dreamer, Plan2Explore等性能更强的算法不断涌现。如何将这些主要针对高维输入的算法思想应用于飞行器控制也需要继续研究。根据当前研究的体会,越复杂的飞行任务训练难度越大,须从先验知识应用、任务简化、MDP设计以及算法优化等角度综合解决。

3) 在线学习问题。由于飞行器的特殊性,智能体不适合“从零开始”在真实飞行环境中学习,最终实现宜采用离线训练与在线学习相结合的形式。即离线训练出泛化能力和鲁棒性更强的飞行器控制用智能体,并利用在线学习技术修正偏差以及适应新的飞行环境和任务。

猜你喜欢

模拟器飞行器控制器
高超声速飞行器
了不起的安检模拟器
盲盒模拟器
划船模拟器
复杂飞行器的容错控制
神秘的飞行器
动态飞行模拟器及其发展概述
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器