Определите, является ли задача непрерывной
boolean_T ssIsContinuousTask(SimStruct *S, int_T tid)
S
SimStruct, представляющий блок S-Function.
tid
Идентификатор задачи.
Логическое значение true
когда симуляция выполняет непрерывную задачу. В противном случае возвращается false
.
Использование в mdlOutputs
или mdlUpdate
когда ваша S-функция имеет несколько шагов расчета, чтобы определить, представлена ли задача идентификатором задачи tid
- непрерывная задача. Для примера:
if (ssIsContinuousTask(S, tid)) { /* Executing in the continuous task */ if (ssIsSpecialSampleHit(S, 1, 0, tid)) { real_T *zoh = ssGetRWork(S); real_T *xC = ssGetContStates(S); *zoh = *xC; } }
Вы не должны использовать это в односкоростных S-функциях, или если вы не зарегистрировали непрерывный шаг расчета.
C, C++
Смотрите S-функцию mixedm.c
используется в sfcndemo_mixedm
.