← Retour au blog

TIPE · Sciences physiques

La plongée sous-marine

Dossier issu de mon TIPE présenté au concours d'entrée aux grandes écoles. Trois axes : la loi d'Henry, la cinétique de dissolution des gaz dans l'eau, et une tentative de calcul des tables de décompression.

Sous l'eau

Partie I

La loi d'Henry

1. Introduction

La loi d'Henry énonce :

« À température constante et à saturation, la quantité de gaz dissous dans un liquide est proportionnelle à la pression partielle qu'exerce ce gaz sur le liquide. »

Il y a donc rupture de l'équilibre lors de la descente en plongée. La pression qu'exerce le gaz sur le sang augmente, le gaz se dissout dans le sang.

Schéma de dissolution du gaz dans le sang à la descente

De même, lors de la remontée, le phénomène inverse se produit. Le sang est en sursaturation car la pression diminue : un dégazage s'opère. Si la rupture d'équilibre est trop grande, des bulles se forment — c'est l'accident de décompression.

Schéma du dégazage et formation de bulles à la remontée

2. Mise en évidence expérimentale

Pour mettre en évidence la loi d'Henry, j'ai rempli une bouteille en plastique à moitié avec de l'eau puis j'ai augmenté la pression grâce à une pompe à vélo.

Pompe à vélo équipée d'un manomètre

La pompe avait un manomètre pour vérifier la pression et j'ai pompé jusqu'à obtenir 5 bars, soit l'équivalent de 40 m en plongée. J'ai laissé reposer pendant 1 h. Au bout d'une heure, j'ai brusquement remis l'eau à pression ambiante (j'ai ouvert la valve) pour simuler une remontée rapide. 15 minutes plus tard, des bulles apparaissent.

Bulles apparaissant dans la bouteille après dépressurisation

3. Vérification de la loi

J'ai voulu tester la loi d'Henry expérimentalement.

Pour cela, j'ai rempli 4 bouteilles en plastique à moitié avec de l'eau et j'ai mis une pression différente dans chaque : 1, 3, 5 et 8 bars, soit l'équivalent de 0, 20, 40 et 70 mètres.

J'ai laissé sous pression pendant 2 jours pour être certain d'avoir atteint la saturation — durée correcte au regard de l'ordre de grandeur d'une plongée (≈ 45 min). J'ai ensuite mesuré, par déplacement d'eau, le volume de gaz qui se dégage de l'eau présente dans la bouteille lorsque je l'ai remise à pression ambiante (1 bar).

Mesure du volume de gaz par déplacement d'eau

On obtient une droite :

Courbe expérimentale V(P)

Le volume d'eau de la bouteille était de 125 mL et l'expérience s'est faite à 20 °C. Obtenir une droite est cohérent avec la loi d'Henry — la quantité de gaz dissous est proportionnelle à la pression partielle qu'exerce le gaz sur le liquide. Une régression linéaire avec Regressi donne :

V(P) = 2,05 × P − 2,45

Avec :

Théoriquement, la loi d'Henry s'exprime par la relation :

P_i = b_i × K_i, avec b_i = n_i / m_tot

On applique la loi des gaz parfaits pour connaître le volume à pression ambiante :

Équation : volume dissous d'un gaz à pression ambiante

Dans notre cas, le dioxygène (O₂) et le diazote (N₂) se dissolvent dans l'eau, donc :

Vt = V(O₂) + V(N₂)

D'après la loi de Dalton :

Pi = li · Pt

D'où au final :

Équation finale du volume total dégagé

Les constantes d'Henry du dioxygène et du diazote dans l'eau valent :

K(O₂) = 7,92 × 104 kPa·kg·mol⁻¹
K(N₂) = 1,56 × 105 kPa·kg·mol⁻¹

Source : P. Atkins, Physical Chemistry, 8e édition, 2006

Avec T = 293 K (20 °C) et Veau = 125 mL, après application numérique :

V(P) = 2,35 × P − 2,35

Avec :

Soit un écart de 12 % sur la pente entre la théorie et l'expérience. Tout à fait honorable au vu de la précision des mesures.

Partie II

Cinétique de la dissolution

Cette fois, on s'intéresse à la cinétique de la dissolution des gaz dans l'eau — le temps étant l'élément essentiel pour le calcul des tables de décompression.

1. Les méthodes de mesures employées

