Modelica 影响翻译时间的因素

Modelica 影响翻译时间的因素,modelica,Modelica,我在开发模型时遇到过一些问题,其中翻译时间(模拟速度很快,但翻译时间太长)已经成为一个严重的问题,我可以利用一些见解来解决这个问题 因此,问题是: 哪些主要因素会影响模型的翻译时间以及解决问题的思路 例如,可能产生影响的事项: 对于循环与向量化方法-一个基本模型测试这似乎没有影响任何东西 使用输入变量与参数 注释的影响(例如,Evaluate=true) 或者运气不好,这取决于工具(Dymola、OMEdit等):( 使用许多connect()-这似乎是一个因素(可能是主要因素),因为它迫使翻

我在开发模型时遇到过一些问题,其中翻译时间(模拟速度很快,但翻译时间太长)已经成为一个严重的问题,我可以利用一些见解来解决这个问题

因此,问题是:

哪些主要因素会影响模型的翻译时间以及解决问题的思路

例如,可能产生影响的事项:

  • 对于
    循环与向量化方法-一个基本模型测试这似乎没有影响任何东西
  • 使用
    输入
    变量与参数
  • 注释的影响(例如,
    Evaluate=true
  • 或者运气不好,这取决于工具(Dymola、OMEdit等):(
  • 使用许多
    connect()
    -这似乎是一个因素(可能是主要因素),因为它迫使翻译人员完成所有繁重的工作

显然,对这个问题的回答是自然开放的。当计算时间可能是一个因素时,有很多事情要考虑。

对于分布式模型(例如,有限差分)使用简单模型,然后使用
connect
方程以适当的顺序将它们链接起来,并不是生成模型的最佳方式。经验表明,这种方法会显著增加转换时间,使转换时间达到无法承受的长度。最好使用与MSL Dynamic相同的方法创建分布式模型c管道(不完全相同,但相似)

随着分布元素的数量增加到更大的数量,与使用
connect
语句相比,改变所述方法在转换时间(较大模型的数量级,>~100000个方程)上明显更快。这是使用Dymola 2017和2017FD01测试的

其他人指出的可能有助于提供更多信息的一些相关材料包括如下:

  • :

是的,它依赖于工具。在他的博士学位期间,Frenkel发布了一些基准测试,提供了一些提示。这可能也很有趣,并且这篇文章描述了它:感谢你提供了这两篇参考文献。我将看一看这些参考文献,以获得一些额外的见解。请注意,这不仅取决于工具,还取决于工具的版本。