Estimating parameters of ODEs leads to instability

I have a system of ODEs in a form of:

  Dt(θ) ~ θ̇
  Dt(θ̇) ~ a₁ * θ̇ + a₂ * sin(ψ) + a₃ * ψ̇ + a₄ * u(t)
  Dt(ψ) ~ ψ̇
  Dt(ψ̇) ~ a₅ * θ̇ + a₆ * sin(ψ) + a₇ * ψ̇ + a₈ * u(t)

where a₁,…,a₈ are parameters to be estimated. But when I try to perform an optimization using examples from DiffEqParamEstim website, I always get an instability detection and aborting afterwards. I also get this error message: dt(3.552713678800501e-15) <= dtmin(3.552713678800501e-15) at t=1.2645985507940618e-5. Aborting. There is either an error in your model specification or the true solution is unstable.

I tried to increase a maxiters value, I tried different loss functions and optimizers (from Optim.jl and NLopt.jl), various amount of initial conditions and stiff/non-stiff ODE solver, but nothing is helping.

Is there anything I can do to make the optimization working?

1 Like