Derivative of state is not finite (integrator error)

17 views (last 30 days)
I am currently feacing a problem with my simulink model. The model is a complex network where I need to calculate and pass mass flow and pressures through several subsystems. The model works fine for some situations, with spesific inputs (mass flows), but with large variation in the inputs I get the following error message:
I have tried a lot of differet approaches to resolve the problem, among other things;
  • Reduce the fixed step size.
  • Tightening the error tolerances.
  • Using unit delay block or a swich block.
  • Creating Self-Resetting integrators, but then this error occured: "State ports can only be used to break algebraic loops or to "hand-off " states between systems."
  • Using different solvers such as ode15s, ode45 and odeN.
This has worked for some situations, but then the error reoccurs with a different input later on.
The error occurs in the integrator block in the following subsystem:
I would really appreciate some guidance on this problem, it would really help me out a lot. Thank you in advance.

Answers (1)

Sam Chak
Sam Chak on 28 Jul 2022
I don't see any division-by-zero issue, unless there are some divisive terms hidden inside the MATLAB Function Block fcnVs.
If the issue isn't caused by the division-by-zero issue, then I guess your pressure system is inherently unstable. Some large inputs may cause to explode (grow rapidly within a very short time interval).
Sam Chak
Sam Chak on 28 Jul 2022
Put some scopes to check along the signals that are fed into the integrator block.
Since you design the system, you should be able to see which math equation that causes issue.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!