Sensorless FOC for PMSM with BEMF estimator

3 vues (au cours des 30 derniers jours)
Albert MENDY
Albert MENDY le 23 Oct 2015
Hi, by running my model I have this error message (Error using parametre_moteur (line 65) Simulink cannot solve the algebraic loop containing 'Cmde_estimateur_vitesse_position/Sum1' at time 0.0002250000000003423 using the TrustRegion-based algorithm due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear equation solver failed to converge due to numerical issues. To rule out solver convergence as the cause of this error, either a) switch to LineSearch-based algorithm using set_param('Cmde_estimateur_vitesse_position','AlgebraicLoopSolver','LineSearch') b) reducing the ode45 solver RelTol parameter so that the solver takes smaller time steps. If the error persists in spite of the above changes, then the model is likely ill-defined and requires modification.) that I can not solve and I need your help please. thank you in advance

Réponses (1)

Sabin
Sabin le 8 Oct 2025
The error message indicates that Simulink has detected an algebraic loop in your model. This means that there is a circular dependency where the output of a block depends (directly or indirectly) on its own input in the same time step, and Simulink cannot solve this.
Possible solutions:
  • Try switching to the LineSearch-based algorithm by running this command in MATLAB (as suggested by the error message): set_param('Cmde_estimateur_vitesse_position','AlgebraicLoopSolver','LineSearch')
  • reducing the solver RelTol parameter so that the solver takes smaller time steps
  • If the above does not work, the model may be ill-defined. Try to break the algebraic loop by adding a Unit Delay (or transfer function) in the loop.

Communautés

Plus de réponses dans  Power Electronics Control

Community Treasure Hunt

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

Start Hunting!

Translated by