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