使用输出检查系统是否稳定

时间:2019-01-22 18:05:03

标签: matlab

我想编写一个函数,该函数将基于系统的输出来检查系统是否稳定。输出由Simulink生成。功能调整参数,并检查每对参数的稳定性。这个想法是,如果下一个局部最大值大于前一个函数,则不稳定。如果我在一个示例中使用它,我的代码将起作用,但是在这种情况下,isStable的值始终为1。

for col = 1:length(x)
  for row = 1:length(y)
      load_system('system.mdl');
      set_param('system/PID Controller', 'P', sprintf('%f', (row-1)*0.01));
      set_param('system/PID Controller', 'I', sprintf('%f', (col-1)*0.001));
      sim('system.mdl');

      isStable = 1;
      current = 0;

      for i = 1 : size(tout)
        current = [current,getdatasamples(simout2, [i])];
      end

      pks = findpeaks(current)

      for i = 1 : size(pks)-1
        if pks(i+1)>pks(i)
            isStable = 0;
        end
      end

      p(col, row) = isStable;
      disp(isStable);
  end
end

0 个答案:

没有答案