【问题标题】:How to understand the ill-conditioned Jacobian problem in Modelica models?如何理解 Modelica 模型中的病态雅可比问题?
【发布时间】:2020-07-12 17:35:24
【问题描述】:

我更改了模型中的参数,但有时会因为病态雅可比行列导致模拟停止,我不确定这个错误意味着什么。

我的问题是:

  1. 有没有关于如何在 Modelica 模型中求解 DAE 方程的解释,以便我理解雅可比矩阵的使用?
  2. 我如何知道在 Dymola 中是哪个方程或参数导致了此问题?

【问题讨论】:

    标签: modelica dymola


    【解决方案1】:

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

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

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

    df / dx (p,x0,t)

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

    1. 我更喜欢的一个很好的文献是 Sundials 套件的文档/用户指南,例如CVODE guide 的第 2 章。除了知名书籍外,更高级的文献还包括与现代数值求解器(如日晷、DASSL 等)有关的期刊论文。

    2. 可能是的,例如通过计算雅可比行列式的秩和核,并找出导致雅可比行列式奇异的方程组。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多