Установите шаг расчета входного порта, который наследовал его шаг расчета от порта, до которого он соединяется
Нет
C, C++
#define MDL_SET_INPUT_PORT_SAMPLE_TIME
void mdlSetInputPortSampleTime(SimStruct *S, int_T port,
real_T sampleTime, real_T offsetTime)
S
SimStruct, представляющий Блок s-function.
port
Индекс порта.
sampleTime
Наследованный шаг расчета для port
.
offsetTime
Наследованное время смещения для port
.
Механизм Simulink® вызывает этот метод с шагом расчета, который port
наследовал от порта, до которого это соединяется.
Для S-функций MEX C, если наследованный шаг расчета приемлем, этот метод устанавливает шаг расчета port
к наследованному времени, с помощью ssSetInputPortSampleTime
и ssSetInputPortOffsetTime
. Если шаг расчета недопустим, этот метод генерирует ошибку через ssSetErrorStatus
. Обратите внимание на то, что любым другим портам ввода или вывода, шаги расчета которых неявно заданы на основании знания шага расчета данного порта, можно было также установить их шаги расчета через вызовы
или ssSetInputPortSampleTime
. Этот метод только допустим для симуляции и должен быть заключен в оператор ssSetOutputPortSampleTime
#if defined(MATLAB_MEX_FILE)
.
Механизм вызывает этот метод, пока все входные порты с наследованными шагами расчета не заданы.
Когда наследовано основанные на порте шаги расчета заданы, шаг расчета, как гарантируют, будет одним из следующих где 0.0 < period < inf
и 0.0 <= offset < period
.
'SampleTime' | 'OffsetTime' | |
---|---|---|
Непрерывный | 0.0 | 0.0 |
Дискретный | period | offset |
Постоянный, инициированный, и шаги расчета переменного шага не распространены к S-функциям с основанными на порте шагами расчета.
Обычно mdlSetInputPortSampleTime
называется однажды на порт с шагом расчета входного порта. Однако могут быть случаи, где эта функция вызвана несколько раз. Это происходит, когда механизм симуляции преобразовывает времена непрерывной выборки в непрерывный, но фиксированное в шагах расчета незначительных шагов. Когда это происходит, исходные значения шагов расчета, заданных в mdlInitializeSizes
, восстанавливаются, прежде чем этот метод называется снова.
Итоговый шаг расчета, заданный в порте, может отличаться от (но может быть эквивалентен), шаг расчета, заданный этим методом. Это происходит когда
Модель использует решатель фиксированного шага, и порт имеет непрерывное, но фиксированное в шаге расчета незначительного шага. В этом случае механизм Simulink преобразовывает шаг расчета в основной шаг расчета для модели.
Механизм настраивает шаг расчета, чтобы быть максимально численно звуковым. Например, механизм преобразовывает [0.2499999999999, 0]
в [0.25, 0]
.
S-функция может исследовать итоговые шаги расчета в mdlInitializeSampleTimes
.
ssSetInputPortSampleTime
, ssSetOutputPortSampleTime
, mdlInitializeSampleTimes
, SetInputPortSampleTime