【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

近年来 无人机在军事领域和民用领域中的应用越来越广泛, 其中固定翼无人机以其航程长 飞 行 速 度 快 载 重量大等优点引起了人们的重视。 固定翼无人机主要采用倾斜转弯( bank-to-turn BTT 的控制方 式 目 前 主 要 的 BTT航迹跟踪方法有基于比例积分微分( proportionalintegral derivative, PID 控制的跟踪 算 法 非线性制导算法 向 量 场算法及 纯 追 踪 与 视 线 角 ( purepursuit
andlineofsight, PLOS) 组合制导算法等 文 献 使 用 PID 控 制 方 法 与 微分几何制导算法对无人机航迹跟踪方法进行了设计与验证; 文献 将非 线 性 制 导 算 法 进 行 了 改 进 ,引 入 了一种自适应引导长度,提高了算法的跟踪性能;文献[3-4]提出了向量场算法,并使用Lyapunov方法对算法的稳定性进行了证明,文献[5]对PLOS算法的抗干扰能力进行了讨论。模型预 测 控 制(modelpredictivecontrol,MPC)是 20世纪70年代后期提出的一类新型计算机控制算法,是一种属于基于模型预测的启发式控制算法[6]。模型预测控制器具有设计简单、易于实现等优点,一经问世,便在电力、化工等复杂工业过程控制中取得了巨大成功。近 年 来,MPC在飞行器控制问题中得到了大量应用。文献[7]对 MPC中用于预测的模型进行泰勒展开,得到近似的线性模型,并对线
性化后的模型应用了预测控制 文 献 8-10 将 目 标 的 运 动考虑到预测模型中, MPC 实现了无人飞行器对运动目标的跟踪与着陆。

📚2 运行结果

 

 

 部分代码:

%% 
%% 无人机参数
UAVPARAM_SET.euler0_roll_pitch_yaw = [0,0,0*45]*pi/180;
UAVPARAM_SET.gpsvel0 = [0,0,0]; % m/s
UAVPARAM_SET.mag_NED = [0.2838,-0.03464,0.4595]; %[0.22, 0, 0.42];%
UAVPARAM_SET.refloc = [39,117,0]; % lat lon alt
UAVPARAM_SET.mass = 4.957; % kg
UAVPARAM_SET.inertia = 1e-6*[...
    186222     564     8670;
    564  164400      -31;
    8670     -31   336920;]; % kgm^2
UAVPARAM_SET.designCenter = [-0.3,0,0]; % 设计中心位置  机体坐标系(原点在机头)
UAVPARAM_SET.pressureCenter = [-0.32,0,0]; % 全机压力中心  机体坐标系(原点在机头)
UAVPARAM_SET.gravityCenter = UAVPARAM_SET.designCenter + 1e-3*[0*0.395,0*0.664,19.338]; % 全机重心  机体坐标系(原点在机头)
UAVPARAM_SET.S = 0.316; % 有效面积  1787727e-6 ?
UAVPARAM_SET.meanAerodynamicChord = 0.5; % 平均气动弦长
UAVPARAM_SET.wingspan = 1.86; % 翼展
% 气动参数
UAVPARAM_SET.AeroParam.CY_beta = -1; % 侧向力/beta    1/rad
UAVPARAM_SET.AeroParam.CY_rudder = 1; % 侧向力/rudder   1/rad
UAVPARAM_SET.AeroParam.Cl_beta = 0; % 滚转力矩/beta    1/rad
UAVPARAM_SET.AeroParam.Cl_aileron = -1; % 滚转力矩/aileron    1/rad
UAVPARAM_SET.AeroParam.Cl_rudder = 1; % 滚转力矩/rudder    1/rad
UAVPARAM_SET.AeroParam.Cl_p = -1; % 滚转力矩/p    1/(rad/s)
UAVPARAM_SET.AeroParam.Cl_r = 0; % 滚转力矩/p    1/(rad/s)
UAVPARAM_SET.AeroParam.Cn_beta = 0; % 偏航力矩/beta    1/rad
UAVPARAM_SET.AeroParam.Cn_rudder = -1; % 偏航力矩/rudder    1/rad
UAVPARAM_SET.AeroParam.Cn_aileron = 0; % 偏航力矩/aileron    1/rad
UAVPARAM_SET.AeroParam.Cn_p = 0; % 偏航力矩/p    1/(rad/s)
UAVPARAM_SET.AeroParam.Cn_r = -1; % 偏航力矩/r    1/(rad/s)

UAVPARAM_SET.AeroParam.CD0 = 2; % 零攻角阻力
UAVPARAM_SET.AeroParam.CD_alpha = 1; % 阻力/alpha 1/rad
UAVPARAM_SET.AeroParam.CL0 = 2; % 零攻角升力
UAVPARAM_SET.AeroParam.CL_alpha = 1; % 升力/alpha 1/rad
UAVPARAM_SET.AeroParam.CL_elevator = 1; % 升力/elevator 1/rad

UAVPARAM_SET.AeroParam.Cm0 = 0; % 零攻角俯仰力矩
UAVPARAM_SET.AeroParam.Cm_alpha = -1; %
UAVPARAM_SET.AeroParam.Cm_elevator = -1; %
UAVPARAM_SET.AeroParam.Cm_q = -1;
%%
ENVIRONMENT_SET.windVel = 3; % m/s
ENVIRONMENT_SET.windAngle = 0; % deg
ENVIRONMENT_SET.gravity = [0;0;9.81]; % m/s^2
%%
% 升降舵
ACTUATOR_SET.elevator.naturalFreq = 35*180/pi; % rad/s
ACTUATOR_SET.elevator.dampingRatio = 0.7;
ACTUATOR_SET.elevator.def_max = 40*pi/180;
ACTUATOR_SET.elevator.def_min = -40*pi/180;
ACTUATOR_SET.elevator.rateLimit = 500*pi/180;
ACTUATOR_SET.elevator.initialPos = 0;
% 方向舵

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]宝胜,无人机研究.

[2] 王晓海,孟秀云,李传旭.基于MPC的无人机航迹跟踪控制器设计[J].系统工程与电子技术,2021,43(01):191-198.

[3]刘斐. 基于模型预测控制的无人机轨迹跟踪方法研究[D].湖北工业大学,2017.

🌈4 Matlab代码实现

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值