设置模型层次结构的配置参数
引用模型使用配置集的方式与模型独立执行时相同。默认情况下,层次结构中的每个模型都有自己的配置集。由于每个模型都可以拥有自己的配置集,因此配置参数值在不同模型中可能会有所不同。
某些参数值本质上与模型引用不兼容。对不一致或不可用的配置参数的响应取决于参数。
如果参数的不一致无关紧要,或者存在无风险的平凡解,软件会忽略或解决该不一致而不发出警告。
如果存在可能可接受的非平凡解,软件会以静默方式解决冲突、解决冲突并发出警告,或者发出错误。有关详细信息,请参阅在加速模式下忽略的诊断。
如果不存在可接受的解,软件会发出错误。
使用配置引用管理配置参数
要将一个外部存储的配置集指定给多个模型,可以使用配置引用。配置引用可帮助您消除配置参数不兼容。
可以将顶层模型的配置引用传播到单个引用模型或模型层次结构中的所有引用模型。有关示例,请参阅Share a Configuration Across Referenced Models。
查看模型引用层次结构仿真的配置要求
某些配置参数设置会导致模型层次结构中的不兼容性。软件会尽可能自动解决违反这些要求的情况,但大多数情况下需要更改部分或所有模型中的参数。
下表提供了模型引用层次结构仿真的配置参数要求。有关代码生成要求,请参阅Set Configuration Parameters for Code Generation of Model Hierarchies (Simulink Coder)。
对话框窗格 | 配置参数 | 要求 |
---|---|---|
求解器 | 开始时间 | 顶层模型和所有引用模型的编译后的开始时间必须相同。 编译后的开始时间是求解器用于仿真的开始时间。通常,编译后的开始时间值与您使用开始时间参数指定的值匹配。当您使用定步长求解器并且您为仿真指定的开始时间不是 0 或定步长的整数倍时,求解器会将编译后的开始时间确定为定步长的最接近整数倍,将时间向前移。 |
停止时间 | 软件在仿真时会使用顶层模型的停止时间,这会覆盖引用模型中的任何不同的停止时间。 | |
类型 | 当层次结构中没有引用模型使用局部求解器时,顶层模型的求解器类型将应用于整个层次结构。要检查兼容性,请参阅指定兼容的求解器设置。 当配置一个或多个引用模型以使用局部求解器时:
| |
求解器 | 当层次结构中没有引用模型使用局部求解器时,顶层模型的求解器将应用于整个层次结构。 当您将一个或多个引用模型配置为使用局部求解器时,您为引用模型选择的求解器会将模型作为一组单独的微分方程进行求解。有关详细信息,请参阅配置局部求解器设置。 | |
将每个离散速率视为单独任务 | 当一个多速率模型将每个离散速率视为一个单独任务并引用另一个多速率模型时,引用模型也必须将每个离散速率视为一个单独的任务。 | |
允许任务在目标上并发执行 | 仅当引用模型不包含异步采样时间并且满足以下条件之一时,父模型和引用模型才支持不同并发任务设置:
| |
数据导入/导出 | 初始状态 | 当顶层模型指定仿真的初始模型状态或工作点时,引用模型不能同时指定初始模型状态或工作点。 |
数学和数据类型 | 非规范数的仿真行为 | 在模型引用层次结构中,您可以使用渐进下溢在任何仿真模式下对顶层模型进行仿真。仅当引用模型的实例使用加速仿真模式并将此参数设置为下溢为零(FTZ) 时,顶层模型引用的模型才能对下溢为零行为进行仿真。 |
使用除法进行定点净斜率计算 | 对于普通或加速模式下的仿真,父模型和引用模型必须配置为以相同方式执行 Fixed-Point Designer™ 净定标计算。 | |
诊断 > 兼容性 | 模块行为取决于信号的帧状态 | 当模型配置为对此参数生成错误时,每个引用模型也必须配置为生成错误。 |
模型引用 | 每个顶层模型允许的实例总数 | 引用模型必须指定它可以被引用,以及它是最多可以引用一次还是可以有多个实例。默认情况下,一个引用模型可以被多次引用。 对于一个引用模型,每个顶层模型允许的实例总数不能为零。 |
指定兼容的求解器设置
模型引用对定步长和变步长求解器均适用。当没有引用模型使用局部求解器时,模型层次结构中的所有模型都使用同一求解器,该求解器始终是顶层模型指定的求解器。如果顶层模型中指定的求解器类型与任何引用模型中指定的求解器类型不兼容,软件将发出错误。
顶层模型求解器类型 | 引用模型求解器类型 | 兼容性 |
---|---|---|
定步长 | 定步长 | 兼容。 |
变步长 | 变步长 | 兼容。 |
变步长 | 定步长 | 兼容,引用模型同时指定了离散采样时间和连续采样时间时除外。 |
定步长 | 变步长 | 不支持。软件会引发错误。 |
如果顶层模型中的求解器类型与任何引用模型中的求解器类型不兼容,则必须更改其中一个模型或同时更改两个模型以使用兼容的求解器类型。有关求解器的信息,请参阅比较求解器和求解器选择标准。
配置局部求解器设置
您可以在模型层次结构中配置一个或多个引用模型以使用局部求解器。在以下情况下,请考虑使用局部求解器:
引用模型表示的组件的动态特性比系统的其余部分要慢得多,并且其连续状态与系统的其余部分是解耦的。
最好使用不同于顶层模型求解器的求解器来求解引用模型。
要使用局部求解器,请为引用模型设置以下配置参数:
选择引用模型时使用局部求解器。
将求解器类型设置为定步长。
如果顶层模型的求解器是定步长求解器,请将定步长(基础采样时间) 参数值指定为
auto
或顶层求解器的定步长的整数倍。
引用模型的局部求解器对引用模型中的连续状态进行运算。由于对仅包含离散状态的引用模型使用局部求解器对仿真结果没有影响,因此不包含连续状态的模型不支持局部求解器。当模型不包含连续状态时,软件将始终使用离散求解器。定步长离散求解器不支持用作局部求解器。
有关局部求解器如何工作、如何配置特定于实例的局部求解器设置以及限制和注意事项的完整列表的信息,请参阅Use Local Solvers in Referenced Models。
在加速模式下忽略的诊断
当引用模型仅在加速模式下仿真时,软件不会针对引用模型的这些诊断配置参数发出警告或错误。
要识别具有在加速模式下仿真期间被忽略的诊断的引用模型,请使用模型顾问。
在建模选项卡上,点击模型顾问。
选择顶层模型,然后点击确定。
选择按任务 > 模型引用 > 检查模型引用加速仿真期间忽略的诊断设置。
点击运行此检查。
要对识别的引用模型运行诊断,请配置对应的配置参数以生成警告或错误。然后,在普通模式下仿真模型,并检查诊断消息。
注意
“配置参数”对话框的代码生成窗格上的配置参数不会影响普通模式或加速模式下的仿真。代码生成参数仅影响 Simulink® Coder™ 的代码生成。加速模式仿真要求代码生成来创建仿真目标。Simulink 软件在生成目标时使用所有代码生成参数的默认值,并在代码生成完成后还原原始参数值。