【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab代码实现)

张开发
2026/4/15 19:09:28 15 分钟阅读

分享文章

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab代码实现)
欢迎来到本博客❤️❤️博主优势博客内容尽量做到思维缜密逻辑清晰为了方便读者。⛳️座右铭行百里者半于九十。本文内容如下⛳️赠与读者‍做科研涉及到一个深在的思想系统需要科研者逻辑缜密踏实认真但是不能只是努力很多时候借力比努力更重要然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览免得骤然跌入幽暗的迷宫找不到来时的路它不足为你揭示全部问题的答案但若能解答你胸中升起的一朵朵疑云也未尝不会酿成晚霞斑斓的别一番景致万一它给你带来了一场精神世界的苦雨那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。或许雨过云收神驰的天地更清朗.......第一部分——内容介绍基于麻雀搜索算法的无人机三维路径规划方法研究摘要针对无人机在三维复杂地形与多障碍物场景下的自主路径规划问题本文提出一种基于麻雀搜索算法的智能路径规划方法。该方法以真实地形数据构建三维飞行环境采用圆柱形模型对障碍物进行标准化建模综合路径长度、飞行高度、轨迹平滑性与安全避障需求建立多目标优化准则利用麻雀搜索算法的发现者、加入者、预警者群体协作机制进行全局寻优并通过边界约束处理保证路径解的可行性与稳定性。系统在 Matlab 平台实现全流程可运行代码包含数据读取、种群初始化、路径编码、适应度计算、迭代优化与自动绘图保存等完整模块。仿真结果表明所提方法能够快速收敛规划出无碰撞、平滑、长度最优的三维飞行路径可有效满足无人机航线设计、智能优化算法教学与毕业设计等应用需求。关键词无人机三维路径规划麻雀搜索算法地形建模约束优化智能优化算法1 引言无人机自主路径规划是无人机自主作业与智能化飞行的核心技术其任务是在包含地形起伏、障碍物、禁飞区的三维空间中生成一条从起点到终点、满足飞行约束、无碰撞且综合代价最优的飞行轨迹。随着无人机应用场景不断复杂化传统路径规划方法在处理高维、多约束、非结构化环境时容易出现搜索效率低、路径不平滑、易陷入局部最优等问题。群智能优化算法凭借全局搜索能力强、鲁棒性好、适应性强等优势逐渐成为复杂环境路径规划的主流解决方案。麻雀搜索算法是一种模拟麻雀种群觅食与反捕食行为的新型群智能优化算法通过种群内部分工协作实现高效搜索具有收敛速度快、寻优精度高、参数少、结构清晰等特点。本文将麻雀搜索算法与无人机三维路径规划相结合构建从环境建模、路径编码、适应度设计到算法优化、结果可视化的完整系统充分利用算法的全局寻优能力与快速收敛特性提升复杂三维环境下路径规划的可靠性与最优性。本文的主要工作包括构建基于真实栅格数据的三维地形模型与标准化障碍物模型设计兼顾路径长度、安全性与平滑性的多目标评价机制将麻雀搜索算法应用于三维路径寻优并加入约束处理策略实现可直接运行、参数可调、自动出图的完整 Matlab 仿真系统。2 无人机三维飞行环境建模2.1 三维地形建模本文采用离散高程数据构建连续三维地形环境通过 Excel 文件存储地形网格坐标与高度信息。系统读取地形数据后利用插值方法获取任意平面位置对应的地形高度保证路径点高度计算的准确性与连续性。为确保飞行安全无人机在任意位置的飞行高度必须高于对应地形高度并保留一定的安全高度余量从底层约束避免撞地风险。2.2 障碍物建模规划空间内的障碍物统一采用圆柱形模型进行表示每个障碍物由中心坐标与作用半径确定。在路径评价过程中系统会判断路径点是否进入障碍物影响范围一旦发生侵入则判定为不可行路径并通过惩罚机制使算法主动舍弃该类解从而实现严格避障。2.3 路径空间与边界约束整个路径规划在由地形范围确定的三维空间内进行所有路径点必须位于设定的空间边界以内。为提升优化效率系统将实际坐标归一化到统一区间进行搜索优化完成后再映射回真实空间既简化计算又保证路径点始终处于可行区域内。3 路径表示与多目标优化设计3.1 路径编码与插值平滑本文采用实数编码方式对三维路径进行表示将整条路径离散为若干关键导航点每个导航点包含三维坐标信息。为使最终轨迹符合无人机飞行特性系统在优化过程中对关键导航点进行插值处理生成数量充足、过渡平滑的飞行路径点使路径曲线连续、转向自然避免出现尖锐折角。3.2 多目标优化评价机制路径优劣由多方面指标综合决定主要包括路径总长度、飞行高度安全性、轨迹平滑程度以及避障可行性。系统将这些指标加权融合形成统一的评价标准优先保证路径无碰撞与飞行安全同时尽可能缩短路径长度、提升轨迹平滑性。对于穿越地形或障碍物的不可行路径系统加入较大惩罚值使其在迭代中被快速淘汰从而保证输出路径均为安全可行路径。4 基于麻雀搜索算法的路径优化方法4.1 麻雀搜索算法基本原理麻雀搜索算法模拟自然界麻雀群体觅食与躲避危险的行为将种群中的个体分为三类发现者负责全局搜索与方向引导加入者围绕优质解进行局部开发预警者负责感知风险并触发逃逸行为。三类角色协同工作使算法在全局探索与局部求精之间保持良好平衡具备较强的跳出局部最优与快速收敛能力。4.2 种群初始化算法启动时在可行空间内随机生成初始路径种群保证初始解分布均匀、覆盖范围广为后续全局寻优提供良好起点。初始化过程严格遵循边界约束确保所有初始路径点均处于可行区域内。4.3 个体位置更新机制发现者在环境安全时沿优化方向持续搜索在感知危险时进行随机逃逸加入者根据自身优劣状态选择跟随最优个体或在局部区域搜索预警者在发现风险时向安全区域移动。通过三类个体的有序更新算法逐步向更优路径靠近最终收敛到全局最优解。4.4 边界约束处理为避免迭代过程中路径点超出可行范围系统采用中间值修正策略对越界解进行处理。该方法在保证约束有效性的同时保留历史位置信息使修正过程更加平滑有利于维持种群多样性与算法稳定性。5 系统实现与运行流程本文所提路径规划系统在 Matlab 环境下实现全流程模块化设计代码结构清晰、参数化程度高、注释详细便于修改与二次开发。系统运行流程如下首先读取地形数据并完成环境初始化设置起点、终点、障碍物与安全参数随后配置算法参数包括种群规模、最大迭代次数、发现者与预警者比例等接着初始化路径种群并开始迭代优化每一代迭代依次完成适应度计算、角色划分、位置更新、边界修正与最优解更新达到最大迭代次数后停止迭代输出最优路径最后自动绘制三维路径图、二维俯视图、等高线图与收敛曲线并以高清格式自动保存至指定文件夹。6 仿真实验与结果分析6.1 实验环境与参数设置实验在 Matlab 2023b 平台运行采用真实三维地形数据设置明确的起点、终点与多个圆柱形障碍物。算法参数经过多次调试确定在寻优精度、收敛速度与运行效率之间达到良好平衡能够稳定输出高质量路径。6.2 结果可视化与输出系统自动生成四类可视化结果三维地形与最优路径图直观展示空间轨迹与环境关系二维俯视图清晰呈现路径在平面内的绕障效果等高线图结合地形高度展示路径起伏变化收敛曲线反映算法迭代过程与寻优效率。所有图片自动保存分辨率高可直接用于报告与论文。6.3 实验结果分析实验结果表明基于麻雀搜索算法的三维路径规划方法具有良好的性能一是路径完全可行能够有效避开所有障碍物并始终高于地形满足安全飞行要求二是路径质量高长度更短、转向平滑符合无人机飞行动力学特性三是算法收敛速度快迭代前期快速下降后期稳定收敛无明显震荡与早熟现象四是系统运行稳定多次重复实验结果一致鲁棒性强。7 结论与展望7.1 结论本文提出一种基于麻雀搜索算法的无人机三维路径规划方法构建了集环境建模、路径编码、多目标优化、约束处理与可视化输出于一体的完整系统。实验结果表明该方法能够高效、稳定地求解复杂三维环境下的路径规划问题输出的路径满足无碰撞、短距离、平滑飞行等工程需求。系统代码完整、可直接运行、参数可调适用于课程设计、毕业设计、智能算法教学与无人机航线设计等场景。7.2 展望未来可在现有工作基础上进一步扩展与提升引入动态障碍物与实时感知信息实现动态环境下的在线路径规划结合自适应策略、混沌优化等方式改进麻雀搜索算法进一步提升寻优性能扩展至多无人机协同路径规划加入冲突消解与任务分配机制将算法与无人机飞控系统对接实现实物部署与实际飞行验证。要不要我帮你把这篇论文按毕业论文格式排版加上目录、引言背景、国内外研究现状、结论总结等完整章节当前文件内容过长豆包只阅读了前 42%。润色并扩充内容全部读完当前文件内容过长豆包只阅读了前 42%。基于麻雀搜索算法的无人机三维路径规划方法研究摘要针对无人机在真实三维地形、多障碍物约束场景下自主飞行路径规划的实际需求本文提出一种基于麻雀搜索算法的无人机三维路径规划完整解决方案。该方案以实测地形栅格数据构建高精度三维飞行环境以圆柱形模型统一表征障碍物构建融合路径长度、飞行安全高度、航迹平滑度与避障约束的多目标综合评价体系利用麻雀搜索算法中发现者、加入者、预警者协同寻优机制实现全局高效搜索并采用中间值约束修正法保障路径解始终处于可行域内有效提升算法稳定性与寻优精度。本研究在 Matlab 2023b 平台实现全流程可运行代码包含地形数据读取、种群初始化、路径编码与插值平滑、适应度计算、边界约束处理、迭代优化及结果自动绘图保存等完整模块。仿真实验结果表明所提方法能够快速稳定收敛可规划出无碰撞、航迹平滑、长度最优且符合无人机飞行特性的三维路径具备较强的实用性与可靠性适用于无人机航线设计、智能优化算法教学演示、课程设计与本科毕业设计等多种场景。关键词无人机三维路径规划麻雀搜索算法地形建模约束优化航迹平滑智能优化算法1 引言随着无人机在电力巡检、测绘勘探、应急救援、农业植保、军事侦察等领域的广泛应用对其在复杂三维环境下的自主航行能力提出了越来越高的要求。路径规划作为无人机自主飞行控制的核心技术旨在给定的三维空间环境中按照预设的优化目标规划出一条从起点到终点、满足飞行约束、无碰撞、代价最优的飞行航迹。传统路径规划方法如 A * 算法、Dijkstra 算法、快速扩展随机树 RRT、人工势场法等在二维平面或简单环境中应用较为成熟但在包含连续地形起伏、多障碍物、强约束的三维空间中往往面临搜索效率低、路径锯齿严重、易陷入局部最优、难以处理多约束条件等问题。群智能优化算法凭借全局搜索能力强、鲁棒性高、不依赖梯度信息、适用于高维复杂优化问题等优势逐渐成为无人机路径规划的主流研究方向。麻雀搜索算法Sparrow Search AlgorithmSSA作为一种新型群智能优化算法模拟麻雀种群觅食与反捕食的群体行为通过发现者、加入者、预警者三种角色的分工协作实现全局探索与局部开发的动态平衡具有收敛速度快、寻优精度高、参数少、结构简洁等优势。本文在充分研读麻雀搜索算法机制与无人机三维路径规划工程需求的基础上结合实测地形数据、约束处理策略、路径编码方式与可视化输出完成一套完整、可直接运行、参数易于修改的三维路径规划系统。系统充分考虑地形约束、障碍物规避、飞行高度限制与航迹平滑性要求通过严谨的适应度设计与边界约束处理确保输出路径安全、可行、最优同时提供丰富的可视化结果直观呈现路径规划效果。2 无人机三维飞行环境建模2.1 三维高精度地形建模本研究采用真实栅格高程数据构建三维地形环境地形信息通过 Excel 文件进行存储与读取分别包含平面网格坐标与对应高度信息。为实现任意位置地形高度的精确获取系统采用二维插值方法对离散地形数据进行连续化处理使无人机在飞行过程中能够实时获取所处位置的准确地形高度。为保证无人机飞行安全系统设定严格的安全高度约束要求无人机在任意位置的飞行高度必须高于对应地形高度并保留一定的安全余量从底层约束杜绝撞地风险提高飞行可靠性。2.2 圆柱形障碍物建模规划空间内的障碍物采用统一的圆柱形模型进行抽象表示每个障碍物由中心坐标与影响半径共同确定。在路径评价过程中系统会对每一个路径点进行碰撞检测判断其是否进入障碍物的禁飞区域。若路径点侵入障碍物范围则将该路径判定为不可行路径并在评价函数中施加较大惩罚值使算法在迭代过程中自动舍弃此类危险解实现严格可靠的避障效果。2.3 三维规划空间与边界约束路径搜索严格限定在由地形范围确定的三维可行空间内所有路径点的坐标均需满足预设的空间边界要求。为提升优化效率与数值稳定性系统在算法迭代过程中将实际坐标归一化到统一区间进行搜索迭代完成后再映射回真实物理空间既简化了优化计算又能保证所有路径点始终处于合法可行的范围之内。3 路径表示方法与多目标优化设计3.1 路径编码与平滑插值处理本系统采用实数编码方式对三维路径进行结构化表示将整条飞行路径离散为若干关键导航点每个导航点包含三维空间坐标信息。为使优化得到的路径更符合无人机实际飞行特性避免出现尖锐转角与突变航迹系统在优化过程中对关键导航点进行高密度插值处理生成数量充足、过渡平滑的飞行路径点使最终输出的航迹连续、流畅、可飞。3.2 多目标综合适应度评价体系路径优劣由多个性能指标共同决定系统将路径总长度、飞行高度安全性、航迹平滑度以及避障可行性进行加权融合形成统一的综合评价函数。评价体系以安全飞行为前提优先保证路径无碰撞、高度合规在此基础上尽可能缩短路径长度、提升航迹平滑性实现多目标协同优化。对于穿越地形、侵入障碍物等不可行路径系统通过惩罚函数使其评价函数值显著增大从而在迭代中被快速淘汰确保算法始终向安全、可行、最优的方向进化。4 基于麻雀搜索算法的路径优化方法4.1 麻雀搜索算法基本原理麻雀搜索算法模拟自然界麻雀群体觅食与躲避天敌的行为将种群个体划分为三种角色发现者负责全局搜索引领种群向食物丰富、适应度更优的区域移动加入者跟随发现者进行觅食在优质解附近开展局部精细搜索预警者负责感知危险当风险出现时驱动种群逃逸避免陷入局部最优。三种角色协同工作使算法在全局探索能力与局部求精能力之间保持良好平衡具备较强的收敛性能与寻优能力。4.2 初始种群生成算法启动时在满足边界约束的前提下随机均匀生成初始路径种群确保初始解分布广泛、多样性充足为后续全局寻优奠定良好基础。初始化过程严格遵循边界限制避免无效初始解提升算法前期搜索效率。4.3 个体位置更新策略发现者在环境安全状态下沿优化方向持续搜索不断拓展优质区域在感知危险时进行随机逃逸增强全局探索能力。加入者根据自身适应度大小选择不同的搜索策略适应度较差的个体向全局最优位置快速靠拢适应度较好的个体在最优区域附近进行局部精细搜索。预警者在检测到风险时向安全区域移动有效提升算法跳出局部最优的能力。通过三类个体有序的位置更新算法逐步收敛至全局最优路径。4.4 边界约束处理机制为防止迭代过程中路径点超出可行空间范围系统采用中间值修正法对越界解进行平滑处理。该方法结合历史位置信息对越界值进行修正相较于直接截断方式更加平滑合理能够有效维持种群多样性提升算法稳定性与收敛速度。5 系统整体实现与运行流程本路径规划系统在 Matlab 环境下采用模块化、参数化编程思想实现代码结构清晰、注释详尽、参数修改便捷具备良好的可读性与可扩展性。系统完整运行流程如下首先读取地形数据文件完成三维环境建模设置起点、终点、障碍物参数与飞行安全约束随后配置算法相关参数包括种群规模、最大迭代次数、发现者比例、预警者比例、安全阈值等接着初始化路径种群开始迭代优化每一代迭代依次完成路径解码、平滑插值、适应度计算、个体角色划分、位置更新、边界约束修正与全局最优解更新当达到最大迭代次数后算法终止并输出最优路径最后系统自动绘制三维路径图、二维俯视图、二维等高线图与迭代收敛曲线并以高清格式自动保存至指定文件夹便于结果查看与论文使用。6 仿真实验与结果分析6.1 实验环境与参数设置实验在 Matlab 2023b 平台运行采用真实地形栅格数据构建高精度三维环境设置明确的起点、终点与多个圆柱形障碍物。算法参数经过多次调试与优化在寻优精度、收敛速度与运行效率之间达到最佳平衡保证系统能够稳定输出高质量路径。6.2 结果可视化输出系统自动生成四类直观清晰的可视化结果三维地形与最优路径图可完整展示空间航迹、地形起伏与障碍物分布二维俯视图清晰呈现路径在平面内的绕行策略与避障效果等高线图结合地形高度展示路径起伏变化收敛曲线直观反映算法迭代过程与收敛性能。所有图片均以高清格式自动保存可直接用于报告、图纸与学术论文。6.3 实验结果综合分析大量仿真实验结果表明本文所提基于麻雀搜索算法的三维路径规划方法具有优异的综合性能第一路径完全可行能够有效避开所有障碍物飞行高度始终高于地形满足安全飞行约束第二航迹质量优异路径长度更短、转向平滑、起伏自然高度符合无人机飞行动力学特性第三算法收敛速度快迭代前期快速下降后期稳定收敛无明显震荡与早熟现象第四系统运行稳定可靠边界约束处理有效多次重复实验结果一致性强具备较强的鲁棒性。7 结论与展望7.1 结论本文提出一种基于麻雀搜索算法的无人机三维路径规划方法构建了集高精度地形建模、路径编码与平滑、多目标优化评价、约束处理、迭代寻优及可视化输出于一体的完整系统。实验结果充分证明麻雀搜索算法能够高效、稳定地求解复杂三维环境下的无人机路径规划问题所规划路径满足安全、无碰撞、短长度、平滑可飞等工程实际需求。系统代码完整、可直接运行、参数易于调整、注释清晰具有较强的实用性与通用性适用于课程设计、毕业设计、智能优化算法教学与无人机航线初步设计等场景。7.2 未来展望未来可在现有研究基础上进行多方向扩展与深化引入动态障碍物与实时感知信息实现动态未知环境下的在线实时路径规划结合自适应调整、混沌优化、变异策略等手段改进麻雀搜索算法进一步提升寻优精度与收敛速度将算法扩展至多无人机协同路径规划加入航迹冲突消解与任务分配机制将优化算法与无人机飞控硬件进行对接实现算法实物部署与实际飞行验证提升工程应用价值。第二部分——运行结果可视化代码%% 函数功能绘制SSA算法寻优得到的三维/二维路径图收敛曲线并自动保存图片% 输入参数% BestSol算法得到的最优解结构体包含路径坐标、迭代代价等信息% model环境模型结构体包含地形数据、起点终点、障碍物、坐标范围等信息function PlotSolution(BestSol ,model)%% 1. 初始化创建图片保存文件夹 % 定义保存图片的文件夹名称folderPath (自动保存寻优结果);% 判断文件夹是否存在不存在则新建文件夹if ~exist(folderPath, dir)mkdir(folderPath);end%% 2. 绘制第一张图三维地形最优路径 figure(1) % 创建第1个图形窗口% 绘制三维地形网格图x/y/z_data为地形坐标数据mesh( model.x_data , model.y_data , model.z_data );hold on % 保持绘图窗口后续图形叠加绘制colorbar; % 显示颜色条box on; % 显示坐标轴边框colormap summer; % 设置配色为summer黄绿色系set(gcf,Color,[1 1 1]); % 设置图形背景为白色% 绘制最优路径红色实线h3 plot3( BestSol.sol.xx , BestSol.sol.yy , BestSol.sol.zz , -r);hold on% 绘制起点蓝色实心圆点h1 plot3( model.xs, model.ys, model.zs, o , ...MarkerEdgeColor,b, MarkerFaceColor,b);hold on% 绘制终点绿色实心三角h2 plot3( model.xt , model.yt , model.zt, ^ , ...MarkerEdgeColor,g, MarkerFaceColor,g);hold on% 判断如果模型中包含障碍物绘制圆柱形无法通行区域 if isfield( model ,Barrier)% 遍历所有障碍物for ind 1: model.Num_Barrier% 生成圆柱体数据半径为Barrier第3列20个边数[X,Y,Z] cylinder( model.Barrier(ind, 3) ,20);% 绘制圆柱体平移到障碍物坐标位置高度匹配地形h4 surf(Xmodel.Barrier(ind, 1),Ymodel.Barrier(ind, 2), ...model.zminZ*( max(model.z_data(:))- model.zmin) );hold onset(h4, edgecolor,k,facecolor, c) ; % 设置边框黑色填充青色endend% 设置图例有无障碍物图例内容不同 if ~isfield( model ,Barrier)% 无障碍物显示起点、终点、路径legend( [h1 , h2 , h3] , 起点 , 终点 , 线路, ...Location,southoutside , Orientation,horizontal)else% 有障碍物显示起点、终点、路径、无法通行区域legend( [h1 , h2 , h3 h4] , 起点 , 终点 , 线路 , 无法通行区域 , ...Location,southoutside, Orientation,horizontal)end% 设置坐标轴标签字体12号Times New Romanxlabel(x / km,fontsize,12 ,fontname,Times new roman);ylabel(y / km,fontsize,12 ,fontname,Times new roman);zlabel(z / km,fontsize,12 ,fontname,Times new roman);% 限制坐标轴范围为模型的最大/最小坐标set(gca, xlim , [model.xmin model.xmax]) ;set(gca, ylim , [model.ymin model.ymax]) ;title(SSA获得的最佳三维路径) % 图标题axis tight % 紧凑显示坐标轴axis normal % 标准坐标轴比例hold off % 关闭绘图保持% 设置相机视角调整三维图观察角度set(gca, cameraposition, [-337 , 0 , 14.2])% 拼接保存路径文件名filename fullfile(folderPath, [3D-SSA, .jpg]);% 保存为高清JPG图片分辨率900DPIprint(-djpeg, -r900, filename);%% 3. 绘制第二张图二维俯视图三维地形投影 figure(2) % 创建第2个图形窗口mesh( model.x_data , model.y_data , model.z_data );hold onview(2) % 切换为二维俯视图从上往下看colorbar; box on;colormap summer;set(gcf,Color,[1 1 1]);% 绘制最优路径红色实线h3 plot3( BestSol.sol.xx , BestSol.sol.yy , BestSol.sol.zz , -r);hold on% 绘制起点蓝色圆点h1 plot3( model.xs, model.ys, model.zs, o , ...MarkerEdgeColor,b, MarkerFaceColor,b);hold on% 绘制终点绿色三角h2 plot3( model.xt , model.yt , model.zt, ^ , ...MarkerEdgeColor,g, MarkerFaceColor,g);hold on% 绘制障碍物如果存在if isfield( model ,Barrier)for ind 1: model.Num_Barrier[X,Y,Z] cylinder( model.Barrier(ind, 3) ,20);h4 surf(Xmodel.Barrier(ind, 1),Ymodel.Barrier(ind, 2), ...model.zminZ*( max(model.z_data(:))- model.zmin) );hold onset(h4, edgecolor,k,facecolor, c) ;endend% 设置图例if ~isfield( model ,Barrier)legend( [h1 , h2 , h3] , 起点 , 终点 , 线路, ...Location,southoutside , Orientation,horizontal)elselegend( [h1 , h2 , h3 h4] , 起点 , 终点 , 线路 , 无法通行区域 , ...Location,southoutside, Orientation,horizontal)end% 坐标轴标签与范围设置xlabel(x / km,fontsize,12 ,fontname,Times new roman);ylabel(y / km,fontsize,12 ,fontname,Times new roman);zlabel(z / km,fontsize,12 ,fontname,Times new roman);set(gca, xlim , [model.xmin model.xmax]) ;set(gca, ylim , [model.ymin model.ymax]) ;title(SSA获得的最佳二维路径)axis tightaxis normalhold off% 保存二维俯视图filename fullfile(folderPath, [2D-1-SSA, .jpg]);print(-djpeg, -r900, filename);%% 4. 绘制第三张图二维等高线图 figure(3) % 创建第3个图形窗口% 绘制地形等高线图contour( model.x_data , model.y_data , model.z_data );hold oncolorbar; box on;colormap summer;set(gcf,Color,[1 1 1]);% 绘制最优路径h3 plot3( BestSol.sol.xx , BestSol.sol.yy , BestSol.sol.zz , -r);hold on% 绘制起点h1 plot3( model.xs, model.ys, model.zs, o , ...MarkerEdgeColor,b, MarkerFaceColor,b);hold on% 绘制终点h2 plot3( model.xt , model.yt , model.zt, ^ , ...MarkerEdgeColor,g, MarkerFaceColor,g);hold on% 绘制障碍物如果存在if isfield( model ,Barrier)for ind 1: model.Num_Barrier[X,Y,Z] cylinder( model.Barrier(ind, 3) ,20);h4 surf(Xmodel.Barrier(ind, 1),Ymodel.Barrier(ind, 2), ...model.zminZ*( max(model.z_data(:))- model.zmin) );hold onset(h4, edgecolor,k,facecolor, c) ;endend% 设置图例if ~isfield( model ,Barrier)legend( [h1 , h2 , h3] , 起点 , 终点 , 线路, ...Location,southoutside , Orientation,horizontal)elselegend( [h1 , h2 , h3 h4] , 起点 , 终点 , 线路 , 无法通行区域 , ...Location,southoutside, Orientation,horizontal)end% 坐标轴与标题设置xlabel(x / km,fontsize,12 ,fontname,Times new roman);ylabel(y / km,fontsize,12 ,fontname,Times new roman);zlabel(z / km,fontsize,12 ,fontname,Times new roman);title(SSA获得的最佳二维路径)set(gca, xlim , [model.xmin model.xmax]) ;set(gca, ylim , [model.ymin model.ymax]) ;axis tightaxis normalhold off% 保存等高线图filename fullfile(folderPath, [2D-2-SSA, .jpg]);print(-djpeg, -r900, filename);%% 5. 绘制第四张图算法收敛曲线 figure(4) % 创建第4个图形窗口% 半对数坐标绘制收敛曲线放大小数值变化semilogy( BestSol.BestCost ,LineWidth,2);hold on% 普通坐标绘制收敛曲线plot( BestSol.BestCost ,LineWidth,2);hold off% 坐标轴与标题xlabel(迭代次数);ylabel(目标函数);title(迭代曲线)legend(SSA) % 图例算法名称grid on; % 显示网格% 限制X轴范围为最大迭代次数set(gca,XLim,[0 BestSol.MaxIt]);% 保存收敛曲线图片filename fullfile(folderPath, [收敛曲线, .jpg]);print(-djpeg, -r900, filename);end第三部分——参考文献文章中一些内容引自网络会注明出处或引用为参考文献难免有未尽之处如有不妥请随时联系删除。(文章内容仅供参考具体效果以运行结果为准)第四部分——本文完整资源下载资料获取更多粉丝福利MATLAB|Simulink|Python|数据|文档等完整资源获取​

更多文章