使用指定的最小值和值进行优化
使用信号和参数的最小值和值进行优化
模型配置窗格: 代码生成 / 优化
描述
使用指定的最小值和最大值进行优化参数指示代码生成器是否使用模型中信号和参数的指定最小值和值来优化生成的代码。
设置
off (默认) | on- On
使用从模型中的信号和参数的最小和最大指定值出的范围信息来优化生成的代码。
- Off
生成代码时忽略指定的最小值和值。
提示
为了检测因使用此参数而导致的模型与生成的代码仿真之间的不匹配,在运行正常、加速器、软件在环 (SIL),或处理器在环 (PIL) 仿真之前,请将 诊断 > 数据有效性 > 仿真范围检查 设置为警告或错误。
指定模型中信号和参数的最小值和值:
Inport 和 Outport 模块。
模块输出。
模块输入,例如, MATLAB Function 和 Stateflow Chart 模块。
Simulink.Signal对象。
此优化不考虑以下指定的最小值和值:
Merge 模块输入。要解决此问题,请在 Merge 模块输出上使用
Simulink.Signal对象并指定此对象的范围总线元素。
条件执行子系统(例如触发子系统)模块直接连接到 Outport 模块的输出。
条件执行子系统中的 Outport 模块可以指定一个初始值,仅在系统未触发时使用。在这种情况下,优化不能使用模块输出的范围,因为该范围可能无法覆盖模块的初始值。
如果您使用 Polyspace® Code Prover™ 软件验证使用此优化生成的代码,它可能会将之前绿色的代码标记为橙色。例如,如果您的模型包含一个分母范围不包含零的除法,则生成的代码不包含对除以零的保护。Polyspace Code Prover 可能会将此代码标记为橙色,因为它没有关于为除法输入指定的最小值和值的信息。
Polyspace Code Prover 软件会自动捕获 MATLAB® 工作区中指定的一些最小值和值,例如
Simulink.Signal和Simulink.Parameter对象。在此示例中,为了向 Polyspace Code Prover 软件提供范围信息,请在除法的输入上使用Simulink.Signal对象并指定不包括零的范围。Polyspace Code Prover 软件将这些值存储在数据范围规范 (DRS) 文件中。但是,它们不会捕获 Simulink® 模型中指定的最小值和值。为了向 Polyspace Code Prover 提供额外的最小/最大信息,您可以手动定义一个 DRS 文件。有关更多信息,请参阅 Polyspace Code Prover 文档。
如果您使用双精度数据类型并选择了 代码生成 > 接口 > 支持非有限数 配置参数,则不会发生此优化。
此优化不适用于可重用的子系统。
如果选择此选项,模型顾问检查检查安全相关的优化设置是否指定最小值和值 (Simulink Check)会生成警告。对于许多安全关键型应用程序来说,自动删除死代码是不可接受的,因为这样做可能会使代码无法追踪。
启用此优化可提高 Fixed-Point Designer™ 软件从生成的代码中消除不必要的实用工具函数和饱和代码的能力。
如果您为模型中具有除
Auto之外的存储类别的信号或参数指定最大值和值,则不会发生此优化。
推荐的设置
| 应用情形 | 设置 |
|---|---|
| 调试 | Off |
| 可追溯性 | Off |
| 效率 | On |
| 安全预警 | 无影响 |
编程用法
参数:UseSpecifiedMinMax |
| 类型:字符向量 |
值: 'on' | 'off' |
默认值:'off' |
版本历史记录
在 R2010b 中推出