Matlab 仿真含時滯多智體一致性分析,附代碼
系統(tǒng)結(jié)構(gòu)如下圖所示:
clear;
clc;
% 2014_多智能體網(wǎng)絡(luò)的一致性問題研究_紀良浩
% 此為Paper中的示例代碼
% 例2.1:
A = [0, 0, 0.1, 0, 0;0.1, 0, 0, 0, 0;0, 0.15, 0, 0, 0;0, 0.25, 0, 0, 0;0.2, 0, 0, 0, 0;];D = [0, 0, 0, 0, 0;0, 0, 0, 0, 0;0, 0, 0, 0, 0;0, 0, 0, 0, 0;0, 0, 0, 0, 0;];% 各節(jié)點間的通信時滯如下
T13 = 1.0;
T21 = 0.75;
T32 = 1.8;
T42 = 2.0;
T51 = 0.8;
% 輸入時滯如下
T = 0.3;
% 各節(jié)點的隨機初始狀態(tài)如下
X = [2, 3.5, 2.5, 3, 5;]';
U = [0, 0, 0, 0, 0;]';%% 更改時滯格式
% 各節(jié)點間的通信時滯如下
T13 = 10;
T21 = 7;
T32 = 18;
T42 = 20;
T51 = 8;
% 輸入時滯如下
T = 3;
% 為了防止開始收斂前無狀態(tài),特擴充收斂前的狀態(tài)
t = 0;
for i = 1:20X(:, i+1) = X(:, i);U(:, i+1) = U(:, i);t(:, i+1) = t(:, i)+0.1;i = i + 1;
end%%
% 仿真相關(guān)參數(shù)如下
tBegin = 0;
tEnd = 60;
dt = 0.1;
times = (tEnd - tBegin)/dt;
time = 1;% 計算過程如下
while (time <= times)% 時間記錄t(1, time+20) = tBegin + dt * time + 19*0.1;% 控制輸入分別為j = X(3, time+20-T13);i = X(1, time+20-T);a = A(1,3);U(1, time+20) = sum( a * (j-i) );U(2, time+20) = sum( A(2,1) * (X(1, time+20-T21)-X(2, time+20-T)) );U(3, time+20) = sum( A(3,2) * (X(2, time+20-T32)-X(3, time+20-T)) );U(4, time+20) = sum( A(4,2) * (X(2, time+20-T42)-X(4, time+20-T)) );U(5, time+20) = sum( A(5,1) * (X(2, time+20-T51)-X(5, time+20-T)) );% 狀態(tài)更新為X(1, time+21) = X(1, time+20) + U(1, time+20) * dt;X(2, time+21) = X(2, time+20) + U(2, time+20) * dt;X(3, time+21) = X(3, time+20) + U(3, time+20) * dt;X(4, time+21) = X(4, time+20) + U(4, time+20) * dt;X(5, time+21) = X(5, time+20) + U(5, time+20) * dt;time = time + 1;
end%% 繪制結(jié)果圖
subplot(2,1,1);
plot(t,X(1,1:620), t,X(2,1:620), t,X(3,1:620), t,X(4,1:620), t,X(5,1:620), "linewidth",2);
legend("x_1", "x_2", "x_3", "x_4", "x_5");subplot(2,1,2);
plot(t,U(1,:), t,U(2,:), t,U(3,:), t,U(4,:), t,U(5,:), "linewidth",2);
legend("u_1", "u_2", "u_3", "u_4", "u_5");
下圖為默認輸入時滯T=0.3s的收斂情況:
下圖為輸入時滯T=2.0s的收斂情況:
Ref:
2014_多智能體網(wǎng)絡(luò)的一致性問題研究_紀良浩
總結(jié)
以上是生活随笔為你收集整理的【Matlab 控制】仿真含时滞多智体一致性分析,附代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。