【发布时间】:2011-08-16 16:54:54
【问题描述】:
Simulink 库和模型参考之间有什么区别(如果有的话)。在不同的情况下使用它们有什么好处?
【问题讨论】:
标签: simulink
Simulink 库和模型参考之间有什么区别(如果有的话)。在不同的情况下使用它们有什么好处?
【问题讨论】:
标签: simulink
库和模型引用的主要目的是一样的:方便simulink模型的重用。当您使用库时,simulink 会将引用模型的内容“导入”到主模型中。有时,这会导致开发人员处理巨大的模型(超过 50k 块),这可能非常耗时。在设计库时,无法运行 lib 文件。您必须在主模型中“实例化”它。另一方面,模型参考处理分离的模型。当您按下模拟按钮时,它们会放在一起,但在设计期间,您会处理完全分离的模型。有了模型引用,你也可以选择加速方式(它基本上是编译模型),这是库无法做到的。
【讨论】:
为 danielmsd 的回答添加更多内容:
但是: 模型引用有很多限制,因此在选择此选项之前请仔细检查它们。见Model Referencing Limitations。
【讨论】:
mdl ref 的优点: - 代码生成:模型引用允许在使用编码器产品时进行部分构建。假设您有一个包含 100k 块的非常大的模型并且需要 20 分钟来构建,将其拆分为模型引用将减少构建时间,因为只有更改的模型需要重建。
模型更新:只有更改的模型引用才会更新“CTRL+D”,因此这在拥有非常大的模型时会有所帮助。
模拟:在模拟中,mdl refs 生成为 dll,这使您的模拟速度更快(效果比普通模式和加速器模式之间的差异大得多)
缺点痛苦: - 一般来说,由于限制,Mdl 引用在某种程度上使用起来很痛苦
不可能传递具有树结构的 Simulink.parameter.object。 (使用 type:BusObject 时只有 value 属性有结构,其他属性没有)
当子系统有总线信号作为输入时,mdl ref 需要一个总线对象来指定输入接口,而库模块不需要。 (即使在 lib 块中使用未指定的总线输入非常难看)。 (请注意,busobject 在基础工作区中始终是全局的……命名冲突的风险)
【讨论】:
从系统设计的角度来看,模型参考应该用于您的系统组件。那是构成您的系统的不同部分。库应该用作实用程序。这是在整个设计中使用的可重用块。
例如,机器人控制系统包括组件:导航、控制、path_plannen 等。这些是组件,应该使用模型引用来实现。在这种情况下,它们是作为独立模型开发的,可以独立测试。
在组件内部,您可能需要一些实用程序块,例如 low_pass_fileter、error_state_handler 和 check_input_range,它们是库。
【讨论】: