-- AER004: Mécanique des fluides appliquée --

TN n°5

Relations Isentropiques

simon.marie@lecnam.net

Pour ceux qui ne seraient pas familier avec le language python, vous pouvez consulter le Notebook Introduction au Python.

In [2]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('fivethirtyeight')
%matplotlib inline

Dans ce Notebook, on se propose de définir des fonctions servant à calculer les rapports de pression, température, masse volumique ou section dans un écoulement compressible. On pourra utiliser ses fonction pour tracer l'évolution des ces rapports en fonction du nombre de Mach.

On crée donc un fonction qui a comme valeur d'entrée le nombre de Mache $M$ et comme paramètre $\gamma$ et qui renvoi les rapports suivants, issues des relations isentropiques:

$$ \dfrac{T_i}{T}=\left(1+\dfrac{\gamma-1}{2}M^2\right) $$

$$ \dfrac{p_i}{p}=\left(1+\dfrac{\gamma-1}{2}M^2\right)^{\gamma/(\gamma-1)} $$

$$ \dfrac{\rho_i}{\rho}=\left(1+\dfrac{\gamma-1}{2}M^2\right)^{1/(\gamma-1)} $$

In [12]:
def isentropique(M,gamma=1.4):
    T=(1.+0.5*(gamma-1.)*M**2)**-1
    rho=T**(1./(gamma-1))
    p=rho**gamma
    S=(1./M)*((2./(gamma+1))+((gamma-1)/(gamma+1))*M**2)**((gamma+1)/(2*(gamma-1)))
    return T,rho,p,S

On peut alors calculer le rapport de température entre l'état générateur (vitesse nulle) et un écoulement de nombre de Mach donné:

In [18]:
print isentropique(0.1)[0]
print isentropique(0.3)[0]
print isentropique(0.6)[0]
print isentropique(1.)[0]
0.998003992016
0.98231827112
0.932835820896
0.833333333333

Plus généralement, on peut créer un vecteur de valeur pour le nombre de Mach et représenter l'évolution des relations isentropiques en fonction du nombre de Mach:

In [23]:
Mach=np.arange(0.1,2.,0.05)
T,rho,p,S=isentropique(Mach)

fig=plt.figure(figsize=(10,4))
plt.plot(Mach,T,label='$T$/$T_i$')
plt.plot(Mach,rho,label='$\\rho$/$\\rho_i$')
plt.plot(Mach,p,label='$p$/$p_i$')
plt.xlabel('Nombre de $Mach$')
plt.legend()
Out[23]:
<matplotlib.legend.Legend at 0x7f4b18624cd0>

A faible nombre de Mach (hypothèse incompressible) on retrouve bien que la variation de température entre le fluide au repos et le fluide en mouvement est très faible (le rapport est très proche de 1), dans ce cas on utilisera plutôt Bernoulli. Pour les écoulements plus rapide ($M>0.3$) la variation de température devient plus grande et les effets thermodynamique se font sentir: en accélérant un fluide, on diminue sa pression ET sa température (on parle de détente isentropique).

La loi des sections donne le rapport entre la section du col (zone sonique ou $M=1$) et la section de nombre de Mach donné $M$:

In [27]:
fig=plt.figure(figsize=(10,4))
plt.plot(Mach,S);plt.ylim(0.9,6)
plt.xlabel('Nombre de $Mach$')
plt.ylabel('$S$/$S_c$')
Out[27]:
<matplotlib.text.Text at 0x7f4b0be05290>
In [1]:
from IPython.core.display import HTML
style=open('notebooks.css', "r").read()
HTML(style)
Out[1]: