## On joue avec R car ZR = R (indépendant de w)
import matplotlib.pyplot as plt
from math import cos, sin, pi

R = 50

# Paramètres
f = 200 # fréquence de travail
T = 1/f # période (s)
w = 2*pi/T # pulsation
phiR = 0 # phase à l'origine (rad)
U = 5 # amplitude de la tension

tmax = 4*T # bornes du graphe
n = 500 # nombre de points de la courbe

# Listes des fonctions
liste_t_exemple = []
for i in range(n+1):
    instant = i*tmax/n
    liste_t_exemple.append(instant)

liste_t = [i*tmax/n for i in range(n+1)] # liste des instants t
liste_uR = [U*cos(w*t+phiR) for t in liste_t] # on calcule uL(t)
# i(t) sous la forme I*cos(w*t+phiI)
I = U/R # calcul de l'amplitude (complexes)
phiI = phiR # calcul du déphasage (complexes)
liste_i = [I*cos(w*t+phiI) for t in liste_t] # on calcule i(t)

# Graphe
plt.axes(xlim=(0, tmax), ylim=(-10, 10))
plt.plot(liste_t, liste_uR, label = 'uR', color='green')
plt.plot(liste_t, liste_i, label = 'i', color='red')
plt.title('Intensité et tension en RSF')
plt.xticks([]) # retire les chiffres en abscisses
plt.legend()
plt.show()

## On joue avec C et f car ZC = 1/jCW
import matplotlib.pyplot as plt
from math import cos, sin, pi

f = 20000 # fréquence de travail
C = 10**-6

# Paramètres
T = 1/f # période (s)
w = 2*pi/T # pulsation
phiC = 0 # phase à l'origine (rad)
U = 5 # amplitude de la tension

tmax = 4*T # bornes du graphe
n = 500 # nombre de points de la courbe

# Listes des fonctions
liste_t_exemple = []
for i in range(n+1):
    instant = i*tmax/n
    liste_t_exemple.append(instant)

liste_t = [i*tmax/n for i in range(n+1)] # liste des instants t
liste_uC = [U*cos(w*t+phiC) for t in liste_t] # on calcule uC(t)
# i(t) sous la forme I*cos(w*t+phiI)
I = C*w*U # calcul de l'amplitude (complexes)
phiI = phiC + pi/2 # calcul du déphasage (complexes)
liste_i = [I*cos(w*t+phiI) for t in liste_t] # on calcule i(t)

# Graphe
plt.axes(xlim=(0, tmax), ylim=(-10, 10))
plt.plot(liste_t, liste_uC, label = 'uC', color='green')
plt.plot(liste_t, liste_i, label = 'i', color='red')
plt.title('Intensité et tension en RSF')
plt.xticks([]) # retire les chiffres en abscisses
plt.legend()
plt.show()

## On joue avec L et f car ZL = jLW
import matplotlib.pyplot as plt
from math import cos, sin, pi

f = 200 # fréquence de travail
L = 10**-3

# Paramètres
T = 1/f # période (s)
w = 2*pi/T # pulsation
phiL = 0 # phase à l'origine (rad)
U = 5 # amplitude de la tension

tmax = 4*T # bornes du graphe
n = 500 # nombre de points de la courbe

# Listes des fonctions
liste_t_exemple = []
for i in range(n+1):
    instant = i*tmax/n
    liste_t_exemple.append(instant)

liste_t = [i*tmax/n for i in range(n+1)] # liste des instants t
liste_uL = [U*cos(w*t+phiL) for t in liste_t] # on calcule uL(t)
# i(t) sous la forme I*cos(w*t+phiI)
I = U/(L*w) # calcul de l'amplitude (complexes)
phiI = phiL - pi/2 # calcul du déphasage (complexes)
liste_i = [I*cos(w*t+phiI) for t in liste_t] # on calcule i(t)

# Graphe
plt.axes(xlim=(0, tmax), ylim=(-10, 10))
plt.plot(liste_t, liste_uL, label = 'uL', color='green')
plt.plot(liste_t, liste_i, label = 'i', color='red')
plt.title('Intensité et tension en RSF')
plt.xticks([]) # retire les chiffres en abscisses
plt.legend()
plt.show()
