Writing S-Functions | ![]() ![]() |
Determine whether a block has requested block reduction before the simulation has begun and whether it has actually been reduced after the simulation loop has begun.
Syntax
Arguments
S
SimStruct representing an S-Function block.
Description
The result of this function depends on when it is invoked. When invoked before the simulation loop has started, i.e., in mdlSetWorkWidths
or earlier, this macro returns true if the block has previously requested that it be reduced. When invoked after the simulation loop has begun, this macro returns true if the block has actually been reduced, i.e., eliminated from the list of blocks to be executed during the simulation loop.
Note
If a block has been reduced, the only callback method invoked for the block after the simulation loop has begun is the block's mdlTerminate method. Further, Simulink invokes the mdlTerminate method only if the block has set its SS_OPTION_CALL_TERMINATE_AT_EXIT option, using ssSetOptions. Thus, if your block needs to determine whether it has actually been reduced, it must set the SS_OPTION_CALL_TERMINATE_AT_EXIT option before the simulation loop has begun and invoke ssGetBlockReduction in its mdlTerminate method.
|
Languages
See Also
![]() | ssGetAbsTol | ssGetContStateAddress | ![]() |