Определите время следующего попадания шаг расчета
Нет
C, C++
#define MDL_GET_TIME_OF_NEXT_VAR_HIT
void mdlGetTimeOfNextVarHit(SimStruct *S)
S SimStruct, представляющий блок S-Function.
Simulink® engine вызывает этот необязательный метод на основном временном шаге, когда значение переменного шага расчета, зарегистрированное этой S-функцией, имеет значение hit. Этот метод используется двигателем Simulink, чтобы определить время следующего попадания выборки для переменного шага расчета. S-функция должна задать этот следующий выборочный удар с помощью ssSetTNext макрос в этом методе. Время следующего попадания должно быть больше текущего времени симуляции, возвращенного ssGetT. S-функция должна реализовать mdlGetTimeOfNextVarHit если он действует в переменном шаге расчета.
Для Level-2 MATLAB® S-функции, используйте шаг расчета -2, чтобы задать переменный шаг расчета. Выходной метод S-функции должен затем обновить NextTimeHit свойство образца Simulink.MSFcnRunTimeBlock класс, представляющий блок S-Function, чтобы задать время следующего шага расчета. См. /msfcn_vs.m например, пример.
Для Level-1 S-функций MATLAB a flag от 4 передается в S-функцию, когда необходимо вычислить следующее попадание шага расчета.
Примечание
Время следующего попадания может быть функцией от входных сигналов.
static void mdlGetTimeOfNextVarHit(SimStruct *S)
{
time_T offset = getOffset();
time_T timeOfNextHit = ssGetT(S) + offset;
ssSetTNext(S, timeOfNextHit);
}