Pour faire un suivi cinétique du dégazage, j'ai essayé plusieurs méthodes différentes avant d'en trouver une qui fonctionnait. Dans tous les cas, j'ai mis la même pression dans toutes les bouteilles et, à intervalle régulier, je prenais une bouteille et je mesurais le volume de gaz qui se dégageait lorsque je remettais l'eau à pression ambiante. Mes mesures ont été faites pour une pression de 5 bars. Pour accélérer le dégazage, j'ai utilisé un agitateur magnétique.

Dispositif avec agitateur magnétique

J'ai d'abord voulu utiliser la même méthode que pour vérifier la loi d'Henry, mais le volume dégagé était trop faible pour se déplacer convenablement dans le tuyau jusqu'à l'éprouvette. Les mesures étaient faussées, je n'ai rien pu en déduire.

Tentative de mesure du volume par tuyau

Ensuite j'ai essayé de mesurer une variation de pression pour en déduire le volume dégagé. De même, la variation était trop petite pour être mesurée. J'ai également essayé par variation de masse : résultats incohérents.

Je suis finalement revenu à une méthode de déplacement d'eau pour mesurer le dégazage. Cette fois je remplissais un tube d'eau et je mesurais de combien de centimètres l'eau s'était déplacée. Connaissant le diamètre du tuyau, j'accédais au volume du gaz :

Méthode finale par déplacement d'eau dans un tube gradué

Cette méthode a très bien fonctionné, c'est celle que j'ai utilisée pour mes expériences.

2. Mes mesures

Grâce à cette méthode, j'ai obtenu les 4 premiers points de la courbe puis j'ai ajouté celui de la vérification de la loi d'Henry. On obtient alors ceci :

Courbe cinétique du dégazage

Par modélisation, on trouve que cette courbe correspond à cette équation :

V(t) = V_max · (1 − exp(−t/τ))

Avec :

On en déduit donc, que lors du dégazage, on a :

Courbe du dégazage
Équation du dégazage

Grâce à cette modélisation, on va pouvoir tenter de calculer les tables de décompression.

Partie III

Calcul des tables de décompression

Grâce à notre expérience, on va tenter de calculer les tables de décompression. Pour cela, on est obligé de faire des hypothèses, et pas des moindres :

  1. L'air se dissout uniquement dans le sang (on néglige les tissus). On a donc V = 5,0 L.
  2. La surface de contact entre le sang et l'air est de 75 cm². Cela correspond à la « surface » des deux poumons coupés horizontalement.
    Schéma de la coupe horizontale des poumons
    En réalité, il faudrait prendre en compte la surface de contact des poumons avec l'air (130 m²) mais cela donnait des résultats complètement aberrants.
  3. Les temps caractéristiques de dissolution et de dégazage sont égaux : un volume V d'air met le même temps pour se dissoudre dans le sang que pour en être dégazé.
  4. Les temps caractéristiques de l'eau et du sang sont égaux. Un volume d'air met le même temps pour se dissoudre dans l'eau que dans le sang. Ceci est une très grosse approximation, le sang n'ayant rien à voir avec l'eau, même s'il en est principalement constitué.
  5. Le coefficient de sursaturation critique doit être inférieur ou égal à 2. Ce coefficient est le rapport du volume d'air dissous dans le sang sur le volume d'air qui serait dissous à saturation dans le sang à la pression ambiante. Lorsque ce rapport vaut 2, il faut faire un palier. Ce coefficient a été trouvé par Haldane en faisant des expériences sur des chèvres : il avait remarqué que les chèvres avaient des accidents de décompression dans des conditions similaires à l'homme.
    Coefficient de sursaturation critique ≤ 2
  6. Les paliers possibles sont 3, 6, 9 et 12 m. On doit toujours effectuer les paliers à ces profondeurs. Si, d'après le calcul, on doit s'arrêter à 4 m, on choisit le palier inférieur (6 m dans cet exemple).

À partir de ces hypothèses, j'ai fait les calculs sur un fichier Excel. Vous pouvez le télécharger ici :

Tables de décompression Excel · feuille 2 paramétrable

Sur la feuille 2 du fichier, il suffit de modifier la profondeur pour que la table de décompression se calcule toute seule. Pour être plus proche de la réalité, j'ai dû multiplier le temps caractéristique trouvé expérimentalement par 3.

⚠ Avertissement. En aucun cas ces tables ne doivent être utilisées pour des plongées sous-marines réelles. Vous devez utiliser les tables MN90.

Par la suite, j'ai écrit un programme sous MAPLE qui génère un graphique plus parlant pour expliquer ce qu'il se passe dans le corps.

