Запланировать количество шагов к следующему событию
void ssSetNumTicksToNextHitForControllableSampleTime(SimStruct *S, int st_index, size_T numTick)
SimStruct представляет S-функциональный блок.
Индекс контролируемого времени выборки в блоке.
Примечание
управляемое время выборки поддерживается только в блоках с одной скоростью. Следовательно sti будет 0.
Интервал между текущим и следующим выполнением. Блок будет выполнен после numTick * resolution. Посмотрите ssSetControllableSampleTime для получения информации о настройке resolution.
Используйте эту функцию в mdlInitializeConditions и mdlOutputs для установки следующего времени выполнения S-функции. Следующее выполнение запланировано на t_next = t + numTick * resolution, где t - текущее время и resolution устанавливается с помощью ssSetControllableSampleTime.
C, C++
Набор numTick = 1 при звонке ssSetNumTicksToNextHitForControllableSampleTime в mdlInitializeConditions для принудительного выполнения блока при инициализации системы.
static void mdlInitializeConditions(SimStruct *S} { ssSetNumTicksToNextHitForControllableSampleTime(S, 0, 1); }
Запланировать следующее выполнение блока на t + 4 * resolution, где t - текущее время.
static void mdlOutputs(SimStruct* S, int_T tid) { ssSetNumTicksToNextHitForControllableSampleTime(S, 0, 4); }
См. S-функцию sfun_pwm.c используется в sfcndemo_pwm