Определите, непрерывна ли задача
boolean_T ssIsContinuousTask(SimStruct *S, int_T tid)
SSimStruct, представляющий Блок s-function.
tidID задачи.
Булево значение true когда симуляция выполняет непрерывную задачу. В противном случае, возвращает false.
Используйте в mdlOutputs или mdlUpdate когда ваша S-функция имеет несколько шагов расчета, чтобы определить если задача, представленная ID задачи 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.