#-----------------------------------------
# ellissi circuito RC 
#
#  GdA maggio 2011
#-----------------------------------------

Vc <- function(nu, nut, V0, t) {
  return( V0/sqrt(1+(nu/nut)^2 ) * cos( t*2*pi*nu - atan(nu/nut) ) )
}
Vr <- function(nu, nut, V0, t) {
  return( V0/sqrt(1+(nu/nut)^(-2) ) * cos( t*2*pi*nu - atan(nu/nut) + pi/2) ) 
}


r0 = 50    # Ohm
r  = 10000 # Ohm
c  = 10e-9 # Farad
V0 = 1     # Volt

Deltat.su.T = 3 # finestra temporale da guardare
nut = 1/(2*pi*r*c)

while (1) {
  # loop infinito, finche'  nusunut > 0
  cat ("\n >> dai valore frequenza in unità di frequenza di taglio ( < 0 per terminare )\n")
  nur = scan("",nmax=1)
  if (nur < 0) break
  nu = nur*nut
  T <- 1/nu
  t <- seq(0, T*Deltat.su.T, len=500)
  titolo = sprintf("%.0f Hz  (T = %.2e s)", nu, T)
  plot (V0*cos(t*2*pi*nu), Vc(nu, nut, V0, t),
        ylim=c(-1,1), ty='l', xlab='V', ylab='Vr o Vc', main=titolo, col='red')
  points(V0*cos(t*2*pi*nu), Vr(nu, nut, V0, t), ty='l', col='blue')       
}
