Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Block reduction

Description

通过折叠或删除模块组来减少执行时间。

类别:Simulation Target

设置

默认值:On

On

Simulink® 软件搜索并约减以下模块模式:

  • 冗余的类型转换 - 不必要的类型转换模块,例如 int 类型转换模块,其输入和输出类型为 int

  • 死代码 - 未使用的代码路径中的模块或信号。

  • 单任务系统中将速率从快变慢的 Rate Transition 模块 - 输入频率比输出频率更快的 Rate Transition 模块。

Off

Simulink 软件不搜索可优化的模块模式。也不会对仿真和生成代码进行优化。

提示

  • 当您选择 Block reduction 时,Simulink 软件会将某些模块组折叠成单个更高效的模块,或者完全删除这些模块。这样可加快模型的仿真速度和生成代码的执行速度。

  • 模块简化不会更改源模型的外观。

  • 可调参数不会阻止通过消除死代码来约减模块。

  • 一旦发生模块简化,Simulink 软件将不再显示已删除模块的排序顺序。

  • 如果您有 Simulink Coder™ 许可证,模块简化仅用于删除表示模块执行的生成代码。而其他支持数据(如采样时间和数据类型的定义),则可能继续保留在生成的代码中。

死代码消除

未使用的代码路径中的任何模块或信号都会从生成的代码中消除。

  • 满足以下条件的模块会被视为是未使用的代码路径的一部分:

    • 模块的所有信号路径最后连接到一个不执行的模块。不执行的模块示例包括 Terminator 模块、禁用的 Assertion 模块、为模块简化配置的 S-Function 模块以及当对代码生成禁用 MAT 文件日志记录时的 To Workspace 模块。

    • 模块的任何信号路径都不包括该模块下游的全局信号存储。

  • 可调参数不会阻止通过消除死代码来约减模块。

  • 请参考模块图中的信号路径。

    如果您选中 Block reductionSimulink Coder 软件将对每个信号路径作出如下响应:

    对于信号路径...Simulink Coder 软件将...
    In1 到 Out1生成代码,因为不满足死代码消除条件。
    In2 到 Terminator不生成代码,因为满足死代码消除条件。
    In3 到 Scope如果 MAT 文件记录已启用,则生成代码;如果 MAT 文件记录已禁用,则消除代码。

命令行信息

参数:BlockReduction
值:'on' | 'off'
默认值:'on'

推荐的设置

应用场景设置
调试对于仿真或开发过程,为 Off
对生产代码的生成没有影响
可追溯性Off
效率On
安全预警

无影响

相关主题