文档

模拟模型引用层次结构

在某些方面,模拟使用模型引用的模型与模拟不使用模型引用的独立模型有所不同。

模拟模型引用层次结构有一些限制。有关详细信息,请参见模拟的局限性信号的局限性

模拟顶级模特

万博1manbetx®在模型引用层次结构中执行顶层模型的方式与在没有模型引用的情况下执行模型的方式相同。所有的Simul万博1manbetxink仿真模式均可用于顶级模型。要在模型引用层次结构中更快地执行顶级模型,可以使用Simulink加速器或快速加速器模式。万博1manbetx加速器模式的详细信息请参见加速度文档。有关快速加速器模式的信息,请参见利用RSim系统目标文件在上位机上对混合动态系统进行加速、优化和测试(万博1manbetx仿真软件编码器)。

当您在Simulink加速器或快速加速器模式下执行顶级模型时,所万博1manbetx有引用模型都在加速器模式下执行。

引用模型模拟

你可以在以下模式中模拟一个被引用的模型:

  • 正常的

  • 加速器

  • Software-in-the-loop(银)

  • Processor-in-the-loop(公益诉讼)

有关使用这些模拟模式作为参考模型的更多信息,请参见参考模型的仿真模式比较

参考模型使用的仿真模式取决于父模型的仿真模式。有关详细信息,请参见父模型和参考模型仿真模式

指定引用模型的仿真模式

模型块控制实例的模拟模式。设置或更改引用模型的模拟模式:

  1. 的块参数对话框模型块。

  2. 设置模拟模式参数。

  3. 点击好吧应用

参考模型的仿真模式比较

您可以为模型引用层次结构中的顶级模型使用快速加速模式,但不能为被引用的模型使用。

参考模型的不同模拟模式共享许多功能和技术,但它们有不同的实现、需求和限制。

提示

加速器模式执行的引用模型不同于:

有关所引用模型的加速器模式执行的详细信息,请参见模型参考仿真目标

模拟模式 描述 什么时候使用
正常的 解释性地执行引用的模型。

万博1manbetxSimulink解释性地执行一个普通模式引用的模型。与其他仿真模式相比,普通模式:

  • 执行更慢。

  • 不需要代码生成或编译的延迟。

  • 使用更多的Simulink和st万博1manbetxatflow®工具,配套工具万博1manbetx如:

    • 作用域、端口值显示和其他输出查看工具。

    • 覆盖率分析模型。

    • 状态流调试和动画。

  • 提供更精确的线性化分析。

  • 万博1manbetx支持更多的s功能比加速器模式。

您可以对引用模型的多个实例使用普通模式。有关详细信息,请参见使用多个引用的模型实例来模拟模型

加速器

通过为被引用的模型创建一个mex -文件(模拟目标)来执行被引用的模型,然后运行mex -文件。

有关更多信息,请参见模型参考仿真目标

  • 执行速度比普通模式快。

  • 代码生成和编译需要时间。

  • 不完全支持一些Simulink万博1manbetx工具,如模型覆盖和Simu万博1manbetxlink调试器。

  • 万博1manbetx支持范围block,但需要使用Signal & Scope Manager并为信号添加测试点。添加或删除测试点需要为模型重新构建SIM目标。

通过生成生产代码执行引用模型。此代码是为主机平台编译的,并在主机平台上执行。

需要嵌入编码器®软件有关更多信息,请参见SIL和PIL的限制(嵌入式编码)数值等价测试(嵌入式编码)。

  • 在不修改原始模型的情况下验证生成的源代码。

  • 万博1manbetx支持使用生成的源代码对原始模型重用测试工具。

SIL模式提供了一个方便的替代PIL模拟时,目标硬件是不可用的。

公益诉讼

通过生成生产代码执行引用模型。这段代码是为目标处理器或等效指令集模拟器交叉编译的,并在目标处理器或等效指令集模拟器上执行。

需要嵌入式编码器软件。有关更多信息,请参见SIL和PIL的限制(嵌入式编码)数值等价测试(嵌入式编码)。

  • 在不修改原始模型的情况下,在目标处理器上验证部署对象代码。

  • 万博1manbetx支持使用生成的源代码对原始模型重用测试工具。

请注意

给定模型在正常模式和加速模式下的仿真结果几乎相同。根据您使用的优化和库的不同,可能会出现微小的差异。

配置参数设置要求和行为可能因模拟模式而异。有关详细信息,请参见加速模拟和代码生成更改设置加速模式下被忽略的诊断信息

加速器模式下忽略诊断配置参数。对于在加速模式中引用的模型,如果您将这些配置参数设置设置为非加速模式的值,则Simul万博1manbetxink将忽略它们的值没有一个

  • 数组边界超过ArrayBoundsChecking

  • Inf或NaN块输出SignalInfNanChecking

  • 模拟范围检查SignalRangeChecking

  • 奇异矩阵除法CheckMatrixSingularityMsg

  • 包装上溢出IntegerOverflowMsg

此外,对于在加速模式中引用的模型,当您将它们设置为非加速模式的值时,Simulink将忽略这些配置万博1manbetx参数禁用所有.有关详细信息,请参见数据存储诊断

  • 写前检测读ReadBeforeWriteMsg

  • 读后检测写WriteAfterReadMsg

  • 写后检测写WriteAfterWriteMsg

