✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于一阶一致性的无领导多无人机协同编队控制是一种方法,通过使无人机之间的状态保持一致来实现编队控制,而无需明确的领导者。下面是一个基本的步骤框架:
-
系统建模:建立每个无人机的动力学模型,并考虑位置和速度等状态变量。
-
通信网络构建:构建无人机之间的通信网络,使它们可以相互传递状态信息。
-
状态更新规则:定义每个无人机如何根据收到的邻居无人机的状态信息来更新自身状态。这可以通过简单的一阶一致性算法来实现,其中每个无人机根据相邻无人机的状态调整自己的速度或位置。
-
控制策略设计:设计适当的控制策略,以根据更新的状态调整无人机的姿态、速度或位置。这可能需要考虑环境约束、避障和任务要求等因素。
-
仿真和实验:使用仿真工具或实际无人机平台进行验证和调整。通过调整参数和控制策略,优化编队的性能和稳定性。
需要注意的,实现无多无人机协同编队控制是一个复杂的任务,需要考虑许多因素,如通信延迟、不确定性、碰撞避免和编队形状等。此外,适当的传感器和导航系统可能也需要集成到系统中。
以上提供的步骤框架仅是一个基本指导,并且可以根据具体要求进行调整和改进。在实际应用中,深入研究算法细节、建模精确性和控制策略对编队效果的影响是非常重要的。
⛄ 部分代码
clc
clear
close all
t0=0;tf=100;
step_qw=0.01;
p1=20;M=1.75;N=2.5;
q0=[1; 2;1; 3;2; 4; 3; 1];
save('q0.mat','q0');
% load('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');
%legend('agent 1',4);
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(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(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
figure(4)
hold on
xlabel('t/s','FontName','Times New Roman','FontSize',14);ylabel('X-$\bar{X}_i$','interpreter','latex','fontsize',14);
hold on
plot(t,q(:,1)-M,'r');
hold on
plot(t,q(:,3)-M,'b');
hold on;
plot(t,q(:,5)-M,'k');
hold on;
plot(t,q(:,7)-M,'m');
hold on
legend('agent 1','agent 2','agent 3','agent 4');
box on
figure(5)
hold on
xlabel('t/s','FontName','Times New Roman','FontSize',14);ylabel('Y-$\bar{Y}_i$','interpreter','latex','fontsize',14);
hold on
plot(t,q(:,2)-N,'r');
hold on
plot(t,q(:,4)-N,'b');
hold on;
plot(t,q(:,6)-N,'k');
hold on;
plot(t,q(:,8)-N,'m');
hold on
box on
legend('agent 1','agent 2','agent 3','agent 4');
grid off
⛄ 运行结果
⛄ 参考文献
[1] 马培蓓,雷明,纪军.基于一致性的多无人机协同编队设计[J].战术导弹技术, 2017(2):5.DOI:10.16358/j.issn.1009-1300.2017.02.15.
[2] 熊涛,曹科才,柴运,等.基于输入约束一致性算法的多无人机编队控制[J].计算机工程与应用, 2018, 54(12):7.DOI:10.3778/j.issn.1002-8331.1704-0458.
[3] 吴宇,梁天骄.基于改进一致性算法的无人机编队控制[J].航空学报, 2020.DOI:10.7527/S1000-6893.2020.23848.