【发布时间】:2018-02-19 15:44:21
【问题描述】:
这个问题实际上有两个主要方面。一开始,我不得不承认我对物理建模完全陌生,并且很高兴得到纠正,而不仅仅是回答。对于那些觉得阅读时间太长的人,我可以提供一个简要总结:
1) Simulink vs Modelica
2) Simscape vs Modelica
1) 第一个是建模方法的比较。按照惯例,我想比较的两种主要方法有不同的名称:
# 信号流方法/基于块的建模/因果建模...:Simulink 中的典型模型。有输入和输出以及介于两者之间的传递函数的盒子。
对
# 网络方法/基于组件的建模/非因果(非因果)建模...:有物理端口而不是信号 I/O 和流实体(电流、热量等)可以双向流动。
在这个比较中,我在网上阅读了一些意见并搜索了一些论文。据我所知,它归结为基于 Modelica 的开发环境和 Simulink (for example) 的比较。这两者的优缺点比我想问的另一点更清楚。
2) 在阅读了很多关于第一次比较的内容后,我更倾向于使用基于组件的建模。然而,Modelica 并不是这里唯一的选择。还有Simscape,您可以使用combine physical ports(如在Modelica中)对Simulink进行基于块的建模。
我想知道这个 Simscape vs Modelica 比较的优缺点。为了避免误解,我需要强调 Modelica 是一种语言。因此,将任何 Modelica 环境与 Simscape 进行比较会更有意义,比如 OpenModelica vs Simscape
【问题讨论】:
-
您感兴趣的域名是什么?机械、电气、化学?生理?您是否阅读过此处列出的出版物:physiolibrary.org 也许他们确实评论了不同建模方法的优缺点!?
-
我最感兴趣的是生理学和电学。不在该列表中,但 this paper,我也添加到问题中,来自 Physiolibrary 的创建者。但这主要是关于我比较因果非因果方法的第一个问题。
-
恕我直言,最好将 SimScape 与 Modelica 语言进行比较,将 SIMULINK 与 OpenModelica 进行比较。
-
因果可视化编程环境(如 SIMULINK 和 LabVIEW)与非因果语言/环境线 Modelica 和 SimScape 之间的差异,类似于命令式/脚本编程语言(如 python)和编译语言(如 C++)之间的差异。当需要实现非线性代数和微分方程系统时,前者会遇到同样的问题。他们无法处理双向的非因果关系。
-
@Foad :如果与编程语言相比,我会建议:命令式与声明式语言。非因果建模依赖于简单地声明方程组,而因果建模需要描述模拟系统的过程。非因果是组合的,而因果不是。
标签: simulink modeling modelica openmodelica simscape