【路径规划】基于fmincon实现无人机航路避障规划附matlab代码

简介: 【路径规划】基于fmincon实现无人机航路避障规划附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

根据敌方防御雷达,防空火力等威胁以及禁飞区的分布情况,构造基于战场威胁中心图,得到可以规避各种威胁的航迹线段,结合战场威胁信息,计算航迹段的代价,形成有向图,计算出无人机初始最优航路,利用无人机初始状态和性能约束进行航路的进一步修正,满足了无人机的飞行特点.并运用MATLAB编制图形化界面,实现仿真结果的图形显示.

⛄ 部分代码

function [M] = make_movie(Path_bez)


global n_obsd obs_d_sp obs_d_v obs_d_s obs_d_cp Dynamic_Obstacles;

global n_obs; %number of obstacles

global obs; %positions of obstacles

global obs_rad; %radius of obstacles


global uav_ws;


global t;


M(length(Path_bez)) = struct('cdata',[],'colormap',[]);


hold on


%plot static obstacles

for j = 1 : n_obs

   

   plot(obs(j,1),obs(j,2),'xb'); % static obstacles' centers

   x = obs(j,1) - obs_rad(j) : 0.001 : obs(j,1)+ obs_rad(j);

   y =  (obs_rad(j)^2 - (x - obs(j,1)).^2).^0.5 + obs(j,2); %top part of circle

   y1 = -(obs_rad(j)^2 - (x - obs(j,1)).^2).^0.5 + obs(j,2); %bottom part of circle

   

   plot(x,y,'b');

   plot(x,y1,'b');

   

end


for i = 1 : length(Path_bez)

 

   %plot uav position and size

   

   x = Path_bez(i,1) - uav_ws : 0.001 : Path_bez(i,1)+ uav_ws;

   y =  (uav_ws^2 - (x - Path_bez(i,1)).^2).^0.5 + Path_bez(i,2); %top part of circle

   y1 = -(uav_ws^2 - (x - Path_bez(i,1)).^2).^0.5 + Path_bez(i,2); %bottom part of circle

   

   plot(x,y,'Color',[0, 0.5, 0]);

   plot(x,y1,'Color',[0, 0.5, 0]);

   

   xlim([0,100]);

   ylim([0,100]);

   

   %plot dynamic obstacles

   

   if Dynamic_Obstacles == 1

       

       %plot small square at center of dynamic obstacles at each time step

       for k = 1 : n_obsd

           

           plot(obs_d_v(k,1)*t(2)*(i-1) + obs_d_sp(k,1),obs_d_v(k,2)*t(2)*(i-1) + obs_d_sp(k,2),'rs');

           

       end

       %plot  dynamic obstacles as circles

       for k = 1 : n_obsd

           

           

           odh = [obs_d_v(k,1)*t(2)*(i-1)+obs_d_sp(k,1), obs_d_v(k,2)*t(2)*(i-1)+obs_d_sp(k,2) ]; % to make it easier to type

           

           x = odh(:,1) - obs_d_s(k) : 0.001 : odh(:,1)+ obs_d_s(k);

           y =  (obs_d_s(k)^2 - (x - odh(:,1)).^2).^0.5 + odh(:,2); %top part of circle

           y1 = -(obs_d_s(k)^2 - (x - odh(:,1)).^2).^0.5 + odh(:,2); %bottom part of circle

           

           plot(x,y,'r');

           plot(x,y1,'r');

       end

   end

   

   M(i) = getframe(gcf);

   

end


hold off


end

⛄ 运行结果

⛄ 参考文献

[1] 杨向东,周汶锋,张陈宏,等.基于无人机倾斜摄影的三维路径规划[J].机电工程技术, 2023, 52(4):6.

[2] 张庆捷,徐华,霍得森,等.基于改进蚁群算法的侦察无人机航路规划与实现[J].运筹与管理, 2007(3):6.DOI:10.3969/j.issn.1007-3221.2007.03.019.

[3] 王绪芝,姚敏,赵敏,等.基于蚁群算法的无人机航迹规划及其动态仿真[J].指挥控制与仿真, 2012, 34(1):4.DOI:10.3969/j.issn.1673-3819.2012.01.007.

[4] 张剑锋,王新民.基于MATLAB的某无人机自动驾驶仪测试系统的实现[C]//中国航空学会轻型飞行器专业委员会2005年学术交流会.2005.

[5] 马云红,周德云.无人机路径规划算法与仿真[J].火力與指揮控制, 2007, 32.

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

⛳️ 代码获取关注我

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


相关文章
|
23天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
28天前
|
存储
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
3月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
3月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
40 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
91 0
|
4月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
4月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
4月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
4月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
3月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
44 0

热门文章

最新文章