多智能体学习笔记(个人向)——多智能体系统一致性

以前笔记的摘录,仅供个人使用

一阶多智能体系统一致性

当所有智能体的状态满足以下关系时,证明多智能体系统达到一致
l i m t → ∞ ∣ ∣ x i − x j ∣ ∣ = 0   ( i , j = 1 , 2... n )        ( ∗ ) lim_{t→∞} ||xi-xj|| = 0\ \ (i, j = 1,2...n) \ \ \ \ \ \ \ \ (*) limt∣∣xixj∣∣=0  i,j=1,2...n        

连续时间

系统中单个智能体的状态空间表达式 x ˙ ( t ) = A x ( t ) + B u ( t ) \dot{x}(t)=Ax(t)+Bu(t) x˙(t)=Ax(t)+Bu(t)
例:系统拓扑结构图:
系统拓扑结构图

系统中单个智能体均满足一阶微分方程: x ˙ i = u i \dot{x}_i=u_i x˙i=ui
一阶多智能体系统表示为:

每个智能体的输入为:
u i ( t ) = ∑ j ∈ N i a i j ( x j ( t ) − x i ( t ) ) u_i(t) = \sum_{j\in N_i}a_{ij}(x_j(t)-x_i(t)) ui(t)=jNiaij(xj(t)xi(t))

拉普拉斯矩阵:
入度矩阵 D = [ 1 0 0 0 0 1 0 0 0 0 2 0 0 0 0 1 ] \tt入度矩阵D = \begin{bmatrix} 1&0&0&0\\ 0& 1&0&0 \\0&0&2&0\\0&0&0&1 \end{bmatrix} 入度矩阵D= 1000010000200001 邻接矩阵 D = [ 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 ] \tt 邻接矩阵D = \begin{bmatrix} 0&0&0&1\\ 1& 0&0&0 \\1&1&0&0\\1&0&0&0 \end{bmatrix} 邻接矩阵D= 0111001000001000 L = D − A L = D-A L=DA L = [ 1 0 0 − 1 − 1 1 0 0 − 1 − 1 2 0 0 0 − 1 1 ] L = \begin{bmatrix} 1&0&0&-1\\ -1& 1&0&0 \\-1&-1&2&0\\0&0&-1&1 \end{bmatrix} L= 1110011000211001
[ x ˙ 1 x ˙ 2 x ˙ 3 x ˙ 4 ] = − [ 1 0 0 − 1 − 1 1 0 0 − 1 − 1 2 0 0 0 − 1 1 ] [ x 1 x 2 x 3 x 4 ] \begin{bmatrix} \dot{x}_1\\ \dot{x}_2\\ \dot{x}_3\\ \dot{x}_4 \end{bmatrix}=- \begin{bmatrix} 1&0&0&-1\\ -1& 1&0&0 \\-1&-1&2&0\\0&0&-1&1 \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{bmatrix} x˙1x˙2x˙3x˙4 = 1110011000211001 x1x2x3x4 x ˙ = − L x ( t ) \dot{x} = -Lx(t) x˙=Lx(t) 求解矩阵微分方程: x ( t ) = e − L t x ( 0 ) x(t)= e^{-Lt}x(0) x(t)=eLtx(0)
其中 w l 1 T w_{l1}^T wl1T w r 1 w_{r1} wr1是矩阵L关于 λ i \lambda_i λi的左右特征向量归一化后的向量, w l 1 T w r 1 = 1 , w r 1 = 1 w_{l1}^Tw_{r1}=1,w_{r1}=1 wl1Twr1=1wr1=1,解得 w l 1 T = [ 0.3333 0.1667 0.1667 0.3333 ] w_{l1}^T = \begin{bmatrix} 0.3333&0.1667&0.1667&0.3333 \end{bmatrix} wl1T=[0.33330.16670.16670.3333] 最终的一致性值为: x ∗ = 1 ∑ i = 1 n w l 1 i x ( 0 ) = [ 1 1 1 1 ] [ 0.3333 0.1667 0.1667 0.3333 ] [ 20 10 40 0 ] = [ 15 15 15 15 ] x^*=1 \sum_{i=1}^n w_{l1i}x(0) = \begin{bmatrix} 1\\ 1\\ 1\\1 \end{bmatrix}\begin{bmatrix} 0.3333&0.1667&0.1667&0.3333 \end{bmatrix} \begin{bmatrix} 20\\ 10\\ 40\\ 0\end{bmatrix}= \begin{bmatrix} 15\\ 15\\ 15\\15 \end{bmatrix} x=1i=1nwl1ix(0)= 1111 [0.33330.16670.16670.3333] 2010400 = 15151515 与以下MATLAB仿真结果一致

clear;
clc;

%% 参数赋值
global L
L = [1  0  0 -1
    -1  1  0  0
    -1 -1  2  0
     0  0  -1 1];

%初值
x0 = [20 10 40 0]';

%时间参数
t_begin = 0;
t_final = 10;

%解方程\dot{x} = -Lx(t)
[t,out] = ode45(@ctFun, [t_begin,t_final], x0)

