Take a look and give me your opinion about how to break the Algebraic Loop

1 visualizzazione (ultimi 30 giorni)
I present you in the attached documents a DC load modeled, but I do not know how to model it without produce a ALGEBRAIC LOOP when i try to sense at the same time the voltage variation from battery against the time, I produce a algebraic loop by a feedback, that's why i set in the rigth place where should be a path to the voltaje meter a constant block, but for it's condition (constant block) it will not register the variability from the DC voltaje than supply the load demand, but it runs, I know than i'm near to the answer, because i need collect the battery discharge in funtion of the consumption that is variable in funtion of the time, i also need to see the current variation in amperes per load consume, and the %SOC versus the time. I will show you both with with and without Algebraic Loop Please help me with this.
  2 Commenti
Rakesh Chavan
Rakesh Chavan il 6 Gen 2016
Hi,
I was trying to simulate your model however some variables are missing in the Init call back of the model are missing. Can you please share those as well so that we can simulate the model.
Tony Castillo
Tony Castillo il 8 Gen 2016
t=60 Temp=1 E=1 This are the variables that are missing in the model, excusme for forget it, thanks for interest showed by it

Accedi per commentare.

Risposta accettata

Dennis
Dennis il 7 Gen 2016
Is a delay acceptable? The Simulink User Guide suggests it at Page 13-13 "Cyclic Data Dependency".
Try inserting it between the looped signal and an input to one block. Does it work?
  2 Commenti
Tony Castillo
Tony Castillo il 8 Gen 2016
I set a memory block (is that you mean with add a delay block?), and happen this errors, it does not work my friend
Dennis
Dennis il 21 Gen 2016
Modificato: Dennis il 21 Gen 2016
You could try to include the memory block after the green box, or at another place. That error means that one of the signal changes suddenly like a step signal and hence, the derivative is non finite. If you cannot help yourself by altering the position of the delay, try to include a transfer function with a fast filter like nom [1] and den [0.001 1], it will smoothen out your derivative. However, that last suggestion is not perfect.
Also, you can try to use "unit delay" instead of the memory block, but that might not be your issue. If you found a solution, please tell us what worked out for you.

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 7 Gen 2016

Community Treasure Hunt

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

Start Hunting!

Translated by