Определите, запросил ли блок сокращение блока, прежде чем симуляция началась и уменьшалось ли это на самом деле после того, как цикл симуляции начался
uint_T ssGetBlockReduction(SimStruct *S)
S
SimStruct, представляющий Блок s-function.
Результат этой функции зависит от того, когда это вызывается. Когда вызвано, прежде чем цикл симуляции запустился, т.е. в mdlSetWorkWidths
или ранее, этот макрос возвращает 1
если блок ранее запросил, чтобы он уменьшался. Когда вызвано после того, как цикл симуляции начался, этот макрос возвращает 1
если блок на самом деле уменьшался, т.е. устранялся из списка блоков, которые будут выполняться во время цикла симуляции. В противном случае, возвращает 0
.
Используйте, чтобы определить, запросил ли блок сокращение блока, или определить, уменьшался ли блок уже.
Если блок уменьшался, единственный метод коллбэка, вызванный для блока после того, как цикл симуляции начался, mdlTerminate
блока метод. Далее, механизм Simulink® вызывает
mdlTerminate
метод, только если блок установил свой SS_OPTION_CALL_TERMINATE_ON_EXIT
опция, с помощью ssSetOptions
. Таким образом, если ваш блок должен определить, уменьшался ли он на самом деле, он должен установить SS_OPTION_CALL_TERMINATE_ON_EXIT
опция перед циклом симуляции начала и вызывает ssGetBlockReduction
в его mdlTerminate
метод.
C, C++