Simulink库和模型引用的区别

17

Simulink库和模型引用有哪些区别(如果有的话)。在不同情况下使用它们各自的优势是什么?

4个回答

10
图书馆和模型引用的主要目的是相同的:促进Simulink模型的重复使用。当您使用库时,Simulink会将引用模型的内容“导入”到主模型中。有时,这会导致开发人员处理巨大的模型(超过50k个块),这可能耗费时间。在设计库时,lib文件无法运行。您必须在主模型中“实例化”它。另一方面,模型引用处理分离的模型。当您按下模拟按钮时,它们会被组合在一起,但在设计时间内,您会处理完全分离的模型。使用模型引用,您还可以选择加速方法(它基本上编译模型),而使用库则无法完成此操作。

9

对danielmsd的回答进行补充:

  • 配置管理:模型引用可以轻松地放入版本控制中,开发人员可以独立工作。库是一个文件,因此块无法单独进行版本控制,也不能并行开发。
  • 您可以保护模型引用。
  • 代码生成:只有使用模型引用才能进行增量构建。

但是: 模型引用有很多限制,请在选择此选项之前仔细检查。请参见模型引用限制


5
从系统设计的角度来看,模型引用应该用于您系统的组件。也就是说,您的系统由不同部分组成。库应该用作实用程序。这是可重复使用的块,在整个设计中都被使用。
例如,机器人控制系统包括组件:导航、控制、路径规划等。这些都是组件,应该使用模型引用进行实现。在这种情况下,它们作为独立模型开发,可以单独测试。
在组件内部,您可能需要使用实用程序块,例如低通滤波器、错误状态处理程序和检查输入范围,它们是库。

4

mdl引用的优点:

  • 代码生成: 使用编码器产品时,模型引用允许部分构建。假设您拥有一个具有100k个块并且需要20分钟构建的大型模型,将其拆分为模型引用将减少构建时间,因为只有更改的模型需要重新构建。

  • 模型更新: 只更新更改的模型引用 "CTRL + D",因此在使用非常大的模型时会有所帮助。

  • 模拟: 在模拟中,mdl引用被生成为dll,这使得您的模拟速度更快(效果比正常模式和加速器模式之间的差异要大得多)

缺点和问题:

  • 一般来说,由于限制,Mdl引用使用起来有些麻烦

  • 没有可能传递具有树结构的Simulink.parameter.object。(当使用type:BusObject时,只有value属性具有结构,其他属性则没有)

  • 当子系统具有总线信号作为输入时,mdl引用需要总线对象来指定输入接口,而库块不需要。(即使在库块中使用未指定的总线输入也是相当丑陋的)。(请注意,总线对象始终在基础工作空间中是全局的...有命名冲突的风险)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接