Установите шаг расчета входного порта, который наследует его шаг расчета от порта, к которому он подключен
Нет
MATLAB
SetInputPortSampleTime(s, port, time)
s
Образец Simulink.MSFcnRunTimeBlock
класс, представляющий Блок Level-2 MATLAB S-function.
port
Целое значение, задающее индекс порта, чей режим дискретизации должен быть установлен.
time
Двухэлементный массив, [period offset]
, который задает период и смещение времени, в течение которого этот порт дискретизирует свой вход.
Simulink® engine вызывает этот метод со шаг расчета, который port
наследует от порта, к которому он подключен.
Для Level-2 S-функций MATLAB, если унаследованный шаг расчета приемлемо, этот метод устанавливает шаг расчета и время смещения с помощью линии
s.InputPort(port).SampleTime = time;
Механизм вызывает этот метод до тех пор, пока не будут заданы все входные порты с унаследованными шагами расчета.
Когда заданы шаги расчета на основе унаследованного порта, время расчета гарантированно будет одним из следующих, где 0.0 < period < inf
и 0.0 <= offset < period
.
Шаг расчета | Время смещения | |
---|---|---|
Непрерывный | 0.0 | 0.0 |
Дискретный | period | offset |
Постоянные, триггерные и переменные шаги расчета не распространяются на S-функции с основанными на портах временами расчета.
Обычно SetInputPortSampleTime
вызывается один раз на порт со шаг расчета входного порта. Однако могут быть случаи, когда эта функция вызывается не один раз. Это происходит, когда механизм симуляции преобразует непрерывные шаги расчета в непрерывное, но фиксированное в мелкие шаги шагов расчета. Когда это происходит, исходные значения шагов расчета, заданные в setup
восстанавливаются до повторного вызова этого метода.
Окончательный шаг расчета, заданное в порте, может отличаться от (но эквивалентно) шага расчета, заданного этим методом. Это происходит, когда
Модель использует решатель с фиксированным шагом, и порт имеет непрерывный, но фиксированный в мелкий шаг шаг расчета. В этом случае механизм Simulink преобразует шаг расчета в основной шаг расчета для модели.
Двигатель настраивает шаг расчета так, чтобы оно было настолько численно, насколько это возможно. Для примера двигатель преобразует [0.2499999999999, 0]
на [0.25, 0]
.
S-функция может исследовать окончательные шаги расчета в setup
.
setup
, Simulink.MSFcnRunTimeBlock
, mdlSetInputPortSampleTime