一、部分代码
close all clear clc rng('default'); %% 载入数据 data.S=[50,950,12]; %起点位置 横坐标与纵坐标需为50的倍数 data.E=[950,50,1]; %终点点位置 横坐标与纵坐标需为50的倍数 data.Obstacle=xlsread('data1.xls'); data.numObstacles=length(data.Obstacle(:,1)); %% 画图 figure hold on plot(curve,'r','LineWidth',2) xlabel('迭代次数') ylabel('路径长度') legend(str); [~,result]=fobj(Best_pos); drawPc(result,option,data,str) result.path(:,1)=result.path(:,1).*data.unit(1); result.path(:,2)=result.path(:,2).*data.unit(2); result.path(:,3)=result.path(:,3).*data.unit(3); %% 显示路径信息 fprintf("路径坐标:\n"); display(result.path) fprintf("路径长度:%f\n",result.fit);
二、部分结果
路径坐标:
50 950 12
100 900 11
100 850 11
150 800 10
150 750 10
200 700 9
250 650 8
250 600 8
250 550 8
250 500 7
250 450 7
300 400 6
350 400 6
400 350 5
450 350 5
500 350 5
550 300 4
600 300 4
650 300 4
700 300 3
750 250 3
800 200 2
850 150 1
900 100 1
950 50 1
路径长度:1448.611772
三、完整MATLAB代码
基于鹈鹕优化算法POA的复杂城市地形下无人机避障三维航迹规划,可以修改障碍物及起始点(Matlab代码)-CSDN博客
基于北方苍鹰优化算法NGO的复杂城市地形下无人机避障三维航迹规划,可以修改障碍物及起始点(Matlab代码)-CSDN博客