Derivative of state is not finite (integrator error)

조회 수: 7(최근 30일)
Hanne Grov
Hanne Grov 2022년 7월 28일
댓글: Sam Chak 2022년 7월 28일
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.


Sam Chak
Sam Chak 2022년 7월 28일
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).
  댓글 수: 6
Sam Chak
Sam Chak 2022년 7월 28일
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.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by