Afficher le code Maple
> with(plots):
> palier:=proc(p,t)

K:=evalf(3/6170);
S:=2;

Vmax:=x->99.5*((x/10)+1) - 99.5;
f[0]:=x->99.5 + Vmax(p)*(1-exp(-x*60*K));
courbe[0]:=plot(f[0](x),x=0..t,y=99.5..(99.5+Vmax(p)+50),numpoints=5000,color="SteelBlue",thickness=2,legend=["Plongee de "||t||"min"]);
prof[0]:=plot(Vmax(p)+99.5,x=0..t,y=99.5..(99.5+Vmax(p)+50),color=black);
texte[0]:=textplot([t/4,Vmax(p)+99.5,""||p||"m",'align'={'above','right'}]);
duree[0]:=t;

if evalf(((f[0](t)/2/99.5)-1)*10) <= 0 then palier1:=0; n:=0;
elif evalf(((f[0](t)/2/99.5)-1)*10) >= 0 and evalf(((f[0](t)/2/99.5)-1)*10) <= 3 then palier1:=3; n:=1;
elif evalf(((f[0](t)/2/99.5)-1)*10) > 3 and evalf(((f[0](t)/2/99.5)-1)*10) <= 6 then palier1:=6; n:=2;
elif evalf(((f[0](t)/2/99.5)-1)*10) > 6 and evalf(((f[0](t)/2/99.5)-1)*10) <= 9 then palier1:=9; n:=3;
else palier1:=12; n:=4;
fi;

if palier1>=3 then
   duree[1]:=t + ceil(evalf(((-1/K)*ln(1-(f[0](t)-S*99.5*((1+0.1*palier1)-0.3))/(f[0](t)-99.5*(1+0.1*palier1))))/60));
   f[1]:=x->f[0](t)-((f[0](t)-99.5*((palier1/10)+1))*(1-exp(-(x-t)*K*60)));
   courbe[1]:=plot(f[1](x),x=t..duree[1],y=99.5..(f[0](t)+50),color=red,numpoints=5000,thickness=2,legend=["Palier de "||(duree[1]-t)||"min"]);
   trait[1]:=implicitplot(x=t,x=t-1..t+1,y=Vmax(p)+99.5..Vmax(palier1)+99.5,color=black);
   prof[1]:=plot(Vmax(palier1)+99.5,x=t..duree[1],y=99.5..(99.5+Vmax(p)+50),color=black);
   texte[1]:=textplot([t,Vmax(palier1)+99.5,""||palier1||"m",'align'={'above','right'}]);
fi;

if palier1>=6 then
   duree[2]:=duree[1] + ceil(evalf(((-1/K)*ln(1-(f[1](duree[1])-S*99.5*((1+0.1*(palier1-3))-0.3))/(f[1](duree[1])-99.5*(1+0.1*(palier1-3)))))/60));
   f[2]:=x->f[1](duree[1])-((f[1](duree[1])-99.5*(((palier1-3)/10)+1))*(1-exp(-(x-duree[1])*K*60)));
   courbe[2]:=plot(f[2](x),x=duree[1]..duree[2],y=99.5..(99.5+Vmax(p)+50),color=green,numpoints=5000,thickness=2,legend=["Palier de "||(duree[2]-duree[1])||"min"]);
   trait[2]:=implicitplot(x=duree[1],x=duree[1]-1..duree[1]+1,y=Vmax(palier1)+99.5..Vmax(palier1-3)+99.5,color=black);
   prof[2]:=plot(Vmax(palier1-3)+99.5,x=duree[1]..duree[2],y=99.5..(99.5+Vmax(p)+50),color=black);
   texte[2]:=textplot([duree[1],Vmax(palier1-3)+99.5,""||(palier1-3)||"m",'align'={'above','right'}]);
fi;

if palier1>=9 then
   duree[3]:=duree[2] + ceil(evalf(((-1/K)*ln(1-(f[2](duree[2])-S*99.5*((1+0.1*(palier1-2*3))-0.3))/(f[2](duree[2])-99.5*(1+0.1*(palier1-(2)*3)))))/60));
   f[3]:=x->f[2](duree[2])-((f[2](duree[2])-99.5*(((palier1-2*3)/10)+1))*(1-exp(-(x-duree[2])*K*60)));
   courbe[3]:=plot(f[3](x),x=duree[2]..duree[3],y=99.5..(99.5+Vmax(p)+50),color="Chocolate",thickness=2,numpoints=5000,legend=["Palier de "||(duree[3]-duree[2])||"min"]);
   trait[3]:=implicitplot(x=duree[2],x=duree[2]-1..duree[2]+1,y=Vmax(palier1-3)+99.5..Vmax(palier1-6)+99.5,color=black);
   prof[3]:=plot(Vmax(palier1-6)+99.5,x=duree[2]..duree[3],y=99.5..(99.5+Vmax(p)+50),color=black);
   texte[3]:=textplot([duree[2],Vmax(palier1-6)+99.5,""||(palier1-6)||"m",'align'={'above','right'}]);
