Nonlinear iteration error in Simulink model

조회 수: 7 (최근 30일)
Andrew BArney
Andrew BArney 2023년 4월 6일
댓글: Andrew BArney 2023년 4월 7일
I'm currently trying to simulate a PMSM DC motor with sensorless field-oriented control from scratch. I believe I have fixed my model (other than updating my PI controllers since adding senslorless FOC), but I'm now getting this nonlinear iteration error:
An error occurred while running the simulation and the simulation was terminated
Caused by:
  • Solver encountered an error while simulating model 'PMSM_attempt_at_sensorless' at time 1.5027572535563431e-17 and cannot continue. Please check the model for errors.
  • Nonlinear iteration is not converging with step size reduced to hmin (5.33887E-32) at time 1.50276E-17. Try reducing the minimum step size and/or relax the relative error tolerance.
Is something gaurunteed to be wrong with my model, or can this be fixed by simulation settings? I'm not expecting anyone to understand much of my design, but any general suggestions that could be relevant to this error would be much appreciated.
Edit: I used to have an algebriac loop error but I believe I have since fixed that and am only getting this non-linear error. As you can see, I'm using a derivative block to take the derivative for my rotor angle to get my rotor speed (without using the motor's operational equations for senslorless FOC). I've read derivative blocks can likely cause issues, so would this likely be the source of my problems?

답변 (1개)

Sam Chak
Sam Chak 2023년 4월 6일
The message does not imply an algebraic loop error, but it suggests that one or more system states are approaching the numerical singularity at the specified time t = 1.5027572535563431e-17 sec.
I'm unfamiliar with your system. Most like the singularity is caused by some kind of division-by-zero stuffs, as one of the states approaches to zero, or approaching if it is related to the trigonometric functions such as , .
If you are unable to trace, then you should label the value on each signal line and run in step time to see which signal line explodes before t = 1.5027572535563431e-17 sec.
  댓글 수: 1
Andrew BArney
Andrew BArney 2023년 4월 7일
My theta-estimator block does take the arctan of two different expressions so that could be it. Do you think the derivitive block could also be a suspect? I currently have the coefficient for the deriv block as it's default (inf)

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

카테고리

Help CenterFile Exchange에서 Permanent Magnet에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by