Получите текущее время для текущей задачи
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.h
time_T
.
Макрос 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); } }