Diagramme de Bode
Reprenons le cas du circuit RC
Le diagramme de Bode permet de caractériser un circuit en Fréquence.
Toute sinusoïde “entrant” dans un système linéaire temporellement invariant (SLTI) subit une atténuation (ou amplification) et un déphasage (retard temporel).
Cette modification du signal dépend de la fréquence .
Le tracé du diagramme de Bode consiste à observer l’atténuation et le déphasage du signal de sortie par rapport au signal d’entrée, et ce pour toutes les fréquences.
Ces observations se font en Régime Permanent .
Rappelons que tout signal est une somme infinie de sinusoïdes
Détermination de la Fonction de Transfert
Pont Diviseur de Tension avec les impédances :
Rappels sur les complexes
Module
( pythagore )
Argument
Autre situation :
Module
Argument
Sachant que :
Tracé du Diagramme de Bode
Rappelons que Vs et Ve étant sinusoïdaux, on peut les exprimer avec la forme complexe exponentielle :
Amplitude
L’observation de l’atténuation ou de l’amplification se fait en comparant le module du signal de sortie par rapport au module du signal d’entrée.
En dB :
Tracé Asymptotique
Pente -20dB/decade.
Points caractéristiques
Déphasage
Tracé Asymptotique
Points caractéristiques
Script Scilab pour générer les figures ci dessus
bode.sce
//============================================================================//
// SYSTEME DU PREMIER ORDRE
//============================================================================//
h=figure(4)
f=get("current_figure") //get the handle of the current figure :
f.background=8
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);
fmin=1e-2
fmax=10e5
xgrid(5);
bode(H_s, fmin, fmax, "rad")
// PHASE
t=get("hdl") //get the handle of the newly created object
t.font_foreground=2; // change font properties
//t.font_size=1;
t.font_style=10;
t.grid=[3,3]
t.children.children.thickness=4
t.children.children.foreground=5
t.data_bounds = [5,-110;6283185.3,-1.715D-08];
t.x_label.text="$\omega\ (rad/s)$"
t.x_label.font_style=10
t.x_label.font_size=3
t.x_label.foreground=5
t.y_label.text="$Phase\ (°)$"
t.y_label.font_style=10
t.y_label.font_size=3
t.y_label.foreground=5
// MAGNITUDE
a=gca()
a.grid=[3,3]; // Couleur grille
a.labels_font_color=2; // Couleur chiffres axes
//a.font_size=1;
a.font_style=10;
a.children.children.thickness=4
a.children.children.foreground=5
a.data_bounds = [5,-75.963597;6283185.3,-1.715D-08];
a.x_label.text="$\omega\ (rad/s)$"
a.x_label.font_style=10
a.x_label.font_size=3
a.x_label.foreground=5
a.y_label.text="$Magnitude\ (dB)$"
a.y_label.font_style=10
a.y_label.font_size=3
a.y_label.foreground=5
xs2svg(f,'fig.svg')
//******************************************************************************
// 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.02
y_min=0
y_max=0.009
subplot(221)
omega=500
temps=linspace(0,t_max,1000);
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(["$\omega=500 rad/s$"],"color","black","fontsize",6);
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
//******************************************************
subplot(222)
omega=1000
temps=linspace(0,t_max,1000);
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(["$\omega=1000 rad/s$"],"color","black","fontsize",6);
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
//******************************************************
subplot(223)
omega=2000
temps=linspace(0,t_max,1000);
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(["$\omega=2000 rad/s$"],"color","black","fontsize",6);
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
//******************************************************
subplot(224)
omega=5000
temps=linspace(0,t_max,1000);
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(["$\omega=5000 rad/s$"],"color","black","fontsize",6);
plot(temps,entree)
p = get("hdl");
p.children.thickness = 3;
// Export to svg
xs2svg(f,'fig.svg')