У меня есть модель Simulink с контроллером, который вводит команду в систему.
Контроллер выдает свои данные на основе измерений состояния, данных системой, и я хочу смоделировать, что система имеет доступ только к измерениям с определенной скоростью, 1 / Ts (с Ts время выборки). Что означало бы, что в течение одного Ts контроллер имеет постоянный вход.
Однако я хотел бы, чтобы динамика системы вычислялась с использованием точного решателя с использованием переменного размера шага.
Прямо сейчас мне удалось заставить его работать при использовании солвера с фиксированным размером шага. Например, когда частота дискретизации Ts равна 100 фиксированного размера шага, я просто добавил блок с этой функцией Matlab после контроллера и перед системой:
function [old_input, output, new_counter] = fcn(new_input, old_input, counter)
if counter < 99
new_counter = counter + 1;
output = old_input;
else
new_counter = 0;
output = new_input;
old_input = new_input;
end
Где я инициализирую переменную-счетчик 99.
Есть ли способ получить аналогичный результат при использовании переменного размера шага.