%% 绘图
plot(t,out(:,1), t,out(:,2), t,out(:,3), t,out(:,4))
xlabel('$t(s)$','Interpreter','latex');
ylabel('$x_i$','Interpreter','latex');
legend('$x_1$','$x_2$','$x_3$','$x_4$','Interpreter','latex');
grid on;
%% 微分方程
function out = ctFun(~,x)
    global L 
    dx = -L * x;
    out = dx;
end

离散时间

离散时间多智能体系统:
单个系统: x ˙ i ( k + 1 ) = A x i ( k ) + ϵ u i ( k ) \dot{x}_i(k+1)=Ax_i(k)+\epsilon u_i(k) x˙i(k+1)=Axi(k)+ϵui(k)
多智能体系统: x ˙ ( k + 1 ) = A x ( k ) + B u ( k ) \dot{x}(k+1)=Ax(k)+Bu(k) x˙(k+1)=Ax(k)+Bu(k)
每个智能体的输入为: u i ( t ) = ∑ j ∈ N i a i j ( x j ( t ) − x i ( t ) ) u_i(t) = \sum_{j\in N_i}a_{ij}(x_j(t)-x_i(t)) ui(t)=jNiaij(xj(t)xi(t))

当满足 ϵ < 1 / d m a x \epsilon<1/d_max ϵ<1/dmax时满足最终一致性条件

clear
clc

%% 参数赋值
L = [1  0  0 -1
    -1  1  0  0
    -1 -1  2  0
     0  0 -1  1];
[M,N] = size(L);

%时间参数
tBegin = 0;
tFinal = 20;
epsilon = 0.4;
times = (tFinal-tBegin)/epsilon;
time(1,1) = 0;

x_1(1) = 20; 
x_2(1) = 10; 
x_3(1) = 40; 
x_4(1) = 00; 

%% 控制器计算
for i=1:times
    
    time(i+1) = time(i) + epsilon;

    u_1 = -L(1,1)*(x_1(i)-x_1(i)) - L(1,2)*(x_2(i)-x_1(i)) - L(1,3)*(x_3(i)-x_1(i)) - L(1,4)*(x_4(i)-x_1(i));
    u_2 = -L(2,1)*(x_1(i)-x_2(i)) - L(2,2)*(x_2(i)-x_2(i)) - L(2,3)*(x_3(i)-x_2(i)) - L(2,4)*(x_4(i)-x_2(i));
    u_3 = -L(3,1)*(x_1(i)-x_3(i)) - L(3,2)*(x_2(i)-x_3(i)) - L(3,3)*(x_3(i)-x_3(i)) - L(3,4)*(x_4(i)-x_3(i));
    u_4 = -L(4,1)*(x_1(i)-x_4(i)) - L(4,2)*(x_2(i)-x_4(i)) - L(4,3)*(x_3(i)-x_4(i)) - L(4,4)*(x_4(i)-x_4(i));

    x_1(i+1) = x_1(i) + epsilon*u_1;
    x_2(i+1) = x_2(i) + epsilon*u_2;
    x_3(i+1) = x_3(i) + epsilon*u_3;
    x_4(i+1) = x_4(i) + epsilon*u_4;
end

%% Draw graphs
plot(time,x_1, time,x_2, time,x_3, time,x_4, 'linewidth',1.5);
legend('$x_1$','$x_2$','$x_3$','$x_4$', 'Interpreter','latex'); grid on
xlabel('$t(s)$', 'Interpreter','latex');
ylabel('$x$', 'Interpreter','latex');

运行效果:

切换拓扑

针对由 x ˙ i = u i \dot{x}_i=u_i x˙i=ui所构成的多智能体系统,在任意切换时刻t下系统的通信拓扑图G均为无向连通图含有生成树的有向图时,系统使用如式 u i ( t ) = ∑ j ∈ N i a i j ( x j ( t ) − x i ( t ) ) u_i(t) = \sum_{j\in N_i}a_{ij}(x_j(t)-x_i(t)) ui(t)=jNiaij(xj(t)xi(t))的控制器可实现如(*)所描述的一致。

在这里插入图片描述
在这里插入图片描述


clear
clc

La= [1  0  0 -1
    -1  1  0  0
    -1 -1  2  0
     0  0 -1  1];
Lb= [1  0  0 -1
    -1  1  0  0
     0 -1  1  0
     0  0 -1  1];
Lc= [1  0  0 -1
    -1  1  0  0
     0 -1  1  0
     0 -1 -1  2];
Ld= [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  2  0
    -1 -1 -1  3];

x_1(:,1) = 20; 
x_2(:,1) = 10; 
x_3(:,1) = 40; 
x_4(:,1) = 00; 

tBegin = 0;
tFinal = 5;
dT = 0.01;
times = (tFinal-tBegin)/dT;
t(1,1) = 0;

