基于粒子群优化和行为控制的无人机在最优多跳自组织网络中的部署(Matlab代码实现)

     👨‍🎓个人主

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文章下载


💥1 概述

摘要 — 本研究提出了一种使用多架无人机(UAVs)建立最优多跳自组织网络的方法,以在受灾地区提供紧急通信。该方法包括两个阶段:第一阶段使用粒子群优化(PSO)来确定部署无人机的最优位置;第二阶段使用基于行为的控制器引导无人机在未知环境中避开障碍物,到达指定位置。为了确保所提方法在现实场景中的适用性,我们对无人机的感知和通信范围施加了若干约束。我们开展了多项从真实环境中加载数据的仿真实验。结果表明,我们提出的方法不仅成功建立了多跳自组织路由,还满足了无人机实时部署的要求。

关键词 — 无人机(UAVs)、搜索与救援、粒子群优化(PSO)、行为控制

一、引言

当自然灾害发生时,维持受灾地区与救援协调中心之间的通信链路对于有效协调搜索和救援行动至关重要。由于现有的通信基础设施在灾难中可能遭到损坏或摧毁,通常需要一个紧急无线网络。在这种情况下,自组织网络提供了一个相关的解决方案,因为它们在恶劣条件下具有可靠性,并且可以在不需要现有通信基础设施的情况下快速部署[1],[2]。在[3]–[5]中讨论了这些网络的使用,其中利用卫星、移动设备和仍然活跃的基站来形成网络。然而,由于这些网络依赖于剩余的活跃设备,而在灾难期间这些设备很难管理,因此这些网络的灵活性和可扩展性仍然受到限制。

最近,无人机(UAVs)因其在工作环境中的机动性以及携带不同类型传感器的能力,在搜索和救援应用中展现出了潜力[6]–[8]。已有若干研究针对基于无人机的网络通信相关问题展开,例如路由协议[9]、数据认证方案[10]、拓扑控制[11]和介质访问控制[12]。然而,对于未知环境中无人机的位置分配和路径规划问题,目前研究还较为缺乏。在建立多跳自组织路由时,有必要优化无人机节点的位置以实现高效的信号传输,同时还需确定引导每架无人机到达目标位置的路径,以确保无人机的安全运行。

在本工作中,我们提出了一种在未知环境中部署多架无人机以建立自组织网络的新方法。首先,我们将寻找每架无人机的最优位置表述为一个优化问题,并使用粒子群优化(PSO)来求解。然后,我们提出了一种基于行为的目标跟踪控制方法,以引导无人机在避开障碍物的同时到达其最优位置。仿真结果表明,所提出的方法能够在复杂环境中建立基站与受灾地区之间的通信链路,计算出的位置和路径对于无人机的运行也是安全且高效的。

二、问题表述

本工作专注于建立一个最优的多跳自组织路由,该路由通过一系列无人机节点连接基站和受灾地区,如图1a所示。无人机作为中间路由器来转发信息。每架无人机都配备了GPS模块和惯性测量单元(IMU),以确定其相对于全球坐标系的位置和方向。我们假设无人机具有可以检测障碍物的传感器系统,以及能够在范围内与其他无人机进行点对点通信的网络模块。我们还假设无人机的数量是足够的,并且受灾地区的地理位置是已知的。

七、结论

在本工作中,我们提出了一种新的方法,利用分布式无人机系统在灾害响应场景中形成多跳自组织路由以提供通信。所提出的方法结合了基于粒子群优化(PSO)算法的搜索方法,用于寻找放置网络节点的最优位置,以及一个分布式基于行为的控制器,用于协调无人机沿已建立的路由移动,以到达其期望位置,同时避免与障碍物和其他无人机发生碰撞。评估结果表明,所提出的方法能够在复杂且充满障碍物的环境中建立自组织网络。无人机的部署位置和飞行路径接近其理想值,计算时间也足以满足实时操作的需求。这些结果证实了我们的方法在现实场景中的效率和适用性。

📚2 运行结果

主函数部分代码:

clc;

clear;

close all;

model = CreateModel2();

file = load('drone.mat');

uavs = file.uavs;

figure();

set(gcf, 'Position', get(0, 'Screensize'));

iter = 0;

% Plot model

mesh(model.X,model.Y,model.H);  % Plot the data

colormap pink;         % 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]');

ylabel('y [m]');

zlabel('z [m]');

hold on

% Plot threats

threats = model.threats;

threat_num = size(threats,1);

h=250; % Height

for i = 1:threat_num

  threat = threats(i,:);

  threat_x = threat(1);

  threat_y = threat(2);

  threat_z = threat(3);

  threat_radius = threat(4);

  [xc,yc,zc]=cylinder(threat_radius); % create a unit cylinder

  % set the center and height 

  xc=xc+threat_x;  

  yc=yc+threat_y;

  zc=zc*h+threat_z;

  c = mesh(xc,yc,zc); % plot the cylinder 

  set(c,'Edgecolor','none','Facecolor','black','FaceAlpha',.5); % set color and transparency

end

🎉3 参考文献

 文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

🌈Matlab代码、文章下载

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值