Battery duty cycle at each instant ?

4 views (last 30 days)
MUKESH KUMAR on 17 Aug 2018
Reopened: Walter Roberson on 12 Jan 2019
I have battery voltage Vi at each time instant(predefined before in simulink) and taking the reference voltage Vo (between 718-719 choose randomly at each instant). Now, I want to calculate and store duty cycle D of battery at each time instant according to D = {1-(Vi/Vo)}. How can I do it in a incremental time stamp loop or using for loop. Thanks

Accepted Answer

Adam Danz
Adam Danz on 20 Aug 2018
I didn't understand what Vi and Vo are. Are they each vectors of voltages sampled at temporal intervals?
If that's the case, and if Vi and Vo have the same length, the duty cycle, according to your equation would just be
D = 1 - Vi./Vo;
But I have a feeling this doesn't address what you need. Feel free to follow-up in the comments below.
MUKESH KUMAR on 21 Aug 2018
Yes, Vi and Vo are vectors of voltages sampled at each time instant and I want to calculate duty cycle at each instant but I do not know the length of vector So I can not use "i=1:sample_number" in for loop So how can i check it at every next instant for duty cycle. Thanks for your help.
Adam Danz
Adam Danz on 21 Aug 2018
My method above does not require knowing the length of each vector and it does not require a loop. As long as Vi and V0 are the same lenght
length(Vi) == length(Vo)
and as long as Vi and Vo are sampled together at the same time, that 1-line should do what you're asking, if I'm understanding correctly.
Have you tried running that line? Is there an error?

Sign in to comment.

More Answers (0)


More Answers in the  Power Electronics Control


Find more on Propulsion and Power Systems 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!