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

1 view (last 30 days)
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 Comments
Rakesh Chavan
Rakesh Chavan on 6 Jan 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 on 8 Jan 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

Sign in to comment.

Accepted Answer

Dennis
Dennis on 7 Jan 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 Comments
Tony Castillo
Tony Castillo on 8 Jan 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 on 21 Jan 2016
Edited: Dennis on 21 Jan 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.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 7 Jan 2016

Categories

Find more on Physical Units in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!