Simulin万博1manbetxk上的家伙

万博1manbetxSimulink与基于模型的设计

R2019b新增:子系统参考

今天,我想介绍MATLAB R2019b中我最喜欢的新功能:子系统参考

让我们看看它是什么,它是如何工作的,以及您应该何时使用它。

创建子系统文件

在R2019b中,我们引入了一种新的方框图。除了模型文件和库文件,现在可以创建子系统文件:

新菜单,包括子系统参考

在当前文件夹窗口中,您可以按图标和类型区分模型、子系统和库:

比较文件类型

在命令行中,如果子系统是打开的,你可以使用get_param来确定它是什么类型的框图:

文件类型

如果需要在不打开slx文件甚至不将其加载到内存的情况下确定slx文件是哪种类型的框图,也可以使用Simulink.MDLInfo:万博1manbetx

块图表类型

引用子系统文件

要认识到的第一件重要的事情是,子系统文件本身不能被模拟。如果您想要模拟或生成存储在子系统文件中的框图代码,您需要在模型中引用它。

要引用子系统文件,可以从子系统块。在R2019b中,您会注意到子系统块有一个名为Subsystem Reference的新选项卡。为方便起见,我们还向Simulink库中添加了一个名为Subsystem Reference的块,它只是一个预先配置为引用子系统文件的子系统块。万博1manbetx

这里是一个动画,我配置和编辑一个引用的子系统。如您所见,进入子系统并编辑它与编辑标准子系统一样简单和容易。

编辑子系统参考

转换现有子系统

如果您有一个已存在的模型,并且想要将已存在的子系统转换为引用的子系统,您可以简单地在已存在的子系统上单击鼠标右键来进行转换。

转换子系统参考

特定于实例的上下文感知

与库块类似,可以在一个模型中使用同一子系统的多个实例,并且每个实例都适应其上下文。下一个图像显示了一个包含三个相同子系统实例的模型,一个接收复数双精度,一个接收2x3的矩阵,第三个实例接收两个整数的向量。

转换子系统参考

屏蔽

如果希望引用的子系统的多个实例采用不同的参数值,可以为子系统创建掩码。这是通过建模选项卡完成的:

掩蔽子系统参考

这将允许您将不同的参数值传递给子系统的不同实例。下图显示了同一子系统的3个实例。这两个函数首先为增益块取不同的值,最后一个函数将向量2作为输入。

子系统引用的多个实例

什么时候使用子系统参考?

现在的大问题是:何时使用子系统引用?

这个问题的正式答案是阅读文档部分基于组件的建模指南. 在本节文档中,您将看到以下流程图:

组件化原则

以下是我如何做出此决定的简明版本。要将模型组件化,您需要在3种技术中进行选择:库、模型参考和子系统参考:

  • 库:创建块集。区块集是一组区块的集合,分发给大量受众,很少发生变化。为了简化此用例,库提供了转发表和链接管理等功能。
  • 模型参考:创建具有定义良好的刚性接口的独立组件。模型参考提供了许多强大的功能,如加速器模式,软件在环,处理器在环和保护。如果您计划创建大型模型,模型引用将帮助您以一种健壮而高效的方式进行扩展。
  • 子系统参考:将模型的一部分保存到单独的文件中最简单的方法。有时,我喜欢将子系统引用描述为只包含一个子系统的库,并剥离掉所有有用的特性,以管理一个块集,如果您只是想将子系统的内容保存在一个单独的文件中,那么这些特性并不是真正需要的。

我们还把这个表这提供了关于这三种技术的更多细节。

现在轮到你了

如上所述,我强烈建议您通过基于组件的建模指南查看可用于组件化模型的所有选项及其含义。

请尝试一下子系统参考,并在下面的评论中告诉我们您的想法。

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。