✅作者简介:热爱科研的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电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除