#-------------------------------------
# Condensatori in parallelo tramite R
# (Problema nr 1, lezione 21 F2Ch, 4/11/21)
#
# GdA, 6/11/2021
#--------------------------------------

C1  = 1e-9 # F
V1i = 10   # V
C2  = 2e-9 # F
V2i = 20   # V
R   = 100  # Ohm

Cp <- C1 + C2 
Cs <- C1*C2 / (C1 + C2)
Qt <- C1*V1i + C2*V2i
Vf <- Qt / Cp
cat(sprintf("Vf = %.2f V\n", Vf))

tau <- R * Cs 
cat(sprintf("tau = %.2e s\n", tau))

par(mfrow=c(2,1)) # 2 plot insieme
old.mar = par("mar")
par(mar=c(4.5,5.0,1.1,1.1))   # margini ottimizzati
curve( Vf + (V2i - Vf)*exp(-t/tau), 0, 5*tau, xname='t',
      ylim=c(min(V1i,V2i)*0.9, max(V1i,V2i)), lwd=2, col='blue',
      xlab='t (s)', ylab='Vc1, Vc2  (V)', xaxs="i")

curve( (Qt - C2 * (Vf + (V2i - Vf)*exp(-t/tau)) ) / C1, 0, 5*tau,
       xname='t', lwd=2, col='green', add=TRUE)

abline(v=tau, lty=2)
abline(v=2*tau, lty=2)
abline(v=3*tau, lty=2)
abline(v=4*tau, lty=2)
abline(h=Vf, lty=2, col='magenta')

# corrente
I0 = (V1i - V2i) / R
cat(sprintf("I(0) = %.2e A\n", I0))

curve( C2*(Vf-V2i)/tau*exp(-t/tau), 0, 5*tau, xname='t',
      lwd=2, col='blue', xlab='t (s)', ylab='I [C1 -> C2]  (A)', xaxs="i")
abline(v=tau, lty=2)
abline(v=2*tau, lty=2)
abline(v=3*tau, lty=2)
abline(v=4*tau, lty=2)
par(mar=old.mar)
