【问题标题】:Dymola DAE solverDymola DAE 求解器
【发布时间】:2016-08-15 13:25:04
【问题描述】:

我正在尝试找出 Dymola 解决 Modelica 代码所需的步骤。通过阅读一些参考论文和书籍,我了解到 Dymola:

  1. 将 Modelica 代码转换为混合 DAE(展平)。
  2. 操纵 DAE 以将其转换为 ODE 形式(索引缩减和其他技术)。
  3. 使用 DASSL 算法。

我的问题是:为什么 Dymola 需要使用 DASSL 来解决 ODE?使用 BDF 或 Runge-Kutta 等通用 ODE 求解器还不够吗?

提前感谢您的关注。 万事如意,

亚历山德罗

【问题讨论】:

  • 简答:效率更高。 Francois Cellier 在他的著作《Continuous System Simulation》第 8.4 章(DASSL)中给出了详细的答案
  • 您好 Lukas,感谢您的评论。我实际上读过那一章,但我的疑问是:DASSL 是一个 DAE 求解器,它如何求解 ODE?如果你告诉我 DASSL 也可以解决 ODE,那么一切都是有道理的,是合乎逻辑的。
  • ODE 是 DAE 的子集;基本上,ODE 是 der(x)=f(x),而 DAE 是 g(der(x),x)=0。因此,通过设置 g(der(x),x)=der(x)-f(x),ODE 被转换为 DAE - 因此 Dassl 可以解决它。

标签: ode modelica dymola


【解决方案1】:

Dymola 支持多种集成算法,包括 RK。但是 DASSL 是一个很好的默认值。另请注意,有些问题不能简化为 ODE 形式。

【讨论】:

    【解决方案2】:

    通过用它们的导数替换原始方程来“丢弃”约束信息。

    理论上这无关紧要,因为导数方程将这些丢失的恒等式作为守恒量。然而,数值积分引入了漂移,可能会从 DAE 的一致状态流形中移除状态。当然可以记住原始方程,并且可以构造附加的“隐藏”约束。在将状态投影回一致状态的流形时必须小心,以免破坏积分方法的一致性和顺序。

    这可以通过不减少到索引为 0 的 ODE 而是停止在索引为 1 的 DAE 阶段来改善,从而减少原始方程的微分。由此产生的数值积分基本上具有隐式 RK 方法的复杂性。隐式多步法。

    对于 index-1 系统,需要使用像 DASSL 这样的 DAE 求解器。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多