【Matlab 控制】仿真多智体一致性分析,附代码

该博客介绍了一种使用Matlab进行多智能体一致性分析的方法,通过无向图的拉普拉斯矩阵实现。代码示例展示了如何初始化参数,计算智能体的输入变化,并最终绘制出位置收敛路径图和输入变化曲线。结果呈现出智能体状态逐渐收敛的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Matlab 仿真多智体一致性分析,附代码

本例程所有参数及状态均采用最简单的形式,使更容易理解一致性的收敛过程。

所使用拉普拉斯矩阵图为如下所示的无向图(undirected graph)
在这里插入图片描述

输入:

  1. 初始位置(状态)
  2. 图拉普拉斯矩阵

输出:

  1. 各智能体一致性位置收敛路径图
  2. 各智能体的输入变化曲线
%改变了Laplacian函数里面的FAI矩阵,使得状态收敛至静态值,
clc;
clear;

%% 输入初始化参数
X0  = [1, 5, 4]';

% 度矩阵,有向拓扑结构
D =[2 0 0;
    0 2 0;
    0 0 2;];
% 邻接矩阵,有向拓扑结构
A =[0 1 1;
    1 0 1;
    1 1 0];
% 拉普拉斯矩阵
L = D - A;

%% 收敛相关参数
tBegin = 0;                                                                 % 开始时间 
tEnd   = 3;                                                                 % 结束时间
h      = 0.1;                                                               % 最小时间间隔
times  = (tEnd-tBegin) / h;                                                 % 迭代计算次数
X(:,1) = X0;                                                                % Y的第一列等于Y1
U(:,1) = -L * X0;
t(1) = tBegin;                                                              % 时间间隔记录表

i = 1;
while(i <= times)
    Xt = X(:,i);
    Ut = -L * Xt;                                                           % u = -Lx
    Xt1 = Xt + h * Ut;                                                      % x = x + h*u
       
    X(:,i+1) = Xt1;                                                         % 添加更新后的Xt值
    U(:,i+1) = Ut;                                                          % 添加更新后的Ut值  
    t(i+1) = tBegin + i * h;                                                % 添加更新后的t值
    i = i+1;
end

%% 结果显示
% 绘制图像
subplot(2,1,1)
plot(t,X(1,:), t,X(2,:), t,X(3,:), 'linewidth',2.0)
legend("x_1","x_2","x_3");
xlabel('Times/收敛次数');
ylabel('States/状态值');

subplot(2,1,2)
plot(t,U(1,:), t,U(2,:), t,U(3,:), 'linewidth',2.0)
legend("u_1","u_2","u_3");
xlabel('Times/收敛次数');
ylabel('U/输入值');

结果如下图所示:
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值