TP – Filtre de Wien

Travail préparatoire
Lire l’énoncé du TP et ses annexes et effectuer l’application 1 et l’application 3.
Matériel

Par groupe

  • GBF et oscilloscope
  • Platine d'essai et fils de connexion
  • Résistances et condensateurs disponibles dans la salle de TP
Appel prof — Évaluation ★★⯪
Le cahier de TP sera rendu à la fin de la séance et le compte-rendu évalué.
les manipulations faites sont précisément décrites
/ 3
les observations et résultats bruts sont consignés (papier, informatique, .. )
/ 2
les traitements, calculs, … sont explicités
/ 2
une conclusion est apportée
/ 3
Total
/ 10

1. Introduction

L’objectif de ce TP est d’étudier le filtre de Wien et sa fonction de transfert afin de la confronter à son expression théorique.

2. Réalisation et étude préliminaire

Le filtre de Wien sera réalisé avec les composants accessibles dans la salle de TP (voir Annexe B) de sorte que

  1. sa fréquence caractéristique soit comprise entre 10⁠ ⁠kHz et 20⁠ ⁠kHz ;
  2. sa résistance soit très petite devant l’impédance d’entrée de l’oscilloscope (1⁠ ⁠MΩ) ;
  3. son impédance d’entrée à haute fréquence soit suffisamment grande pour ne pas faire saturer en courant l’ALI.
Application 1 ✍

Choisir des valeurs pour 𝑅 et 𝐶.

Les composants utilisés en TP ont une incertitude-type de 5⁠ ⁠%. Calculer l’incertitude sur la fréquence caractéristique 𝑓0.

Évaluation ★★⯪
Choix des valeurs de 𝑅 et 𝐶 et calcul de l’incertitude sur la fréquence caractéristique 𝑓0.
composants accessibles dans la salle de TP
/ 2
critère sur la fréquence caractéristique
/ 2
critère la résistance
/ 2
critère l’impédance d’entrée
/ 2
incertitude sur 𝑓0
/ 2
Total
/ 10
Manipulation 1 🙌

Réaliser le filtre de Wien sur une platine d’essai.

Relier son entrée à un GBF et observer sa sortie sur un oscilloscope.

Vérifier rapidement et qualitativement que la nature du filtre et la fréquence caractéristique sont conformes aux attentes.

Appel prof — Évaluation ★★⯪

L’enseignant dérègle l’oscilloscope et le binôme le re-règle sans utiliser le bouton auto-scale.

Le binôme montre ensuite comment il estime la fréquence caractéristique en utilisant l’amplitude.

les signaux ne défilent pas
/ 2
les signaux prennent toute la place
/ 2
on voit quelques périodes
/ 2
critère sur l’amplitude
/ 2
estimation de la fréquence
/ 2
Total
/ 10
Appel prof — Évaluation ★★⯪

L’enseignant dérègle l’oscilloscope et le binôme le re-règle sans utiliser le bouton auto-scale.

Le binôme montre ensuite comment il estime la fréquence caractéristique en utilisant la phase.

les signaux ne défilent pas
/ 2
les signaux prennent toute la place
/ 2
on voit quelques périodes
/ 2
critère sur la phase
/ 2
estimation de la fréquence
/ 2
Total
/ 10

3. Tracé et analyse du diagramme de Bode

Le diagramme de Bode (en gain et en phase) sera tracé après un relevé point par point réalisé à l’aide du GBF et de l’oscilloscope. Les tracés seront réalisés avec Python grâce à la bibliothèque pyplot, notamment la fonction semilogx de la bibliothèque matplotlib.pyplot qui fait le tracé avec les abscisses en échelle logarithmique (voir Annexe A).

Application 2 ✍
Expliquer pourquoi il est préférable de mesurer également l’amplitude de la tension d’entrée, issue du GBF, plutôt que de lire sa valeur sur l’écran de celui-ci.
Manipulation 2 🙌

Mesurer pour chaque point

On répartira les points pour des fréquences entre 10⁠ ⁠Hz et 100⁠ ⁠kHz en choisissant 5 points avant la fréquence caractéristique et 5 points après.

Les données seront rentrées directement dans des variables dans Python.

Tracer le diagramme de Bode en gain et en phase grâce à Python.

Appel prof — Évaluation ★★⯪

L’enseignant dérègle l’oscilloscope et le binôme le re-règle sans utiliser le bouton auto-scale.

Le binôme montre ensuite comment il mesure les grandeurs d’intérêt.

les signaux ne défilent pas
/ 2
les signaux prennent toute la place
/ 2
on voit quelques périodes
/ 2
mesure de l’amplitude
/ 2
mesure du retard
/ 2
Total
/ 10
Appel prof — Évaluation ★★⯪
L’enseignant regarde les courbes.
courbe du gain en dB
/ 2
courbe de la phase
/ 2
titre
/ 2
axes
/ 2
points non reliés
/ 2
Total
/ 10

L’analyse manuelle du diagramme de Bode ne peut être faite qu’à partir des asymptotes. Dans ce TP, comme les données sont numérisées, on peut faire des traitements plus avancés et notamment un ajustement de la fonction de transfert théorique sur les données expérimentales.

Pour cela, il est nécessaire de définir en Python la fonction de Bode théorique du filtre de Wien.

Application 3 ✍

Compléter le code suivant qui renvoie le gain en décibels du filtre de Wien.

1
2
3
4
5
6
def GdB(f, A, f0, Q):
    # f  : fréquence en Hz
    # A  : constante sans dimension
    # f0 : fréquence caractéristique
    # Q  : facteur de qualité
    return ...

