【Matlab 控制】多智能体一致性收敛仿真
生活随笔
收集整理的這篇文章主要介紹了
【Matlab 控制】多智能体一致性收敛仿真
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
%改變了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,:), 'linewidth',1.5)%位置
subplot(2,1,2)
plot(t,Y(6,:), t,Y(7,:), t,Y(8,:), t,Y(9,:), t,Y(10,:), 'linewidth',1.5)%速度
總結
以上是生活随笔為你收集整理的【Matlab 控制】多智能体一致性收敛仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Matlab 控制】Simulink仿
- 下一篇: 【Matlab 控制】函数调用函数