Определите время следующего попадания шаг расчета
Нет
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); }