上一篇博客考虑多智能体网络拓补结构为无向连通图的情况,以固定翼无人机俯仰方向运动协同控制问题为研究背景,使用如下协同控制器,实现了3架无人机俯仰方向的两个状态量的一致性。
本文是在上一篇博客的基础上,进一步讨论多智能体网络拓补结构为有向平衡图且包含一个有向生成树的情况,本文要解决的问题依然是连续时间高阶线性多智能体系统的一致性问题,见多智能体协同一致性问题(一)的问题构建。
1、模型构建
当多智能体网络拓补结构为有向平衡图时,
定义变量:
并设计如下控制器:
其中, 为待求的控制增益矩阵,
为加权参数。
2、问题求解
定理3.2:给定矩阵 和
,
若如下Riccati方程有正定解 :
系统渐近稳定,此外控制增益 ,且加权参数
需要满足
。
令 和
,通过求解Riccati方程式便可以求得
和
。
3、仿真案例
假设质点集群网络中有4个质点,各质点之间的拓补结构如下如所示:
该拓补结构的Laplacian矩阵为:
可以求出矩阵 的特征值为:
,根据定理3.2,取
。
以三维空间质点集群的运动协同控制问题为研究背景,系统的状态方程如下:
其中,,
分别为质点在三维空间中三周位置分量;
表示质点在三维空间内的三轴速度分量;
为质点在三维空间内的三轴控制输入量。
设置4个质点的三周位置初值和三轴速度初值:
4、编程求解
clc
clear
close all
dt=0.01;
t=0:dt:30;
n=length(t);
A=[0*eye(3) eye(3);
0*eye(3) 0*eye(3)];
B=[0*eye(3);
eye(3)];
L=[1 0 0 -1;
-1 1 0 0;
0 -1 1 0;
0 0 -1 1];
x0=[4 7 -10 -13;
5 8 -11 -14;
6 9 -12 -15;
-0.4 -0.7 1 -1.2;
-0.5 -0.8 1.1 -1.4;
-0.6 -0.9 1.2 -1.5];
R1=10*eye(3);
Q1=eye(6);
P1=are(A,B/R1*B',Q1);
K1=-R1\B'*P1;
% K1=[-0.3162 0 0 -0.8558 0 0;
% 0 -0.3162 0 0 -0.8558 0;
% 0 0 -0.3162 0 0 -0.8558];
x=x0;
c=0.6;
for i=1:n
e=0.5*L*x'+0.5*L'*x';
u=c*K1*e';
X1(:,i)=x(:,1);
X2(:,i)=x(:,2);
X3(:,i)=x(:,3);
X4(:,i)=x(:,4);
x=x+(A*x+B*u)*dt;
end
figure
subplot(3,1,1)
plot(t,X1(1,:),t,X2(1,:),t,X3(1,:),t,X4(1,:))
subplot(3,1,2)
plot(t,X1(2,:),t,X2(2,:),t,X3(2,:),t,X4(2,:))
subplot(3,1,3)
plot(t,X1(3,:),t,X2(3,:),t,X3(3,:),t,X4(3,:))
figure
subplot(3,1,1)
plot(t,X1(4,:),t,X2(4,:),t,X3(4,:),t,X4(4,:))
subplot(3,1,2)
plot(t,X1(5,:),t,X2(5,:),t,X3(5,:),t,X4(5,:))
subplot(3,1,3)
plot(t,X1(6,:),t,X2(6,:),t,X3(6,:),t,X4(6,:))
5、参考文献
1、《多智能体系统群集协同控制方法及应用 》,作者:张卓、张泽旭、李惠平、张守旭 , 西北工业大学出版社
(悄悄的说:文中的公式和数据全是这本书上摘抄,只有代码是自己写的)
写在最后:
写“多智能体系统集群协同控制”专栏的主要原因是该领域入门级的代码在网络上很难找到,阅读了参考文献中的这本书后,觉得这本书中的案例有很高的可复现性,于是尝试着复现了以下,结果前三个案例都成功了,于是想着将书中的案例写成博客分享给大家。如果想要学习更为详细的证明过程,可以购买这本书学习,书中的模型是用Simulink实现的。目前已实现该书第三章的五个案例。
关于本博客的相关问题以及存在的错误,如有需要,欢迎在评论区交流!