Fonctions circulaires
✎ Travail n° 1 TD sinus
Faire les exercices présents dans ce document
💻 Travail n° 2 Tracé avec Matplotlib
Ci-dessous figure le listing d’un script Python qui permet de tracer une sinusoïde :
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as tck
# Paramètres de la sinusoïde
frequence = 50 # Fréquence en Hz
amplitude = 20 # amplitude de la tension en V
phaseOrigine = 0 # phase à l'origine en radians
pulsation = 2 * np.pi * frequence # pulsation en rad/s
nbPoints = 100 # nombre de points pour chaque courbe
dureeTrace = 0.080 # durée du tracé en secondes
# Répartition homogène des antécédents sur la durée
# du tracé dans un tableau Numpy
temps = np.linspace(0,dureeTrace,nbPoints)
# Définitions de la sinusoïde
sinusoide = amplitude * np.sin(pulsation * temps + phaseOrigine) (1)
# Création d'une figure Matplotlib
fig, ax = plt.subplots(layout="constrained")
# Configuration de la grille de la courbe
ax.xaxis.set_major_locator(tck.MultipleLocator(0.005)) # une graduation principale toutes les 5ms
ax.xaxis.set_minor_locator(tck.MultipleLocator(0.001)) # une graduation secondaire toutes les 1ms
ax.xaxis.set_major_formatter(lambda x, pos: str(round(x*1000))) # valeurs graduations en ms plutôt qu'en s
ax.yaxis.set_major_locator(tck.MultipleLocator(10)) # une graduation verticale principale toutes les 10 unités
ax.yaxis.set_minor_locator(tck.MultipleLocator(5)) # une graduation verticale secondaire toutes les 5unités
ax.grid(which='major', color='#888888', linewidth=0.8) # couleur/largeur lignes des graduations principales
ax.grid(which='minor', color='#AAAAAA', linestyle=':', linewidth=0.5) # couleur/largeur lignes des graduations secondaires
# Tracé de la sinusoïde
ax.plot(temps, sinusoide, "blue")
# Configuration de la figure
ax.set_xlabel("Temps (ms)") # libellé axe abscisses
ax.set_title("Signal sinusoïdal") # titre
ax.legend(["$f(t) = sin(100 \pi \cdot t)$"], loc='upper right', ncol=2) # légende placée en haut à droite
# Affichage de la figure
plt.show()
1 | On utilise ici np.sin() du module Numpy qui permet d’appliquer un calcul à un ensemble de valeurs (→ tableau temps )⇒ sinusoide contiendra l’ensemble des images des antécédents présents dans temps |
Voici le résultat obtenu :
-
Analyser le script et le modifier de façon à tracer la courbe étudiée dans l’exercice n°1 du TD du Travail n°1 sur l’intervalle [0…20ms] :
Vous veillerez à modifier l’emplacement des graduations verticales pour obtenir le résultat suivant :
Dans le module Numpy :
-
la fonction racine carrée est
np.sqrt()
-
la valeur de pi est obtenue avec
np.pi
-
-
Tracer une 2ème sinusoïde sur la même figure qui est de même fréquence que la 1ère mais est en avance de phase de π/4 sur celle-ci et dont l’amplitude est 2 fois moindre.
Résultat attendu :
🞄 🞄 🞄