Запланируйте количество шагов к следующему событию
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