Reputation: 1232
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:
Upvotes: 4
Views: 1330
Reputation: 578
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.
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.
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.
Upvotes: 2