# circuito RC

zC <-  function(c, nu) {
  z <-  -1i/(2*pi*nu*c) 
}

zRC <- function(r0=50, r, c, nu) {
  z <- r0 + r + zC(c, nu)
}

r0 <- 0
r  <- 1000    # valore in Ohm
c  <- 25e-9   # Valore in Farad (-> 25 pF)
v0 <- 1      # tensione unitaria

nu <- seq(0, 10000, len=100)  # range di freuenze
# alternativa per togliere lo zero e aumentare la sensibilita'
# a basse frequenze
nu <- sort( c(seq(1, 1000, len=50), seq(1, 10000, len=50)) )
# meglio ancora: valori equidistanziati in log:
nu <- exp ( seq(log(1), log(100000), len=100) )


i  <- v0/zRC(r0,r,c, nu)
vr <- i*r
vc <- i*zC(c, nu)
Vr <- abs(vr)
phi.r <- Arg(vr)*180/pi   # fase in gradi
Vc <- abs(vc)
phi.c <- Arg(vc)*180/pi   # fase in gradi

layout(matrix(1:2, 2,1))   # due plot sovrapposti

plot(nu,Vc,type="l",ylab='tensioni')
points(nu,Vr,type="l")

plot(nu,phi.c,type="l",ylim=c(-90,90),ylab='sfasamenti')
points(nu,phi.r,type="l")

layout(1)                  # rimettiamo a posto il layout
