from pylab import *
from scipy import signal
from scipy.integrate import odeint
from matplotlib.pyplot import *
R=float(input("donner la valeur de la résistance en ohms svp : "))
L=float(input("donner la valeur de l'inductance en mili-Henri svp : "))
L=L*10**(-3)
C=float(input("donner la valeur de la capacité en micro-Farad svp : "))
C=C*10**(-6)
omega0=1/sqrt(L*C)
Q=L*omega0/R
print("Q= ",Q)
f=float(input("donner la valeur de la fréquence du fondamental en kHz pour le signal carré svp : "))
f=f*1000
def ue(t):
return signal.square(2*pi*f*t,0.5)
# Définition du système différentiel linéaire def RLC(Uc,t):
def RLC(Uc,t):
uc=Uc[0]
ucpoint=Uc[1]
return [ucpoint,omega0**2*(ue(t)-uc)-omega0/Q*ucpoint]
t0=0
T=1/f
tfin=10*T
t=linspace(t0,tfin,10000)
uc0=float(input("donner la valeur de la tension uc initiale svp :"))
ucpoint0=float(input("donner la valeur de la dérivée de uc initiale svp :" ))
X=odeint(RLC,[uc0,ucpoint0],t)
figure(figsize=(12,12),dpi=200)
subplot(211)
plot(t,X[:,0],color='b')
plot(t,ue(t),color='r')
xlabel('t', fontsize = 20)
ylabel('uc', fontsize = 20)
axis([0,tfin,-4,4])
subplot(212)
plot(X[:,0],X[:,1])
xlabel('uc', fontsize = 20)
ylabel('$\dot{uc}$', fontsize = 20)
tight_layout()
show()