【Matlab 控制】 多智能体一致性收敛仿真

it2025-07-31  12

%改变了Laplacian函数里面的FAI矩阵,使得状态收敛至静态值, clc; clear; % 初始化 X0 = [-3, 2, 1, -1,4]'; % 初始位置 DX0 = [0.3, 0.1, 0.5, 0.2, 0.4]'; % 初始速度 Y1 = [X0; DX0]; % 积分初值 n = 5; n = length(X0); A =[0 1 0 -1 1; 0 0 1 0 0; 1 0 0 0 0; 0 0 0 0 1; 0 0 0 1 0]; % 邻接矩阵,有向拓扑结构 D =[1 0 0 0 0; 0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 0 0 1]; % 度矩阵,有向拓扑结构 L = D - A; gama = 1.2547; k = 0.5; % 构造矩阵FAI FAI = [zeros(n,n), eye(n); -L, -k*eye(n)-gama*L]; tBegin = 0; tEnd = 10; h = 0.1; times = (tEnd-tBegin) / h; Y(:,1) = Y1; t(1) = tBegin; i = 1; % 从1到100循环了100次 while(i <= times) K1 = h * FAI * Y(1:10,i); K2 = h * FAI * Y(1:10,i) + K1/2; K3 = h * FAI * Y(1:10,i) + K2/2; K4 = h * FAI * Y(1:10,i) + K3; t(i+1) = t(i) + h; Val = (K1+2*K2+2*K3+K4)/6; Y(1:10,i+1) = Y(1:10,i) + Val; i = i+1; end % 显示 subplot(2,1,1) plot(t,Y(1,:), t,Y(2,:), t,Y(3,:), t,Y(4,:), t,Y(5,:))%位置 subplot(2,1,2) plot(t,Y(6,:), t,Y(7,:), t,Y(8,:), t,Y(9,:), t,Y(10,:))%速度

最新回复(0)