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

capacitor

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;
else
if u > 0.5e-3
y = 9.93*exp(-10000*(u-t0));
else
y = -10*exp(-10000*(u-t0))+10;
end
end

Best Answer

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.