✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。完整代码获取 定制创新 论文复现私信个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。1. 相关介绍本文重点探讨在湍流天气条件下针对发动机故障时自动着陆场景中潜在紧急着陆点的高效可行性评估、在线导航及路径跟踪技术。提出的多级自适应安全控制框架使无人机能够在存在较大不确定性的情况下执行传统上仅由经验丰富的飞行员才能完成的安全操作。该框架首先采用简化飞行模型对一组着陆点进行高效可行性的评估并生成飞行轨迹随后运用在线路径跟踪控制器来实现选定着陆轨迹的追踪。我们使用固定翼飞机的高精度仿真环境在不同天气不确定性条件下对所提方法进行了测试与验证。针对恶劣天气条件下因发动机故障导致紧急着陆的情况仿真结果表明所提出的自动着陆框架不仅对不确定性具有强鲁棒性且能适应不同着陆阶段的需求同时在规划与跟踪任务中的计算成本也较低。无人飞行器UAV技术正朝着完全自主飞行的方向发展其运行环境充满不确定性——包括动态环境变化、与人类操作者的交互、系统故障乃至恶意网络攻击。确保安全性和可靠性是使这类系统解决方案具备可认证性与可扩展性的首要步骤。本文提出了一种名为“多级自适应安全控制”MASC的自动驾驶框架旨在应对复杂不确定性环境下的自主无人机鲁棒控制并将其应用于恶劣天气条件下的发动机停飞自动着陆场景。A. MASC架构2009年一架空客A320客机美国航空1549航班在纽约拉瓜迪亚机场起飞数分钟后因严重鸟击事故同时失去双引擎[1]。萨伦伯格机长成功将飞机安全降落在附近的哈德逊河。受此事件启发我们致力于赋予无人机类似人类飞行员的能力在遭遇严重系统故障时判断当前任务是否仍可执行若不可行则重新规划任务方案以利用剩余能力完成任务。这一目标通过提出的MASC自动驾驶框架实现——该框架能够执行传统上仅由人类飞行员执行的安全机动动作。从任务控制架构的角度来看我们旨在用一种集成化的自上而下与自下而上的架构取代传统的单向适应机制——这种传统机制始于任务规划并逐级延伸至轨迹生成、跟踪以及最终的控制器稳定化过程。新型架构支持规划与控制之间的双向交互从而提升系统的稳定性和鲁棒性。为此我们在单纯形容错架构[2–6]基础上构建了MASC框架该架构已被公认为保护网络物理系统抵御各类软件故障的有效方案。通过将MASC框架与单纯形架构相结合我们致力于使网络物理系统能够应对源自物理世界的各种不确定性因素。如图1所示MASC框架包含以下组件• 正常模式控制器具备复杂功能可在正常运行条件下操控系统• 多级自适应安全模式控制器这是一种结构简单且经过验证的控制器能在性能受限、功能简化的情况下确保系统安全稳定运行。控制架构包含三个层级i) 离线着陆轨迹预测ii) 任务可行性评估与重新规划iii) 在线轨迹生成与路径跟随控制。• 监控与能力审计采用考虑自主系统网络物理特性的模型进行状态估计和故障检测。该模型可识别系统的剩余功能其决策逻辑会触发从正常模式切换至安全模式。在发动机失效且遭遇湍流天气的飞行场景下所提出的架构通过以下方式适应新的约束条件i) 对受损无人机的剩余功能进行审计并向其他层级提供反馈ii) 更新飞行包线iii) 评估潜在可达目的地的可行性并选择风险最低的目标iv) 在线规划飞行路径并利用鲁棒自动驾驶控制器执行路径追踪同时确保始终处于受损无人机的飞行包线范围内。来自较低层级如任务规划器向较高层级提供的反馈实现了MASC模块间的交互以及规划与控制之间的双向适应机制。即使对于经验丰富的飞行员而言在恶劣天气条件下因发动机故障实施紧急着陆也极具挑战性。我们提出的解决方案被称为MASC框架该框架为自动驾驶系统提供了所需的灵活性使其能够通过调整规划与控制策略来应对不确定性。该框架可应用于可靠的计算架构中用于安全控制设计。我们采用了一种计算效率高的轨迹生成与跟踪控制方法可在大多数无人机搭载的低成本实时嵌入式平台上以低延迟完成运算。此外该框架还能评估紧急着陆时可到达区域。我们在高仿真飞行模拟环境中对框架进行了验证与测试在不同初始条件包括高度、距离以及相对于着陆点的方向、多风天气及湍流环境下均实现了成功的着陆且无需重新调整自动驾驶参数。B. 相关研究发动机失效紧急着陆无人机发挥着重要作用。2. 运行效果展示3. 部分代码呈现%% plot the real time trajectory in sunny weather in three viewfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot3(X_13163_1.Data,Y_7164_9_1.Data,Z_3000_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot3(X_13353_2.Data,Y_14380_2.Data,Z_4000_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot3(X_23429_3.Data,Y_6675_6_3.Data,Z_5000_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot3(X_13353_4.Data,Y_14380_4.Data,Z_4000_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot3(X_13353_5.Data,Y_14380_5.Data,Z_4000_5.Data,-m);hold onxlabel(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 onfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot(X_13163_1.Data,Y_7164_9_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot(X_13353_2.Data,Y_14380_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot(X_23429_3.Data,Y_6675_6_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot(X_13353_4.Data,Y_14380_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot(X_13353_5.Data,Y_14380_5.Data,-m);hold ontitle(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 onfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot(X_13163_1.Data,Z_3000_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot(X_13353_2.Data,Z_4000_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot(X_23429_3.Data,Z_5000_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot(X_13353_4.Data,Z_4000_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot(X_13353_5.Data,Z_4000_5.Data,-m);hold ontitle(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 viewfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot3(X_21720_2.Data,Y_12935_2.Data,Z_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot3(X_21837_3.Data,Y_13166_3.Data,Z_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot3(X_22164_4.Data,Y_12859_4.Data,Z_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot3(X_22194_5.Data,Y_13161_5.Data,Z_5.Data,-m);hold onxlabel(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 onfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot(X_21720_2.Data,Z_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot(X_21837_3.Data,Z_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot(X_22164_4.Data,Z_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot(X_22194_5.Data,Z_5.Data,-m);hold onxlabel(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 onfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot(X_21720_2.Data,Y_12935_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot(X_21837_3.Data,Y_13166_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot(X_22164_4.Data,Y_12859_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot(X_22194_5.Data,Y_13161_5.Data,-m);hold onxlabel(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 airplaneCross_Track_Deviation distancef.Data(:);Time distancef.Time;figure()pplot(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 airplaneCross_Track_Deviation distance.Data(:);Time distance.Time;figure()pplot(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 errorCross_Track_Deviation Cross_Tracking_Error.Data(:);Time Cross_Tracking_Error.Time;figure()pplot(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 autopilothighFidelityRollAngle RollAngle_High.Data(:);highFidelityTime RollAngle_High.Time;figure()pplot(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;qplot(lowFidelityTime, lowFidelityRollAngle,--b);q.LineWidth 2;legend(High-Fidelity Response, Low-Fidelity Response, Location,southeast)4. 参考文献更多免费数学建模和仿真教程关注领取如果觉得内容不错那就请分享和点个“在看”呗
【无人机路径规划】基于多级自适应方法实现无人机在发动机失效情况下于恶劣天气中实现着陆的导航与路径规划问题附Matlab代码
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。完整代码获取 定制创新 论文复现私信个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。1. 相关介绍本文重点探讨在湍流天气条件下针对发动机故障时自动着陆场景中潜在紧急着陆点的高效可行性评估、在线导航及路径跟踪技术。提出的多级自适应安全控制框架使无人机能够在存在较大不确定性的情况下执行传统上仅由经验丰富的飞行员才能完成的安全操作。该框架首先采用简化飞行模型对一组着陆点进行高效可行性的评估并生成飞行轨迹随后运用在线路径跟踪控制器来实现选定着陆轨迹的追踪。我们使用固定翼飞机的高精度仿真环境在不同天气不确定性条件下对所提方法进行了测试与验证。针对恶劣天气条件下因发动机故障导致紧急着陆的情况仿真结果表明所提出的自动着陆框架不仅对不确定性具有强鲁棒性且能适应不同着陆阶段的需求同时在规划与跟踪任务中的计算成本也较低。无人飞行器UAV技术正朝着完全自主飞行的方向发展其运行环境充满不确定性——包括动态环境变化、与人类操作者的交互、系统故障乃至恶意网络攻击。确保安全性和可靠性是使这类系统解决方案具备可认证性与可扩展性的首要步骤。本文提出了一种名为“多级自适应安全控制”MASC的自动驾驶框架旨在应对复杂不确定性环境下的自主无人机鲁棒控制并将其应用于恶劣天气条件下的发动机停飞自动着陆场景。A. MASC架构2009年一架空客A320客机美国航空1549航班在纽约拉瓜迪亚机场起飞数分钟后因严重鸟击事故同时失去双引擎[1]。萨伦伯格机长成功将飞机安全降落在附近的哈德逊河。受此事件启发我们致力于赋予无人机类似人类飞行员的能力在遭遇严重系统故障时判断当前任务是否仍可执行若不可行则重新规划任务方案以利用剩余能力完成任务。这一目标通过提出的MASC自动驾驶框架实现——该框架能够执行传统上仅由人类飞行员执行的安全机动动作。从任务控制架构的角度来看我们旨在用一种集成化的自上而下与自下而上的架构取代传统的单向适应机制——这种传统机制始于任务规划并逐级延伸至轨迹生成、跟踪以及最终的控制器稳定化过程。新型架构支持规划与控制之间的双向交互从而提升系统的稳定性和鲁棒性。为此我们在单纯形容错架构[2–6]基础上构建了MASC框架该架构已被公认为保护网络物理系统抵御各类软件故障的有效方案。通过将MASC框架与单纯形架构相结合我们致力于使网络物理系统能够应对源自物理世界的各种不确定性因素。如图1所示MASC框架包含以下组件• 正常模式控制器具备复杂功能可在正常运行条件下操控系统• 多级自适应安全模式控制器这是一种结构简单且经过验证的控制器能在性能受限、功能简化的情况下确保系统安全稳定运行。控制架构包含三个层级i) 离线着陆轨迹预测ii) 任务可行性评估与重新规划iii) 在线轨迹生成与路径跟随控制。• 监控与能力审计采用考虑自主系统网络物理特性的模型进行状态估计和故障检测。该模型可识别系统的剩余功能其决策逻辑会触发从正常模式切换至安全模式。在发动机失效且遭遇湍流天气的飞行场景下所提出的架构通过以下方式适应新的约束条件i) 对受损无人机的剩余功能进行审计并向其他层级提供反馈ii) 更新飞行包线iii) 评估潜在可达目的地的可行性并选择风险最低的目标iv) 在线规划飞行路径并利用鲁棒自动驾驶控制器执行路径追踪同时确保始终处于受损无人机的飞行包线范围内。来自较低层级如任务规划器向较高层级提供的反馈实现了MASC模块间的交互以及规划与控制之间的双向适应机制。即使对于经验丰富的飞行员而言在恶劣天气条件下因发动机故障实施紧急着陆也极具挑战性。我们提出的解决方案被称为MASC框架该框架为自动驾驶系统提供了所需的灵活性使其能够通过调整规划与控制策略来应对不确定性。该框架可应用于可靠的计算架构中用于安全控制设计。我们采用了一种计算效率高的轨迹生成与跟踪控制方法可在大多数无人机搭载的低成本实时嵌入式平台上以低延迟完成运算。此外该框架还能评估紧急着陆时可到达区域。我们在高仿真飞行模拟环境中对框架进行了验证与测试在不同初始条件包括高度、距离以及相对于着陆点的方向、多风天气及湍流环境下均实现了成功的着陆且无需重新调整自动驾驶参数。B. 相关研究发动机失效紧急着陆无人机发挥着重要作用。2. 运行效果展示3. 部分代码呈现%% plot the real time trajectory in sunny weather in three viewfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot3(X_13163_1.Data,Y_7164_9_1.Data,Z_3000_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot3(X_13353_2.Data,Y_14380_2.Data,Z_4000_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot3(X_23429_3.Data,Y_6675_6_3.Data,Z_5000_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot3(X_13353_4.Data,Y_14380_4.Data,Z_4000_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot3(X_13353_5.Data,Y_14380_5.Data,Z_4000_5.Data,-m);hold onxlabel(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 onfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot(X_13163_1.Data,Y_7164_9_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot(X_13353_2.Data,Y_14380_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot(X_23429_3.Data,Y_6675_6_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot(X_13353_4.Data,Y_14380_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot(X_13353_5.Data,Y_14380_5.Data,-m);hold ontitle(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 onfigure()%X_13163_Y_7164.9_Z_3000_ZARA1090pplot(X_13163_1.Data,Z_3000_1.Data,-r);hold on%X_13353_Y_14380_Z_4000qplot(X_13353_2.Data,Z_4000_2.Data,-g);hold on%X_23429_Y_6675.6_Z_5000rplot(X_23429_3.Data,Z_5000_3.Data,-b);hold on%X_21323_Y_11021_Z_2000_Heading_69.594aplot(X_13353_4.Data,Z_4000_4.Data,-c);hold on%X_20719_Y_11652_Z_3000_Heading_256.8bplot(X_13353_5.Data,Z_4000_5.Data,-m);hold ontitle(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 viewfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot3(X_21720_2.Data,Y_12935_2.Data,Z_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot3(X_21837_3.Data,Y_13166_3.Data,Z_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot3(X_22164_4.Data,Y_12859_4.Data,Z_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot3(X_22194_5.Data,Y_13161_5.Data,Z_5.Data,-m);hold onxlabel(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 onfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot(X_21720_2.Data,Z_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot(X_21837_3.Data,Z_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot(X_22164_4.Data,Z_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot(X_22194_5.Data,Z_5.Data,-m);hold onxlabel(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 onfigure()%X21338Y_10911Z5000_82.481_20_14_10_10_10Turbulence%pplot3(X_21338_1.Data,Y_10911_1.Data,Z_1.Data,-r);%hold on%X21720Y_12935Z5000_189.86_0_3_8_14qplot(X_21720_2.Data,Y_12935_2.Data,-g);hold on%X21837Y_13166Z5000_0_3_8_14rplot(X_21837_3.Data,Y_13166_3.Data,-b);hold on%X22164Y_12859Z5000_255.82_14_7_12_22aplot(X_22164_4.Data,Y_12859_4.Data,-c);hold on%X22194Y_13161Z5000_230.34_27_12_4_9_4Turbulencebplot(X_22194_5.Data,Y_13161_5.Data,-m);hold onxlabel(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 airplaneCross_Track_Deviation distancef.Data(:);Time distancef.Time;figure()pplot(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 airplaneCross_Track_Deviation distance.Data(:);Time distance.Time;figure()pplot(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 errorCross_Track_Deviation Cross_Tracking_Error.Data(:);Time Cross_Tracking_Error.Time;figure()pplot(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 autopilothighFidelityRollAngle RollAngle_High.Data(:);highFidelityTime RollAngle_High.Time;figure()pplot(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;qplot(lowFidelityTime, lowFidelityRollAngle,--b);q.LineWidth 2;legend(High-Fidelity Response, Low-Fidelity Response, Location,southeast)4. 参考文献更多免费数学建模和仿真教程关注领取如果觉得内容不错那就请分享和点个“在看”呗