資源簡介
基于事件觸發(fā)的多智能體系統(tǒng)的編隊控制。事件觸發(fā)可以解決芝諾效應(yīng)
代碼片段和文件信息
clc;clear;close;
?%TN=30;??N=30;?step=TN/N;?M?=?5;
?%----定義步長與迭代區(qū)間----連續(xù)系統(tǒng)step<<1越小越好----離散系統(tǒng)setp=1----M表示節(jié)點個數(shù)
TN=3;??N=6000;?step=TN/N;?M?=?5;
T=[step:step:TN];
%---控制增益--------------------------------
c=0.05;
%-----------------------------------
Xk=zeros(3MN);
e?=?zeros(M3);
Xleft=zeros(3M);
Coupling=zeros(3M);cd=zeros(3M);
x1=zeros(MN);?x2=zeros(MN);x3=zeros(MN);
e1=zeros(MN);?e2=zeros(MN);e3=zeros(MN);
up_instant?=?zeros(M1);
up_instant_logic?=?zeros(M1);
up_instants1?=?[1];
up_instants2?=?[1];
up_instants3?=?[1];
up_instants4?=?[1];
up_instants5?=?[1];
Xleft(1:)=[0?1?1?0?0];
Xleft(2:)=[0?0?1?1?0];
Xleft(3:)=[0?0?0?0?1];
D=?????[0?1?1?0?1?
????????1?0?0?1?1?
????????1?0?0?1?1?
????????0?1?1?0?1?
????????1?1?1?1?0?]
v=ones(1M);
L=diag(v0);
d=?0.5*[2?2?4?4?3?;
????2?4?2?4?3?;
????2?2?2?2?4?];
%負(fù)的拉普拉斯矩陣
for?i=1:M
????L(ii)=-sum(D(i:));
end
DD=L+D
for?j=1:N
????
????for?i=1:M
????????up_instant(i)=1;
????????Xk(:ij)=Xleft(:i);
????????
????????for?s=1:M
????????????Coupling(:i)=Coupling(:i)+c*DD(is)*(Xleft(:s)-Xleft(:i));
????????????cd(:i)=?cd(:i)+c*DD(is)*d(:s);
????????end
????????e(i:)?=?Xleft(:i)-Xk(:iup_instant(i));
?????????if?(norm(e(i:)))^2<=100*norm(Coupling(:i)-cd(:i))^2;
?????????????up_instant_logic(i)?=?1;
?????????????Xleft(:i)=Xleft(:i)+(Coupling(:i)-cd(:i))*step;
?????????end
%????????if?norm(e(i:))<=0.2*exp(Coupling(:i)-e(i:)*cd(:i))+0.65;
%?????????????up_instant_logic(i)?=?1;
%?????????????Xleft(:i)=Xleft(:i)+(Coupling(:i)-cd(:i))*step;
%????????end
????????if?up_instant_logic(1)?==?1
????????????up_instant(1)?=?j;
????????????up_instants1?=?[up_instants1;j];
????????end
????????
????????if?up_instant_logic(2)?==?1
????????????up_instant(2)?=?j;
????????????up_instants2?=?[up_instants2;j];
????????end
????????
????????if?up_instant_logic(3)?==?1
????????????up_instant(3)?=?j;
????????????up_instants3?=?[up_instants3;j];
????????end
????????if?up_instant_logic(4)?==?1
????????????up_instant(4)?=?j;
????????????up_instants4?=?[up_instants4;j];
????????end
????????if?up_instant_logic(5)?==?1
????????????up_instant(5)?=?j;
????????????up_instants5?=?[up_instants5;j];
????????end
????????
????????
????????up_instant_logic?=?zeros(M1);
????????
????????
????????
????????x1(ij)=Xk(1ij);
????????x2(ij)=Xk(2ij);
????????x3(ij)=Xk(3ij);
????????
????????
????????Coupling(:i)=0;
????????cd(:i)=?0;
????????
????end
end
for?i=1:1:M
????
????figure(1)
????subplot(311);
????
????plot(Tx1(i:)‘.‘‘color‘[rand?rand?rand]‘markersize‘4);hold?on;
????
????xlabel(‘k‘);ylabel(‘x‘);
????
????subplot(312)
????plot(Tx2(i:)‘.‘‘color‘[rand?rand?rand]‘markersize‘4);hold?on;
????xlabel(‘K‘);ylabel(‘y‘);
????
????
????subplot(313)
????plot(Tx3(i:)‘.‘‘color‘[rand?rand?rand]‘markersize‘4);hold?on;
????xlabel(‘k‘);ylabel(‘z‘);
end
for?i=1:1:M-1
評論
共有 條評論