fi;

if palier1>=12 then
   duree[4]:=duree[3] + ceil(evalf(((-1/K)*ln(1-(f[3](duree[3])-S*99.5*((1+0.1*(palier1-3*3))-0.3))/(f[3](duree[3])-99.5*(1+0.1*(palier1-(3)*3)))))/60));
   f[4]:=x->f[3](duree[3])-((f[3](duree[3])-99.5*(((palier1-3*3)/10)+1))*(1-exp(-(x-duree[3])*K*60)));
   courbe[4]:=plot(f[4](x),x=duree[3]..duree[4],y=99.5..(99.5+Vmax(p)+50),color="DarkOrchid",thickness=2,legend=["Palier de "||(duree[4]-duree[3])||"min"]);
   trait[4]:=implicitplot(x=duree[3],x=duree[3]-1..duree[3]+1,y=Vmax(palier1-6)+99.5..Vmax(palier1-9)+99.5,color=black);
   prof[4]:=plot(Vmax(palier1-9)+99.5,x=duree[3]..duree[4],y=99.5..(99.5+Vmax(p)+50),color=black);
   texte[4]:=textplot([duree[3],Vmax(palier1-9)+99.5,""||(palier1-9)||"m",'align'={'above','right'}]);
fi;

display({seq(courbe[j],j=0..n),seq(prof[j],j=0..n),seq(texte[j],j=0..n),seq(trait[j],j=1..n)},title="Profondeur maximum "||p||"m, duree totale "||(duree[n])||"min",labels=["Temps de plongee (en min)","Volume d'air dissous dans le sang (en ml)"],labeldirections=["horizontal","vertical"],linestyle=solid,titlefont=["ROMAN",15],labelfont=[HELVETICA,10],axesfont=["HELVETICA","ROMAN",8],legendstyle=[font=["HELVETICA",9]]);

end proc:
> palier(40,35);
Graphique généré sous Maple : profondeur 40 m pendant 35 min
Plongée à 40 m pendant 35 min — quantité d'air dissous dans le sang en fonction du temps.

Ici, j'ai pris l'exemple d'une plongée qui se déroule à 40 m pendant 35 min. Pendant les 35 min de plongée, on remarque que la quantité d'air dissous dans le sang augmente. Au bout de 35 min, on décide de remonter. D'après le coefficient de sursaturation critique, nous devons faire un premier palier à 9 m de 1 min pour pouvoir remonter à 6 m sans aucun souci. De même, on doit ensuite faire un palier de 20 min à 6 m puis un palier de 27 min à 3 m.

Comparaison avec les tables MN90

Pour une plongée de 35 min à 40 m, les tables MN90 imposent un palier de 8 min à 6 m et un palier de 35 min à 3 m. Soit un temps de remontée total de 47 min contre 48 min dans mon modèle. Un résultat proche, grâce au facteur de correction qu'il n'a pas lieu d'être normalement.

Nous voyons ainsi que l'élaboration d'un modèle pour prévoir les paliers n'est pas simple. J'ai fait de nombreuses approximations, or le modèle est bien plus complexe en réalité. Dans le modèle officiellement utilisé, le corps humain est divisé en 7 compartiments différents avec chacun des coefficients de sursaturation critique distincts. On préfère aujourd'hui utiliser des statistiques pour mettre au point les algorithmes des ordinateurs de plongée : une base de données des accidents de décompression avec leurs paramètres a été constituée. C'est dans ce sens que Comex a fait une proposition de modification des tables françaises suite à une étude statistique des accidents de décompression.

Partie IV

TIPE — transparents & fiche synoptique

Voici les transparents que j'ai utilisés lors de mon passage au TIPE. J'ai obtenu un total de 15,5/20 pour l'épreuve TIPE/ADS.

Si vous souhaitez un exemple de fiche synoptique, n'hésitez pas à télécharger la mienne ci-dessus.