主要内容

ssSetBlockReduction

要求万博1manbetx引擎试图减少一个块

语法

uint_T ssSetBlockReduction(SimStruct *S, uint_T标志)

参数

年代

SimStruct表示对象功能块。

国旗

如果不是零,Simulink万博1manbetx®引擎应尝试减少此阻塞。

返回

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

描述

使用这个宏请求引擎减少这个块。如果一个块可以在不影响模型行为的情况下从模型中消除,那么它就是可约的。在模型模拟期间,引擎通过跳过可简化块的执行来优化性能。具体地说,引擎不调用mdlStartmdlUpdate,mdlOutputs可约块的方法。此外,引擎执行mdlTerminate方法,仅当该块已设置SS_OPTION_CALL_TERMINATE_ON_EXIT选项,在模拟循环开始之前,使用ssSetOptions

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

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

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

  • 块的输入不能是总线信号。

  • 块不能有连续状态。

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

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

  • 块不能有可调参数。

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

详细信息请参见块减少Simulink文档中的参考页。万博1manbetx注意,如果你想启用死分支消除,不要请求减少块。相反,设置SS_OPTION_NONVOLATILE选择使用ssSetOptions

你的s -函数必须在引擎调用s -函数之前调用这个宏mdlStart方法(请参见中的回调流程图万博1manbetxSimulink引擎与C S-Functions的交互).这意味着你的s函数必须不晚于它的宏调用mdlSetWorkWidths方法将被认为是块减少的候选。

语言

C, c++

另请参阅

ssGetBlockReduction

版本历史

R2006a之前介绍