Using Simulink to create generator that accepts feedback.

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 Kommentare

Hello @Yazeed,
can you please share the simulink model ? It will be helpful in debugging and suggesting a good workaround
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.
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.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Abhishek Kumar Singh
Abhishek Kumar Singh am 8 Nov. 2024

0 Stimmen

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 Kommentar

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.

Melden Sie sich an, um zu kommentieren.

Shivam Gothi
Shivam Gothi am 25 Nov. 2024

0 Stimmen

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 !

Kategorien

Mehr zu Simscape Electrical finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2023a

Gefragt:

am 8 Nov. 2024

Beantwortet:

am 25 Nov. 2024

Community Treasure Hunt

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

Start Hunting!

Translated by