Main Content

设置模型层次结构的配置参数

引用模型使用配置集的方式与模型独立执行时相同。默认情况下,层次结构中的每个模型都有自己的配置集。当您在模型层次结构的上下文中打开引用模型时,通过点击模型设置按钮箭头,然后选择引用模型下的模型设置来访问其配置参数。

由于每个模型都可以拥有自己的配置集,因此配置参数值在不同模型中可能会有所不同。此外,某些参数值本质上与模型引用不兼容。Simulink® 对不一致或不可用的配置参数的响应取决于参数:

  • 如果参数的不一致无关紧要,或者存在无风险的平凡解,Simulink 会忽略或解决该不一致而不发出警告。

  • 如果存在可能可接受的非平凡解,Simulink 会以静默方式解决冲突,通过警告解决冲突或生成错误。有关详细信息,请参阅在加速模式下忽略的诊断

  • 如果不存在可接受的解,Simulink 会生成错误。更改部分或全部参数值以消除问题。

使用配置引用管理配置参数

要将一个外部存储的配置集指定给多个模型,可以使用配置引用。配置引用可帮助您消除配置参数不兼容。

可以将顶层模型的配置引用传播到单个引用模型或模型层次结构中的所有引用模型。有关示例,请参阅Share a Configuration Across Referenced Models

对所有引用模型仿真的配置要求

一些配置参数选项可能会导致模型层次结构中出现不兼容。Simulink 会尽可能自动解决违反这些要求的情况,但大多数情况下需要更改部分或所有模型中的参数。

对话框窗格选项要求
求解器开始时间

顶层模型和所有引用模型的编译后的开始时间必须相同。

编译后的开始时间是指定的开始时间后的第一个仿真步。仿真步是模型中具有最快离散速率的增量,从 0 开始。

停止时间Simulink 使用顶层模型的停止时间进行仿真,从而会覆盖引用模型中的任何不同停止时间
类型顶层模型的类型求解器应用于整个层次结构。请参阅求解器设置
求解器
数据导入/导出初始状态对于顶层模型,可以选择此项;但对于引用模型,必须清除此项。

数学和数据类型

应用程序生命周期(天)

对于代码生成,父模型和引用模型的设置必须相同。

对于仿真,父模型和引用模型的此选项的设置可以不同。

模型引用每个顶层模型允许的实例总数在引用模型中不得为“”。一般建议指定为“一个”而不是“多个”,而且有时必须这样指定。请参阅模型实例数设置
代码生成 > 优化默认参数行为如果父模型将此选项设置为“内联”,则引用模型不能设置为“可调”。

求解器设置

模型引用对定步长和变步长求解器均适用。模型层次结构中的所有模型都使用同一求解器,它始终是顶层模型指定的求解器。如果顶层模型指定的求解器类型与任何引用模型指定的求解器类型不兼容,则会发生错误。

顶层模型求解器类型引用模型求解器类型兼容性
定步长定步长允许
变步长变步长允许
变步长定步长允许,引用模型是多速率模型且同时指定了离散采样时间和连续采样时间时除外
定步长变步长错误

如果顶层模型求解器与任一引用模型求解器之间存在不兼容性,则必须更改一个模型或同时更改这两个模型以使用兼容的求解器。有关求解器的信息,请参阅比较求解器求解器选择标准

模型实例数设置

引用模型必须指定它可以被引用,以及它是最多可以引用一次还是可以有多个实例。每个顶层模型允许的实例总数参数提供此设定。此参数的可能值有:

  • ” - 模型不能引用此模型。如果在另一个模型中引用此模型,则会发生错误。

  • 一个” - 模型层次结构最多可引用一次此模型。如果存在多个模型实例,则会发生错误。此值有时是建议值,有时是必需值。

  • 多个” - 如果模型层次结构不包含禁止多个引用的构造,则可以多次引用此模型。如果模型不能被多次引用,即使只存在一次引用,也会发生错误。

对于仅引用一次的模型,将每个顶层模型允许的实例总数设置为“多个”会略微降低执行效率。但是,此设置不会影响仿真或执行 Simulink Coder™ 生成的代码所得到的数据值。仅存在一个模型实例时指定“多个”可避免在按如下方式重用模型时更改或重新编译模型:

  • 在同一层次结构中重用模型

  • 在不同层次结构中多次重用模型

某些模型属性和构造要求将每个顶层模型允许的实例总数设置为“一个”。有关详细信息,请参阅模型重用

在加速模式下忽略的诊断

对于在加速模式下引用的模型,如果将这些配置参数的值设置为“”以外的值,则 Simulink 会忽略这些值:

  • 超出数组边界 (ArrayBoundsChecking)

  • 模块输出为 Inf 或 NaN (SignalInfNanChecking)

  • 仿真范围检查 (SignalRangeChecking)

  • 除以奇异矩阵 (CheckMatrixSingularityMsg)

  • 溢出时绕回 (IntegerOverflowMsg)

此外,对于在加速模式下引用的模型,如果您为以下配置参数 > 诊断 > 数据有效性 > Data Store Memory 模块 参数设置的值不是“全部禁用”,Simulink 将忽略这些参数。有关详细信息,请参阅数据存储诊断

  • 检测写前读 (ReadBeforeWriteMsg)

  • 检测读后写 (WriteAfterReadMsg)

  • 检测写后写 (WriteAfterWriteMsg)

在加速模式下的模型引用仿真期间,Simulink 会临时将若干配置参数 > 诊断 > 数据有效性参数设置为“”(如果它们设置为“警告”或“错误”)。您可以使用模型顾问来检查发生更改的参数。有关详细信息,请参阅在加速模式下忽略的诊断

可以使用模型顾问来确定加速模式下引用的特定模型,这些模型的上述配置参数将被 Simulink 忽略。

  1. 建模选项卡上,点击模型顾问

  2. 选择顶层模型,然后点击确定

  3. 选择按任务 > 模型引用 > 检查模型引用加速仿真期间忽略的诊断设置

  4. 点击运行此检查按钮。

要查看标识的诊断(设置为产生警告或错误)的运行结果,请在普通模式下仿真模型。检查诊断警告,然后在加速模式下进行仿真。

注意

“配置参数”对话框的代码生成窗格上的配置参数不会影响普通模式或加速模式下的仿真。代码生成参数仅影响 Simulink Coder 本身的代码生成。加速模式仿真要求代码生成来创建仿真目标。Simulink 在生成目标时使用所有代码生成参数的默认值,并在代码生成完成后还原原始参数值。

相关主题