Установка времени выборки входного порта, который наследует время выборки от порта, к которому он подключен
Нет
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-функциональный блок.
port
Индекс порта.
sampleTime
Наследуемое время выборки для port.
offsetTime
Унаследованное время смещения для port.
Модуль Simulink ® вызывает этот метод с временем выборки, котороеport наследует от порта, к которому он подключен.
Для C MEX S-функций, если наследуемое время выборки приемлемо, этот метод устанавливает время выборки port к наследуемому времени, используя ssSetInputPortSampleTime и ssSetInputPortOffsetTime. Если время выборки недопустимо, этот метод генерирует ошибку через ssSetErrorStatus. Следует отметить, что любые другие входные или выходные порты, время выборки которых неявно определено благодаря знанию времени выборки данного порта, также могут иметь время выборки, установленное посредством вызовов или ssSetInputPortSampleTime. Этот метод допустим только для моделирования и должен быть заключен в ssSetOutputPortSampleTime#if defined(MATLAB_MEX_FILE) заявление.
Модуль вызывает этот метод до тех пор, пока не будут указаны все входные порты с наследуемым временем выборки.
Если указано унаследованное время выборки на основе порта, время выборки гарантированно будет одним из следующих значений, где 0.0 < period < inf и 0.0 <= offset < period.
| Время выборки | Время смещения | |
|---|---|---|
| Непрерывный | 0.0 | 0.0 |
| Дискретный | period | offset |
Постоянные, запускаемые и переменные значения времени выборки не распространяются на S-функции с значениями времени выборки на основе портов.
Обычно mdlSetInputPortSampleTime вызывается один раз для каждого порта с временем выборки входного порта. Однако могут быть случаи, когда эта функция вызывается несколько раз. Это происходит, когда модуль моделирования преобразует непрерывное время выборки в непрерывное, но фиксированное в малых шагах время выборки. Когда это происходит, исходные значения времени выборки, указанные в mdlInitializeSizes восстанавливаются перед повторным вызовом этого метода.
Конечное время выборки, указанное в порту, может отличаться (но эквивалентно) от времени выборки, указанного этим методом. Это происходит, когда
Модель использует решатель с фиксированным шагом, а порт имеет непрерывное, но фиксированное время выборки. В этом случае модуль Simulink преобразует время выборки в основное время выборки для модели.
Двигатель корректирует время выборки так, чтобы оно было как можно более численно звуковым. Например, двигатель преобразует [0.2499999999999, 0] кому [0.25, 0].
S-функция может исследовать конечное время выборки в mdlInitializeSampleTimes.
ssSetInputPortSampleTime, ssSetOutputPortSampleTime, mdlInitializeSampleTimes, SetInputPortSampleTime