Pour vérifier l’adéquation entre les diagrammes de Bode théorique et expérimental, et pour déterminer les paramètres 𝐴, 𝑓0 et 𝑄, on peut effectuer un ajustement (fit en anglais), c’est-à-dire chercher la courbe théorique passant au plus près des points expérimentaux.

On utilisera la fonction curve_fit de la bibliothèque scipy.optimize (voir Annexe A).

Manipulation 3 🙌

Écrire des instructions Python permettant d’effectuer l’ajustement de la fonction définie à l’application 3.

Les instructions devront afficher les valeurs des paramètres 𝐴, 𝑓0 et 𝑄 pour lesquelles la fonction de transfert théorique passe au plus près des points expérimentaux.

Pour savoir si l’ajustement est correct, il est d’usage de tracer sur le même graphique les points expérimentaux et la courbe théorique obtenue avec les paramètres optimaux.

Manipulation 4 🙌
Écrire des instructions Python permettant de tracer sur le même graphique les points expérimentaux et la courbe théorique obtenue avec les paramètres optimaux.

4. Prise en compte des incertitudes

Conclure sur la compatibilité ou non entre les valeurs attendues et les valeurs expérimentales nécessite une estimation des incertitudes.

Manipulation 5 🙌

Estimer l’incertitude relative sur la mesure du retard sur l’oscilloscope. On généralisera cette valeur à tous les points de mesure.

Estimer l’incertitude absolue sur la mesure de l’amplitude sur l’oscilloscope. On généralisera cette valeur à tous les points de mesure.

Évaluation ★★⯪
Présenter la démarche d’estimation des incertitudes expérimentales sur l’amplitude.
estimation présente
/ 3
estimation pertinente
/ 4
estimation précise
/ 3
Total
/ 10
Évaluation ★★⯪
Présenter la démarche d’estimation des incertitudes expérimentales sur le retard.
estimation présente
/ 3
estimation pertinente
/ 4
estimation précise
/ 3
Total
/ 10

Il reste alors à propager cette incertitude sur la fréquence caractéristique 𝑓0, le facteur de qualité 𝑄 et sur 𝐴. On utilisera pour cela la méthode de Monte-Carlo.

Manipulation 6 🙌
Implémenter la méthode de Monte-Carlo pour estimer l’incertitude sur la valeur de 𝑓0, 𝐴 et 𝑄.

5. Conclusion

Il est maintenant possible de conclure sur l’adéquation des valeurs attendues aux valeurs mesurées pour 𝑓0, 𝐴 et 𝑄.

Application 4 ✍
Les valeurs mesurées via l’ajustement des trois paramètres sont-elles cohérentes avec celles calculées à partir des valeurs des composants ? La conclusion sera rédigée après le calcul d’un écart normalisé.

Annexe A : Fonctions Python utiles dans ce TP

plt.clf1
plt.clf()
efface le graphique courant (pour tracer un nouveau graphique dans la même fenêtre)
plt.plot1
plt.plot(x, y)
plt.plot(x, y, format: str)
trace y en fonction de x ; format (ex. "r+", "g-") fixe couleur et style
plt.semilogx1
plt.semilogx(x, y)
comme plot, avec l’axe des abscisses en échelle logarithmique
plt.xlabel1
plt.xlabel(texte: str)
légende de l’axe des abscisses
plt.ylabel1
plt.ylabel(texte: str)
légende de l’axe des ordonnées
plt.title1
plt.title(texte: str)
titre du graphique
plt.show1
plt.show()
affiche la fenêtre graphique, une fois tous les tracés effectués
curve_fit2
curve_fit(f: fonction, xdata: array, ydata: array) -> tuple
popt, pcov = curve_fit(f: fonction, xdata: array, ydata: array, p0: list, bounds=(0, np.inf): tuple)
ajuste les paramètres de f (dont le premier argument est l’abscisse) aux données ; popt : paramètres optimaux, p0 : estimation initiale des valeurs des paramètres (facultatif), bounds : bornes sur les paramètres (facultatif)
np.pi3
np.pi -> float
constante 𝜋≈3.14159
np.linspace3
x = np.linspace(début: float, fin: float, nombre_de_points: int) -> array
tableau de points régulièrement espacés entre début et fin (bornes incluses)
np.logspace3
f = np.logspace(début: float, fin: float, nombre_de_points: int) -> array
comme linspace, mais les points sont espacés logarithmiquement entre 10début et 10fin
np.random.normal3
x = np.random.normal(moyenne: float, écart_type: float) -> float
x = np.random.normal(moyennes: array, écarts_types: array) -> array
valeurs aléatoires suivant une loi normale (gaussienne) distribuée autour de moyenne avec un écart-type écart_type
1 import matplotlib.pyplot as plt2 from scipy.optimize import curve_fit3 import numpy as np

Annexe B : Composants disponibles dans la salle de TP

4,710122233
47100120220330
4701000120022003300
470010 00012 00022 00033 000
47 000100 000120 000220 000330 000
Tableau 1. – Résistances des résistors disponibles dans la salle de TP (en Ω)
100⁠ ⁠pF400⁠ ⁠pF1⁠ ⁠nF2,2⁠ ⁠nF4,7⁠ ⁠nF10⁠ ⁠nF22⁠ ⁠nF100⁠ ⁠nF220⁠ ⁠nF470⁠ ⁠nF
Tableau 2. – Capacité des condensateur disponibles dans la salle de TP