生活随笔
收集整理的這篇文章主要介紹了
【Matlab 控制】仿真多智体一致性分析,附代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Matlab 仿真多智體一致性分析,附代碼
本例程所有參數及狀態均采用最簡單的形式,使更容易理解一致性的收斂過程。
所使用拉普拉斯矩陣圖為如下所示的無向圖(undirected graph)
輸入:
初始位置(狀態)圖拉普拉斯矩陣
輸出:
各智能體一致性位置收斂路徑圖各智能體的輸入變化曲線
%改變了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 = -LxXt1 = Xt + h * Ut; % x = x + h*uX(:,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/輸入值');
結果如下圖所示:
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的【Matlab 控制】仿真多智体一致性分析,附代码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。