AMEsim与MATLAB联合仿真遇到的问题

用matlab和amesim联合仿真,利用智能算法去优化pid参数,为啥到达最大迭代次数后,仿真无法停止,设置迭代5次,运行不会报错,就是到达最大迭代次数后还会继续迭代,想请教各位

SwarmSize = 5;    % 群规模
MaxIter =3;      % 最大迭代次数  
MinFit = 0.1;       % 最小适应值 
d=2;%距离
 step=2;%步长

Ub = [50 50 50];%上下限
Lb = [0.1 0.1 0.1];

%% 初始化
for i=1:SwarmSize 
pop(i,:)=Ub.*rand(1,Dim); 
m(i)= BAS_PID(pop(i,:));
end
%% 个体极值和群体极值
[bestf,bestindex]=min(m);
zbest=pop(bestindex,:);   % 最佳
fzbest=bestf;               % 全局最佳适应值
iter = 0;
y_fitness = zeros(1,MaxIter);   % 预先产生4个空矩阵
K_p = zeros(1,MaxIter);         
K_i = zeros(1,MaxIter);
K_d = zeros(1,MaxIter);
for t=1:MaxIter
    t;
    for i=1:SwarmSize
        dir=rand(1,Dim);
 b=dir./(norm(dir)); 
xl(i,:)=pop(i,:)-d.*b;
 fl(i)= BAS_PID(xl(i,:));
xr(i,:)=pop(i,:)+d.*b;
 fr(i)= BAS_PID(xr(i,:));
pop(i,:)=pop(i,:)-step.*b.*sign(fr(i)-fl(i));
  for k=1:Dim
            if pop(i,k)>Ub(k), pop(i,k)=Ub(k); end
            if pop(i,k)<Lb(k), pop(i,k)=Lb(k); end
        end
mm(i)= BAS_PID(pop(i,:)); 
    end 
   [aaa,bbb]=sort(mm);
zmm=aaa(1);
ccc=bbb(1);
bestxx=pop(ccc,:);
step=step*0.95;
d=0.95*d+0.01;
if  zmm<= fzbest
    fzbest=zmm;
     zbest=bestxx;   
end 
  
    iter = iter+1;                      % 迭代次数更新
    y_fitness(1,iter) = fzbest;         % 为绘图做准备
    K_p(1,iter) = zbest(1);
    K_i(1,iter) = zbest(2);
    K_d(1,iter) = zbest(3);
    
end

img

img

img