【无人机】基于虚拟leader实现无人机编队仿真附matlab代码

本文研究了多架固定翼无人机的编队飞行控制问题,采用分散化协同控制策略,通过引入虚拟Leader实现速度和航向同步及队形保持。仿真结果验证了控制策略的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

从分散化协同控制的角度对多架固定翼无人机的编队飞行控制问题进行研究。以编队运动方向为参照,利用无人机期望位置的集合来描述给定的编队几何构型。将无人机当做是自主运动体,利用信息流图描述无人机之间的信息交换关系。根据无人机的特点和编队飞行的要求,提出一种基于局部信息交互和相对位置控制的分散化编队飞行控制策略。该控制策略由两部分组成,一部分进行速度和航向同步,另一部分进行编队形成和队形保持。为了方便对无人机编队的运动速度和航向角进行控制,还额外引入一个虚拟Leader。仿真结果表明,分散化编队飞行控制策略是有效的,引入虚拟Leader对无人机编队飞行控制很有必要。

⛄ 部分代码

clc

close all

clear all

dbstop if error

N=10;%个数

pos=[40 0 500;%初始位置,需要保持连通

    30 20  500;

    50 20  500;

    20 40  500;

    40 40  500;

    60 40  500;

    10 60 500;

    30 60 500;

    50 60 500

    70 60 500];

V=[ 40;%初始速度

    35;

    35;

    30;

    30;

    30;

    25;

    25;

    25;

    25]-20;

pitch=[0.3;0.9;-1.1;0.4;-0.7;-0.8;0;0;0;0];%航迹倾角

yaw=[0.8;-1.1;1.2;0.3;-0.7;-0.9;0;0;0;0];%航迹偏角

k=1;%7.07;%增益1

l=1;%增益2

r=1;%碰撞距离

R=500;%通信距离

step=200;%仿真步数

dt=0.1;%步长

Vg=10;%期望速度

pitchg=0;%期望倾角

yawg=0;%期望偏航角

posg=[40 60 500];%初始位置

%-----增益计算

delv=norm(V-ones(N,1)*Vg)/N;

delp=norm(pitch-ones(N,1)*pitchg)/N;

dely=norm(yaw-ones(N,1)*yawg)/N;

kl=(1.414*delv+2.414*(delv+Vg)*(delp+dely))/10;

%-------图矩阵及初始化

A=zeros(N,N);

timm=zeros(1,step);

Dij=zeros(1,N*(N-1));

DDD=zeros(1,N*(N-1));

D=zeros(1,step);

Dm=zeros(1,step);

u1=zeros(1,N);

u2=zeros(1,N);

u3=zeros(1,N);

dx=zeros(1,N);

dy=zeros(1,N);

dz=zeros(1,N);

    plot3(posg(1),posg(3),posg(2),'>','Markersize',10);

    quiver3(pos(:,1),pos(:,3),pos(:,2),dx',dy',dz',0.4,'LineWidth',2);

    quiver3(posg(1),posg(3),posg(2),dxg,dyg,dzg,0.4,'LineWidth',2);

    for i=1:N

        plot3(pos(i,1),pos(i,3),pos(i,2),'.');

        hold on

    end

%     axis equal

   

    hold off

end

figure(2)

plot(timm,V(i,1:step),'r--','LineWidth',1.5);

hold on

plot(timm,Vg*ones(1,step),'b','LineWidth',1.5);

for i=1:N

    plot(timm,V(i,1:step),'r--','LineWidth',1.5);

    hold on

end

xlabel('t/s','Fontsize',20);ylabel('V(m/s)','Fontsize',20,'Rotation',90);

% legend({'\itUAV','\itLeader'},1,'Fontsize',15);

h=gca;

set(h,'Fontsize',14)

figure(3)

plot(timm,pitch(1,1:step),'b','LineWidth',1.5);hold on

plot(timm,pitchg*ones(1,step),'r','LineWidth',1.5);

for i=1:N

    plot(timm,pitch(i,1:step),'b','LineWidth',1.5);

    hold on

end

xlabel('t/s','Fontsize',20);ylabel('\theta(rad)','Fontsize',20,'Rotation',90);

% legend({'\itUAV','\itLeader'},1,'Fontsize',15);

h=gca;

set(h,'Fontsize',14)

figure(4)

plot(timm,yaw(1,1:step),'g','LineWidth',1.5);

hold on

plot(timm,yawg*ones(1,step),'b','LineWidth',1.5);

for i=1:N

    plot(timm,yaw(i,1:step),'g','LineWidth',1.5);

    hold on

end

% legend({'\itUAV','\itLeader'},1,'Fontsize',15);

xlabel('t/s','Fontsize',20);ylabel('\phi(rad)','Fontsize',20,'Rotation',90);

h=gca;

set(h,'Fontsize',14)

figure(5)

plot(timm,D,'k.-','LineWidth',1);

xlabel('t/s','Fontsize',20);ylabel('Distance(m)','Fontsize',20,'Rotation',90);

h=gca;

set(h,'Fontsize',14)

⛄ 运行结果

⛄ 参考文献

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值