文档

ssSetBlockReduction

要求金宝app引擎试图减少一个阻塞

语法

uint_T ssSetBlockReduction(SimStruct *S, uint_T标志)

参数

年代

SimStruct表示S-Function块。

国旗

如果不为零,则Simulink金宝app®引擎应该尝试减少这个阻塞。

返回

0如果国旗0而且1,否则。

描述

使用此宏请求引擎减少此块。如果一个块可以从模型中消除而不影响模型的行为,那么它就是可约的。该引擎通过在模型模拟过程中跳过可简化块的执行来优化性能。具体地说,引擎不调用mdlStartmdlUpdate,mdlOutputs可约块的方法。此外,引擎执行mdlTerminate方法,只有在块设置了SS_OPTION_CALL_TERMINATE_ON_EXIT选项,使用ssSetOptions

块必须满足一定的标准才能被认为是可约的。例如,

  • 一个块必须至少有一个输入。

  • 一个块必须有与输入相同的输出数量或没有输出。

  • 一个块不能有总线信号的输入。

  • 块不能有连续状态。

  • 当模型记录状态时,块不能有离散的状态。

  • 一个方块不能有零交叉点。

  • 块不能有可调参数。

如果一个块不能满足这些标准中的任何一个,引擎将该块包含在模拟中,而不管该块是否请求减少。

详细信息请参见块减少参考页在Simulink文档。金宝app注意,如果您想启用死分支消除,请不要请求块减少。相反,设置SS_OPTION_NONVOLATILE选择使用ssSetOptions

你的s函数必须在引擎调用s函数之前调用这个宏mdlStart方法(参见中的回调流程图金宝appSimulink引擎与C - S-Functions的交互).这意味着你的s函数必须在它的mdlSetWorkWidths方法将被视为块减少的候选方法。

语言

C, c++

另请参阅

ssGetBlockReduction

R2006a之前介绍过