Solver configuration error concerning an algebraic loop in double fed induction machine control model.

4 visualizaciones (últimos 30 días)
Good evening.
I am modelling a double fed induction machine in simulink, using simscape for physical components such as stator and rotor sources as well as the DFIG, and simulink for the control block. However when I run the program it gives the following error I show below concerning de Solver Confguration. Any ideas on how to solve it?
Error:'dfig_control_rotor/Solver Configuration' or the model referenced by it contains a block that updates persistent or state variables while computing outputs and is not supported in an algebraic loop. It is in an algebraic loop with the following blocks.
Error:'dfig_control_rotor/Solver Configuration' or the model referenced by it contains a block that updates persistent or state variables while computing outputs and is not supported in an algebraic loop. It is in an algebraic loop with the following blocks.
And many more but I guess the main problem is here.
Thanks in advance.

Respuestas (1)

Himanshu
Himanshu el 11 de Jul. de 2024
Hi,
I see that you are trying to model a double fed induction machine (DFIM) in Simulink using Simscape for the physical components and Simulink for the control block. You are encountering an error related to the Solver Configuration, which is likely due to the presence of algebraic loops.
An algebraic loop occurs when there is a circular dependency of signals in your model, meaning that the output of a block depends on its input in a way that forms a loop. This can cause issues with the solver, especially if blocks update persistent or state variables while computing outputs.
To resolve this issue, you need to identify and break the algebraic loop in your model. Use the "getAlgebraicLoops" Simulink function to identify algebraic loops in your model. This can be done by using the following command in MATLAB:
Simulink.BlockDiagram.getAlgebraicLoops(mdl);
Once you have identified the loop, you can break it by introducing a delay by Inserting a Unit Delay Block in the loop to break the direct dependency.
Ensure that your solver settings are appropriate for handling the dynamics of your model. Sometimes, using a different solver or adjusting solver parameters can help.
Please refer to the below documentations to learn how to identify and remove algebraic loops in a complex system:
I hope this helps.

Categorías

Más información sobre Electrical Sensors en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by