Определите, является ли задача непрерывной
boolean_T ssIsContinuousTask(SimStruct *S, int_T tid)
SSimStruct, представляющий блок 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.