您可以使用Model Advisor来识别在加速模式中引用的模型,对于这些模型,Simulink会忽略这些配置参数。万博1manbetx

  1. 在Simuli万博1manbetxnk编辑器中,选择分析>模型的顾问

  2. 选择按照任务

  3. 运行检查在加速模型参考模拟期间忽略的诊断设置检查。

若要查看带有生成警告或错误设置的已识别诊断的运行结果,请在正常模式下模拟该模型。检查诊断警告,然后在加速模式下进行模拟。

父模型和参考模型仿真模式

可用于引用模型的仿真模式取决于其父模型的仿真模式。

母模型仿真模式 参考模型仿真模式
正常的
  • 参考型号可以使用正常、加速、SIL或PIL模式。

  • 如果模型引用层次结构中优于被引用模型的每个模型也以普通模式执行,则该被引用模型可以以普通模式执行。

加速器
  • 所有下级型号也必须在加速模式下执行。

  • 当普通模式模型隶属于加速模式模型时,Simulink返回一个警告并临时覆盖普通模式规范。万博1manbetx

  • 当sil模式或pil模式模型隶属于不是顶级模型的加速模式模型时,就会发生错误。

  • 如果它们的模拟模式是正常模式、加速模式或SIL模式,则所有下级模型也以SIL模式执行。否则,发生错误。看到模型引用层次结构中的模拟模式重写行为(嵌入式编码)。

  • 多个模型块,从模型引用层次结构的顶部开始,可以在SIL模式下执行。但是,如果启用了代码覆盖或代码执行分析,则只有一个模型块可以以SIL模式一次执行。

公益诉讼
  • 如果他们的模拟模式是正常的,加速器,或PIL,所有下属型号也在PIL模式下执行。否则,发生错误。看到模型引用层次结构中的模拟模式重写行为(嵌入式编码)。

  • 多个模型块,从模型参考层次结构的顶端开始,可以在PIL模式下执行。但是,如果启用了代码覆盖或代码执行分析,则只有一个模型可以在PIL模式下一次执行。

更快的模拟使用万博1manbetx缓存文件

当您第一次模拟或执行构建Simulink加速器目标、快速加速器目标或引用模型仿真(SIM)目标的模型的更新图时,构建过程将创建一个Simulink缓存文件来存储构建工件。万博1manbetx使用缓存文件:

  • 加快首次构建的速度,以便自己或他人以后使用。

  • 避免在不使用支持占位符模型的变体的情况下为引用模型的子集重新构建成本。

  • 加速并行模拟。

  • 在每个平台上创建缓存文件后,在不同平台(例如UNIX和Windows)上使用相同的缓存文件。

  • 避免手动更新与设置重建配置参数从来没有.该设置阻止SIM目标的建立和缓存文件的更新。

有关详细信息,请参见重用模拟构建以实现更快的模拟

模拟条件参考模型

您可以运行条件引用模型的独立模拟。独立模拟对于单元测试很有用,因为它在数据类型、维度和示例时间方面提供了跨模拟的一致数据。使用普通、加速或快速加速模式来模拟条件模型。

触发、启用以及触发和启用模型

触发、启用以及触发和启用模型需要外部输入来驱动触发启用块。在信号的属性面板的触发启用块对话框中,指定信号数据类型、维度和采样时间的值。

要运行独立模拟,请使用配置参数>数据导入/导出>输入参数。如何指定输入请参见信号加载技术比较.使用时,适用以下条件输入触发器参数和使能块输入:

  • 为触发器使用最后的数据输入或启用输入。对于被触发和启用的模型,使用最后的数据输入作为触发器输入。

  • 如果不提供任何输入值,模拟将使用0作为默认值。

您可以记录数据以确定是哪个信号导致模型运行。为触发启用块,主要窗格中,选择显示输出端口

函数调用模型

当您模拟一个函数调用模型时,它模拟的好像是一个函数调用以系统驱动函数调用块的最快速度。您还可以配置模型,使用可变步长求解器在特定时间计算输出(参见变量步长求解器要导出的示例).

设置诊断和调试模型引用层次结构

您可以启用或抑制关于a和b之间不匹配的警告消息模型块及其引用模型,方法是在诊断窗格:模型引用

在父模型中使用Simulink D万博1manbetxebugger,您可以在以下位置设置断点模型块边界。控件的输入和输出值可以通过设置断点查看模型块。但是,您不能在模型中设置断点模型块引用。看到万博1manbetx仿真软件调试器为更多的信息。

索引信息传播

在两种情况下,Simulin万博1manbetxk不会将基于0或基于1的索引信息传播到连接到以下块的引用模型根级端口:

  • 接受索引(例如赋值块)

  • 生成索引(例如对迭代器块)

接受索引的块的一个例子是赋值块。产生索引的块的一个例子是对迭代器块。

这两种情况导致缺乏传播,从而导致Simulink无法检测不兼容的索引连接。万博1manbetx这两种情况是:

  • 如果被引用模型的根级输入端口连接到具有不同的基于0或1的索引设置的模型中的索引输入,则Simulink不会设置根级的基于0或1的索引属性万博1manbetx轮廓尺寸块。

  • 如果被引用模型的根级输出端口连接到具有不同的基于0或1的索引设置的模型中的索引输出,则Simulink不会设置根级的基于0或1的索引属性万博1manbetx外港块。

相关的例子

更多关于

这个话题有用吗?