4
votes

I change the parameter in my model, but sometimes it would cause the simulation stopped because of ill-conditioned Jacobian, I am not sure what this error means.

My question is:

  1. Is there any explanation about how to solve DAE equations in Modelica models, so I could understand the use of the Jacobian matrix?
  2. How could I know which equation or parameter causes this issue in Dymola?

enter image description here

1

1 Answers

3
votes

A Modelica model maps, more or less, to a hybrid ODE system (or a hybrid DAE system of index one). For simplicity assume that it maps to an explicit continuous-time ODE system

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

Note that a hybrid ODE system consists of several pieces of continuous-time ODE systems. The Jacobian is the partial derivative of f w.r.t. x is

df / dx (p,x0,t)

This matrix is used by common modern numerical solvers for adaptive step-size numerical integration, i.e. a new step-size is chosen at every time step. For slow dynamics large step sizes are chosen and vise versa. At each time step a nonlinear equation system is solved probably using a Gauss-Newton iteration scheme which requires the inverse of the Jacobian (or an approximation of it). If the Jacobian is ill-conditioned or semi-singular at a specific time step, this causes numerical instability that may hinder the evaluation of a numerical solution.

  1. A good literature that I prefer is the documentation / user guide of the Sundials suite, e.g. Ch2 of CVODE guide. In addition to well-known books, more advanced literature includes journal papers concerned with such modern numerical solvers such as Sundials, DASSL and others.

  2. Probably yes, e.g. by computing the rank and kernel of the Jacobian and figuring out which group of equations are causing the Jacobian to be singular.