【用于无人机控制的深度强化学习】使用深度确定性策略梯度通过连续状态空间中的过渡来控制倾转旋翼无人机(Matlab代码实现)

张开发
2026/5/3 8:38:33 15 分钟阅读
【用于无人机控制的深度强化学习】使用深度确定性策略梯度通过连续状态空间中的过渡来控制倾转旋翼无人机(Matlab代码实现)
欢迎来到本博客❤️❤️博主优势博客内容尽量做到思维缜密逻辑清晰为了方便读者。⛳️座右铭行百里者半于九十。⛳️赠与读者‍做科研涉及到一个深在的思想系统需要科研者逻辑缜密踏实认真但是不能只是努力很多时候借力比努力更重要然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学什么是电的时候不要觉得这些问题搞笑。哲学是科学之母哲学就是追究终极问题寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览免得骤然跌入幽暗的迷宫找不到来时的路它不足为你揭示全部问题的答案但若能让人胸中升起一朵朵疑云也未尝不会酿成晚霞斑斓的别一番景致万一它居然给你带来了一场精神世界的苦雨那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。或许雨过云收神驰的天地更清朗.......1 概述基于深度确定性策略梯度DDPG的倾转旋翼无人机连续状态空间控制研究摘要本项目的目的是通过垂直和水平之间的过渡来控制倾转旋翼无人机使用现代人工智能AI技术的水平飞行。传统控制器是专家需要设计人员对控制器进行编程以在每种可能的情况下工作的系统。这些是有限的当发生不可预见的事件时往往会灾难性地失败。学习系统从第一原则中学习解决方案无需任何先验知识。这使得它们比硬木更坚固编码等价物它们可以更广泛地用于解决我们自己可能无法解决的任务知道如何解决。该项目使用强化学习作为工具来控制一个有翼的倾转旋翼机无人机1为了实现这一点需要能够进行多旋翼和固定翼飞行的飞行动力学模型被创建出来用于与人工智能算法交互并作为人工智能算法的培训工具。人工智能的目标其作用是作为飞行员通过加速踏板提供合适的控制器输入和加权输出过渡。考虑了许多不同的动态规划方法来控制飞机。最终发现强化学习算法是最适合该问题的候选算法尽管实施起来具有挑战性但这个问题仍然存在。深度确定性策略梯度DDPG是一种在连续状态和动作空间中都能工作的强化学习算法这是一个关键该飞机的要求。DDPG被选为此应用的最佳候选者因为它是一个最先进的技术不需要离散化它是使用MATLAB的测试版强化学习工具箱。初步测试强调了飞机模拟中稳定性的重要性因为初步探索在强化学习中这通常会导致非常不寻常的控制输入从而导致模拟减速或撞车。尽管使用常规控制输入进行了充分的工作需要对模拟器的各个方面进行调试使其足够快足够稳健以可以与强化学习一起使用。对DDPG算法的测试突显了实现它的困难程度由MATLAB处理但需要大量的工作来获得适用于培训。为了简化对代理的要求首先在仅支持多旋翼的版本上进行了测试飞机。最初它只有一个x轴自由度只能控制前进速度。在某一维度取得成功后问题逐渐变得更加复杂增加更多自由度并恢复姿态控制器。最终这位代理人是训练以多旋翼模式在两点之间飞行尽管不如调校良好的PID成功控制器。当代理在多旋翼模式下尽可能合理时过渡有人试图。过渡是飞行中最复杂的部分为了简化它代理从以下状态开始性能最好的多旋翼智能体以及控制电机和飞行倾斜角的能力增加了控制器权重。然后飞机被要求飞行一条只有1000英尺的轨迹在前进模式下多旋翼的任何尝试都会得到负面的奖励。这种开放式的方法为过渡提供了新颖的决方案最终与已知的飞行控制人员正在靠近。该项目取得了良好的效果但并没有在经过良好调优的传统控制器上取得进步。强化学习智能体在没有先验经验的情况下成功地学习了良好的策略并且“智能”行为的示例如前瞻性规划。1在本报告中“飞机”用于描述一种有翼无人驾驶飞行器UAV该飞行器能够垂直和水平飞行。1.导言无人驾驶飞行器UAV在社会中的地位越来越重要。这种相对较新的技术主要用于电影摄影大型四轴飞行器携带相机用于电影和电视。有限的应用通常归因于限制许多潜在的操作如测量、援助和保护[123]。许多公司正在为未来做准备届时更复杂的监管将允许无人机在这其中发挥作用区域[45]。无人机通常分为两个不同的类别那些使用翅膀作为其升力面的动物以及那些这些升降机使用动力升降机。固定翼无人机可以快速高效地长距离飞行并且通常类似于常规飞机和飞翼。动力升力无人机可以在低空和高速飞行时精确飞行零速但由于固有的低效率不适合长距离或高速飞行这些能量来自发动机产生的升力。第三种不太常见的无人机是那些结合两种模式垂直起降VTOL并使用机翼作为其提升表面以提高效率和速度。这些是“两全其美”的解方案许多优点。主要的缺点是寻找最佳解决方案的复杂性两种截然不同的飞机类型的组合。巴斯无人机队是巴斯大学的学生领导的无人机队该队在2019年试图制造一架垂直起降旋翼飞行器以进入英国机械工程师学会IMechE无人机系统UAS挑战。这架名为“Caelus”的飞机使用两个旋翼为向前飞行提供推进力可以倾斜垂直起降结合两个同轴导管风扇提供垂直起降的升力。两个前电机可以近似为单个提升力如下所示一、深度确定性策略梯度DDPG算法的核心原理DDPG是一种结合深度神经网络与确定性策略梯度的强化学习算法专为连续动作空间设计。其核心架构基于Actor-Critic框架包含以下关键组件双网络结构Actor网络输出确定性动作直接映射状态到动作空间如旋翼转速、倾转角度。Critic网络评估状态-动作对的Q值指导Actor网络的策略优化。目标网络Target Actor/Critic通过软更新Polyak平均逐步同步主网络参数提升训练稳定性。经验回放机制通过存储历史交互数据状态、动作、奖励、下一状态并随机采样打破数据相关性缓解过拟合问题。探索策略在动作输出中添加噪声如Ornstein-Uhlenbeck噪声平衡探索与利用。梯度更新机制Critic网络通过最小化贝尔曼误差更新Q值估计Actor网络通过梯度上升最大化Q值优化策略。数学表达示例目标Q值计算其中γ为折扣因子μ′和Q′为目标网络参数。二、倾转旋翼无人机的动力学模型与控制难点1. 动力学特性倾转旋翼无人机融合多旋翼与固定翼的优势具备三种飞行模式直升机模式垂直起降与悬停过渡模式旋翼倾转以产生前飞推力固定翼模式高速巡航。其动力学模型需考虑六自由度刚体运动方程涵盖旋翼气动力、机翼升力、机身力矩等非线性耦合作用。2. 控制挑战气动干扰旋翼与机翼在过渡模式下产生复杂非线性气动干扰导致升力损失与控制失效风险。非线性时变特性过渡阶段中动力倾角、飞行速度、迎角等参数动态变化系统稳定性高度敏感。多模态协调需实现三种模式的无缝切换控制算法需兼容离散模式切换与连续动作输出。操纵冗余与耦合气动舵面与拉力矢量控制的协调问题尤其在过渡模式下需解决操纵耦合。三、DDPG在倾转旋翼无人机控制中的典型应用1. 姿态控制案例1基于DDPG的四旋翼姿态控制器设计通过引入参考模型RM-DDPG抑制超调提升抗干扰能力实验显示稳态误差降低30%。案例2结合滑模控制SMC与DDPG自适应调节切换增益有效抑制外部扰动引起的控制信号抖动。2. 路径规划与避障端到端避障决策DDPG直接输出连续速度指令避障轨迹平滑度优于传统3DVFH算法测试成功率超过90%。三维路径优化通过定义三维偏离度指标DDPG在复杂环境中规划能耗最低路径QoS提升15%。3. 空战决策机动指令预测结合目标机动预测模块的DDPG算法空战胜率从91.3%提升至94%。四、过渡阶段建模方法1. 多体动力学建模Lagrange方程将无人机分解为机翼、旋翼等多刚体系统通过位移约束与能量分析建立非线性模型适用于盒式布局无人机。Hamilton体系结合动能与势能分析推导系统动力学方程仿真验证倾转时间与能量消耗的权衡关系。2. 线性变参数LPV模型以倾转角为调度参数通过雅可比线性化生成纵向运动LPV模型支持增益调度控制器设计。基于HOSVD的多项式LPV建模降低计算复杂度提升控制鲁棒性。3. 数据驱动建模CFD仿真与子组件建模通过计算流体动力学分析气动特性分离倾斜与非倾斜部件模型提高推力和扭矩预测精度。增量动态逆INDI结合未知系统状态估计器处理模型不确定性与外部扰动实现全包线稳定控制。五、总结与展望优势DDPG通过端到端学习连续控制策略避免了传统方法对精确模型的依赖在非线性、高维状态空间中表现优异。其在倾转旋翼无人机中的应用已覆盖姿态控制、路径规划与多模态过渡等场景。挑战训练效率复杂动力学下的样本需求量大可结合优先级经验回放PER加速收敛。鲁棒性提升引入TD3双延迟DDPG抑制Q值高估或结合模型预测控制MPC增强抗干扰能力。硬件部署需优化算法实时性适配嵌入式飞控系统算力限制。未来方向多智能体协同扩展至MADDPG框架解决多无人机编队控制问题。数字孪生训练通过高保真仿真环境预训练策略降低实物试错成本。跨模态迁移学习利用固定翼模式策略加速过渡模式训练提升泛化能力。2 运行结果部分代码% Specify observer informationnumObs 10;obsInfo rlNumericSpec([numObs 1],LowerLimit,-1,UpperLimit, 1);obsInfo.Name Observer;% Specify actor informationnumAct 4;actInfo rlNumericSpec([numAct 1],LowerLimit,-1,UpperLimit, 1);actInfo.Name actor;% Initialise environment - simulator, agent, observer information, actor% informationenv rlSimulinkEnv(Transition,Transition/RL Agent,...obsInfo,actInfo);% Set model paramsTs 0.2; % sample timeTf 40; % finish timerng(shuffle); % Set rng seedenv.ResetFcn (in)setVariable(in,Desired_Location,40*rand(3,1)-20,Workspace,mdl);% Create some convolutional neural nets for the critic% specify the number of outputs for the hidden layers.% Create critic networkhiddenLayerSize 200;3参考文献文章中一些内容引自网络会注明出处或引用为参考文献难免有未尽之处如有不妥请随时联系删除。(文章内容仅供参考具体效果以运行结果为准)4Matlab代码、Simulink仿真、文章下载资料获取更多粉丝福利MATLAB|Simulink|Python资源获取

更多文章