Vitesse du son dans les gaz

Où l’on modélise l’évolution de la vitesse du son en fonction de la température.

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

Laisser un commentaire