Résolution d'une équation différentielle du premier ordre
La Méthode
Equation différentielle à résoudre :
On cherche la solution y(t), pour x(t)=E entrée constante.
Cette solution est la somme :
- d’une solution en régime permanent
- d’une solution en régime transitoire.
Régime Permanent
Passé le transitoire, s sera de même forme que l’entrée, soit ICI une constante :
Régime Transitoire (ou libre)
On considère une entrée de forçage nulle, dans ce cas :
La solution de l’équation correspondante est :
Conclusion :
Détermination de B : condition initiale à t=0. Hypothèse : ici s(0)=0
Application : Circuit RC (Charge)
On souhaite visualiser la tension aux bornes du condensateur, en réponse à un échelon de tension sur
.
Le Condensateur est initialement déchargé .
Recherche de l’Equation
Application de la loi des mailles :
Dans un condensateur
Le courant est un débit de charges
d’où
Equation différentielle à résoudre :
On note
Régime Permanent
est une constante E.
Passé le transitoire, sera également une constante, notée A.
A répond à l’équation :
Régime Transitoire
On considère une entrée de forçage nulle, dans ce cas :
La solution de l’équation correspondante est :
Conclusion
Détermination de B : condition initiale à t=0. Hypothèse : ici (Condensateur déchargé)
Application : Circuit RC (Décharge)
On applique Une tension nulle sur .
Régime Permanent
est une constante nulle.
Passé le transitoire, sera également une constante, notée A.
A répond à l’équation :
Régime Transitoire
On considère une entrée de forçage nulle, dans ce cas :
La solution de l’équation correspondante est :
Conclusion
Détermination de B : condition initiale à t=0. Hypothèse : ici
Et si l’entrée n’est pas constante ?
On souhaite visualiser la tension aux bornes du condensateur, en réponse à une rampe de tension
.
Le Condensateur est initialement déchargé .
Régime Permanent
est une rampe
passé le transitoire, sera également une rampe, notée
répond à l’équation :
Par identification des coefficients du polynome :
Régime Transitoire
On considère une entrée de forçage nulle, dans ce cas :
La solution de l’équation correspondante est :
Conclusion
Détermination de B : condition initiale à t=0. Hypothèse : ici
Et si l’entrée est une sinusoïde ?
Régime Permanent
Entrée sinusoïdale –> Sortie sinusoïdale déphasée et atténuée.
Impédances Complexes ( cf Signaux Sinus )
Pont diviseur de tension :
Fonction de Transfert :
avec
Régime Transitoire
On considère une entrée de forçage nulle, dans ce cas :
La solution de l’équation correspondante est :
Conclusion
Détermination de B : condition initiale à t=0. Hypothèse : ici
Essai pour f=500 Hz
Essai pour
Script Scilab pour générer les figures ci dessus
equa_diff.sce
//============================================================================//
// SYSTEME DU PREMIER ORDRE
//============================================================================//
R=10e3
C=100e-9
to=R*C
num = 1; // numérateur de la fonction de transfert
den = poly([1 to],'p','c'); // denominateur de la fonction de transfert (1+to.s)
H_s= syslin('c',num,den);
//******************************************************************************
// Réponse indicielle
//******************************************************************************
//clf() // Effacement fenêtre courante
h=figure(2)
f=get("current_figure") //get the handle of the current figure :
f.background=8
t_min=0
t_max=0.01
y_min=0
y_max=1.1
temps=linspace(0,t_max,100);
h=csim('step',temps,H_s);
plot(temps,h,'r');
p = get("hdl");
p.children.thickness = 7;
a=gca()
a.x_location = "origin";
a.y_location = "origin";
a.data_bounds=[t_min,t_max,y_min,y_max];
a.font_size=5; //set the tics label font size
a.grid=[3,3]; // Couleur grille
a.labels_font_color=2; // Couleur chiffres axes
a.box="off"; // Cadre
xlabel("$t$","fontsize",7,"color","red");
ylabel("$v_{s}(t)$","fontsize",7,"color","red","rotation",0);
title(["$v_{s}(t)=E.(1-\text{e}^{\frac{-t}{\tau}})$";"$R=10K\Omega, C=100nF, \tau=1ms$"],"color","black","fontsize",7);
plot(temps,ones(temps))
p = get("hdl");
p.children.thickness = 3;
//******************************************************************************
// Réponse à un signal carré
//******************************************************************************
//clf() // Effacement fenêtre courante
h=figure(3)
f=get("current_figure") //get the handle of the current figure :
f.background=8
t_min=0
t_max=0.03
y_min=0
y_max=1.1
temps=linspace(0,t_max,10000);
entree=0.5*(squarewave(temps*200)+1)
h=csim(entree,temps,H_s);
plot(temps,h,'r');
p = get("hdl");
p.children.thickness = 7;
a=gca()
a.x_location = "origin";
a.y_location = "origin";
a.data_bounds=[t_min,t_max,y_min,y_max];
a.font_size=5; //set the tics label font size
a.grid=[3,3]; // Couleur grille
a.labels_font_color=2; // Couleur chiffres axes
a.box="off"; // Cadre
xlabel("$t$","fontsize",7,"color","red");
ylabel("$v_{s}(t)$","fontsize",7,"color","red","rotation",0);
title(["$v_{s}(t)=E.(1-\text{e}^{\frac{-t}{\tau}}), \quad v_{c}(t)=E.e^{\frac{-t}{\tau}}$";"$R=10K\Omega, C=100nF, \tau=1ms$"],"color","black","fontsize",7);
//plot(temps,squarewave(temps))
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
//******************************************************************************
// Réponse à une rampe
//******************************************************************************
//clf() // Effacement fenêtre courante
h=figure(4)
f=get("current_figure") //get the handle of the current figure :
f.background=8
t_min=0
t_max=0.009
y_min=0
y_max=0.009
temps=linspace(0,t_max,100);
h=csim(temps,temps,H_s);
plot(temps,h,'r');
p = get("hdl");
p.children.thickness = 7;
a=gca()
a.x_location = "origin";
a.y_location = "origin";
a.data_bounds=[t_min,t_max,y_min,y_max];
a.font_size=5; //set the tics label font size
a.grid=[3,3]; // Couleur grille
a.labels_font_color=2; // Couleur chiffres axes
a.box="off"; // Cadre
xlabel("$t$","fontsize",6,"color","red");
ylabel("$v_{s}(t)$","fontsize",6,"color","red","rotation",0);
title(["$v_{s}(t)=E.(1-\text{e}^{\frac{-t}{\tau}})$";"$R=10K\Omega, C=100nF, \tau=1ms$"],"color","black","fontsize",6);
plot(temps,temps)
p = get("hdl");
p.children.thickness = 3;
//******************************************************************************
// Réponse à une sinusoide
//******************************************************************************
//clf() // Effacement fenêtre courante
h=figure(4)
f=get("current_figure") //get the handle of the current figure :
f.background=8
t_min=0
t_max=0.009
y_min=0
y_max=0.009
freq=500
omega=2*%pi*freq
omega=1000
temps=linspace(0,t_max,100);
entree=(sin(omega*temps))
h=csim(entree,temps,H_s);
plot(temps,h,'r');
p = get("hdl");
p.children.thickness = 7;
a=gca()
a.x_location = "origin";
a.y_location = "origin";
a.data_bounds=[t_min,t_max,y_min,y_max];
a.font_size=5; //set the tics label font size
a.grid=[3,3]; // Couleur grille
a.labels_font_color=2; // Couleur chiffres axes
a.box="off"; // Cadre
xlabel("$t$","fontsize",6,"color","red");
ylabel("$v_{s}(t)$","fontsize",6,"color","red","rotation",0);
title(["$v_{s}(t)= V_e. \frac{1}{\sqrt{1 + \left ( \frac{\omega}{\omega_0} \right )^{2}}} .sin(\omega t-\arctan(\frac{\omega}{\omega_0})) + V_e.\frac{ \left ( \frac{\omega}{\omega_0} \right ) }{1+\left ( \frac{\omega}{\omega_0} \right )^2} e^{\frac{-t}{\tau}}$";"$\omega=3142, R=10K\Omega, C=100nF, \tau=1ms, \omega_0=1000rad/s $"],"color","black","fontsize",6);
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
// Export to svg
xs2svg(f,'fig.svg')