【Paper 】2022_基于线性变换的领导−跟随多智能体系统动态反馈均方一致性控制

文章目录

  • [4 仿真验证](#4 仿真验证)

论文地址:郑维, 张志明, 刘和鑫, 张明泉, 孙富春. 基于线性变换的领导−跟随多智能体系统动态反馈均方一致性控制. 自动化学报, 2022, 48(10): 2474−2485 doi: 10.16383/j.aas.c200850

一篇很典型的领导跟随一致性研究

4 仿真验证

论文结果也很不错,个人暂时只复现了一部分,等有人需要再继续其余部分。

例1

论文中作者展示的效果为

当前本人已复现效果如下:

Matlab 程序代码如下:

matlab 复制代码
% 2022_基于线性变换的领导−跟随多智能体系统动态反馈均方一致性控制
% Author: Jichao Zhao
% Date: 10-16-2026

clear
clc

%% 
% Topology of system
L = [2 -1 -1
    -1  2 -1
    -1 -1  2];

% States
x_0(:,1) = [ 0;   0];
x_1(:,1) = [-1;   3];
x_2(:,1) = [-3;  -2];
x_3(:,1) = [ 7;   6];

% Error
x_all = [x_1(:,1),  x_2(:,1),  x_3(:,1)];
e(:,1) = eFun(x_0(:,1), x_all);

% Properties
A   = [-3   0
        1  -1];
A_d = [-4   0
        1  -1];
B_1 = [-0.8
          1];
B_2 = [ 1   0
        0   1];
C   = [1.2
      -0.6]';
D   = [0.5
       0.5];
G   = 0.7;

G_1 = [1,  1,  1;
       0,  1,  1;
       1,  1,  0;];

K_1 = [-0.2964,  0.1512];
K_2 = [-0.2985,  0.1673];
K_3 = [-0.3665,  0.2027];
K_4 = [-0.3859,  0.1838];

%% Time parameters
tBegin = 0;
tFinal = 10;
dT     = 0.01;
times  = (tFinal - tBegin)/dT;
t(1,1) = 0;

% Iterations
for i = 1:times
    % Time
    t(:,i+1) = t(:,i) + dT;

    % Time delay
    tau = 0;    

    % Leader
    dot_x_0 = A * x_0(:,i) + A_d * x_0(:,i-tau) + B_2 * fFun(x_0(:,i), t(:,i))+ D * omegaFun(t(:,i), 0);

    x_0(:,i+1) = x_0(:,i) + dT * dot_x_0;

    % Parameters
    alpha = 3;
    beta  = 5;

    b_1 = 1;
    b_2 = 1;
    b_3 = 1;

    % Control inputs
    x_all = [x_1(:,i),  x_2(:,i),  x_3(:,i)];
    u_1 = K_2 * (controlInputFun(G_1, x_all, 1) + alpha * b_1 * (x_0(:,i+1) - x_1(:,i)));
    u_2 = K_3 * (controlInputFun(G_1, x_all, 2) + alpha * b_2 * (x_0(:,i+1) - x_2(:,i)));
    u_3 = K_4 * (controlInputFun(G_1, x_all, 3) + alpha * b_3 * (x_0(:,i+1) - x_3(:,i)));

    % States
    dot_x_1 = A * x_1(:,i) + A_d * x_1(:,i-tau) + B_1 * u_1 + B_2 * fFun(x_1(:,i), t(:,i)) + D * omegaFun(t(:,i), 1);
    dot_x_2 = A * x_2(:,i) + A_d * x_2(:,i-tau) + B_1 * u_2 + B_2 * fFun(x_2(:,i), t(:,i)) + D * omegaFun(t(:,i), 2);
    dot_x_3 = A * x_3(:,i) + A_d * x_3(:,i-tau) + B_1 * u_3 + B_2 * fFun(x_3(:,i), t(:,i)) + D * omegaFun(t(:,i), 3);

    x_1(:,i+1) = x_1(:,i) + dT * dot_x_1;
    x_2(:,i+1) = x_2(:,i) + dT * dot_x_2;
    x_3(:,i+1) = x_3(:,i) + dT * dot_x_3;

    % Error
    x_all = [x_1(:,i+1),  x_2(:,i+1),  x_3(:,i+1)];
    e(:,i+1) = eFun(x_0(:,i+1), x_all);
end

%% Plot results
figure; 
tiledlayout(2, 2); 
nexttile; hold on;
plot(t( 1, :), x_0( 1, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_1( 1, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_2( 1, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_3( 1, :), '-',  'linewidth',1.5); 
xlabel("$t~/~s$",'Interpreter','latex', 'FontSize',16);
ylabel("$x_{i1}(t)$",'Interpreter','latex', 'FontSize',16);
legend("$x_{01}(t)$", "$x_{11}(t)$", "$x_{21}(t)$", "$x_{31}(t)$",'Interpreter','latex', 'FontSize',16);

nexttile; hold on;
plot(t( 1, :), x_0( 2, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_1( 2, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_2( 2, :), '-',  'linewidth',1.5); 
plot(t( 1, :), x_3( 2, :), '-',  'linewidth',1.5); 
xlabel("$t~/~s$",'Interpreter','latex', 'FontSize',16);
ylabel("$x_{i2}(t)$",'Interpreter','latex', 'FontSize',16);
legend("$x_{02}(t)$", "$x_{12}(t)$", "$x_{22}(t)$", "$x_{32}(t)$",'Interpreter','latex', 'FontSize',16);

nexttile; hold on;
plot(t( 1, :), e, '-',  'linewidth',1.5); 
xlabel("$t~/~s$",'Interpreter','latex', 'FontSize',16);
ylabel("$e(t)$",'Interpreter','latex', 'FontSize',16);

function input = controlInputFun(A, x_all, i)
    alpha = 3;
    
    % Controller
    u = 0;
    for j = 1:size(A, 1)
        u = u + alpha * A(i, j) * (x_all(:,j) - x_all(:,i));
    end

    input = u;
end

function e = eFun(x_0, x_all)
    e = 0;
    for i = 1:size(x_all, 2)
        e = e + norm(x_0 - x_all(:,i));
    end
end

function f = fFun(x, t)
    f = [sin(2*t) - 3*cos(x(1));
        2 * cos(x(2))];
end

function omega = omegaFun(t, i)
    omega = i * exp(-t);
end

最后,为自己专栏打个广告:若想系统性学习多智能体系统一致性控制,欢迎订阅本人专栏:多智能体系统一致性控制

相关推荐
circuitsosk2 个月前
多智能体协同在能源数据分析中的实践:分配-执行-校验闭环架构设计
python·数据分析·wpf·能源·并行计算·多智能体系统·agent协作
逻极4 个月前
Hermes Agent深度探索:一个会自我沉淀经验的终端智能体
架构·llm·agent·rag·多智能体系统·hermes agent·hermes
逻极4 个月前
Hermes Agent深度解析:从ReAct到多智能体系统架构实战
llm·agent·react·rag·多智能体系统
QC·Rex7 个月前
AI Agent 编排实战:从零构建多智能体协作系统
人工智能·ai agent·任务编排·多智能体系统·claude code·自主代理·llm 应用
m0_650108248 个月前
IntNet:面向协同自动驾驶的通信驱动多智能体强化学习框架
论文阅读·marl·多智能体系统·网联自动驾驶·意图共享·自适应通讯·端到端协同
kicikng9 个月前
智能体来了(西南总部)完整拆解:AI Agent 指挥官 + AI调度官架构图
大数据·人工智能·多智能体系统·ai agent指挥官·ai调度官
kicikng9 个月前
智能体来了(西南总部)实战指南:AI调度官与AI Agent指挥官的Prompt核心逻辑
人工智能·prompt·多智能体系统
PKUMOD10 个月前
论文导读 | 大模型多智能体系统的故障归因
大模型·多智能体系统
ComputerInBook10 个月前
代数基本概念理解——特征向量和特征值
人工智能·算法·机器学习·线性变换·特征值·特征向量