Using Simulink to create generator that accepts feedback.
7 次查看(过去 30 天)
显示 更早的评论
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 个评论
Shivam Gothi
2024-11-25
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.
回答(2 个)
Abhishek Kumar Singh
2024-11-8
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
2024-11-25
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Electrical Sensors 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!