✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。
🔥 内容介绍
一、引言:多无人机协同航迹规划 —— 复杂任务的核心支撑
多无人机协同作业在军事侦察、应急救援、环境监测等场景中具有显著优势(如覆盖范围广、任务效率高),而三维航迹规划是实现协同作业的关键前提 —— 需为每架无人机规划出满足航程、高度、威胁规避、协同约束的最优航迹,同时确保多机空间避撞与时间同步。
传统单无人机航迹规划算法(如 A*、RRT)难以适配多机协同的复杂约束(如时间协同、空间避撞);而单一优化算法在多目标、多约束寻优中易陷入局部最优。本文提出粒子群算法(PSO)+ 灰狼优化(GWO)+ 鲸鱼优化(WOA) 的多无人机协同三维航迹规划方案:通过融合三种智能优化算法的寻优优势,构建多约束适应度函数,实现 “航程最优、威胁最小、协同高效、避撞安全” 的三维航迹规划,适配复杂作业场景需求。
二、核心基础:多无人机协同规划的约束条件与建模
多无人机协同三维航迹规划需兼顾 “个体约束” 与 “协同约束”,确保航迹的可行性、安全性与协同性,具体约束建模如下:
Image
三、核心算法:三种智能优化算法的适配与改进
PSO、GWO、WOA 均为群体智能优化算法,通过模拟生物群体行为实现寻优,针对多无人机协同规划的多约束特性,需进行针对性适配:
- 粒子群算法(PSO):快速收敛的基础寻优
Image
⛳️ 运行结果
Image
Image
Image
📣 部分代码
h22 = plot3([UAV.Start(ii,1) X((j-1)*UAVnum+ii,:) UAV.Goal(ii,1)],...
[UAV.Start(ii,2) Y((j-1)*UAVnum+ii,:) UAV.Goal(ii,2)],...
[ UAV.Start(ii,3) Z((j-1)*UAVnum+ii,:) UAV.Goal(ii,3)], 'Color', colors{4}, 'LineWidth', 2);hold on % 修改这里
hold on
ii=3;
h33 = plot3([UAV.Start(ii,1) X((j-1)*UAVnum+ii,:) UAV.Goal(ii,1)],...
[UAV.Start(ii,2) Y((j-1)*UAVnum+ii,:) UAV.Goal(ii,2)],...
[ UAV.Start(ii,3) Z((j-1)*UAVnum+ii,:) UAV.Goal(ii,3)], 'Color', colors{7}, 'LineWidth', 2);hold on % 修改这里
hold on
% legend([h1,h2,h3],{'UAV-1','UAV-2','UAV-3'})
subtitle(Curve_name(j),'FontSize',12,'FontName','Times New Roman')
[Xx,Yy] = meshgrid(1:MAPSIZE_X,1:MAPSIZE_Y);
s=mesh(Xx,Yy,H); % Plot the data
s.FaceColor = 'flat';
colormap summer; % Default color map.
% set(gca, 'Position', [0 0 1 1]); % Fill the figure window.
axis equal vis3d on; % Set aspect ratio and turn off axis.
shading interp; % Interpolate color across faces.
material dull; % Mountains aren't shiny.
camlight left; % Add a light over to the left somewhere.
lighting gouraud; % Use decent lighting.
xlabel('x [m]','FontSize',12,'FontName','Times New Roman');
ylabel('y [m]','FontSize',12,'FontName','Times New Roman');
zlabel('z [m]','FontSize',12,'FontName','Times New Roman');
zlim([0,max(max(Z))+50])
hold on
%% 修改视角 不同的视角可以从这里修改 俯视图view(0,90) 侧视图view(-90,0) 正视图view(0,0)
view(0,90)
box on
grid on
% 火炮
for i = 1:size(threats_other,1)
a = threats_other(i,1);
b = threats_other(i,2);
c = threats_other(i,3);
R = threats_other(i,4);
% 生成数据
[x,y,z] = sphere(15);
% 调整半径
x = R*x;
y = R*y;
z = R*z;
% 调整球心
x = x+a;
y = y+b;
z = z+c;
h1=surf(x,y,z);
hold on
h1.EdgeColor = [.5, 0.18, .14];
h1.FaceColor = [0.69, 0.09, 0.12];
h1.FaceAlpha = 0.7;
end
% 雷达
for i =1:size(threats_radar,1)
a = threats_radar(i,1);
b = threats_radar(i,2);
c = threats_radar(i,3);
R = threats_radar(i,4);
% 生成数据
[x,y,z] = sphere(15);
% 调整半径
x = R*x;
y = R*y;
z = R*z;
% 调整球心
x = x+a;
y = y+b;
z = z+c;
h2=surf(x,y,z);
hold on
h2.EdgeColor = [0, 0, 0];
h2.FaceColor = [0.75, 0.75, 0.75];
h2.FaceAlpha = .7;
end
% h=250; % Height
for i = 1:NFZ_num
NFZ_x = NFZ(i,1);
NFZ_y = NFZ(i,2);
NFZ_z = NFZ(i,3);
NFZ_radius = NFZ(i,4);
scatter3(NFZ_x, NFZ_y, max(max(H))+20,5,'filled', 'MarkerFaceColor','r');
theta = linspace(0, 2 * pi, 2000);
% Create the x and y locations at each angle:
x = NFZ_radius * cos(theta) + NFZ_x;
y = NFZ_radius * sin(theta) + NFZ_y;
% Need to make a z value for every (x,y) pair:
z = zeros(1, numel(x)) + max(max(H))+20;
plot3(x, y, z, '-', 'color', [0.24,0.35,0.67], 'LineWidth', 2);
end
% 起点/终点
p1= scatter3(UAV.Start(1,1),UAV.Start(1,2),UAV.Start(1,3),100,'bs','MarkerFaceColor','y'); hold on
p2= scatter3(UAV.Goal(1,1),UAV.Goal(1,2),UAV.Goal(1,3),100,'kp','MarkerFaceColor','y');
scatter3(UAV.Start(2,1),UAV.Start(2,2),UAV.Start(2,3),100,'bs','MarkerFaceColor','y');
scatter3(UAV.Goal(2,1),UAV.Goal(2,2),UAV.Goal(2,3),100,'kp','MarkerFaceColor','y');
scatter3(UAV.Start(3,1),UAV.Start(3,2),UAV.Start(3,3),100,'bs','MarkerFaceColor','y');
scatter3(UAV.Goal(3,1),UAV.Goal(3,2),UAV.Goal(3,3),100,'kp','MarkerFaceColor','y');
if j==3
legend([p1,p2,h11,h22,h33],{'Start','End','UAV-1','UAV-2','UAV-3'},'FontSize',12,'FontName','Times New Roman') ; hold on
end
clear h11 h22 h33
end
% title('Multi-UAV Path Planning','FontSize',12,'FontName','Times New Roman')
end
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦: