【一致性仿真】Fixed-time bipartite consensus of multi-agent systems with disturbances

文章链接:Fixed-time bipartite consensus of multi-agent systems with disturbances
仿真图Fig2:
在这里插入图片描述
MATLAB代码:

% Fixed-time bipartite consensus of multi-agent systems with disturbances
% author:JCGUY
% date:2022-04-20
clear
clc

%% 
tBegin = 0;
dT     = 0.001;
tFinal = 8;
times  = (tFinal - tBegin) / dT;
time   = 1;
t(1,1) = 0;

A = [ 0 -1  0  6  0  7;
     -1  0  2  0  0  0;
      0  2  0 -3  0  0;
      6  0 -3  0 -4  0;
      0  0  0 -4  0 -2;
      7  0  0  0 -2  0];
    
X(:,1) = [-8 -6 -2 2 6 8]';
% X(:,1) = [-20 -15 10 -6 20 6]';
U(:,1) = [0, 0, 0, 0, 0]';
Usum(:,1) = [0, 0, 0, 0, 0]';
mu=0.5;eta=0.6;alpha=6.1;m=3;%提供的参数

%% 迭代公式,收敛计算
for i=1:times
    
    t(:,i+1) = t(:,i) + dT;
    % 控制输入分别为 atan()

    Usum(1, i)= A(1,2)*(X(2, i)-sign(A(1,2))*X(1, i)) + A(1,4)*(X(4, i)-sign(A(1,4))*X(1, i)) + A(1,6)*(X(6, i)-sign(A(1,6))*X(1, i));
    U(1, i) = mu*sign(Usum(1, i))*abs(Usum(1, i))^(2-1/m)+eta*sign(Usum(1, i))*abs(Usum(1, i))^(1/m)+alpha*sign(Usum(1, i)) + 0.1;
    
    Usum(2, i)= A(2,1)*(X(2, i)-sign(A(2,1))*X(1, i)) + A(2,3)*(X(3, i)-sign(A(2,3))*X(2, i));
    U(2, i) = mu*sign(Usum(2, i))*abs(Usum(2, i))^(2-1/m)+eta*sign(Usum(2, i))*abs(Usum(2, i))^(1/m)+alpha*sign(Usum(2, i)) + 0.1;
    
    Usum(3, i)= A(3,2)*(X(2, i)-sign(A(3,2))*X(3, i)) + A(3,4)*(X(4, i)-sign(A(3,4))*X(3, i));
    U(3, i) = mu*sign(Usum(3, i))*abs(Usum(3, i))^(2-1/m)+eta*sign(Usum(3, i))*abs(Usum(3, i))^(1/m)+alpha*sign(Usum(3, i)) + 0.1;
    
    Usum(4, i)= A(4,1)*(X(1, i)-sign(A(4,1))*X(4, i)) + A(4,3)*(X(3, i)-sign(A(4,3))*X(4, i)) + A(4,5)*(X(5, i)-sign(A(4,5))*X(4, i));
    U(4, i) = mu*sign(Usum(4, i))*abs(Usum(4, i))^(2-1/m)+eta*sign(Usum(4, i))*abs(Usum(4, i))^(1/m)+alpha*sign(Usum(4, i)) + 0.1;   
    
    Usum(5, i)= A(5,4)*(X(4, i)-sign(A(5,4))*X(5, i)) + A(5,6)*(X(6, i)-sign(A(5,6))*X(5, i));
    U(5, i) = mu*sign(Usum(5, i))*abs(Usum(5, i))^(2-1/m)+eta*sign(Usum(5, i))*abs(Usum(5, i))^(1/m)+alpha*sign(Usum(5, i)) + 0.1;
    
    Usum(6, i)= A(6,1)*(X(1, i)-sign(A(6,1))*X(6, i)) + A(6,5)*(X(5, i)-sign(A(6,5))*X(6, i));
    U(6, i) = mu*sign(Usum(6, i))*abs(Usum(6, i))^(2-1/m)+eta*sign(Usum(6, i))*abs(Usum(6, i))^(1/m)+alpha*sign(Usum(6, i)) + 0.1;
    
    
    X(:,i+1) = X(:,i) + U(:,i)*dT;
    
end

%% 绘图
subplot(1,1,1)
plot(t,X(1,:),'k','linewidth',2.0); hold on % x1
plot(t,X(2,:),'b','linewidth',2.0); hold on % x2
plot(t,X(3,:),'g','linewidth',2.0); hold on % x3
plot(t,X(4,:),'y','linewidth',2.0); hold on % x4
plot(t,X(5,:),'c','linewidth',2.0); hold on % x5
plot(t,X(6,:),'r','lin
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值