• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
matlab科研助手
帮助1

✅作者简介:热爱科研的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电子书和数学建模资料

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgehhif
系列文章
更多 icon
同类精品
更多 icon
继续加载