MATLAB Answers

Analizing the charges and discharges of a capacitor conected to a square wave voltage source

3 views (last 30 days)
I'm trying to find an equation that replicates the values of the voltage of the capacitor in a circuit with a resistor of 100k ohms.
I have the equations but I dont know how to code them in matlab.
So far I've accomplished the first half of the cycle but I can't get the other half right.
Pls help.
It is a square voltage source with a freecuency of 1000Hz and the two voltages are 10 and 0.
function y = fcn(u,t0)
if u < t0
y = 0;
if u > 0.5e-3
y = 9.93*exp(-10000*(u-t0));
y = -10*exp(-10000*(u-t0))+10;

Accepted Answer

David Goodmanson
David Goodmanson on 5 Jun 2020
Hello Virginia,
As you progress along the square wave, each time you get to a new half cycle there is of course a new applied voltage Vapp, alternating between 10 and 0 volts. When that occurs, the capacitor is sitting at a voltage I'll call Vold. At that point the voltage moves toward the new Vapp with a time constant 1e-4 that you know already. If the start of that half cycle is denoted by u = tstart, then the voltage in the half cycle is
V = Vapp + (Vold - Vapp)*exp(-(u-tstart)*10000)
So as you can see, for u = tstart the voltage is Vold, and as u--> inf the voltage --> Vapp. So all you need do is start with Vold = 0, go through each half cycle, find the voltage as a function of u, and then use Vold = V(end of that half cycle) for the start of the upcoming half cycle.

  1 Comment

Virginia Martin Herrera
Virginia Martin Herrera on 6 Jun 2020
thank you!!! I only need the graphic for one cycle, that’s why I used ifelse. So as you say, en each function I have to “restart” the time cause the equations that I have start at 0. What I did was adding 5e-4 inside de parenthesis and it worked. Thank you very mucho for your answer!

Sign in to comment.

More Answers (0)


Translated by