跳到主要内容
城市密集区无人机多目标路径规划:NSGA-II 算法与 Matlab 实现 | 极客日志
MATLAB / Octave AI 算法
城市密集区无人机多目标路径规划:NSGA-II 算法与 Matlab 实现 综述由AI生成 对城市密集区无人机路径规划难题,提出基于 NSGA-II 的多目标优化方案。通过构建包含建筑避障与雷达威胁的复杂场景,利用 B 样条生成平滑轨迹,设计分层罚函数机制处理硬约束与软约束。实现了能耗、威胁暴露及轨迹平滑三大目标的量化评估。实验结果表明,该方案能有效收敛至帕累托前沿,在安全性、经济性与隐蔽性之间取得平衡,为战术决策提供多种最优解选择。
热情 发布于 2026/4/5 更新于 2026/5/27 36 浏览城市密集区的无人机路径规划是无人机自主导航领域的经典难题,其核心痛点在于需要同时满足硬约束防撞 、动力学极限 、多目标性能折中 三大核心要求。本文基于非支配排序遗传算法(NSGA-II) ,实现了城市密集区无人机的多目标路径规划 Matlab 方案,针对建筑避障、雷达威胁、飞行能耗、轨迹平滑等需求完成了全流程建模与开发,通过B 样条轨迹平滑 、分层罚函数机制 、高阶可视化面板 等关键设计,解决了复杂场景下的轨迹穿模、约束违规、多目标权衡等问题。
一、研究背景与问题建模
1.1 城市密集区规划难点
城市密集区存在大量静态硬障碍(高楼建筑)和软威胁(雷达探测),同时无人机受自身动力学约束(最大爬升角、最小转弯半径)限制,路径规划需同时兼顾安全性 、经济性 、隐蔽性 、平滑性 四大核心要求,属于典型的多目标约束优化问题 ,其数学本质为:
其中,J1/J2/J3 分别为能耗代价、雷达威胁暴露代价、轨迹平滑代价;c(X)/ceq(X) 为不等式 / 等式硬约束;lb/ub 为优化变量的上下界。
1.2 算法选型与整体设计
选择NSGA-II 作为核心优化算法,其具备快速非支配排序、拥挤度计算、精英保留策略等优势,能高效求解多目标优化的帕累托前沿解。系统整体采用模块化设计 ,核心模块包括:场景构建、染色体解码与 B 样条轨迹生成、硬约束检验、多目标函数量化与分层惩罚、NSGA-II 优化配置、高阶结果可视化,各模块的调用关系如图 1 所示。
注:核心优化模块通过调用目标函数计算(evaluate_Objectives)和约束检验(evaluate_Constraints)完成每一代种群的评价,轨迹解码模块为目标 / 约束计算提供真实的飞行轨迹数据。
二、核心模块详细实现
本文所有代码基于 Matlab 实现,核心函数均为独立模块,以下按数据流向 对各核心模块进行详细解析,包含关键公式、代码设计思路与核心修复点。
2.1 复杂场景构建模块(build_Scenario.m)
场景是路径规划的基础,本文构建了极限压测版 城市密集区场景,包含硬禁飞区(建筑)和软威胁区(雷达) ,同时定义了无人机飞行的空域约束、动力学约束和拓扑变量,解决了简单场景无法验证算法鲁棒性的问题。
2.1.1 场景核心要素
起终点与空域约束 :起终点拉远至 [100,100,50] 和 [1900,1900,50](单位:m),空域高度限制为 hlow=20 m(极限掠地高度)、hhigh=350 m(最高飞行高度);
硬禁飞区(建筑) :设计三类建筑分布,形成'墙 + CBD 丛林 + 散落障碍'的复杂障碍布局,建筑数据格式为 [xc,yc,R,H](中心坐标、半径、高度),具体包括:
墙:x=600 处排布 6 栋高楼,仅 y=1100 处留狭小缺口,形成'一夫当关'的障碍;
CBD 丛林:终点前 7 栋高低错落的密集建筑,为必经之路;
散落障碍:3 栋大半径建筑,封死边缘绕行路线;
:设计 4 部雷达,数据格式为 [xc,yc,Rdet,S](中心坐标、探测半径、威胁强度),雷达布局形成'陷阱 + 天罗地网'的威胁分布,如死守叹息之墙缺口的致命雷达、笼罩 CBD 的超大范围雷达;
软威胁区(雷达)
动力学与拓扑约束 :最大爬升角放宽至θmax=35°(考验极限拉升能力),航点数量从 6 个升级至 14 个(适配复杂蛇形机动),定义最小转弯半径 Rturn=40 m。
2.1.2 关键参数表 类型 参数名称 数值 / 配置 空域约束 掠地高度 / 最高高度 20m / 350m 动力学约束 最大爬升角 35°(弧度:35π/180) 拓扑变量 航点数量 14 个(解码后含起终点) 硬禁飞区 建筑总数 6+7+3=16 栋 软威胁区 雷达总数 4 部(探测半径 350-550m)
图 2 城市密集区场景 2D 俯视图 (注:深灰色实心圆为建筑,淡红色虚线圆为雷达探测区,绿色点为起点,蓝色点为终点,x/y 轴范围 0-2000m)
2.2 染色体解码与 B 样条轨迹生成 NSGA-II 优化的是抽象染色体变量 ,需通过解码模块转换为真实的三维飞行轨迹 ,本文采用B 样条插值 实现轨迹平滑,同时通过核心修复 解决了轨迹'跨步穿模'问题,是连接优化变量与物理轨迹的关键模块。
2.2.1 染色体编码设计 优化变量采用分层结构化编码 ,每个航点包含 4 个变量 [dx,dy,h,w],分别为 x/y 方向偏移、飞行高度、B 样条权重,总变量数为:
其中 Nwaypoints=14,因此总变量数为 56,变量上下界通过 repmat 设置为 [-150,-150,20,0.1](下界)和 [150,150,350,1.0](上界),杜绝无效空域。
2.2.2 控制点构建 将一维染色体重塑为矩阵后,结合基准航点 和起终点 构建 B 样条控制点,公式为:
其中,(xs,ys,zs) 为起点坐标,(xt,yt,zt) 为终点坐标,xbase/ybase 为起终点间的线性基准航点。
2.2.3 3 阶 B 样条轨迹生成 采用3 阶 B 样条 生成平滑轨迹,其基函数通过递归公式 计算,是保证轨迹连续可微的核心:
其中,t 为节点向量,u∈[0,1] 为归一化参数,k=3 为 B 样条阶数。
其中 CPj 为第 j 个控制点,n 为控制点数量。
2.2.4 核心修复:防跨步穿模 为解决低采样率导致的轨迹跨步穿模 (优化变量的离散航点间轨迹穿透建筑)问题,将采样点数量从默认值提升至250 个 ,大幅提高轨迹分辨率,确保每一段轨迹都能被约束检验模块有效检测。
2.3 硬约束检验模块(evaluate_Constraints.m) 硬约束是无人机飞行的安全底线 ,违反则直接判定为无效解,本文实现了禁飞区防撞约束 和极限动力学约束 两类核心硬约束,采用穿透深度 量化约束违规程度,为 NSGA-II 提供清晰的约束评价指标。
2.3.1 禁飞区防撞约束(核心) 为建筑增加5m 安全保护罩 (核心修复),避免轨迹紧贴建筑导致的安全风险,建筑的实际约束参数为:
其中 R/H 为建筑原始半径 / 高度,R'/H' 为加入安全裕度后的约束参数。
碰撞判定条件 :无人机轨迹上某点的水平距离小于 R'且 高度低于 H',即:
若存在碰撞点,计算最大穿透深度 作为约束违规值(正值表示违规):
2.3.2 极限动力学约束:最大爬升角 爬升角是无人机单位 2D 航程的高度变化,计算公式为:
其中 Δx/Δy/Δz 为相邻轨迹点的坐标变化量。
为限制无人机的极限拉升 / 俯冲,设置爬升角双向约束:
将违规值 max(θ−θmax) 和 max(−θmax−θ) 加入约束数组,确保爬升角在安全范围内。
2.3.3 约束输出格式 最终输出不等式约束数组 c(等式约束 ceq=∅),满足 c≤0 时表示所有硬约束均被遵守,NSGA-II 将剔除 c>0 的严重违规解。
2.4 多目标函数与分层惩罚模块(evaluate_Objectives.m) 多目标函数是路径规划的性能导向 ,本文设计了能耗、威胁、平滑 三个相互冲突的目标函数,同时构建二级混合罚函数机制 (软约束惩罚 + 绝对致死惩罚),实现约束违规的梯度化惩罚 ,是多目标优化的核心模块。
2.4.1 多目标函数量化(三大核心目标) 三个目标函数均为最小化目标 ,相互之间存在折中关系(如隐蔽最优需大迂回,导致能耗增加、轨迹平滑性下降)。
目标 1:综合飞行能耗代价 J1 能耗代价综合考虑巡航能耗 、机动变向能耗 、高度升降能耗 ,采用加权和模型量化,公式为:
偏航角计算:ψ=arctan2(Δy,Δx),机动变向能耗乘以 100 为量级归一化 ,确保三个能耗分量对 J1 的贡献在同一量级。
目标 2:分层累计威胁暴露代价 J2 雷达威胁暴露代价与无人机至雷达的距离 和飞行高度 相关,距离越近、高度越高,暴露代价越大,公式为:
m 为雷达数量,di,r 为无人机第 i 点至第 r 部雷达的水平距离;
Sr 为第 r 部雷达的威胁强度,Rdet,r 为雷达探测半径;
ηi=max(0,(zi−hlow)/(hhigh−hlow)) 为高度因子,地形遮挡会削弱暴露代价。
当 di,r≥Rdet,r 时,无人机处于雷达探测范围外,贡献为 0。
2.4.2 二级混合罚函数机制 为解决约束违规与多目标优化的耦合问题 ,设计软约束惩罚 和绝对致死惩罚 的分层机制,确保轻微违规有梯度惩罚,严重违规直接淘汰。
软约束惩罚:爬升速率轻微违规 ,当爬升速率超过 tan(0.8θmax) 时,判定为轻微违规,惩罚公式为:
其中 νz,viol 为违规的爬升速率值,乘以 1000 为强惩罚 ,引导算法向合规方向优化。
绝对致死惩罚:建筑物理穿越 若轨迹穿透建筑(与约束检验模块的碰撞判定条件一致),直接赋予千万级惩罚 :cdeath=10^7,并立即跳出循环(撞一栋楼即判定死亡)。该惩罚机制确保任何物理穿越建筑的解都会成为帕累托排序的最劣解,被算法强制淘汰。
2.4.3 最终目标函数输出 将惩罚项叠加至原始目标函数,最终输出多目标数组 F:
J3 仅叠加致死惩罚,因轨迹平滑性与爬升速率轻微违规无直接关联,避免过度惩罚。
2.5 NSGA-II 优化核心配置(main_UAV_Planning.m) 作为系统的入口函数 ,该模块完成场景加载、变量配置、NSGA-II 参数设置、算法调用、结果可视化 的全流程调度,核心调用 Matlab 的 gamultiobj 函数(NSGA-II 实现),是多目标优化的总控中心。
2.5.1 关键优化参数配置 NSGA-II 的参数直接影响优化效果和效率,本文针对城市密集区的复杂场景,设置了高种群、高迭代 的参数配置,确保算法能充分搜索解空间,具体参数如表 2 所示。
参数名称 数值 作用 种群大小(PopulationSize) 300 保证解空间搜索的充分性 最大迭代次数(MaxGenerations) 400 确保算法收敛至帕累托前沿 交叉率(CrossoverFraction) 0.8 提升种群的多样性 帕累托前沿保留比例(ParetoFraction) 0.35 保留 35% 的非支配解 显示模式(Display) iter 迭代过程实时打印 绘图函数(PlotFcn) @gaplotpareto 实时绘制帕累托前沿
2.5.2 算法核心调用 通过 gamultiobj 函数实现 NSGA-II 的调用,核心代码如下:
[X_opt, Fval_opt, exitflag, output] = gamultiobj(... @(x) evaluate_Objectives(x, env), nvars, ... [], [], [], [], lb, ub, ... @(x) evaluate_Constraints(x, env), options);
其中,Xopt 为优化后的帕累托最优解集合,Fvalopt 为对应的目标函数值集合,exitflag 为算法收敛标志,output 为迭代过程信息。
三、结果可视化模块 为直观分析多目标优化的帕累托解,本文设计了多维视图 + 动态推演 的高阶可视化面板,实现了轨迹性能分析 、场景融合展示 、动态飞行模拟 的一体化,能快速筛选出能耗最优、隐蔽最优、综合最优 三类核心轨迹,为战术决策提供直观支撑。
3.1 核心解的选取策略 从帕累托最优解集合中,通过极值筛选 和归一化理想点 策略选取三类核心解:
能耗最优解 :J1 最小的解,轨迹具有贴地、直线 倾向,能耗最低但隐蔽性较差;
隐蔽最优解 :J2 最小的解,轨迹具有大迂回、高空 / 低空绕飞 倾向,隐蔽性最好但能耗较高;
综合最优解 :对目标函数进行归一化 后,距离理想点(各目标最小值)最近的解,公式为:
3.2 多子图可视化面板 构建2 行 2 列 的多子图面板,包含全局 3D 视图(占 2 行) 、战术俯视图(右上) 、高程时序剖面图(右下) ,三类视图从不同维度分析轨迹性能,具体功能如下:
3.2.1 全局 3D 视图 展示无人机轨迹与城市场景的 3D 融合效果 ,包含建筑(灰色圆柱)、雷达(半透明红色半球)、起终点(绿色 / 蓝色点)、三类核心轨迹(不同颜色 / 线型),开启高级光照与立体感 ,能直观观察轨迹的 3D 绕飞 / 越障策略。
3.2.2 战术俯视图 展示水平面的避障 / 绕飞策略 ,包含建筑(深灰色实心圆)、雷达(淡红色虚线圆)、轨迹的水平面投影,能清晰分析轨迹如何绕开建筑缺口和雷达探测区。
3.2.3 高程时序剖面图 以累计航程 为 X 轴,飞行高度 为 Y 轴,展示轨迹的垂直面机动策略 ,包含安全飞行走廊(淡蓝色填充区)、极限掠地高度(红色虚线),能直观分析轨迹的高度变化与爬升 / 俯冲策略。
图 4 高程时序剖面图示例 (注:橙色虚线为能耗最优轨迹(贴地飞行),蓝色点线为隐蔽最优轨迹(高度频繁变化绕雷达),绿色实线为综合最优轨迹(高度折中),淡蓝色区为 20-350m 的安全飞行走廊)
四、实验结果与分析 基于上述模块实现,在 Matlab2021b 环境下运行该方案,得到以下核心实验结果:
帕累托前沿收敛性 :经过 400 代迭代,NSGA-II 的帕累托前沿趋于稳定,解分布均匀,表明算法能充分搜索城市密集区的解空间;
核心解性能 :能耗最优解的 J1 约为常规值的 80%,但 J2 约为隐蔽最优解的 3 倍;隐蔽最优解的 J2 降至最低,但 J1 提升约 50%;综合最优解的 J1 和 J2 均处于折中水平,J3 保持较低值,轨迹平滑性良好;
约束合规性 :所有帕累托最优解均满足硬约束(c≤0),无建筑穿越和爬升角违规,表明罚函数机制和约束检验模块能有效引导算法向合规方向优化;
轨迹平滑性 :3 阶 B 样条生成的轨迹连续可微,无明显的急转 / 急升,满足无人机的实际飞行要求。
解类型 能耗代价 J1 威胁代价 J2 平滑代价 J3 核心特点 能耗最优 0.0 1.0 0.2 贴地、直线、能耗最低 隐蔽最优 0.8 0.0 0.7 大迂回、高度机动、隐蔽性最好 综合最优 0.3 0.2 0.1 折中能耗与威胁、平滑性最好
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online