Запланировать количество шагов к следующему событию
void ssSetNumTicksToNextHitForControllableSampleTime(SimStruct *S, int st_index, size_T numTick)
SimStruct, представляющий блок S-Function.
Индекс управляемого шага расчета в блоке.
Примечание
управляемый шаг расчета поддерживается только в односкоростных блоках. Отсюда 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