在正常模式下模拟多引用的模型实例

正常模式可见性

正常模式引用模型的所有实例都是模拟的一部分。但是,Simuli金宝appnk.®软件仅在模型窗口中显示一个实例。正常模式可见性包括显示屏范围块和数据端口值。

设置正常模式可见性,在顶部模型中模拟标签,在准备部分,下面信号监控, 选择正常模式可见性。此设置确定Simulink软件显示的实例。金宝app如果未指定参考模型的特定实例的正常模式可见性,则Simulink软件选择要显示的引用模型的一个实例。金宝app

模拟后,如果您尝试从a打开引用的模型模型块没有正常模式可见性,Simulink软件显示警告。金宝app

要设置模型以控制正常模式中引用模型的哪个实例具有可见性,并确保正确仿真模型,请参阅指定具有正常模式可见性的实例

具有多个引用模型实例的示例模型

sldemo_mdlref_basic.模型和“可视化模型参考架构”特色示例显示了使用包含引用模型的多个实例的模型的使用。

sldemo_mdlref_basic.

sldemo_mdlref_basic.模特有三个模型块(对比度抵消, 和违反者)每个参考sldemo_mdlref_counter.模型。

如果更新图表,则sldemo_mdlref_basic.为三个显示不同的图标模型块参考sldemo_mdlref_counter.

模型块 图标角落 仿真模式和正常模式可见性设置
对比度 白色的 正常模式,启用正常模式可见度
抵消 灰色角落 正常模式,具有正常模式可见度禁用
违反者 黑角 加速器模式(正常模式可见性不适用)

开放和模拟sldemo_mdlref_basic.。双击对比度模型并打开Scopea.堵塞。

Scopea.块反映了模拟的结果对比度模型块,启用了正常模式可见度。

如果你试图打开sldemo_mdlref_counter.通过双击模型抵消模型堵塞,Scopea.sldemo_mdlref_counter.仍然显示了结果对比度模型块由于该块具有正常模式可见度。

可视化模型参考体系结构

特色榜样可视化模型参考体系结构显示使用依赖性分析器对于在正常模式下引用引用模型的多个实例的模型的使用。

配置具有多个引用模型实例的模型

  1. 设定每个顶级模型允许的实例总数参数到

  2. 设置引用模型的每个实例,以使其使用正常模式。在“块参数”对话框中模型块引用实例,设置仿真模式参数到普通的。确保层次结构中的所有祖先模型块处于正常模式。

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

  3. 如有必要,请修改模型使用的S函数,以便在正常模式下使用具有引用模型的多个实例。有关详细信息,请参阅金宝app支持在正常模式下使用的多个引用模型实例

默认情况下,Simuli金宝appnk将正常模式可见到其中一个实例分配。完成配置步骤后,可以指定非默认实例以具有正常模式可见性。

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

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

确定哪个实例具有正常模式可见性

要确定当前有哪些实例具有正常模式可见性:

  1. 要应用普通模式可见性设置,请更新图表并没有其他更改模型。

  2. 检查模型引用您感兴趣的模型的块。该模型具有白色角度的块已启用正常模式可见性,导航型号层次结构。

在更新图表后,在编辑模型或编译期间,使用modelReferencenormalModevisibilityBlockPath.范围。结果是一个金宝appsimulink.blockpath.对象是块路径模型块引用具有正常模式可见度的模型。例如:

get_param('sldemo_mdlref_basic'......'modelReferenceNormAlModevisibilityBlockPath'
ans = 金宝appsimulink.blockpath包:simulink块路径:'sldemo_mdlref_basic / brounda'

对于您正在模拟或处于编译状态的顶级模型,您可以使用compiledmodelblockinstancesblockpath.范围。例如:

a = get_param('sldemo_mdlref_depgraph'......'compiledmodelblockinstancesblockpath'
a = sldemo_mdlref_f2c:[1x1 s金宝appimulink.blockpath] sldemo_mdlref_heater:[1x1 simulink.blockpath] sldemo_mdlref_outdoor_temp:[1x1 simulink.blockpath]

当你创造一个金宝appsimulink.blockpath.用于指定正常模式可见性的对象:

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

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

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

为实例启用正常模式可见性

笔记

在仿真期间,您无法更改正常模式可见性。

要使引用模型的不同实例的正常模式可见性,而不是当前具有正常模式可见性的实例:

  1. 导航到顶部模型。

  2. 在这一点模拟标签,在准备部分,下面信号监控, 选择正常模式可见性

    出现“模型块”常规模式可见性对话框。例如,这是对话框sldemo_mdlref_basic.模型,具有层次窗格扩展:

    模型层次结构窗格显示了您打开对话框的模型的部分模型层次结构。层次结构在第一个停止模型块不在正常模式下。模型层次结构窗格不显示模型阻止参考保护型号。

    该对话框显示顶部模型的完整模型层次结构。参考模型的正常模式实例有复选框。

    小费

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

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

    金宝appSimulink选择模型的所有祖先,并清除该模型的所有其他实例。清除模型时,Simulink会清除该模型的所有子项金宝app。

    小费

    要从模型块正常模式可见性对话框中打开模型,请右键单击模型层次结构窗格中的模型,然后单击打开

  4. 要应用普通模式可见性设置,请在模型层次结构中模拟顶部模型。

作为使用模型块正常模式可见性对话框的替代方案,在Matlab上®命令行您可以使用ModelBlockNormalModevibity范围。对于输入,您可以指定其中一个值:

  • 一系列金宝appsimulink.blockpath.对象。例如:

    bp1 = 金宝appsimulink.blockpath({'mvisibility_top / model',...'mvisibility_mid_a / model'});bp2 = 金宝appsimulink.blockpath({'mvisibility_top / model1',...'mvisibility_mid_b / model1'});BPS = [BP1,BP2];set_param(topmdl,'modelblocknormalmodevisibility',bps);
  • 字符向量的单元阵列阵列,字符向量是单个块和模型的路径。此示例产生与对象数组相同的效果示例:

    p1 = {'mvisibility_top / model','mvisibility_mid_a / model'};p2 = {'mvisibility_top / model1','mvisibility_mid_b / model1'};set_param(topmdl,'modelblocknormalmodevisibility',{p1,p2});
  • 一个空数组,指定使用具有正常模式可见性的实例的Simulink默认选择。金宝app例如:

    set_param(topmdl,'modelblocknormalModevisibility',[]);

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

相关例子

更多关于