✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。
🔥 内容介绍
Image
本文针对一类四旋翼无人机集群的分布式编队跟踪控制实际问题展开研究,所考虑的场景具有松弛传感图拓扑结构且传感器配置极度受限:仅单个领航无人机可获取全局位置信息,编队中其余无人机仅能获取与相邻无人机间的方位角(方向)测量值及相对速度。每架四旋翼均采用分层控制架构,融合高增益姿态内环与带避碰增强模块的外环方位角编队控制器。该方法可使四旋翼集群跟踪任意持续激励的期望编队(包括时变形状与旋转机动),且每架四旋翼仅需获取至少一个相邻无人机的相对测量信息即可实现控制。通过 MATLAB 数值仿真与三架四旋翼无人机的实飞实验,验证了该控制策略的有效性能。
方法创新点
低传感需求突破:无需距离测量、无需全局定位(从机),仅靠 “方位角 + 相对速度” 即可实现编队,降低硬件成本与环境依赖(如室内无 GPS 场景);
编队适应性强:支持 “持续激励的期望编队”—— 不仅限于固定形状,还能实现时变形态(如从三角形变为直线)、旋转机动(如绕领航机圆周编队飞行);
拓扑灵活性:松弛传感图允许部分无人机仅连接 1 个邻居,传感网络容错性更高,适合大规模集群扩展。
验证方式与结论
验证手段:双维度验证 —— 先通过 MATLAB 仿真验证算法稳定性与鲁棒性,再通过 3 架实机飞行验证工程实用性;
核心结论:在传感器极度受限的场景下,该方法能稳定实现复杂编队跟踪,且具备避碰能力,落地性强。
⛳️ 运行结果
Image
Image
Image
📣 部分代码
clear all, clc
addpath('functions')
%% Inputs
% Define global variables
global N na kd kp n1 m g e3 Tsim w Q v
% Quadrotor parameters
g = 9.81;
m(1) = 0.42;
m(2) = 0.42;
m(3) = 0.42;
m(4) = 0.42;
% Unit vector along z
e3 = [0; 0; 1];
% Define graph
N{1} = [];
N{2} = [1]; % Cannot be changed
N{3} = [2];
N{4} = [3];
na = length(N); % Number of agents
% Control gain
kp = 1.9*ones(na,1); % 0.5
kd = 3*ones(na,1); % 1.2
n1 = 20;
% Frequency
w = .5; % [rad/s]
v = 0.4;
check_gains(kd, kp, N, na);
Tsim = 80;
wbar = waitbar(0, 'Simulating system...');
%% First motion
% Desired initial positions
Pdes0(:,:,1) = [ 0; v*0; 0];
Pdes0(:,:,2) = [ (3-4/Tsim0)sin(0); v0; (3-4/Tsim0)*cos(0)];
Pdes0(:,:,3) = [(3-4/Tsim0)sin(0-2pi/3); v0; (3-4/Tsim0)cos(0-2*pi/3)];
Pdes0(:,:,4) = [(3-4/Tsim0)sin(0-4pi/3); v0; (3-4/Tsim0)cos(0-4*pi/3)];
% Intitial positions
rng('default') % dont let random be too random
P_0 = 3*(rand(3,1,na) - 0.5);
P_0(:,1,1) = Pdes0(:,:,1);
P_0(2,1,2) = 0;
P_0(2,1,3) = 0;
P_0(2,1,4) = 0;
% Initial velocities
V_0 = 2*(rand(3,1,na) - 0.5);
V_0(:,1,1) = [0; v; 0];
V_0(2,1,2) = v;
V_0(2,1,3) = v;
V_0(2,1,4) = v;
% Intial rotations
Rinit = eye(3);
R_0 = zeros(3,3,na);
for i = 1:na
R_0(:,:,i) = Rinit;
end
%%
close all
x = [x1; x2];
t = [t1; t2];
i1 = length(x1);
visualize_rescaling(x, t, N, na, false, '',' formation with changing shapes', -151.2478, 10.4676, i1)
🔗 参考文献
图片
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦: