Произведите измерение сигнала с определенной частотой в Simulink - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть модель 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.

Есть ли способ получить аналогичный результат при использовании переменного размера шага.

...