Dymola中求解DAE的过程

问题描述

我试图了解在 Dymola 中解决 DAE 的过程。根据Dymola帮助文档的13.8章,Dymola会先用索引约简算法将原始的DAE转化为ODE,然后经过划分和撕裂得到BLT形式,这样Dymola就可以像DASSL一样用BDF方法解决ODE了。

这是 Dymola 帮助文档的屏幕截图。

enter image description here

我还从Wolfram mathematica中找到了一些关于如何解决DAE的材料,如下图所示,不同阶段可能有不同的策略,我在Dymola中标记了我认为采用的方法。我的问题是:

  1. Dymola 是否只是采用我标记方法
  2. 或者Dymola也采用了Wolfram Mathematica的方法,在不同的阶段使用不同的方法?如果是,Dymola 如何确定使用哪种方法

    enter image description here

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...