如何理解Modelica模型中的病态雅可比问题?

时间:2020-07-12 17:35:24

标签: modelica dymola

我更改了模型中的参数,但有时会由于条件不佳的Jacobian而导致模拟停止,我不确定这个错误意味着什么。

我的问题是:

  1. 是否有关于如何在Modelica模型中求解DAE方程的解释,所以我可以理解Jacobian矩阵的用法?
  2. 我怎么知道哪个等式或参数导致了Dymola中的这个问题?

enter image description here

1 个答案:

答案 0 :(得分:2)

Modelica模型或多或少映射到混合ODE系统(或索引为1的混合DAE系统)。为简单起见,假定它映射到一个显式的连续时间ODE系统

xdot = f(x,p,t),x(0)= x0

请注意,混合ODE系统由多个连续时间ODE系统组成。雅可比行列式是f w.r.t.的偏导数。 x是

df / dx(p,x0,t)

常见的现代数值求解器将此矩阵用于自适应步长数值积分,即在每个时间步长选择一个新的步长。对于慢速动态,选择大步长,反之亦然。在每个时间步上,都可能使用高斯-牛顿迭代方案来求解非线性方程组,该方案需要雅可比矩阵的逆(或其近似)。如果雅可比行列式在特定时间步长处病态或半奇异,则会导致数值不稳定,从而可能会妨碍数值解的计算。

  1. 我更喜欢的一本好书是Sundials套件的文档/用户指南,例如CVODE guide的Ch2。除了著名的书籍外,更高级的文献包括与此类现代数值求解器有关的期刊论文,例如Sundials,DASSL等。

  2. 可能是,例如通过计算雅可比行列的秩和核,并找出哪些方程组使雅可比行列为奇数。

相关问题