for i=1:times
    t(:,i+1) = t(:,i) + dT;
    
    if mod(t(:,i),2) >= 0.0 && mod(t(:,i),4) < 0.5
        L = La;
    end
    if mod(t(:,i),2) >= 0.5 && mod(t(:,i),4) < 1.0
        L = Lb;
    end
    if mod(t(:,i),2) >= 1.0 && mod(t(:,i),4) < 1.5
        L = Lc;
    end
    if mod(t(:,i),2) >= 1.5 && mod(t(:,i),4) < 2.0
        L = Ld;
    end
    
    % calculate control inputs
    u_1 = -L(1,1)*(x_1(i,:)-x_1(i,:)) - L(1,2)*(x_2(i,:)-x_1(i,:)) - L(1,3)*(x_3(i,:)-x_1(i,:)) - L(1,4)*(x_4(i,:)-x_1(i,:));
    u_2 = -L(2,1)*(x_1(i,:)-x_2(i,:)) - L(2,2)*(x_2(i,:)-x_2(i,:)) - L(2,3)*(x_3(i,:)-x_2(i,:)) - L(2,4)*(x_4(i,:)-x_2(i,:));
    u_3 = -L(3,1)*(x_1(i,:)-x_3(i,:)) - L(3,2)*(x_2(i,:)-x_3(i,:)) - L(3,3)*(x_3(i,:)-x_3(i,:)) - L(3,4)*(x_4(i,:)-x_3(i,:));
    u_4 = -L(4,1)*(x_1(i,:)-x_4(i,:)) - L(4,2)*(x_2(i,:)-x_4(i,:)) - L(4,3)*(x_3(i,:)-x_4(i,:)) - L(4,4)*(x_4(i,:)-x_4(i,:));
    
    % update statues
    x_1(i+1,1) = x_1(i,1) + dT*u_1;
    x_2(i+1,1) = x_2(i,1) + dT*u_2;
    x_3(i+1,1) = x_3(i,1) + dT*u_3;
    x_4(i+1,1) = x_4(i,1) + dT*u_4;
end

%% Draw graphs
plot(t,x_1, t,x_2, t,x_3, t,x_4, 'linewidth',1.5);
legend('$x_1$','$x_2$','$x_3$','$x_4$', 'Interpreter','latex'); grid on
xlabel('$t(s)$', 'Interpreter','latex');
ylabel('$x$', 'Interpreter','latex');

运行效果:

含时延的一致性

当时延 τ \tau τ满足

τ ∈ [ 0 , τ m a x ) , τ m a x = π / 2 λ n \bf \tau∈[0,\tau_{max}),\tau_{max} = \pi /2\lambda_n τ[0,τmax),τmax=π/2λn其中 λ n \lambda_n λn为系统拉普拉斯矩阵的最大特征值,有 λ n = m a x ( λ i ) , i = 1 , 2 , . . , n \lambda_n=max(\lambda_i),i = 1,2,. . ,n λn=max(λi),i=1,2,..,n

时,由 x ˙ i = u i \dot{x}_i=u_i x˙i=ui所构成的多智能体系统,使用 u i ( t ) = ∑ j ∈ N i a i j ( x j ( t ) − x i ( t ) ) u_i(t) = \sum_{j\in N_i}a_{ij}(x_j(t)-x_i(t)) ui(t)=jNiaij(xj(t)xi(t))的控制器可实现如(*)所描述的一致。满足一致性

% 连续时间含时延系统一致性

clear
clc

global L X0
L = [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  2  0
    -1 -1 -1  3];

X0 = [20 10 40 00]';

tBegin = 0;
tFinal = 20;
tspan = [tBegin, tFinal];

% 定义时间延时
tau = pi/2/max(eig(L)) * 0.8;
out = dde23(@ctFun, tau, @history, tspan);
t = out.x;
X = out.y;

plot(t,X(1,:), t,X(2,:), t,X(3,:), t,X(4,:), 'linewidth',1.5);
legend('$x_1$','$x_2$','$x_3$','$x_4$', 'Interpreter','latex'); grid on
xlabel('$t(s)$', 'Interpreter','latex');
ylabel('$x$', 'Interpreter','latex');

%% DDE
function out = ctFun(~,~,TD)
    x_TD = TD;
    global L
    dX = -L * x_TD;
    out = dX;
end

function X_his = history(~)
    global X0
    X_his = X0;
end

