-- AER003: Mécanique des fluides élémentaire --

TN n°2

Vidange d'un réservoir

simon.marie@lecnam.net

Dans ce notebook, on se propose d'analyser les données d'une séquence de vidage d'un reservoir d'eau et de les comparer à une relation théorique que nous établierons à partir des notions vues en cours.

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

In [ ]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import copy
matplotlib.style.use('fivethirtyeight')
plt.rc('xtick',labelsize=14)
plt.rc('ytick',labelsize=14)
%matplotlib inline

Evolution de la hauteur d'eau

Tout d'abord, nous devons construire une relation théorique permettant d'établir l'évolution de la hauteur d'eau $h(t)$ dans le réservoir à partir d'une hauteur initial $h_0$.

Pour cela, on considère un réservoir cylindrique de diamètre $D$ percé d'un orifice circulaire de diamètre $d$. La hauteur d'eau initial entre l'orifice et le haut du liquide est noté $h_0$.

Pour une hauteur de liquide donnée, nous avons démontré en cours (à partir du théorème de Bernoulli) que la vitesse du liquide au niveau de l'orifice était donnée par: $$ V_e=\sqrt{2gh} $$

Rappeller les conditions de validité de cette relation

Pendant un petit laps de temps $\Delta t$, le réservoir s'est vidé de $\Delta h$. Exprimer $\Delta h$ en fonction de $\Delta t$ et montrer que l'on obtient une relation du type:

$$ \Delta h=-k\sqrt{h}\Delta t $$

Mettre cette expression sous la forme d'une équation différentielle et proposer une méthode pour calculer le temps de vidage.

On montrera que:

$$ T=\dfrac{D^2}{d^2}\sqrt{\dfrac{2}{g}}\sqrt{h_0} $$

Application numérique:

On considère ici un réservoir cylindrique dont on connait le périmètre $P=28$cm, percé d'un orifice circulaire de diamètre $d=8$mm. La hauteur d'eau initiale est de $h_0=13$cm.

Cacluler le temps de vidage et tracer l'évolution de $h$ en fonction du temps

In [ ]:
g0=...
h0=...
P=...
D=...
d=...
r2=d**2/D**2
T=np.sqrt(2*h0/g0)/r2
print('Temps de vidage: ',T, ' secondes')

Pour tracer l'évolution de $h$ en fonction du temps, on échantillonne le temps de 0 à $T$ par tranche de $\Delta t=0.1$s:

In [ ]:
tth=np.arange(0,T,0.1)
Hth=...
In [ ]:
plt.plot(tth,Hth)
plt.xlabel('Temps (s)')
plt.ylabel('Heuteur d\'eau (m)')

Analyse expérimentale:

On réalise maintenant une petite expérience avec le réservoir utilisé précédemment. La vidange est présentée dans la vidéo suivante:

In [ ]:
from IPython.display import HTML
HTML("""<center>
<video width="700" controls>
<source src="https://hpp.education/Lessons/MecaFlu_L1/Files/Vidange.mp4" type="video/mp4">
</video>
</center>""")

Cette expérience nous permet d'enregistrer la hauteur du liquide à chaque instant. Cette position est enregistrée à l'aide d'un logiciel de tracking qui renvoi le fichier track_front1.dat. Ce fichier contient la position en pixel du front de liquide enregistré pour chaque images de la vidéo. Le fichier contient donc 3 colonnes:

Frame X-position Y-position

Dans une vidéos, les pixels sont numérotés de haut en bas. Ainsi le pixel situé en $X-position=0$ et$Y-position=0$ se situe tout en haut à gauche de la vidéo.

In [ ]:
# Chargement des données dans la variable data
data=np.loadtxt("track_front1.dat")

# La première colonne (les frames) est stocké dans la variable frame:
frame=data[:,0]

Regardons l'évolution des grandeurs enregistrées dans ce fichier:

In [ ]:
fig=plt.figure(figsize=(16,4))
fig.add_subplot(121)
plt.plot(frame,data[:,1])
plt.xlabel('Frames')
plt.ylabel('X-pos (px)')
fig.add_subplot(122)
plt.plot(frame,data[:,2])
plt.xlabel('Frames')
plt.ylabel('Y-pos (px)')

On considére que l'enregistrement des données a débuté lorsque $h=h0$ et se termine quand $h=0$.

Sachant que cette vidéo contient 25 images par secondes, calculer le temps réel de l'expérience ainsi que la hauteur d'eau en mètre

In [ ]:
time=...
Hexp=...

Comparer la courbe théorique et la courbe expérimental. (On pourra prendre 1 point sur 30 pour les données expérimentales)

In [ ]:
plt.plot(tth,Hth,'.',label='th')
plt.plot(time[::30],Hexp[::30],'ks',label='expe')
plt.legend()

Commentiares

Conclusion

Entrainez - vous à manipuler ce notebook sur le serveur Jupyter. N'hesitez pas à modifier les valeurs, ajouter de nouvelles cellules. On pourra par exemple:

  • Etudier l'influence de $D$ et $h_0$ sur le temps de vidange
  • Etudier la vidange sous pression (considérer que la pression au niveau de la surface libre est plus grande que la pression athmosphérique).
In [17]:
from IPython.core.display import HTML
style=open('notebooks.css', "r").read()
HTML(style)
Out[17]: