主要内容

在普通模式下模拟多个引用的模型实例

正常模式可见度

在普通模式下进行模拟的引用模型的所有实例都是模拟的一部分。然而,只有一个被引用模型的普通模式实例支持所有数据可视化。万博1manbetx例如,作用域和端口值标签仅显示启用了普通模式可见性的实例的数据。要查看引用模型的所有实例的仿真结果,请使用仿真数据检查.要查看在普通模式下模拟的模型的每个实例的特定实例数据,请使用显示块在被引用模型中。

要在顶部模型中的模拟选项卡,在准备画廊,地下信号监测点击正常模式可见度.此设置确定启用普通模式可见性的实例。如果你没有为一个引用模型的实例指定正常模式可见性,Simulink万博1manbetx®软件选择引用模型的哪个实例启用了正常模式可见性。

模拟后,如果尝试从中打开参照模型模型块没有正常模式可见性时,Simulink软件将显示警告。万博1manbetx

要设置您的模型以控制在正常模式下引用模型的哪个实例具有可见性,并确保对模型进行适当的模拟,请参见指定具有正常模式可见性的实例

检查具有多个引用模型实例的模型

sldemo_mdlref_基本模型有三个模型块(CounterACounterBCounterC),每个引用sldemo_mdlref_计数器模型。如果更新图表,sldemo_mdlref_基本为三个图标中的每一个显示不同的图标模型阻碍。

模型块 图标角 模拟模式和正常模式可见性设置
CounterA 白色 正常模式,启用正常模式可见性
CounterB 灰色角落 正常模式,正常模式可见性禁用
CounterC 黑色的角落 加速器模式(正常模式可见性不适用)

开放和模拟sldemo_mdlref_基本。双击模型块命名CounterA并打开范围块命名范围

该范围显示了对象的模拟结果模型块命名CounterA,已启用正常模式可见性。

如果你打开sldemo_mdlref_计数器模型,双击模型块命名CounterB,范围sldemo_mdlref_计数器仍然显示了测试的结果模型块命名CounterA因为该块启用了普通模式可见性。

有关sldemo_mdlref_基本,请参阅基于组件的模型参考建模

有关将依赖关系分析器用于包含正常模式下引用模型的多个实例的模型层次结构的示例,请参见可视化模型引用层次结构

使用多个引用的模型实例配置模型

  1. 设定每个top模型允许的实例总数参数倍数

  2. 设置参照模型的每个实例,使其使用正常模式模型块引用实例时,设置模拟模式参数正常的.确保层次结构中的所有祖先模型块处于正常模式。

    图标的角用于模型正常模式下的块可以是白色(空)。在更新图表或模拟模型后,角变成灰色。

  3. 如有必要,请修改模型使用的S函数,使其在正常模式下与多个引用模型实例一起工作。有关详细信息,请参阅万博1manbetx支持使用处于正常模式的参考模型的多个实例

默认情况下,Simuli万博1manbetxnk将普通模式可见性分配给一个实例。完成配置步骤后,可以指定一个非默认实例具有普通模式可见性。

有关在引用模型中封装可重用算法的更多信息,请参见模型重用

确定哪个实例具有普通模式可见性

要确定当前哪个实例启用了普通模式可见性:

  1. 若要应用“正常模式可见性”设置,请更新图表,并且不对模型进行其他更改。

  2. 检查模型引用您感兴趣的模型的块。的模型具有白色角点的块已启用正常模式可见性。

在编辑模型或编译期间,在更新关系图后,使用ModelReferenceNormalModelVisibilityBlockPath参数。结果是万博1manbetx仿真软件。BlockPath对象的块路径模型引用已启用正常模式可见性的模型的块。例如:

获取参数(“sldemo_mdlref_counter”...“ModelReferenceNormalModelVisibilityBlockPath”
ans =仿万博1manbetx真软件。BlockPathPackage: Simulink Block Path: 'sldemo_mdlref_basic/CounterA'

对于正在模拟或处于编译状态的顶级模型,可以使用CompiledModelBlockNormalModeVisibility参数。例如:

a=获取参数(“sldemo_mdlref_depgraph”...“CompiledModelBlockNormalModeVisibility”
a=带字段的结构:sldemo\u mdlref\u F2C:[1×1 Simulink.Blo万博1manbetxckPath]sldemo\u mdlref\u加热器:[1×1 Simulink.BlockPath]

当您创建万博1manbetx仿真软件。BlockPath用于指定正常模式可见性的对象:

  • 第一个字符向量必须表示模型引用层次结构的顶层模型中的一个块。

  • 字符向量必须表示模型处于正常模式的块。

  • 表示变量模型或变量子系统的字符向量必须引用活动变量。

指定具有正常模式可见性的实例

请注意

在模拟过程中不能更改正常模式可见性。

要为参照模型的不同实例(当前具有正常模式可见性的实例除外)启用正常模式可见性,请执行以下操作:

  1. 导航到顶级模型。

  2. 模拟选项卡,在准备节,在信号监测中,选择正常模式可见度

    出现“模型块正常模式可见性”对话框。例如,这里有一个对话框sldemo_mdlref_基本模型,层次结构窗格已展开:

    “模型层次结构”窗格显示从中打开对话框的模型的部分模型层次结构。层次结构在第一个层次结构处停止模型未处于正常模式的块。不显示“模型层次结构”窗格模型引用受保护模型的块。

    对话框显示了顶层模型的完整模型层次结构。被引用模型的普通模式实例有复选框。

    提示

    要使“模型块正常模式可见性”对话框的“模型层次”窗格反映当前模型层次,请单击刷新

  3. 选择要具有正常模式可见性的模型实例。

    万博1manbetxSimulink选择模型的所有祖先,并清除该模型的所有其他实例。当一个模型被清除时,Simulink将清除该模型的万博1manbetx所有子模型。

    提示

    若要从“模型块正常模式可见性”对话框中打开模型,请在“模型层次”窗格中的模型上单击鼠标右键,然后单击开放

  4. 若要应用“正常模式可见性”设置,请在模型层次中模拟顶部模型。

作为使用“模型块法线模式可见性”对话框的替代方法,在MATLAB®命令行可以使用ModelBlockNormalModeVisibility参数。对于输入,可以指定以下值之一:

  • 一个数组的万博1manbetx仿真软件。BlockPath对象。例如:

    bp1 =仿万博1manbetx真软件。BlockPath ({“mVisibility_top /模式”...“mVisibility_mid_A /模式”}); bp2=Si万博1manbetxmulink.BlockPath({“mVisibility_top / Model1”...“mVisibility_mid_B / Model1”});BPS = [bp1, bp2];set_param (topMdl“ModelBlockNormalModeVisibility”,bps);
  • 字符向量单元阵列的一种单元阵列,其中字符向量是指向各个块和模型的路径。此示例产生与对象数组示例相同的效果:

    p1={“mVisibility_top /模式”“mVisibility_mid_A /模式”};p2={“mVisibility_top / Model1”“mVisibility_mid_B / Model1”};set_param (topMdl“ModelBlockNormalModeVisibility”,{p1,p2});
  • 一个空数组,以指定使用具有正常模式可见性的实例的Simulink默认选择。万博1manbetx例如:

    set_param (topMdl“ModelBlockNormalModeVisibility”[]);

    使用空阵列相当于清除“模型块正常模式可见性”对话框中的所有复选框。

相关的例子

更多关于