领航跟踪

  • 领航跟踪定义
    \qquad 当所有智能体的状态满足以下关系时,证明跟随者实现对领航者的跟踪
    l i m t → ∞ ∣ ∣ x i ( t ) − x 0 ( t ) ∣ ∣ = 0 , ( i = 1 , 2 , ⋅ ⋅ , n ) lim_{t→∞} ||x_i(t)- x_0(t)||=0,(i = 1,2,·· ,n) limt∣∣xi(t)x0(t)∣∣=0,(i=1,2,⋅⋅,n)

  • 牵制矩阵:
    \qquad 领航跟随系统中,定义第i个跟随者与领航者之间的关系为lilo当领航者对跟随者有牵制作用时, l 1 l l_{1l} l1l= 1,没有牵制作用时, l 1 l l_{1l} l1l=0。领航者对跟随者的牵制矩阵 L l L_l Ll为对角矩阵,有
    L l = [ l 1 l l 2 l ⋱ l n l ] L_l=\begin{bmatrix} l_{1l} & & & \\ & l_{2l} & & \\ & & \ddots & \\ & & & l_{nl} \\ \end{bmatrix} Ll= l1ll2llnl
    追随者模型: x ˙ i ( t ) = u i ( t ) \dot{x}_i(t)=u_i(t) x˙i(t)=ui(t)领航者模型: x ˙ 0 ( t ) = v 0 ( t ) \dot{x}_0(t)=v_0(t) x˙0(t)=v0(t)
    控制器设置为: u i = ∑ j ∈ N i a i j ( x j − x x ) + l i l ( x 0 − x i ) + ν 0 u_i=\sum_{j\in N_i}a_{ij}(x_j- x_x)+ l_il(x_0- x_i)+ \nu_0 ui=jNiaij(xjxx)+lil(x0xi)+ν0
    控制器的矩阵形式:
    u i = − L x + L l ( 1 x 0 − x ) + 1 ν 0 = ( L + L l ) ( 1 x 0 − x ) + 1 ν 0 u_i=-Lx+ L_l(\boldsymbol{1} x_0- x)+ \boldsymbol{1} \nu_0\\[1ex]=(L+ L_l)(\boldsymbol{1} x_0- x)+ \boldsymbol{1} \nu_0 ui=Lx+Ll(1x0x)+1ν0=L+Ll(1x0x)+1ν0

引理1:如果图G是连通的,那么对称矩阵L+Ll是正定的。
定理:针对上述两个模型构成的领航-跟随多智能体系统,假设系统的通信拓扑图是无向连通图(至少存在一个智能体与领航者相连)或含有生成树的有向图(领航者节点至少是其中一个生成树的根结点),那么使用如上的控制器时,系统可实现如领航跟随效果。

% 领航跟随系统一致性

clear
clc

global L Ll
L = [1  0  0 -1
    -1  1  0  0
     0 -1  1  0
     0  0 -1  1];
Ll= diag([1  1  0  0]);

X_follower = [20 10 40 00];
X_leader = 20;

tBegin = 0;
tFinal = 20;
tspan = [tBegin, tFinal];

%% 
In = [X_leader X_follower]';
out = ode45(@ctFun, tspan, In);
t = out.x;
X = out.y;

plot(t,X(1,:), t,X(2,:), t,X(3,:), t,X(4,:), t,X(5,:), 'linewidth',1.5);
legend('$x_0$','$x_1$','$x_2$','$x_3$','$x_4$', 'Interpreter','latex'); grid on
xlabel('$t(s)$', 'Interpreter','latex');
ylabel('$x$', 'Interpreter','latex');

function out = ctFun(~,In)
    global L Ll 
    Xl = In(1);
    Xf = In(2:5);
    
    v_0 = 0;
    dXl = v_0;
    X_Bar = Xf - Xl;
    dX = -(L+Ll) * X_Bar + v_0;
    
    out = [dXl 
           dX];
end

二阶多智能体系统一致性

连续时间系统一致性

系统中单个智能体的状态满足二阶微分方程,基本形式可表达为: p ˙ i = ν i ν ˙ i = u i \dot{p}_i=\nu_i \\[1ex] \dot{\nu}_i=u_i p˙i=νiν˙i=ui
其中 p i p_i pi可表示智能体i的位置, ν i \nu_i νi表示其速度, u i u_i ui表示控制输入。令 x i = [ p i ν i ] T x_i=\begin{bmatrix} p_i & \nu_i \end{bmatrix}^T xi=[piνi]T,则上式子转化为状态空间表达式有:
[ p i ˙ ν i ˙ ] = [ 0 1 0 0 ] [ p i ν i ] + [ 0 1 ] u i \begin{bmatrix} \dot{p_i} \\ \dot{\nu_i }\end{bmatrix} = \begin{bmatrix} 0&1\\ 0&0 \end{bmatrix} \begin{bmatrix} p_i \\ \nu_i \end{bmatrix} +\begin{bmatrix} 0\\ 1 \end{bmatrix} u_i [pi˙νi˙]=[0010][piνi]+[01]ui x ˙ i = a x i + b u i \dot{x}_i=ax_i+bu_i x˙i=axi+bui
多智能体系统表达为:
在这里插入图片描述
实际应用中,存在许多智能体维度不为1的情况,例如智能车在水平面运动时维度为2(x和y方向均有位移和速度)。于是,一般地,多智能体系统可表示为:
在这里插入图片描述
1)动态一致性:当所有智能体的状态满足以下关系时,证明多智能体系统达到动态一致 l i m t → ∞ ∣ ∣ p i − p j ∣ ∣ = 0 , l i m t → ∞ ∣ ∣ ν i − ν j ∣ ∣ = 0 , i , j = 1 , 2 , . . . , n lim_{t→∞}||pi-pj||=0,\\[1ex] lim_{t→∞}||\nu i-\nu j||=0,\\[1ex] i,j = 1,2,...,n limt∣∣pipj∣∣=0,limt∣∣νiνj∣∣=0,i,j=1,2,...n1)静态一致性:当所有智能体的状态满足以下关系时,证明多智能体系统达到静态一致 l i m t → ∞ ∣ ∣ p i − p j ∣ ∣ = 0 , l i m t → ∞ ∣ ∣ ν i ∣ ∣ = 0 , i , j = 1 , 2 , . . . , n lim_{t→∞}||pi-pj||=0,\\[1ex] lim_{t→∞}||\nu i||=0,\\[1ex] i,j = 1,2,...,n limt∣∣pipj∣∣=0,limt∣∣νi∣∣=0,i,j=1,2,...n

