Le modèle utilisé ici est extrait de : Laurent MATHIEU, Comment j’ai pesé la Terre avec un chronomètre, Ellipses.
- Le facteur gamma est l’indice adiabatique du gaz.
- R est la constante des gaz parfaits
- t est la température en °C
- M est la masse molaire du gaz (en kg/mol)
- v est la vitesse du son dans le gaz
La source précitée indique 1.4 pour l’indice adiabatique de l’air. J’ai souhaité appliquer ce modèle à d’autres gaz ; j’ai trouvé leurs indices sur la page Wikipedia suivante.
Ces graphiques peuvent donner lieu à des recherches ou vérifications de valeurs, en exercices ou en Travaux Pratiques.
Vous pourrez très facilement adapter ces graphiques à votre convenance, en modifiant le code Python ci-dessous :
import matplotlib.pyplot as plt
import numpy as np
t=np.arange(0, 30, 0.1)#gamme de température en °C
R=8.314#cst des gaz parfaits
fig=plt.figure(figsize=(7, 9), tight_layout=True)
plt.suptitle("Vitesse du son dans quelques gaz, selon la température", fontsize=15)
gs=fig.add_gridspec(2, 2)#création d'une grille 2x2 pour les graphes
#GRAPHE 1 : air
M=28.8e-3#masse molaire en kg/mol
gamma=1.40#paramètre (valeur pour l'air)
v=np.sqrt(gamma*R*(t+273)/M)
ax1=fig.add_subplot(gs[0:2, 0])#graphe sur 2 lignes (0 et 1) et 1 colonne (0)
ax1.set_title("air")
ax1.set_xlabel("température (°C)")
ax1.set_ylabel(r"vitesse du son ($m\cdot s^{-1}$)")
ax1.set_xlim(min(t), max(t))
ax1.set_ylim(310, 370)
ax1.set_xticks(np.arange(min(t), max(t)+2, 2), minor=True)
ax1.set_yticks(np.arange(310, 370, 2), minor=True)
ax1.grid(which='both')
ax1.plot(t, v, label="air")
#dioxygène :
M=32e-3#masse molaire en kg/mol
gamma=1.40#paramètre (valeur pour O2)
v=np.sqrt(gamma*R*(t+273)/M)
ax1.plot(t, v, label="dioxygène")
#diazote :
M=28e-3#masse molaire en kg/mol
gamma=1.47#paramètre (valeur pour N2)
v=np.sqrt(gamma*R*(t+273)/M)
ax1.plot(t, v, label="diazote")
ax1.legend()
#GRAPHE 2 : hélium
M=4e-3#masse molaire en kg/mol
gamma=1.66#paramètre (valeur pour l'hélium)
v=np.sqrt(gamma*R*(t+273)/M)
ax2=fig.add_subplot(gs[0, 1])#graphe sur ligne 0 et colonne 1
ax2.set_title("hélium")
ax2.set_xlabel("température (°C)")
ax2.set_ylabel(r"vitesse du son ($m\cdot s^{-1}$)")
ax2.set_xlim(min(t), max(t))
ax2.set_ylim(min(v), int(max(v)))
ax2.set_xticks(np.arange(min(t), max(t)+2, 2), minor=True)
ax2.set_yticks(np.arange(970, 1030+5, 10))
ax2.grid(which='both')
ax2.plot(t, v)
#GRAPHE 3 : dioxyde de carbone
M=44e-3#masse molaire en kg/mol
gamma=1.30#paramètre (valeur pour le CO2)
v=np.sqrt(gamma*R*(t+273)/M)
ax3=fig.add_subplot(gs[1, 1])#graphe sur ligne 1 et colonne 1
ax3.set_title("dioxyde de carbone")
ax3.set_xlabel("température (°C)")
ax3.set_ylabel(r"vitesse du son ($m\cdot s^{-1}$)")
ax3.set_xlim(min(t), max(t))
ax3.set_ylim(min(v), max(v))
ax3.set_xticks(np.arange(min(t), max(t)+2, 2), minor=True)
ax3.set_yticks(np.arange(258, 275, 2))
ax3.grid(which='both')
ax3.plot(t, v)
fig.savefig("vitesseSonTemp.png", dpi=400)
plt.show()
Soyez le premier à commenter