首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的Modelica仿真环境有什么不同?

不同的Modelica仿真环境有什么不同?
EN

Stack Overflow用户
提问于 2019-11-19 17:33:08
回答 1查看 1.3K关注 0票数 7

有不同的Modelica仿真环境,包括Dymola、Wolfram SystemModeler、OpenModelica和Jmodelica。因此,我尝试加载一个热流体库(ThermoSysPro https://github.com/Dwarf-Planet-Project/ThermoSysPro),但是除了Dymola之外,其他软件的结果都是错误的。

如果库和仿真环境都基于Modelica规范标准,为什么会出现兼容性问题?我认为这个库可能包含了一些只有Dymola支持的特性。有人能澄清这些模拟环境之间的区别吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 09:14:01

一般而言:

您使用的

  1. 工具可能不支持某些Modelica语言元素

仅仅因为一个工具支持Modelica,并不意味着它已经实现了Modelica标准定义的所有东西。以OpenModelica为例,它在V1.12之前不完全支持同步特性。

  • 库的代码可能不符合工具使用的Modelica语言规范(Modelica )的版本

有些工具允许某些东西,这些东西在Modelica规范中没有定义:可能是因为Modelica规范在某个主题上不够精确,或者它们有点超前,并且已经支持可能成为未来规范版本一部分的内容。

在Dymola中,如果代码符合当前的Modelica语言规范,您有两个更严格的检查选项:使用迂回模式检查并设置标志Advanced.EnableAnnotationCheck=true,让Dymola也检查注释

在您的具体示例中:ThermoSysPor库存在各种问题,这可能会解释您的问题。

  1. 库是用相当老的Modelica (MSL) 3.2.1编写的,该标准库是基于Modelica语言规范3.2编写的。

目前的Dymola版本(2020)使用Modelica语言规范3.4 (请参阅每个版本的Dymola发行说明来找出这一点)。OpenModelica显然支持Modelica3.3(正如发行说明中所指出的)。

同时,MSL也发生了一些变化,目前的版本为3.2.3。

因此,需要将ThermoSysPro更新到最新的MSL3.2.3版本和工具支持的Modelica规范。然后,您可以开始比较它在哪些工具中工作和哪些不工作。

  • 库在Dymola中也没有完全工作。

我测试了最新的Dymola版本和Dymola 2016 FD01,其中包含MSL3.2.1。

代码语言:javascript
复制
1. Dymola 2016 FD01: 31 errors, 62 warnings
2. Dymola 2020: 175 errors, 095 warnings

  1. 库包含无效的语言元素。两个例子:

代码语言:javascript
复制
1. In `ThermoSysPro.Examples.SimpleExamples.TestCentrifugalPump` OpenModelica v1.14 beta 2 complains, that `cardinality` is not used in a legal way. Apparently Dymola 2020 does not care (even in pedantic mode), but it's against the Modelica Spec 3.4. 
2. Many models contain the annotation `DymolaStoredErrors`, which is not standard conform. Custom tool annotations must start with '\_\_'. 

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58939793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档