动态一致性控制器为:
u i ( t ) = α ∑ j ∈ N i a i j ( p j ( t ) − p i ( t ) ) + β ∑ j ∈ N i a i j ( ν j ( t ) − ν i ( t ) ) u_i(t) = \alpha\sum_{j\in N_i}a_{ij}(p_j(t)-p_i(t))+\beta\sum_{j\in N_i}a_{ij}(\nu_j(t)-\nu_i(t)) ui(t)=αjNiaij(pj(t)pi(t))+βjNiaij(νj(t)νi(t)) u ( t ) = − [ α L β L ] x ( t ) u(t) = - \begin{bmatrix} \alpha L&\beta L\end{bmatrix}x(t) u(t)=[αLβL]x(t)
可以证明:上述系统在上述控制器的条件下,系统状态的最终一致性值为下式:(证明略)
[ p ( t ) ν ( t ) ] = [ 1 n c T t 1 n c T 0 n × n 1 n c T ] [ p ( 0 ) ν ( 0 ) ] \begin{bmatrix} p(t)\\\nu(t) \end{bmatrix} =\begin{bmatrix} 1_nc^T & t1_nc^T \\0_{n\times n}&1_nc^T \end{bmatrix} \begin{bmatrix} p(0)\\ \nu(0) \end{bmatrix} [p(t)ν(t)]=[1ncT0n×nt1ncT1ncT][p(0)ν(0)]

静态一致性控制器为:
u i ( t ) = α ∑ j ∈ N i a i j ( p j ( t ) − p i ( t ) ) + β ν i ( t ) u_i(t) = \alpha\sum_{j\in N_i}a_{ij}(p_j(t)-p_i(t))+\beta\nu_i(t) ui(t)=αjNiaij(pj(t)pi(t))+βνi(t) u ( t ) = − [ α L β I n ] x ( t ) u(t) = - \begin{bmatrix} \alpha L&\beta I_n\end{bmatrix}x(t) u(t)=[αLβIn]x(t)
可以证明:上述系统在上述控制器的条件下,系统状态的最终一致性值为下式:(证明略)
[ p ( t ) ν ( t ) ] = [ 1 n c T 0 n × n 0 n × n 0 n × n ] [ p ( 0 ) ν ( 0 ) ] \begin{bmatrix} p(t)\\\nu(t) \end{bmatrix} =\begin{bmatrix} 1_nc^T & 0_{n\times n} \\0_{n\times n}&0_{n\times n} \end{bmatrix} \begin{bmatrix} p(0)\\ \nu(0) \end{bmatrix} [p(t)ν(t)]=[1ncT0n×n0n×n0n×n][p(0)ν(0)]

  • 例:
% 连续时间系统动态一致性
clear
clc
global L alpha beta
L = [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  3 -1
    -1  0 -1  2];
alpha = 1.5;
beta = 1.0;
p(:,:) = [20 10 40 00]';
v(:,:) = [02 01 04 00]';
x(:,:) = [p' v']';
tBegin = 0;
tFinal = 20;
[t,out] = ode45(@ctFun, [tBegin, tFinal], x);
p = out(:, 1:4)';
v = out(:, 5:8)';

