【问题标题】:FMU co-simulation using openMP or pThread使用 openMP 或 pThread 进行 FMU 协同仿真
【发布时间】:2015-01-13 13:58:59
【问题描述】:

假设我有一个车型,底盘将用作主 FMU,其发动机、变速箱、轮胎等来自第三方,我想将它们用作从 FMU。我想以这种方式并行模型,将主 FMU 放在主线程上,并在其他线程上 fork 其他所有内容。

  1. 我想知道这个简单的想法是否可以通过使用从 Dymola 导出的 FMU 来实现...
  2. 如果可能,是否值得这样做?如果并行模型在物理级别上与顺序模型一样有效,我会徘徊。 (我知道一个严重并行的程序比一个顺序的程序慢,但我只需要知道它在物理上是慢还是快)
  3. 最新的 Dymola 内置了 openMP 功能,有人用过吗?它看起来像什么?

我找到了一篇关于这个的论文:Master for Co-Simulation Using FMI http://www.ep.liu.se/ecp/063/014/ecp11063014.pdf

【问题讨论】:

    标签: multithreading openmp modelica dymola fmi


    【解决方案1】:

    我认为,如果多个 FMU 可以单独完成工作,那么并行启动它们是非常有意义的。协同仿真的难点在于了解何时必须同步仿真器(例如交换信息)。这些同步应该是最小的以提高效率,但足以避免回溯模拟器状态(如果可能)。此外,当您的 FMU 之间存在因果关系时,它就有机会发挥作用。如果你有因果关系,那就另当别论了……

    从技术上讲,我会说:

    • 对于 1),如果需要,您可以随时在线程中启动 FMU,这没问题
    • 对于 2),主要取决于不同 FMU 之间所需同步的数量和频率
    • 对于 3) 我不知道,但我认为您应该区分并行启动不同的 FMU 和使一个 FMU 并行...

    我的两分钱

    【讨论】:

    • 感谢您的回答,丹托。我已经成功开发了一个可以同时运行不同 FMU 的程序。结果看起来还不错。 FMU 的可扩展性非常好(从 Dymola 导出,fmi 2.0),而且我所有的模型实际上都是因果关系,但我想出了一种方法让它成为非因果关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2020-08-01
    • 2015-05-31
    相关资源
    最近更新 更多