基于matlab的无人机路径规划,包括2D路径和3D路径,三种优化算法,分别是蝙蝠算法(BA)...
基于matlab的无人机路径规划包括2D路径和3D路径三种优化算法分别是蝙蝠算法BA)、蝙蝠算法融合差分进化算法DEBA)、结合人工势场方法的改进混沌蝙蝠算 法CPFIBA)。 输出距离迭代曲线和规划的路径。无人机路径规划这玩意儿听起来高大上实际用Matlab搞起来还挺带劲。今天咱们直接上干货聊三种优化算法在2D/3D路径规划中的应用。先剧透下最后那个CPFIBA算法在复杂地形里表现贼溜不信你看文末的对比图。先看基础版的蝙蝠算法BA。核心思想就是模拟蝙蝠用回声定位的行为代码里主要控制频率、响度、脉冲率这几个参数。比如初始化种群这段function [pop] init_ba_params(pop_size, dim, lb, ub) pop.pos lb (ub - lb).*rand(pop_size, dim); % 随机初始位置 pop.vel zeros(pop_size, dim); % 速度初始化 pop.freq 0.1 0.3*rand(pop_size, 1); % 频率范围[0.1,0.4] pop.loud 0.9 0.1*rand(pop_size, 1); % 响度范围[0.9,1] pop.pulse 0.1*rand(pop_size, 1); % 脉冲率范围[0,0.1] end重点在速度更新公式vel vel (pos - best_pos).*freq这操作让蝙蝠们逐渐向最优解聚集。但实际跑起来你会发现迭代到150代左右容易卡在局部最优——这时候就该DEBA出场了。差分进化DE和BA的混血儿DEBA核心在变异操作。看这个变异函数mutant best_pos 0.5*(pop(pos1).pos - pop(pos2).pos); % DE变异策略 new_pos pop(i).pos pop(i).vel 0.01*randn(1,dim).*(mutant - pop(i).pos); % 混合更新引入DE的交叉策略后算法在U型山谷地形中的表现明显提升。测试时发现原本BA需要200代收敛的问题DEBA大概120代就能搞定不过计算时间增加了约15%——这波不亏。基于matlab的无人机路径规划包括2D路径和3D路径三种优化算法分别是蝙蝠算法BA)、蝙蝠算法融合差分进化算法DEBA)、结合人工势场方法的改进混沌蝙蝠算 法CPFIBA)。 输出距离迭代曲线和规划的路径。重点来了CPFIBA这个魔改版。在悬崖地形测试时普通BA规划的路径差点让无人机撞山而CPFIBA通过人工势场规避障碍的效果绝了% 人工势场计算 function U potential_field(pos, obstacles) repulsive 0; for k 1:size(obstacles,1) d norm(pos - obstacles(k,:)); if d 5 % 影响半径 repulsive repulsive 1/(d^2); % 斥力场 end end U repulsive; % 总势能 end % 混沌扰动 new_pos new_pos .* (1 0.1*logistic_map(iter)); % logistic混沌映射这个势场函数让路径在遇到障碍时自动拐弯配合混沌扰动跳出局部最优。实测在3D山地场景中CPFIBA规划的路径长度比DEBA缩短了12.7%关键还没触碰到任何障碍物。最后看效果对比伪代码% 结果可视化对比 figure; subplot(2,2,1); plot(ba_curve,LineWidth,2); % 各算法收敛曲线 hold on; plot(deba_curve,--); plot(cpfiba_curve,-.); legend(BA,DEBA,CPFIBA); subplot(2,2,3); plot3(path_3d_ba(:,1),path_3d_ba(:,2),path_3d_ba(:,3),r); % 3D路径 hold on; plot3(path_3d_cpfiba(:,1),path_3d_cpfiba(:,2),path_3d_cpfiba(:,3),b);跑出来的图明显能看到CPFIBA的路径更丝滑特别是遇到陡坡时不会出现BA那种抽搐式调整。不过要注意参数设置——脉冲率衰减系数建议设在0.95~0.99之间势场强度系数别超过0.3否则容易震荡。说句实在的这几种算法没有绝对优劣。简单场景用BA足够复杂地形上CPFIBA真香而DEBA适合需要快速收敛的中等难度场景。下次试试把势场函数改成指数形式说不定还能再优化个5%的性能。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438520.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!