figure(1)
plot(t,p(1,:), t,p(2,:), t,p(3,:), t,p(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$p_i$','Interpreter','latex');
legend('$p_1$','$p_2$','$p_3$','$p_4$','Interpreter','latex'); grid on

figure(2)
plot(t,v(1,:), t,v(2,:), t,v(3,:), t,v(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$v_i$','Interpreter','latex');
legend('$v_1$','$v_2$','$v_3$','$v_4$','Interpreter','latex'); grid on

function out = ctFun(~,x)
    global L alpha beta
    out = [zeros(4,4)  eye(4)
          -alpha*L    -beta*L] * x;
end

离散时间系统一致性

系统中单个智能体的状态满足二阶微分方程: p i ( k + 1 ) = p i ( k ) + ν i ( k ) ν i ( k + 1 ) = ν i ( k ) + u i ( k ) p_i(k+1)=p_i(k)+\nu_i(k) \\[1ex] \nu_i(k+1)=\nu_i(k)+u_i(k) pi(k+1)=pi(k)+νi(k)νi(k+1)=νi(k)+ui(k)状态空间表达式: x ( k + 1 ) = a x ( k ) + b u ( k ) x(k+1)=ax(k)+bu(k) x(k+1)=ax(k)+bu(k)
动态一致性控制器为:
u i ( k ) = α ∑ j ∈ N i a i j ( p j ( k ) − p i ( k ) ) + β ∑ j ∈ N i a i j ( ν j ( k ) − ν i ( k ) ) u_i(k) = \alpha\sum_{j\in N_i}a_{ij}(p_j(k)-p_i(k))+\beta\sum_{j\in N_i}a_{ij}(\nu_j(k)-\nu_i(k)) ui(k)=αjNiaij(pj(k)pi(k))+βjNiaij(νj(k)νi(k)) u ( k ) = − [ α L β L ] x ( k ) u(k) = - \begin{bmatrix} \alpha L&\beta L\end{bmatrix}x(k) u(k)=[αLβL]x(k)
针对由上述所构成的多智能体系统,当且仅当矩阵 Γ \Gamma Γ有一个重数为2的特征值1,其他特征值均在单位圆内时,使用上述控制器系统可实现一致性。

静态一致性控制器为:
u i ( k ) = α ∑ j ∈ N i a i j ( p j ( k ) − p i ( k ) ) + β ν i ( k ) u_i(k) = \alpha\sum_{j\in N_i}a_{ij}(p_j(k)-p_i(k))+\beta\nu_i(k) ui(k)=αjNiaij(pj(k)pi(k))+βνi(k) u ( k ) = − [ α L β I n ] x ( k ) u(k) = - \begin{bmatrix} \alpha L&\beta I_n\end{bmatrix}x(k) u(k)=[αLβIn]x(k)
针对由上述所构成的多智能体系统

%离散时间系统动态一致性
clear
clc

L = [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  3 -1
    -1  0 -1  2];

alpha = 1.5;
beta = 1.0;

p(:,:) = [20 10 40 00]';
v(:,:) = [02 01 04 00]';
u(:,:) = [00 00 00 00]';

tBegin = 0;
tFinal = 20;
dT = 0.1;
times = (tFinal-tBegin)/dT;
t(1,1) = 0;

for k=1:times
    t(:,k+1) = t(:,k) + dT;
    
    u(:,k) = [-alpha*L -beta*L] * [p(:,k); v(:,k)];
    
    v(:,k+1) = v(:,k) + dT * u(:,k);
    p(:,k+1) = p(:,k) + dT * v(:,k);
end

figure(1)
plot(t,p(1,:), t,p(2,:), t,p(3,:), t,p(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$p_i$','Interpreter','latex');
legend('$p_1$','$p_2$','$p_3$','$p_4$','Interpreter','latex'); grid on
xlim([0,20])

figure(2)
plot(t,v(1,:), t,v(2,:), t,v(3,:), t,v(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$v_i$','Interpreter','latex');
legend('$v_1$','$v_2$','$v_3$','$v_4$','Interpreter','latex'); grid on
xlim([0,20])

连续时间含时延系统一致性

动态一致性控制器为:
u i = α ∑ j ∈ N i a i j ( p j ( t − τ ) − p i ( t − τ ) ) + β ∑ j ∈ N i a i j ( ν j ( t − τ ) − ν i ( t − τ ) ) u_i= \alpha\sum_{j\in N_i}a_{ij}(p_j(t-\tau)-p_i(t-\tau))+\beta\sum_{j\in N_i}a_{ij}(\nu_j(t-\tau)-\nu_i(t-\tau)) ui=αjNiaij(pj(tτ)pi(tτ))+βjNiaij(νj(tτ)νi(tτ)) u = − [ α L β L ] x ( t − τ ) u= - \begin{bmatrix} \alpha L&\beta L\end{bmatrix}x(t-\tau) u=[αLβL]x(tτ)

定理:针对上述多智能体系统,假设系统通信拓扑图是连通图,那么针对上面的含有时延T的控制器,当时延满足条件式(最大时延) τ ∗ = m i n k > 1 { a r c t a n ( β η k α ) / η k } \tau^*=min_{k>1}\{ arctan(\frac{\beta \eta_k}{\alpha} )/\eta_k\} τ=mink>1{arctan(αβηk)/ηk}时系统可实现一致性。其中 ω = ( λ k 2 β 2 + λ k 4 β 4 + 4 λ k 2 α 2 ) = = η k \omega=\sqrt{\left(\lambda_k^2\beta^2+\sqrt{\lambda_k^4\beta^4+4\lambda_k^2\alpha^2}\right)}==\eta_k ω=(λk2β2+λk4β4+4λk2α2 ) ==ηk

% 连续时间含时延系统一致性
clear
clc

L = [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  3 -1
    -1  0 -1  2];

alpha = 1.5;
beta = 1.0;

lambda = eig(L);
lambda(round(lambda)==0)=[];
omega = sqrt( (lambda.^2.*beta^2 + sqrt(lambda.^4.*beta^4+4*lambda.^2.*alpha^2)) / 2 );
eta_k = omega;
tau = (atan(beta/alpha*eta_k)) ./ eta_k;
tau_star = min(tau) * 0.0;

p(:,:) = [20 10 40 00]';
v(:,:) = [02 01 04 00]';
u(:,:) = [00 00 00 00]';

tBegin = 0;
tFinal = 20;
dT = 0.001;
times = (tFinal-tBegin)/dT;
t(1,1) = 0;

for i=1:round(tau_star/dT)
    t(:,i+1) = t(:,1);
    p(:,i+1) = p(:,1);
    v(:,i+1) = v(:,1);
    u(:,i+1) = u(:,1);
end

for k=round(tau_star/dT)+1:times
    t(:,k+1) = t(:,k) + dT;

    u(:,k) = [-alpha*L -beta*L] * [p(:,k-round((tau_star)/dT)); v(:,k-round((tau_star)/dT))];
    
    v(:,k+1) = v(:,k) + dT * u(:,k);
    p(:,k+1) = p(:,k) + dT * v(:,k);
end

figure(1)
plot(t,p(1,:), t,p(2,:), t,p(3,:), t,p(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$p_i$','Interpreter','latex');
legend('$p_1$','$p_2$','$p_3$','$p_4$','Interpreter','latex'); grid on
xlim([0,20])

figure(2)
plot(t,v(1,:), t,v(2,:), t,v(3,:), t,v(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$v_i$','Interpreter','latex');
legend('$v_1$','$v_2$','$v_3$','$v_4$','Interpreter','latex'); grid on
xlim([0,20])

领航跟随系统一致性

跟随者模型: p ˙ i ( t ) = ν i ( t ) ν ˙ i ( t ) = u i ( t ) \dot{p}_i(t)=\nu_i (t) \\[1ex] \dot{\nu}_i(t)=u_i(t) p˙i(t)=νi(t)ν˙i(t)=ui(t)
领航者模型: p ˙ 0 ( t ) = ν 0 ( t ) ν ˙ 0 ( t ) = a 0 ( t ) \dot{p}_0(t)=\nu_0 (t) \\[1ex] \dot{\nu}_0(t)=a_0(t) p˙0(t)=ν0(t)ν˙0(t)=a0(t)
控制器设计:
u i ( t ) = α ( ∑ j ∈ N i a i j ( p j ( t ) − p i ( t ) ) + l i l ( p 0 ( t ) − p i ( t ) ) ) + β ( ∑ j ∈ N i a i j ( ν j ( t ) − ν i ( t ) ) + l i l ( ν 0 ( t ) − ν i ( t ) ) ) + a 0 u_i(t) = \alpha \left( \sum_{j\in N_i}a_{ij}(p_j(t)-p_i(t))+l_{il}(p_0(t)-p_i(t))\right)\\[1ex]+\beta\left( \sum_{j\in N_i}a_{ij}(\nu_j(t)-\nu_i(t))+l_{il}(\nu_0(t)-\nu_i(t))\right)+a_0 ui(t)=α jNiaij(pj(t)pi(t))+lil(p0(t)pi(t)) +β jNiaij(νj(t)νi(t))+lil(ν0(t)νi(t)) +a0 u i = [ α ( L + L l ) β ( L + L l ) ] [ 1 n p 0 − p 1 n ν 0 − ν ] + 1 n a 0 u_i =\begin{bmatrix} \alpha(L+L_l)&\beta(L+L_l) \end{bmatrix} \begin{bmatrix} 1_np_0-p\\ 1_n\nu_0-\nu \end{bmatrix}+1_na_0 ui=[α(L+Ll)β(L+Ll)][1np0p1nν0ν]+1na0

其中 a 0 a_0 a0是领航者的控制(加速度)输入。

引理:给定一个复系数多项式 f ( s ) = s 2 + ( a + i b ) s + c + i d f(s) = s_2+(a +ib)s + c+id f(s)=s2+(a+ib)s+c+id其中 a , b , c , d ∈ R a,b, c, d\in R a,b,c,dR,当且仅当a >0且 a b d + a 2 c − d 2 > 0 abd +a^2c-d^2>0 abd+a2cd2>0时f(s)是赫尔维茨(Hurwitz)稳定的。

定理:定义误差变量 p ~ ˙ = p − 1 n p 0 \dot{\tilde{p}} = p-1_np_0 p~˙=p1np0 ν ~ ˙ = ν − 1 n ν 0 \dot{\tilde{\nu}} = \nu-1_n\nu_0 ν~˙=ν1nν0 Γ l = [ 0 I n − α ( L + L l ) − β ( L + L l ) ] \Gamma_l = \begin{bmatrix} 0&I_n \\ -\alpha(L+L_l)&-\beta(L+L_l)\end{bmatrix} Γl=[0α(L+Ll)Inβ(L+Ll)], x ~ = [ p ~ ν ~ ] \tilde{x}=\begin{bmatrix} \tilde{p} \\ \tilde{\nu} \end{bmatrix} x~=[p~ν~]考虑同时含有跟随者和领航者的多智能体系统,假设对于给定的增益参数α,β,存在适当维度的正定矩阵Р使得式 Γ l T P + P Γ l = − I 2 n \Gamma ^T_lP+P\Gamma_l = -I_{2n} ΓlTP+PΓl=I2n成立,那么,系统 x ~ ˙ = Γ l x ~ \dot{\tilde{x}}=\Gamma_l\tilde{x} x~˙=Γlx~是渐进稳定的,同时意味着系统中跟随者实现了对领航者的跟随。

在这里插入图片描述

% 领航跟随系统一致性静态领航者
clear
clc

global L Ll
L = [3 -1 -1 -1
    -1  2 -1  0
    -1 -1  3 -1
    -1  0 -1  2];
Ll= diag([1  1  0  0]);

p(:,:) = [20 10 40 00]';
v(:,:) = [02 01 04 00]';
x(:,:) = [p' v']';

p_0(:,:) = 20;
v_0(:,:) = 2;
x_0(:,:) = [p_0' v_0']';

global alpha beta
alpha = 1.5;
beta = 1.0;

tBegin = 0;
tFinal = 20;
tspan = [tBegin, tFinal];

In = [x_0'  x']';
out = ode23(@ctFun, tspan, In);

t   = out.x;
p_0 = out.y(1,:);
v_0 = out.y(2,:);
p   = out.y(3:6,:);
v   = out.y(7:10,:);

figure(1)
plot(t,p_0, t,p(1,:), t,p(2,:), t,p(3,:), t,p(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$p_i$','Interpreter','latex');
legend('$p_0$','$p_1$','$p_2$','$p_3$','$p_4$','Interpreter','latex'); grid on

figure(2)
plot(t,v_0, t,v(1,:), t,v(2,:), t,v(3,:), t,v(4,:), 'linewidth',1.5);
xlabel('$t (s)$','Interpreter','latex');
ylabel('$v_i$','Interpreter','latex');
legend('$v_0$','$v_1$','$v_2$','$v_3$','$v_4$','Interpreter','latex'); grid on

function out = ctFun(~,In)
    global L Ll alpha beta
    p_0  = In(1);
    v_0  = In(2);
    a_0  = 0;
    dp_0 = v_0;
    dv_0 = a_0;

    p  = In(3:6);
    v  = In(7:10);
    u  = [-alpha*(L+Ll)  -beta*(L+Ll)]...
       * [p - p_0;        v - v_0]...
       + ones(4,1)*a_0;
    dp = v;
    dv = u;
    
    out = [dp_0
           dv_0
           dp
           dv];
end

连续时间系统编队控制

当所有智能体的状态满足以下关系时,证明多智能体系统实现编队控制
l i m t → ∞ ∣ ∣ p ~ i ( t ) − p ~ j ( t ) ∣ ∣ = 0 l i m t → ∞ ∣ ∣ ν ~ i ( t ) − ν ~ j ( t ) ∣ ∣ = 0 ( i , j = 1 , 2... n )         lim_{t→∞} ||\tilde{p}_i(t)-\tilde{p}_j(t)||= 0\\[1ex] lim_{t→∞} ||\tilde{\nu}_i(t)-\tilde{\nu}_j(t)||= 0\\[1ex] (i, j = 1,2...n) \ \ \ \ \ \ \ \ limt∣∣p~i(t)p~j(t)∣∣=0limt∣∣ν~i(t)ν~j(t)∣∣=0i,j=1,2...n        

设编队的控制向量为 d ( x ) = [ d ( p ) d ( ν ) ] T d(x) = \begin{bmatrix} d(p)&d(\nu)\end{bmatrix}^T d(x)=[d(p)d(ν)]T
d ( x ˙ ) = A d ( x ( t ) ) + B d ( u ( t ) ) d(\dot{x})=Ad(x(t))+Bd(u(t)) d(x˙)=Ad(x(t))+Bd(u(t))
误差向量 x ~ = x − d ( x ) {\tilde{x}} = x-d(x) x~=xd(x) u ~ = u − d ( u ) {\tilde{u}} = u-d(u) u~=ud(u)
通过误差状态方程式 x ~ ˙ = A x ~ ( t ) + B u ~ ( t ) \dot{\tilde{x}}=A\tilde{x}(t)+B\tilde{u}(t) x~˙=Ax~(t)+Bu~(t)将编队控制问题转换为求解误差状态变量的一致性问题

控制器设计: u i ( t ) = α ∑ j ∈ N i a i j ( p ~ j ( t ) − p ~ i ( t ) ) + β ∑ j ∈ N i a i j ( ν ~ j ( t ) − ν ~ i ( t ) ) + u c i u_i(t)=\alpha \sum_{j\in N_i}a_{ij} (\tilde{p}_j(t)-\tilde{p}_i(t))+\beta \sum_{j\in N_i}a_{ij} (\tilde{\nu}_j(t)-\tilde{\nu}_i(t))+u_{ci} ui(t)=αjNiaij(p~j(t)p~i(t))+βjNiaij(ν~j(t)ν~i(t))+uci u = − [ α L β L ] x ~ + u c u= - \begin{bmatrix} \alpha L&\beta L \end{bmatrix}\tilde{x}+u_c u=[αLβL]x~+uc
其中 u c i u_{ci} uci为补偿项, u c = [ u c 1 u c 1 . . . u c n ] T u_{c}=\begin{bmatrix} u_{c1}&u_{c1}&...&u_{cn} \end{bmatrix}^T uc=[uc1uc1...ucn]T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值