【无人机编队】基于matlab领导-跟随和人工势能法无人机协同编队控制【含Matlab源码 3280期】

💥💥💥💥💞💞💞💞💞💞欢迎来到Matlab研究室博客之家💞💞💞💞💞💞💥💥💥💥
在这里插入图片描述
✅博主简介:985研究生,热爱科研的Matlab仿真开发者,完整代码 论文复现 程序定制 期刊写作 科研合作 扫描文章底部QQ二维码。
🍎个人主页:Matlab研究室
🏆代码获取方式:扫描文章底部QQ二维码
⛳️座右铭:行百里者,半于九十;路漫漫其修远兮,吾将上下而求索。

更多Matlab路径规划仿真内容点击👇
Matlab路径规划(研究室版)

⛳️关注微信公众号Matlab王者助手或Matlab海神之光,更多资源等你来!!

⛄一、领导-跟随和人工势能法无人机协同编队控制简介

1 领导-跟随和人工势能法
人工势能是一种基于物理学的概念,用于描述物体在空间中的运动状态。在无人机编队中,通常会选择一架无人机作为领导者,其他无人机则跟随领导者进行编队。领导者会根据目标位置和障碍物位置构建虚拟人工势场,其他无人机则根据领导者的位置和虚拟人工势场进行跟随和避障。这种方法可以实现无人机编队和避障的自适应控制,提高编队的稳定性和安全性。

人工势能是一种常用的无人机编队和避障方法,它可以通过构建虚拟势场来实现无人机的自适应控制。在人工势能方法中,通常会将无人机看作一个物体,其在空间中的运动状态可以用势能函数来描述。势能函数通常由两部分组成,一部分是吸引力,用于吸引无人机向目标位置移动;另一部分是排斥力,用于排斥无人机与障碍物之间的碰撞。通过调整吸引力和排斥力的大小和方向,可以实现无人机的编队和避障。

2 领导-跟随和人工势能法步骤
人工势场法是一种常用的路径规划方法,其中的领导-跟随算法是一种基于人工势场法的多智能体编队控制方法。该方法通过引入领导智能体和跟随智能体,将多个智能体组成一个编队,实现对编队的控制。具体步骤如下:
(1)设计领导智能体的目标函数,包括编队的期望位置和速度等信息。
(2)根据领导智能体的目标函数,设计人工势场,包括吸引势和斥力势。
(3)将领导智能体的目标函数和人工势场应用到跟随智能体上,计算跟随智能体的速度和位置。
(4)根据跟随智能体的位置和速度,更新编队的状态,实现对编队的控制。
人工势场法的具体步骤包括:
(1)设计目标函数,包括起点和终点的位置信息。
(2)根据目标函数,设计人工势场,包括吸引势和斥力势。
(3)将人工势场应用到机器人或智能体上,计算其速度和位置。
(4)根据机器人或智能体的位置和速度,更新其状态,实现路径规划。

3 领导-跟随和人工势能法无人机协同编队控制
一种基于领导-跟随和人工势能法的无人机协同编队控制方法,旨在解决多无人机编队和躲避障碍物的问题。该方法通过将目标和障碍物信息融入势能函数设计的方法实现追踪目标和躲避障碍物。选择一架无人机为领导者并以其和目标为中心设计虚拟人工势场,使无人机形成编队并以一定的距离和视线角追踪机动目标;以障碍物为中心构建虚拟的排斥力场,同时在编队的势能函数中引入障碍物位置信息反馈,使编队能够随着环境变化而自适应改变,主动躲避障碍。最后通过仿真实验验证了提出的算法

⛄二、部分源代码

clc
clear all;
close all
T=[200 0 500;%Leader %初始位置坐标矩阵
-300 -200 300;%1
200 -500 200;%2
0 -600 100;%3
0 -800 100;%4
0 -450 80;%5
100 250 0;%6
50 200 0;%7
20 100 0;%8
40 50 0;%9
160 0 0;%10
80 -130 0;%11
100 -60 0;%12
200 -500 0;%13
100 -400 0;%14
0 -300 0;%15
-100 -200 0;%16
-200 -100 0;%17
-300 0 0;%18
-300 300 0;%19
-400 400 0];%20

