
欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab路径规划仿真内容点击①Matlab路径规划进阶版②付费专栏Matlab路径规划初级版⛳️关注CSDN海神之光更多资源等你来⛄一、无人机简介0 引言随着现代技术的发展飞行器种类不断变多应用也日趋专一化、完善化如专门用作植保的大疆PS-X625无人机用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机以及用作水下救援的白鲨MIX水下无人机等决定飞行器性能主要是内部的飞控系统和外部的路径规划问题。就路径问题而言在具体实施任务时仅靠操作员手中的遥控器控制无人飞行器执行相应的工作可能会对操作员心理以及技术提出极高的要求为了避免个人操作失误进而造成飞行器损坏的危险一种解决问题的方法就是对飞行器进行航迹规划。飞行器的测量精度航迹路径的合理规划飞行器工作时的稳定性、安全性等这些变化对飞行器的综合控制系统要求越来越高。无人机航路规划是为了保证无人机完成特定的飞行任务并且能够在完成任务的过程中躲避各种障碍、威胁区域而设计出最优航迹路线的问题。1 常见的航迹规划算法图1 常见路径规划算法文中主要对无人机巡航阶段的航迹规划进行研究假设无人机在飞行中维持高度与速度不变那么航迹规划成为一个二维平面的规划问题。在航迹规划算法中,A算法计算简单容易实现。在改进A算法基础上提出一种新的、易于理解的改进A算法的无人机航迹规划方法。传统A算法将规划区域栅格化节点扩展只限于栅格线的交叉点在栅格线的交叉点与交叉点之间往往存在一定角度的两个运动方向。将存在角度的两段路径无限放大、细化然后分别用两段上的相应路径规划点作为切点找到相对应的组成内切圆的圆心然后作弧并求出相对应的两切点之间的弧所对应的圆心角根据下式计算出弧线的长度式中R———内切圆的半径α———切点之间弧线对应的圆心角。⛄二、差分进化算法简介1 差分进化算法的介绍差分进化算法(Differential Evolution, DE)是一种基于群体差异的启发式随机搜索算法该算法是由R.Storn和K.Price为求解Chebyshev多项式而提出的。DE算法也属于智能优化算法与前面的启发式算法如ABCPSO等类似都属于启发式的优化算法。DE算法是我在一篇求解盒子覆盖问题论文中使用的一种优化算法。2 差分进化算法的流程1初始化种群2变异3交叉4选择3 差分进化的具体步骤对于无约束优化问题4、选择在DE中采用的是贪婪选择的策略即选择较优的个体作为新的个体。⛄三、部分源代码%清空环境clear;%定义地形对象cTerrain CTerrain3D;%定义威胁区对象cTread CTread;%调整为统一的图形环境figure(‘Renderer’,‘opengl’);%绘制地形和威胁区cTerrain.draw();cTread.draw();%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%数据形式说明%xs 初始点位置集合三维点集%yt 目标点位置集合三维点集%MxsEna 能力矩阵集合中的二元组表示最大最小飞行速度%MxsDIs 最大航程矩阵集合中的值表示UAV最大可飞的距离%MytTOrd 任务点间的时序坐标要求尽量在前面的先执行%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调用目标分配算法%AssignType表示不同的模型1, NM; 2, NM; 3, NM%Key表示算法执行次数, 0执行一次1执行多次AssignType 1;Key 0;%时间测试Time cputime;%% 第一种情况的实验if AssignType 1%%%%%%%%%%%%%%%%%%%%%%%数据区%%%%%%%%%%%%xs [%11 2 3;2 17 5; 34 26 7;5 2 2;6 33 3;27 34 6;21 45 5;25 12 3;22 17 11;13 31 12;%45 21 11; 36 22 11;13 21 16;41 25 10;25 25 11;53 12 14;22 12 12;18 32 11; 67 34 12;26 16 15;78 20 15;93 31 12;31 20 13;112 32 15; 134 26 17;45 52 12;36 63 13;67 34 16;21 85 15;32 62 13;];yt [%40 210 12;170 90 13 ; 80 197 21 ;172 120 13;160 56 13;160 143 21;170 200 21;113 200 12;97 134 16;100 145 11;%81 101 21; 72 152 12; 133 60 11;84 164 21; 150 90 21;146 121 12; 167 54 12; 108 165 12;99 120 21;110 143 11;70 181 12;15 133 13 ; 19 151 12 ;160 192 13;101 120 23;160 113 12;82 101 11;173 140 12;182 65 14; 128 156 12;];MxsEna[%0.2 0.3; 0.2 0.4;0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3; 0.2 0.4; % 0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6; 0.2 0.3; 0.2 0.4;0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.3 0.5;0.3 0.6;]; MxsDis[%400 700 650 500 700 900 450 610 400 700 %650 500 700 900 450 610 700 900 450 610 500 700 300 350 700 900 450 610 450 610]; ytW [%1 3 4 2 1 1 3 2 1 2 %3 2 1 3 2 1 2 3 2 1 1 1 1 1 1 1 1 1 1 1]; MytTOrd[3 4; 5 2; 6 8; 7 4;]; %引入新的协同矩阵最大起始时间矩阵 Twait []; Twindow[]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if Key 0 %%%%%%%%%%%%%%%%%%%%%%算法执行区%%%%%%%%%%%%%%%%%% %调用目标分配算法并取得解和相关数据,计算算法耗费时间 %定义目标分配算法对象 DDE1 DMDEAssignTarget(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd,Twait,Twindow,1); % MC Cal1.GetMcost(); %Cal1 CallocationTargetOld1(cTerrain); %标签显示文字 xlabel(X/km) ylabel(Y/km) zlabel(Z/km) %DDEAssign1DDEAssignTarget1(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd); %执行run并返回结果集 t1 cputime; [solU solT solC solF ] DDE1.run(); Time cputime -t1; % %结果 solU solT solC solF Time else if Key 1 for i1:10 DDE1 DMDEAssignTarget(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd,Twait,Twindow,i); % MC Cal1.GetMcost(); %Cal1 CallocationTargetOld1(cTerrain); %标签显示文字 xlabel(X/km) ylabel(Y/km) zlabel(Z/km) %DDEAssign1DDEAssignTarget1(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd); %执行run并返回结果集 t1 cputime; [solU solT solC solF ] DDE1.run(); solu(i,:) solU; solt(i,:) solT; solc(i,:) solC; solf(i,:) solF; Time(i,:) cputime -t1; end %i % %结果 solu solt solc solf Time end % key1 end % key0else if AssignType 2%% 第二种实验的情况%%%%%%%%%%%%%%%%%%%%%%%数据区%%%%%%%%%%%%xs [%11 2 3;2 17 5; 34 26 7;5 2 2;6 33 3;27 34 6;21 45 5;25 12 3;22 17 11;13 31 12;%45 21 11; 36 22 11;13 21 16;41 25 10;25 25 11;53 12 14;22 12 12;18 32 11; 67 34 12;26 16 15;78 20 15;93 31 12;31 20 13;112 32 15; 134 26 17;45 52 12;36 63 13;67 34 16;21 85 15;32 62 13;];yt [%40 210 12;170 90 13 ; 80 197 21 ;172 120 13;160 56 13;160 143 21;170 200 21;113 200 12;97 134 16;100 145 11;%81 101 21; 72 152 12; 133 60 11;84 164 21; 150 90 21;146 121 12; 167 54 12; 108 165 12;99 120 21;110 143 11;70 181 12;15 133 13 ; 19 151 12 ;160 192 13 ];MxsEna[%0.2 0.3; 0.2 0.4;0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3; 0.2 0.4; % 0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6; 0.2 0.3; 0.2 0.4;0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.3 0.5;0.3 0.6;]; MxsDis[%400 700 650 500 700 900 450 610 400 700 %650 500 700 900 450 610 700 900 450 610 500 700 300 350 700 900 450 610 450 610]; ytW [%1 3 4 2 1 1 3 2 1 2 %3 2 1 3 2 1 2 3 2 1 1 1 1 1]; %这个数据里都代表的是目标点是目标点与目标点的关系 MytTOrd[3 2]; %引入新的协同矩阵最大起始时间矩阵 Twait [30 40 20 15 50 70 30 80 90 65]; Twindow[]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if Key 0 else if Key 1 for i1:20 DDE1 DMDEAssignTarget(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd,Twait,Twindow,i); % MC Cal1.GetMcost(); %Cal1 CallocationTargetOld1(cTerrain); %标签显示文字 xlabel(X/km) ylabel(Y/km) zlabel(Z/km) %DDEAssign1DDEAssignTarget1(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd); %执行run并返回结果集 t1 cputime; [solU solT solC solF ] DDE1.run(); solu(i,:) solU; solt(i,:) solT; solc(i,:) solC; solf(i,:) solF; Time(i,:) cputime -t1; end %i % %结果 solu solt solc solf Time end % key1 end % key0 else if AssignType 3 %% 第三种实验的情况 %%%%%%%%%%%%%%%%%%%%%%%数据区%%%%%%%%%%%% xs [%11 2 3;2 17 5; 34 26 7;5 2 2;6 33 3;27 34 6;21 45 5;25 12 3;22 17 11;13 31 12; %45 21 11; 36 22 11;13 21 16;41 25 10;25 25 11;53 12 14;22 12 12;18 32 11; 67 34 12;26 16 15; 78 20 15;93 31 12;31 20 13;112 32 15]; yt [%40 210 12;170 90 13 ; 80 197 21 ;172 120 13;160 56 13;160 143 21;170 200 21;113 200 12;97 134 16;100 145 11; %81 101 21; 72 152 12; 133 60 11;84 164 21; 150 90 21;146 121 12; 167 54 12; 108 165 12;99 120 21;110 143 11; 70 131 12;15 133 13 ; 19 151 12 ;160 192 13;101 120 23;160 113 12;82 101 11;173 140 12;182 65 14; 45 176 12;]; MxsEna[%0.2 0.3; 0.2 0.4;0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3; 0.2 0.4; % 0.4 0.75;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6;0.2 0.3;0.35 0.45;0.3 0.5;0.3 0.6; 0.2 0.5; 0.3 0.4;0.4 0.75;0.3 0.45]; MxsDis[%400 700 650 500 700 900 450 610 400 700 %650 500 700 900 450 610 700 900 450 610 700 700 900 650]; ytW [%1 3 4 2 1 1 3 2 1 2 %3 2 1 3 2 1 2 3 2 1 1 1 1 1 1 1 1 1 1 1]; MytTOrd[3 4; 5 2]; %引入新的协同矩阵最大起始时间矩阵 Twait [30 40 20 15]; Twindow[1300,6000]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if Key 0 %%%%%%%%%%%%%%%%%%%%%%算法执行区%%%%%%%%%%%%%%%%%% %调用目标分配算法并取得解和相关数据,计算算法耗费时间 %定义目标分配算法对象 DDE1 DMDEAssignTarget(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd,Twait,Twindow,1); % MC Cal1.GetMcost(); %Cal1 CallocationTargetOld1(cTerrain); %标签显示文字 xlabel(X/km) ylabel(Y/km) zlabel(Z/km) %DDEAssign1DDEAssignTarget1(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd); %执行run并返回结果集 t1 cputime; [solU solT solC solF] DDE1.run(); Time cputime -t1; % %结果 solU solT solC solF Time else if Key 1 for i1:20 DDE1 DMDEAssignTarget(cTerrain,xs,yt,MxsEna,MxsDis,ytW,MytTOrd,Twait,Twindow,i); % MC Cal1.GetMcost(); %Cal1 CallocationTargetOld1(cTerrain); %标签显示文字 xlabel(X/km) ylabel(Y/km) zlabel(Z/km) t1 cputime; [solU solT solC solF ] DDE1.run(); solu(i,:) solU; solt(i,:) solT; solc(i,:) solC; solf(i,:) solF; Time(i,:) cputime -t1; end %i % %结果 solu solt solc solf Time end % key1 end % key0 end % type 3 end % type 2end % type1⛄四、运行结果⛄五、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]丁柏圆,郑凯元,刘承禹,李云鹏,孙健,孙卫民,游世勋.基于改进差分进化的多无人机协同航迹欺骗算法研究[J].航天电子对抗. 2021,37(05)3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合