Using Simulink to create generator that accepts feedback.

5 visualizzazioni (ultimi 30 giorni)
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 Commenti
Yazeed
Yazeed il 11 Nov 2024
Hello Shivam,
Thank you for your response. I have attached the model here. It is one of the example models that I edited to accept an external Vref and Wref signal so we can control voltage and frequency.
Shivam Gothi
Shivam Gothi il 25 Nov 2024
Hello @Yazeed,
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.

Accedi per commentare.

Risposte (2)

Abhishek Kumar Singh
Abhishek Kumar Singh il 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:
  1. 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
  2. Diagnosing Algebraic Loops: https://www.mathworks.com/matlabcentral/answers/97687-how-can-i-resolve-algebraic-loops-in-my-simulink-model?s_tid=answers_rcts
  3. 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/
  1 Commento
Yazeed
Yazeed il 8 Nov 2024
Hi Abhishek,
Thank you for your response! The issue I am running into is my exciter and governor are not solely dependent on feedback. They also require the external Vref and Wref. This same model works perfectly with the black simscape generator model but seems to have issues with the newer block.

Accedi per commentare.


Shivam Gothi
Shivam Gothi il 25 Nov 2024
Hello @Yazeed,
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 !

Categorie

Scopri di più su Electrical Sensors in Help Center e File Exchange

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by