mdlSetInputPortSampleTime

Установите шаг расчета входного порта, который наследует его шаг расчета от порта, к которому он подключен

Необходимый

Нет

Языки

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® engine вызывает этот метод со шаг расчета, который port наследует от порта, к которому он подключен.

Для S-функций C MEX, если унаследованный шаг расчета приемлемо, этот метод устанавливает шаг расчета port к унаследованному времени, используя ssSetInputPortSampleTime и ssSetInputPortOffsetTime. Если шаг расчета неприемлем, этот метод генерирует ошибку через ssSetErrorStatus. Обратите внимание, что любые другие входы или выходные порты, шаги расчета которых неявно заданы в силу знания шага расчета данного порта, могут также устанавливать свои шаги расчета через вызовы ssSetInputPortSampleTime или ssSetOutputPortSampleTime. Этот метод действителен только для симуляции и должен быть заключен в #if defined(MATLAB_MEX_FILE) оператор.

Механизм вызывает этот метод до тех пор, пока не будут заданы все входные порты с унаследованными шагами расчета.

Когда заданы шаги расчета на основе унаследованного порта, время расчета гарантированно будет одним из следующих, где 0.0 < period < inf и 0.0 <= offset < period.

 Шаг расчетаВремя смещения
Непрерывный0.00.0
Дискретныйperiodoffset

Постоянные, триггерные и переменные шаги расчета не распространяются на S-функции с основанными на портах временами расчета.

Обычно mdlSetInputPortSampleTime вызывается один раз на порт со шаг расчета входного порта. Однако могут быть случаи, когда эта функция вызывается не один раз. Это происходит, когда механизм симуляции преобразует непрерывные шаги расчета в непрерывное, но фиксированное в мелкие шаги шагов расчета. Когда это происходит, исходные значения шагов расчета, заданные в mdlInitializeSizes восстанавливаются до повторного вызова этого метода.

Окончательный шаг расчета, заданное в порте, может отличаться от (но эквивалентно) шага расчета, заданного этим методом. Это происходит, когда

  • Модель использует решатель с фиксированным шагом, и порт имеет непрерывный, но фиксированный в мелкий шаг шаг расчета. В этом случае механизм Simulink преобразует шаг расчета в основной шаг расчета для модели.

  • Двигатель настраивает шаг расчета так, чтобы оно было настолько численно, насколько это возможно. Для примера двигатель преобразует [0.2499999999999, 0] на [0.25, 0].

S-функция может исследовать окончательные шаги расчета в mdlInitializeSampleTimes.

Представлено до R2006a