Dymola中求解DAE的过程

The process of solving DAE in Dymola

我想了解在 Dymola 中求解 DAE 的过程。根据Dymola的帮助文档第13.8章,Dymola会先使用索引约简算法将原始DAE转化为ODE,然后分割撕裂后得到BLT形式,因此Dymola可以像DASSL一样用BDF方法求解ODE。

这里是Dymola帮助文档的截图。

我也从Wolfram mathematica找到了一些material关于如何解决DAE的,如下截图所示,不同阶段可能有不同的策略,我把我认为采用的方法标记在迪莫拉。我的问题是:

  1. Dymola是不是就按照我标记的方法来使用?
  2. 或者Dymola也采用Wolfram Mathematica的方法,在不同的阶段使用不同的方法?如果是这样,Dymola 如何确定使用哪种方法?

Dymola 做了类似于那条红线的事情,并忽略了该流程图中的许多选择,因为它们不相关并且隐藏了许多同样重要的选择。 例如,

  • 即使索引为 1 或 0,索引缩减算法也会起作用 - 它不会做任何事情。
  • 虚拟导数法可以看作是一种投影法。 (我的硕士论文很久以前就实现了。)
  • IDAS 是日晷套件中的求解器之一。 Dymola 可以使用日晷解算器以及许多其他解算器进行集成;并且两者都将模型作为 ODE 或索引 1 DAE 用于合适的求解器 - 但这是在生成的 C 代码中处理的,并且不会影响其他部分。