✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。
⛄ 内容介绍
基于一致性的无领导多无人机协同编队控制旨在使多个无人机在没有明确领导无人机的情况下实现协同行动。下面一般线性无多无人机协同编队控制的基本思路和步骤:
-
定义编队行为:确定期望的编队形状、间距和运动规律。这可以通过设定目标位置和速度等参数来实现。
-
设定一致性规则:建立一致性规则以促使各个无人机在编队中保持一致。常用的规则有位置一致性和速度一致性。
-
位置一致性:无人机根据相邻无人机的位置信息进行调整,向目标位置靠近,并与相邻无人机保持一定的距离。
-
速度一致性:无人机通过对相邻人机速度的调整,使自己的速度趋向于邻居的队行为和一致性规则,设计无人机的控制策略。控制策略可以使用PID控制器、模型预测控制器或者适应性控制算法等。其中包括位置控制器和速度控制器。
-
-
通信与信息之间通过通信网络进行信息交换。相邻无人机之间交流位置、速度和其他状态信息,以实现一致性调整。
-
实时跟踪与更新:每个无人机实时跟踪邻居无人机的状态,并根据一致性规则对自身位置和速度进行更新和调整。这可以通过传感器测量和数据融合算法来实现。
-
异常处理与鲁棒性设计:针对可能出现的错误输入、系统不确定性和外部干扰,设计异常处理机制和鲁棒控制策略,以保证编队的稳定性和安全性。
需要注意的是,这只是一般线性无领导多无人机协同编队控制的基本流程和思路,具体的实现方法和算法会因研究者和应用场景的不同而有所差异。此外,考虑动态障碍物、通信延迟和系统鲁棒性等问题也是实际应用中需要考虑的挑战。因此,在实际应用中,还需要综合考虑系统建模、控制优化以及实际环境等多个因素来实现高效且可靠的无人机协同编队控制。
⛄ 部分代码
clc
clear
close all
t0=0;tf=10;
step_qw=0.01;
p1=10;
q0=[
(rand(1)-0.5)*p1;(rand(1)-0.5)*p1;
(rand(1)-0.5)*p1;(rand(1)-0.5)*p1;
(rand(1)-0.5)*p1;(rand(1)-0.5)*p1;
(rand(1)-0.5)*p1;(rand(1)-0.5)*p1
];
load('q0.mat','q0');
%save('q0.mat','q0');
[t,q]=ode45('Whole_Twodimension_total_state',t0:step_qw:tf,q0);
figure(1);
hold on
xlabel('x position','FontName','Times New Roman','FontSize',14);ylabel('y position','FontName','Times New Roman','FontSize',14);
plot(q(:,1),q(:,2),'g');
hold on
plot(q(:,3),q(:,4),'r');
hold on
plot(q(:,5),q(:,6),'b');
hold on
plot(q(:,7),q(:,8),'k');
hold on
legend('agent 1','agent 2','agent 3','agent 4');
%plot(q(:,9),q(:,10),'c');
%hold on
plot(q(1,1),q(1,2),'ro');
hold on
plot(q(1,3),q(1,4),'bo');
hold on
plot(q(1,5),q(1,6),'bo');
hold on
plot(q(1,7),q(1,8),'bo');
hold on
%plot(q(1,9),q(1,10),'bo');
%hold on
plot(q(end,1),q(end,2),'rp');
hold on
box on
figure(2)
hold on
xlabel('t/s','FontName','Times New Roman','FontSize',14);ylabel('xi','interpreter','latex','fontsize',14);
hold on
plot(t,q(:,1),'r-');
hold on
plot(t,q(:,3),'b-');
hold on;
plot(t,q(:,5),'k-');
hold on;
plot(t,q(:,7),'m-');
hold on
legend('agent 1','agent 2','agent 3','agent 4');
box on
figure(3)
hold on
xlabel('t/s','FontName','Times New Roman','FontSize',14);ylabel('Yi','interpreter','latex','fontsize',14);
hold on
plot(t,q(:,2),'r-');
hold on
plot(t,q(:,4),'b-');
hold on;
plot(t,q(:,6),'k-');
hold on;
plot(t,q(:,8),'m-');
hold on
legend('agent 1','agent 2','agent 3','agent 4');
box on
grid off
⛄ 运行结果
⛄ 参考文献
[1] 樊琼剑.多无人机协同编队仿生飞行控制关键技术研究[D].南京航空航天大学,2008.DOI:10.7666/d.d051985.
[2] 王瑾.变质量无人机编队控制技术及其在农业植保场景下的应用研究[D].浙江大学[2023-06-28].
[3] 熊涛,曹科才,柴运,等.基于输入约束一致性算法的多无人机编队控制[J].计算机工程与应用, 2018, 54(12):7.DOI:10.3778/j.issn.1002-8331.1704-0458.