Проверка стабильности системы с использованием вывода - PullRequest
0 голосов
/ 22 января 2019

Я хочу написать функцию, которая на основе выходных данных системы будет проверять, стабильна ли система.Вывод генерируется 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...