当前位置:  开发笔记 > 编程语言 > 正文

不同的Modelica仿真环境之间有什么区别?

如何解决《不同的Modelica仿真环境之间有什么区别?》经验,为你挑选了1个好方法。

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

如果库和仿真环境均基于Modelica规范标准,为什么存在兼容性问题?我认为该库可能包含仅Dymola支持的某些功能。谁能澄清这些仿真环境之间的区别?



1> marco..:

一般来说:

    您使用的工具可能不支持某些Modelica语言元素

    仅仅因为工具支持Modelica,并不意味着它已经实现了Modelica标准定义的一切。以OpenModelica为例,它在v1.12之前不完全支持同步功能。

    该库的代码可能与您的工具使用的Modelica语言规范(Modelica规范)的版本不一致

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

    在Dymola中,您有两个选项可以检查代码是否符合当前的Modelica语言规范,从而更加严格:使用pedantic模式进行检查,并设置标志Advanced.EnableAnnotationCheck=true以使Dymola也可以检查注释

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

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

    当前的Dymola版本(2020)使用Modelica语言规范3.4(请参阅每个版本的Dymola发行说明以了解相关信息)。OpenModelica显然支持Modelica 3.3(如发行说明中所述)。

    同时,MSL也有所改进,当前版本为3.2.3。

    因此,需要将ThermoSysPro更新到最新的MSL版本3.2.3以及该工具支持的Modelica规格。然后,您可以开始比较哪些工具可以使用,哪些工具不能使用。

    该库在Dymola中也无法完全正常工作

    我使用最新的Dymola版本和Dymola 2016 FD01(包含MSL 3.2.1)进行了测试。

      Dymola 2016 FD01:31错误,62警告

      Dymola 2020:175个错误,095个警告

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

      ThermoSysPro.Examples.SimpleExamples.TestCentrifugalPumpOpenModelica v1.14 beta 2中抱怨,这cardinality不是合法使用的方式。显然Dymola 2020并不在乎(即使是在学步模式下也是如此),但它违反了Modelica Spec 3.4。

      许多模型包含注解DymolaStoredErrors,这不是标准的。自定义工具注释必须以“ __”开头。


DymolaStoredErrors在此库中为空,因此可以毫无问题地将其删除。对于基数,该限制已在Modelica 3.3r1中添加,但尚未在Dymola中实现。(在该基数之前可以免费使用。)
谢谢Dietmar,您说得对。Dymola 2020使用的是Modelica语言规范3.4,而不是MSL。我混合了。
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有