主要内容

模型参考基础

可以将一个模型包含到另一个模型中模型块。的每个实例模型Block是一个模型参考.对于模拟和代码生成,块在引用模型作为一个单元一起执行。包含引用模型的模型是父母模型.父模型和引用模型的集合构成模型层次结构

模型既可以作为独立模型,也可以作为引用模型,而不需要更改模型或从模型派生的任何实体。要将引用模型作为独立模型使用,引用模型不能依赖于只能从更高级别模型获得的数据。

模型参考优势

与子系统一样,模型引用允许您分层地组织大型模型。与库类似,模型引用允许您一次定义一组块并重复使用它。模型引用提供了子系统和库所没有的几个优点。的上下文独立编译引用模型,从而产生了其中的几个优点模型块,包括:

  • 模块化开发

    您可以独立于使用它的模型开发一个引用模型。

  • 模型的保护

    与一个动态仿真模块®编码器™许可证,您可以模糊引用模型的内容,允许您分发模型而不暴露它的知识产权。

    使用Simulink许可证,您可以引用第三方提供的受保护模型。根据授予的受保护模型权限,您可以查看、模拟和生成受保护模型的代码。

  • 以参考方式纳入

    您可以多次引用一个模型,而不必进行冗余的复制,并且多个模型可以引用相同的模型。

  • 增量加载

    Simulink软件在需要时加载一个引用模型,这加快了模型加载的速度。

  • 加速模拟

    Simulink软件可以将参考模型转换为代码,并通过运行代码对模型进行模拟,比交互式仿真速度快。

  • 增量代码生成

    加速模拟仅在模型与之前生成的代码相比发生了更改时才生成代码。

  • 独立的配置集

    被引用模型使用的配置集可以不同于它的父模型或其他被引用模型的配置集。

有关总结模型参考优点的视频,请参见使用模型参考的模块化设计(2分50秒)

要比较模型引用、子系统和库,请参见在模型组件类型中进行选择.您可以在同一个模型中使用多种组件化技术。

模型层次结构

引用的模型可以包含模型引用低层模型的块。的顶级模特是引用模型层次结构中的顶层模型。如果只存在一个级别的模型引用,那么父模型和顶层模型是相同的。为了防止循环继承,a模型块不能直接或间接地引用模型层次结构中高于它的模型。该图显示了循环继承。

顶级模型引用模型A,模型A引用模型B。被引用的模型,模型A和模型B,不能引用顶级模型。模型B也不能引用模型A,这是它的父模型。

父模型可以包含多个模型引用相同模型的块,只要被引用的模型没有定义全局数据。例如,sldemo_mdlref_basic模型包含三个模型块引用sldemo_mdlref_counter模型。

三个模型块在它们的块图标上显示引用模型的名称(sldemo_mdlref_counter)。

被引用的模型也可以出现在任何级别的其他父模型中。

模型块和引用的模型接口

一个模型块显示与其引用的模型的根级输入、输出和控制端口相对应的输入、输出和控制端口。要将引用的模型连接到父模型的其他元素,请使用这些模型阻塞端口。将信号连接到模型块端口将信号连接到参考模型中相应的端口。

在模型sldemo_mdlref_basic,每个模型Block有三个输入:两个常数block和a脉冲发生器块。每一个模型块有一个记录到作用域的输出信号。因为输入信号来自每一个脉冲发生器块使用不同的采样时间,分别输出不同的信号模型块对于每个模型实例是不同的。

连接到父模型、引用模型sldemo_mdlref_counter包括三个轮廓尺寸块(较低的,输入)和一个外港块(输出).

表示模型输入和输出的块是模型框图的一部分。

的上下文独立于引用模型中的信号属性模型块。例如,信号维度和数据类型不会在模型块边界。要在引用的模型中定义信号属性,请为根级定义块参数轮廓尺寸而且总线元件块。

有关更多信息,请参见模型参考接口和边界

建模工作区和数据字典

每个模型都有自己的用于存储变量值的工作区。在模型层次结构中,每个模型工作区充当一个惟一的名称空间。因此,您可以在多个模型工作区中使用相同的变量名。要在模型之间共享数据,可以使用数据字典。

在以下情况下,模型引用层次结构中可能存在重复的数据定义:

  • 层次结构中的每个模型只能看到一个定义。

  • 层次结构中不同模型的定义必须相同。

有关在何处存储变量和对象的更多信息,请参见确定在哪里存储Simulink模型的变量和对象

引用模型执行

使用外部信号来控制是否模型块在模拟过程中执行,参见有条件地执行引用模型

不同的子系统块可以包含模型块作为可变系统。有关不同系统的信息,请参见什么是变量?什么时候使用

缺省情况下,每个块参数的值相同模型可重用引用模型的块实例。要为可重用引用模型的每个实例指定不同的块参数值,请创建模型参数。例如,如果你添加一个获得块到模型sldemo_mdlref_counter,模型参数允许该模型的三个实例使用不同的增益值。看到参数化可重用引用模型的实例

有了模型掩模,您可以控制的外观模型块,并自定义块显示模型参数的方式。有关模型掩码要求,请参见模型面具

参考模型仿真和代码生成

您可以通过解释性的方式(在普通模式下)模拟引用模型,或者通过将引用模型编译为代码并执行代码(在加速模式下)。详情请参见为模型层次结构选择仿真模式

Simulink缓存文件包含可以加速模拟和代码生成的构建构件。有关更多信息和示例工作流,请参见共享Simulink缓存文件以更快的模拟

要了解如何为模型参考层次结构生成代码,请参见为模型引用层次结构生成代码(仿真软件编码器)

另请参阅

相关的话题

Baidu
map