基于多级适应方法的无人机(UAV)在发动机输出情况下的导航和路径规划附Matlab代码

简介: 基于多级适应方法的无人机(UAV)在发动机输出情况下的导航和路径规划附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

This repository contains MASC Online navigation scheme, with support of Non linear guidance logic, a high fidelity simulation environment(X-Plane), and User Datagram Protocol (UDP) based interface. The system takes in landing zone coordinates and position coordinates where engine is malfunction. It later navigates the engine-out airplane to the approachable safty landing position in real-time. A demonstration of the system can be found here -> https://drive.google.com/file/d/1WmX2kXaYxDslZy5klvJAoZgwgKunmYe_/view?usp=sharing

⛄ 部分代码

%% plot the real time trajectory in sunny weather in three view

figure()

%X_13163_Y_7164.9_Z_3000_ZARA1090

p=plot3(X_13163_1.Data,Y_7164_9_1.Data,Z_3000_1.Data,'-r');

hold on

%X_13353_Y_14380_Z_4000

q=plot3(X_13353_2.Data,Y_14380_2.Data,Z_4000_2.Data,'-g');

hold on

%X_23429_Y_6675.6_Z_5000

r=plot3(X_23429_3.Data,Y_6675_6_3.Data,Z_5000_3.Data,'-b');

hold on

%X_21323_Y_11021_Z_2000_Heading_69.594

a=plot3(X_13353_4.Data,Y_14380_4.Data,Z_4000_4.Data,'-c');

hold on

%X_20719_Y_11652_Z_3000_Heading_256.8

b=plot3(X_13353_5.Data,Y_14380_5.Data,Z_4000_5.Data,'-m');

hold on

xlabel('North (m)')

ylabel('East (m)')

zlabel('Height (m)')

title('Emergency Landing Trajectory')

p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4','Trail 5')

grid on



figure()

%X_13163_Y_7164.9_Z_3000_ZARA1090

p=plot(X_13163_1.Data,Y_7164_9_1.Data,'-r');

hold on

%X_13353_Y_14380_Z_4000

q=plot(X_13353_2.Data,Y_14380_2.Data,'-g');

hold on

%X_23429_Y_6675.6_Z_5000

r=plot(X_23429_3.Data,Y_6675_6_3.Data,'-b');

hold on

%X_21323_Y_11021_Z_2000_Heading_69.594

a=plot(X_13353_4.Data,Y_14380_4.Data,'-c');

hold on

%X_20719_Y_11652_Z_3000_Heading_256.8

b=plot(X_13353_5.Data,Y_14380_5.Data,'-m');

hold on

title('Emergency Landing Trajectory(Top View)')

p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4','Trail 5')

grid on


figure()

%X_13163_Y_7164.9_Z_3000_ZARA1090

p=plot(X_13163_1.Data,Z_3000_1.Data,'-r');

hold on

%X_13353_Y_14380_Z_4000

q=plot(X_13353_2.Data,Z_4000_2.Data,'-g');

hold on

%X_23429_Y_6675.6_Z_5000

r=plot(X_23429_3.Data,Z_5000_3.Data,'-b');

hold on

%X_21323_Y_11021_Z_2000_Heading_69.594

a=plot(X_13353_4.Data,Z_4000_4.Data,'-c');

hold on

%X_20719_Y_11652_Z_3000_Heading_256.8

b=plot(X_13353_5.Data,Z_4000_5.Data,'-m');

hold on

title('Emergency Landing Trajectory(Side View)')

p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4','Trail 5')

grid on


%% plot the real time trajectory in windy weather and Turbulence in three view

figure()

%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence

%p=plot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,'-r');

%hold on

%X21720Y_12935Z5000_189.86_0_3_8_14

q=plot3(X_21720_2.Data,Y_12935_2.Data,Z_2.Data,'-g');

hold on

%X21837Y_13166Z5000_0_3_8_14

r=plot3(X_21837_3.Data,Y_13166_3.Data,Z_3.Data,'-b');

hold on

%X22164Y_12859Z5000_255.82_14_7_12_22

a=plot3(X_22164_4.Data,Y_12859_4.Data,Z_4.Data,'-c');

hold on

%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulence

b=plot3(X_22194_5.Data,Y_13161_5.Data,Z_5.Data,'-m');

hold on

xlabel('North (m)')

ylabel('East (m)')

