10

这个问题实际上有两个主要方面。一开始,我不得不承认我对物理建模完全陌生,并且很高兴得到纠正,而不仅仅是回答。对于那些觉得阅读时间太长的人,我可以做一个简短的总结

1) Simulink vs Modelica

2) Simscape vs Modelica

1)第一个是建模方法的比较。按照惯例,我想比较的两种主要方法有不同的名称:

# 信号流方法/基于块的建模/因果建模...:Simulink 中的典型模型。有输入和输出以及介于两者之间的传递函数的盒子。

对比

# 网络方法/基于组件的建模/非因果(非因果)建模...:有物理端口而不是信号 I/O,并且流动实体(电流、热量等)可以双向流动。

在这个比较中,我在网上阅读了一些意见,并搜索了一些论文。据我所知,它归结为基于 Modelica 的开发环境和 Simulink (例如)的比较。这两者的优缺点比我想问的另一点更清楚。

2)在阅读了很多关于第一次比较的内容之后,我更倾向于使用基于组件的建模。然而,Modelica 并不是这里唯一的选择。还有Simscape,使用它您可以将物理端口(如在 Modelica 中)与基于模块的 Simulink 建模相结合。

我想知道SimscapeModelica比较的优缺点。为了避免误解,我需要强调 Modelica 是一种语言。因此,将任何 Modelica 环境与 Simscape 进行比较会更有意义,比如OpenModelicaSimscape

4

3 回答 3

16

好吧,由于似乎没有人回答这个问题,我会试一试。

看来您似乎已经弄清楚了第一个问题的问题。基本的答案是,因果建模涉及进行的大量前期工作,否则编译器可以完成这些工作。更糟糕的是,如果你想支持不同的因果关系,你需要重新实现你的组件和/或有多个版本支持不同的因果关系。对混合了连续和离散行为的复杂物理场进行建模已经足够棘手,而无需进行所有这些繁琐、耗时且容易出错的工作来找出因果关系。

这让我想到了 SimScape 与 Modelica 的第二个问题。SimScape 似乎是对我在上一段中提到的问题的认可。老实说,第三方很难为您提供 SimScape 与 Modelica 的分析,因为很大程度上取决于您与其他人可能不同的因素。

此外,我真的没有太多使用 SimScape,所以我不能对那里发表太多评论。但我可以肯定地告诉你Modelica的实力。Modelica 是由一个由开发人员、用户和学者组成的设计团队开发的。我想这其实是Modelica隐藏的巨大力量。因此,新功能必须得到所有团队的支持才能成功。在我看来,一个群体的影响太大是有害的。

Modelica 的开放性意味着您可以从许多不同的工具(免费和商业)中获得 Modelica 支持。反过来,这意味着那里有许多不同的库。这种开放性不仅与规范本身有关,还与生态系统(开放工具、开放库等)有关。

最后,证明是真正看到人们正在解决的所有各种类型的问题。Modelica 用于广泛的工程领域,以解决真正多样化的问题。在我看来,这证明了语言和库设计的合理性。这种成功不是大量营销资金的结果,而是技术从根本上强大并且世界各地的人们已经认识到这一点并用它来解决现实世界问题的结果......一遍又一遍。

我鼓励你浏览过去 Modelica 会议的论文。每篇论文都可以在modelica.org上免费在线获取。

无耻的插件:如果您想通过来自广泛工程学科的示例来学习 Modelica,您可能需要查看免费的交互式在线书籍Modelica by Example

于 2017-09-12T13:35:48.313 回答
5

对于此比较,冲突点可以是 FMI 导入/导出能力。

功能模型接口是一种非常有前途的解决方案,用于不同建模环境之间的模型传输和共享。提取的功能模型单元 (FMU) 可以导入到另一个环境中,也可以使用第三方工具进行数值模拟。

大多数 Modelica 平台都提供足够的 FMI 导入/导出功能。我至少可以说 OpenModelica、JModelica.org 和 MapleSim。有关可用性的更多信息,请参阅此处

Matlab/Simulink 的支持程度如何?据说他们提供这种可用性,但没有可以从 MathWorks 下载的官方软件包。有用于 Simulink Coder 的FMI Toolbox和FMI Target等第三方软件包,但它们似乎是商业的。我尝试了 Modelon 软件包 FMI Toolbox 的演示版,但使用演示版一只能在演示版提供的模型上工作。

根据此链接,实际上还有另一个用于 Simulink 的官方 FMI 包。我到达并问他们我是否可以看看并尝试一个研究项目(不撒谎,这是一个研究项目)。该工具只能通过与链接中提到的团队发送电子邮件来获得,并且只有 FMI 导入(无导出)的功能。Simulink 作为一种商业工具,不想让模型逃到其他环境。重要说明,如评论中所见,现在可以在 2017 年 9 月 20 日发布的 Simulink R2017b 官方版本中找到此包。

总的来说,Modelica 平台对 FMI 的支持要大得多,这可以解决未来的很多问题。尽管我应该明确地说,到目前为止,我还没有使用 FMI 解决我的模型的丰富经验。它有时非常慢,并且 OpenModelica 的结果与使用从同一模型中提取的 FMU 的解决方案之间存在差异。求解器选项仅限于模型交换。至于联合模拟,也许我做错了什么。然而,在我看来,它是一个非常有前途的工具,需要改进。

可以在此处找到有关 2012 年 FMI 标准曾经存在的问题的研究。随着 FMI 2.0 的发布,据说这些问题中的大部分都得到了解决。我在这里感谢Christian Bertsch纠正我发布的可能误导的信息。总的来说,FMI 是一个很好的工具,在行业中变得越来越重要。它的优点和支持 FMI 的工具可以在它的网站上找到。

于 2017-09-13T07:21:22.210 回答
3

我作为 Physiolobrary 和目前 Physiolibrary.models 的合著者的个人经历。

  1. 在我们的小组中,我们得出结论,在 Modelica 中将非因果和面向信号的方法相结合是合适的。非因果方法适用于组合建模系统的基本物理定律的组件 - 这样的组件更可重用。信号方法适合将专有组件添加到因果关系已知或假设(控制心率等)的建模系统中。我们在https://doi.org/10.1016/j.compbiomed.2014.08.025或最近在https讨论了详细信息://doi.org/10.1016/j.bbe.2017.08.001

  2. Simscape 的一个缺点是库或缺少库。要模拟心血管系统,您可能需要使用电路的类比。虽然这种简化通常在研究或工业中被接受,但您可能会降低准确性并增加出错的可能性。在第三方库 Physiolibrary 可用之前,这也是 Modelica 中的问题。

  3. 然而,与任何面向块的模型相比,在 Modelica 中重现(重新实现)Simscape 模型要容易得多,例如在论文http://mj.mefanet.cz/mj-04140914中所做的那样——无论是在 Modelica 还是 Simulink 中。

于 2017-11-02T10:43:49.510 回答