Определите, непрерывна ли задача
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.