Получите текущее время для текущей задачи
time_T ssGetTaskTime(SimStruct *S, st_index)
S
SimStruct, представляющий блок S-Function.
st_index
Индекс шага расчета, соответствующего задаче, для которой должно быть возвращено текущее время.
Значение типа time_T
.
Используйте, чтобы определить текущее время (time_T
) задачи, соответствующей частоте дискретизации, заданной st_index
. Можно использовать этот макрос в mdlOutputs
и mdlUpdate
чтобы вычислить выход вашего блока. См.
описание matlabroot
/ extern/include/tmwtypes.htime_T
тип данных.
The ssGetTaskTime
макрос должен вызываться только внутри ssIsSampleHit
проверяйте. Он не даст правильных результатов, если вызван с tid
прошел в mdlOutputs
.
C, C++
Следующий пример иллюстрирует правильное использование этого макроса:
static void mdlOutputs( SimStruct *S, int_T tid ) { double t; if(ssIsSampleHit(S,0,tid)) { t = ssGetTaskTime(S,0); ssPrintf("Task 0 sample hit in %s time = %g\n", ssGetPath(S),t); } if(ssIsSampleHit(S,1,tid)) { t = ssGetTaskTime(S,1); ssPrintf("Task 1 sample hit in %s time = %g\n", ssGetPath(S),t); } }