Using Simulink to create generator that accepts feedback.
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I am trying to create a generator that will accept feedback in order to raise and lower its voltage and frequency. I got a version of this to work using the old black outlined simscape generator model but cant seem to make progress with the blue outlined block. I found an example generator model that has a governor and excitor, I am feeding them a Vref and Wref from my own logic but I keep getting an error regarding my blocks being in an algebric loop. All help is appreciated.


3 commentaires
Shivam Gothi
le 25 Nov 2024
Sorry, for the late reply and thankyou for sharing the model. I missed your comment. It would be great if you tag the community user while mentioning in the comment by using "@". This will notify the corresponding community user.
I worked on the file attached by you and was able to resolve the error.
Réponses (2)
Abhishek Kumar Singh
le 8 Nov 2024
An algebraic loop occurs when a loop in your model is made up entirely of blocks that directly use their input to compute their output within the same time step. This creates a circular dependency, where both output and input values rely on each other simultaneously.
To resolve these issues, you can refer to the following resources:
- Understanding Algebraic Loops and General Solutions: https://www.mathworks.com/matlabcentral/answers/95310-what-are-algebraic-loops-in-simulink-and-how-do-i-solve-them
- Diagnosing Algebraic Loops: https://www.mathworks.com/matlabcentral/answers/97687-how-can-i-resolve-algebraic-loops-in-my-simulink-model?s_tid=answers_rcts
- Why Not to Break Algebraic Loops with Memory Blocks: https://blogs.mathworks.com/simulink/2015/07/18/why-you-should-never-break-an-algebraic-loop-with-with-a-memory-block/
Shivam Gothi
le 25 Nov 2024
I understand that you are facing the issue of algebraic loop while using “Synchronous Machine Round Rotor” block as used in your attached model.
I was able to reproduce the issue from my end. I resolved it by taking the following steps.
- Open the “configuration parameters” by pressing “Ctrl +E”.
- Navigate to the “solver” tab and expand the “Solver details” dropdown menu.
- Under “Zero-crossing options”, select the “Algorithm” property as “Adaptive”. This is shown in below figure:

- Add a “delay” block inside “AVR and Exciter” subsystem in your attached model as shown in below image:

- Add a “delay” block inside “Governor and Prime Mover” subsystem in your attached model as shown in below image:

The algebraic loop error was occurring because the solver was not able to solve the closed loop system by using numerical technique. These errors can be resolved by simply adding a delay block.
I have also attached the modified Simulink model with this answer.
I hope this resolves the issue !
0 commentaires
Voir également
Catégories
En savoir plus sur Simscape Electrical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!