在普通模式下模拟多个引用模型实例
正常模式可见性
在正常模式下进行模拟的引用模型的所有实例都是模拟的一部分。但是,所引用模型只有一个正常模式实例支持所有数据可视化。金宝app例如,作用域和端口值标签仅显示启用了正常模式可见性的实例的数据。要查看所引用模型的所有实例的模拟结果,请使用模拟数据检查器.若要查看在正常模式下模拟的模型的每个实例的特定于实例的数据,请使用显示引用模型中的块。
要设置普通模式可见性,在顶部模型上模拟选项卡,在准备画廊,下信号监测,点击正常模式可见性.此设置确定启用了正常模式可见性的实例。如果未为引用模型的实例指定正常模式可见性,则Simulink金宝app®软件选择所引用模型的哪个实例启用了正常模式可见性。
模拟完成后,如果尝试从模型块不具有正常模式可见性时,Simulink软件将显示警告。金宝app
若要设置模型以控制在正常模式下引用模型的哪个实例具有可见性并确保模型的正确仿真,请参见指定具有正常模式可见性的实例.
使用多个引用模型实例检查模型
的sldemo_mdlref_basic
模型模型块命名CounterA
,CounterB
,CounterC
每个引用sldemo_mdlref_counter
模型。如果你更新图表,sldemo_mdlref_basic
控件显示不同的图标角模型块。
模型块 | 图标的角落 | 模拟模式和正常模式可见性设置 |
---|---|---|
CounterA |
白色 | 正常模式,启用正常模式可见性 |
CounterB |
灰色的角落 | 正常模式,禁用正常模式可见性 |
CounterC |
黑色的角落 | 加速模式(普通模式可见性不适用) |
打开并模拟sldemo_mdlref_basic
.双击模型块命名CounterA
打开范围块命名ScopeA
.
对象的模拟结果模型块命名CounterA
,它启用了正常模式可见性。
如果你打开sldemo_mdlref_counter
的模型块命名CounterB
,范围为sldemo_mdlref_counter
仍然显示的结果模型块命名CounterA
因为该块启用了正常模式可见性。
欲知更多有关sldemo_mdlref_basic
,请参阅使用模型参考的基于组件的建模.
有关将依赖项分析器用于包含正常模式下引用模型的多个实例的模型层次结构的示例,请参见可视化模型参考层次结构.
使用多个引用模型实例配置模型
设置每个顶级模型允许的实例总数参数
多个
.设置引用模型的每个实例,使其使用正常模式。的块参数对话框中模型引用实例的块,设置模拟模式参数
正常的
.确保层次结构中的所有祖先模型块处于正常模式。图标的角为模型处于正常模式的块可以是白色(空)。在更新图表或模拟模型后,角变成灰色。
如果有必要,修改模型使用的s函数,以便它们在正常模式下与引用模型的多个实例一起工作。详细信息请参见金宝app支持在正常模式下使用多个引用模型的实例.
默认情况下,Simuli金宝appnk将正常模式可见性分配给其中一个实例。完成配置步骤后,您可以指定一个非默认实例以具有正常模式可见性。
有关在引用模型中封装可重用算法的详细信息,请参见模型重用.
确定哪个实例具有正常模式可见性
要确定当前哪个实例启用了正常模式可见性:
要应用正常模式可见性设置,请更新图表,并且不要对模型进行其他更改。
检查模型引用您感兴趣的模型的块。的模型具有白角的块启用了正常模式可见性。
在编辑模型或编译期间,在更新关系图之后,使用ModelReferenceNormalModeVisibilityBlockPath
参数。结果是金宝app仿真软件。BlockPath
对象的块路径模型块,该块引用启用了正常模式可见性的模型。例如:
get_param (“sldemo_mdlref_counter”,...“ModelReferenceNormalModeVisibilityBlockPath”)
ans = 金宝appSimulink。BlockPathPackage: Simulink Block Path: 'sldemo_mdlref_basic/CounterA'
对于正在模拟或处于已编译状态的顶部模型,可以使用CompiledModelBlockNormalModeVisibility
参数。例如:
A = get_param(“sldemo_mdlref_depgraph”,...“CompiledModelBlockNormalModeVisibility”)
a = struct with fields: sldemo_mdlref_F2C: [1×1 金宝appSimulink.]BlockPath] sldemo_mdlref_加热器:[1×1 Simu金宝applink。]BlockPath]
当你创建金宝app仿真软件。BlockPath
对象,用于指定正常模式可见性:
第一个字符向量必须表示模型引用层次结构顶层模型中的一个块。
字符向量必须表示模型处于正常模式的块。
表示变体模型或变体子系统的特征向量必须指向一个活动的变体。
指定具有正常模式可见性的实例
请注意
在模拟过程中不能更改普通模式可见性。
为引用模型的不同实例启用正常模式可见性,而不是当前具有正常模式可见性的实例:
导航到顶部模型。
在模拟选项卡,在准备节,在信号监测中,选择正常模式可见性.
出现“模型块正常模式可见性”对话框。的对话框
sldemo_mdlref_basic
模型,层次结构窗格展开:模型层次结构窗格显示您从中打开对话框的模型的部分模型层次结构。等级制度止于第一级模型不处于正常模式的块。模型层次结构窗格不显示模型引用受保护模型的块。
对话框显示了顶部模型的完整模型层次结构。引用模型的正常模式实例具有复选框。
提示
要使“模型块正常模式可见性”对话框的模型层次结构窗格反映当前模型层次结构,请单击刷新.
选择希望具有普通模式可见性的模型实例。
金宝appSimulink选择模型的所有祖先,并清除该模型的所有其他实例。当一个模型被清除时,Simulink将清除该模型的金宝app所有子模型。
提示
要从model Block Normal Mode Visibility对话框中打开一个模型,右键单击模型层次结构窗格中的模型,然后单击开放.
要应用普通模式可见性设置,请在模型层次结构中模拟顶层模型。
作为使用模型块正常模式可见对话框的替代方案,在MATLAB中®命令行可以使用ModelBlockNormalModeVisibility
参数。对于输入,您可以指定以下值之一:
的数组
金宝app仿真软件。BlockPath
对象。例如:bp1 = 金宝appSimulink。BlockPath ({“mVisibility_top /模式”,...“mVisibility_mid_A /模式”});bp2 = 金宝appSimulink。BlockPath ({“mVisibility_top / Model1”,...“mVisibility_mid_B / Model1”});BPS = [bp1, bp2];set_param (topMdl“ModelBlockNormalModeVisibility”个基点);
字符向量的单元数组的单元数组,其中字符向量是到各个块和模型的路径。这个例子和对象数组的例子产生了相同的效果:
P1 = {“mVisibility_top /模式”,“mVisibility_mid_A /模式”};P2 = {“mVisibility_top / Model1”,“mVisibility_mid_B / Model1”};set_param (topMdl“ModelBlockNormalModeVisibility”, {p1, p2});
一个空数组,用于指定使用Simulink默认选择具有正常模式可见性的实例。金宝app例如:
set_param (topMdl“ModelBlockNormalModeVisibility”[]);
使用空数组相当于清除“模型块正常模式可见性”对话框中的所有复选框。