plot3(T(1,1),T(1,2),T(1,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
% text(T(1,1)-5,T(1,2)-5,T(1,3)-5,‘UAV_1’);%标注名称
hold on
plot3(T(2,1),T(2,2),T(2,3),‘o’,‘Markersize’,10,‘color’,‘b’);
hold on
plot3(T(3,1),T(3,2),T(3,3),‘o’,‘Markersize’,10,‘color’,‘g’);
hold on
plot3(T(4,1),T(4,2),T(4,3),‘o’,‘Markersize’,10,‘color’,‘y’);
hold on
plot3(T(5,1),T(5,2),T(5,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
hold on
plot3(T(6,1),T(6,2),T(6,3),‘o’,‘Markersize’,10,‘color’,‘b’);
hold on
plot3(T(7,1),T(7,2),T(7,3),‘o’,‘Markersize’,10,‘color’,‘g’);
hold on
plot3(T(8,1),T(8,2),T(8,3),‘o’,‘Markersize’,10,‘color’,‘y’);
hold on
plot3(T(9,1),T(9,2),T(9,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
hold on
plot3(T(10,1),T(10,2),T(10,3),‘o’,‘Markersize’,10,‘color’,‘b’);
hold on
plot3(T(11,1),T(11,2),T(11,3),‘o’,‘Markersize’,10,‘color’,‘g’);
hold on
plot3(T(12,1),T(12,2),T(12,3),‘o’,‘Markersize’,10,‘color’,‘y’);
hold on
plot3(T(13,1),T(13,2),T(13,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
hold on
plot3(T(14,1),T(14,2),T(14,3),‘o’,‘Markersize’,10,‘color’,‘b’);
hold on
plot3(T(15,1),T(15,2),T(15,3),‘o’,‘Markersize’,10,‘color’,‘g’);
hold on
plot3(T(16,1),T(16,2),T(16,3),‘o’,‘Markersize’,10,‘color’,‘y’);
hold on
plot3(T(17,1),T(17,2),T(17,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
hold on
plot3(T(18,1),T(18,2),T(18,3),‘o’,‘Markersize’,10,‘color’,‘b’);
hold on
plot3(T(19,1),T(19,2),T(19,3),‘o’,‘Markersize’,10,‘color’,‘g’);
hold on
plot3(T(20,1),T(20,2),T(20,3),‘o’,‘Markersize’,10,‘color’,‘y’);
hold on
plot3(T(21,1),T(21,2),T(21,3),‘o’,‘Markersize’,10,‘color’,‘r’);%画出初始位置
hold on

k=1;%引力增益
l=300;%队形距离
%v=pi/4;%队形夹角
k_pot = 130; % 人工势场斥力的系数
V_L=100;%leader步长
V_M=200;%follower最大步长
V_m=40;%follower最小步长
J=200;%步数
t=0:J;
Rm=20;%跟随无人机最大航向角向心加速度
Qm=0.1;%最大俯仰角速度

kp=0.5;%PI系数
ki=0.1;
krp=0.9;
kri=0.4;
kqp=0.9;
kqi=0.4;

F=[0 , 0 ,0 ; %队形矩阵
-l/2, -l, 0;
-l/2, l, 0;
-l, -2l, 0
-l, 0, 0;
-l, 2
l, 0;
-3l/2, -3l, 0;
-3l/2, -l, 0;
-3
l/2, l, 0;
-3l/2, 3l, 0;
-2l, -4l, 0;
-2l, -2l, 0;
-2l, 0, 0;
-2
l, 2l, 0;
-2
l, 4l, 0;
-5
l/2, -5l, 0;
-5
l/2, -3l, 0;
-5
l/2, -l, 0;
-5l/2, l, 0;
-5
l/2, 3l, 0;
-5
l/2, 5*l, 0;]; %编队矩阵,与长机之间的相对位移; 金字塔编队

U=zeros(21,10length(t)); %初始化速度大小 单位m/s
R=zeros(21,10
length(t)); %初始化航向角 单位:rad
Position_angle=zeros(21,10length(t));
Rotat=zeros(21,10
length(t));
Rotatc=zeros(21,10length(t)); %初始化航向角速度 单位:rad/s
Q=zeros(21,10
length(t));%初始化俯仰角 单位:rad
fuyang_angle=zeros(21,10length(t));
pitch=zeros(21,10
length(t));
pitchc=zeros(21,10length(t)); %初始化航向角速度 单位:rad/s
distancex1=zeros(21,10
length(t)); %初始化僚机与长机间距离
distance=zeros(21,10*length(t));

%-----------------------------------------------leader
R(1,1)=0; %初始朝向角
U(1,1)=V_L;

%-----------------------------------------------followers
R(2,1)=pi/2; %初始朝向角
R(3,1)=pi/3; %初始朝向角
Q(3,1)=0.13; %初始俯仰角
R(4,1)=pi/3; %初始朝向角
R(5,1)=-pi/3;
R(6,1)=-pi/2;

min_temp=655360;
min_distance=[];

for i_init=2:21
U(i_init,1)=V_L;
distancex1(i_init,1)=sqrt((T(i_init,1)-T(1,1))2+(T(i_init,2)-T(1,2))2+(T(i_init,3)-T(1,3))^2); %与长机的初始距离计算
end

%计算机间最小距离
for i_distance=1:20
for j_distance=i_distance+1:21
distanceij=norm(T(i_distance,:)-T(j_distance,:),2);
if distanceij<min_temp
min_temp=distanceij;
end
end
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]占家豪.改进哈里斯鹰优化算法在路径寻优中的应用[J].杭州电子科技大学

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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值