zlabel('Height (m)')

title('Emergency Landing Trajectory')

%p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4')

grid on


figure()

%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence

%p=plot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,'-r');

%hold on

%X21720Y_12935Z5000_189.86_0_3_8_14

q=plot(X_21720_2.Data,Z_2.Data,'-g');

hold on

%X21837Y_13166Z5000_0_3_8_14

r=plot(X_21837_3.Data,Z_3.Data,'-b');

hold on

%X22164Y_12859Z5000_255.82_14_7_12_22

a=plot(X_22164_4.Data,Z_4.Data,'-c');

hold on

%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulence

b=plot(X_22194_5.Data,Z_5.Data,'-m');

hold on

xlabel('North (m)')

ylabel('East (m)')

zlabel('Height (m)')

title('Emergency Landing Trajectory(Side View)')

%p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4')

grid on


figure()

%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence

%p=plot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,'-r');

%hold on

%X21720Y_12935Z5000_189.86_0_3_8_14

q=plot(X_21720_2.Data,Y_12935_2.Data,'-g');

hold on

%X21837Y_13166Z5000_0_3_8_14

r=plot(X_21837_3.Data,Y_13166_3.Data,'-b');

hold on

%X22164Y_12859Z5000_255.82_14_7_12_22

a=plot(X_22164_4.Data,Y_12859_4.Data,'-c');

hold on

%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulence

b=plot(X_22194_5.Data,Y_13161_5.Data,'-m');

hold on

xlabel('North (m)')

ylabel('East (m)')

zlabel('Height (m)')

title('Emergency Landing Trajectory(Top View)')

%p.LineWidth = 2;

q.LineWidth = 2;

r.LineWidth = 2;

a.LineWidth = 2;

b.LineWidth = 2;

legend('Trail 1','Trail 2','Trail 3','Trail 4')

grid on


%% plot distance between the configured final coordinate and airplane

Cross_Track_Deviation = distancef.Data(:);

Time = distancef.Time;

figure()

p=plot(Time, Cross_Track_Deviation,'-r');

xlabel('time in (sec/10)')

ylabel('distance between airplane and final position(m)')

title('Variation of distance between airplane and final position with time')

p.LineWidth = 3;

grid on


%% plot distance between the loiter center and airplane

Cross_Track_Deviation = distance.Data(:);

Time = distance.Time;

figure()

p=plot(Time, Cross_Track_Deviation,'-r');

xlabel('time in (sec/10)')

ylabel('distance between airplane and loiter center(m)')

title('Variation of distance between airplane and loiter center with time')

p.LineWidth = 3;

grid on

%% plot the cross tracking error

Cross_Track_Deviation = Cross_Tracking_Error.Data(:);

Time = Cross_Tracking_Error.Time;

figure()

p=plot(Time, Cross_Track_Deviation,'-r');

xlabel('time in (sec/10)')

ylabel('cross track deviation(m)')

title('Variation of cross track deviation with time')

p.LineWidth = 3;

grid on


%% plot the step response of high fidelity and low fiedelity autopilot

highFidelityRollAngle = RollAngle_High.Data(:);

highFidelityTime = RollAngle_High.Time;

figure()

p=plot(highFidelityTime, highFidelityRollAngle,'-r');

title('Roll Angle Step Response')


xlim([0 30])

ylim([0.02 0.2])

p.LineWidth = 2;


lowFidelityRollAngle = RollAngle_Low.Data(:);

lowFidelityTime = RollAngle_Low.Time;

hold on;

q=plot(lowFidelityTime, lowFidelityRollAngle,'--b');

q.LineWidth = 2;

legend('High-Fidelity Response', 'Low-Fidelity Response', 'Location','southeast')

⛄ 运行结果

⛄ 参考文献

[1]罗诚. 无人机路径规划算法研究[D]. 复旦大学, 2010.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
2月前
|
算法 Serverless
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
|
4月前
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
207 0
|
7月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
297 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
7月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
174 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
|
7月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
115 4
|
7月前
|
计算机视觉
【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
基于灰度矩的亚像素边缘检测方法,包括理论基础和MATLAB实现,通过计算图像的灰度矩来精确定位边缘位置,并提供了详细的MATLAB代码和实验结果图。
194 6
|
7月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
158 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
算法 数据安全/隐私保护
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
161 0
|
10月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度