La page ci-présente existe en version notebook téléchargeable grâce au bouton Bouton (choisir le format .ipynb). On rappelle qu’l faut ensuite l’enregistrer dans un répertoire adéquat sur votre ordinateur (capa_num par exemple dans votre répertoire personnel) puis lancer Jupyter Notebook depuis Anaconda pour accéder au notebook, le modifier et exécutez les cellules de code adéquates.

7. Etude de l’atmosphère terrestre#

But : étudier les variations de température et de pression dans l’atmosphère.

7.1. Position du problème#

7.1.1. Modélisation de l’atmosphère#

Dans le cadre du modèle ISA (International Standard Atmosphere), l’atmosphère est divisée en différentes couches, au sein desquelles la température est supposée suivre une loi affine. La valeur du gradient vertical de température dans chacune de ces couches est normalisée.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd  # Pour l'affichage des données
"""Données normalisées pour chaque couche de l'atmosphère.
Vous pourrez utiliser ces vecteurs par la suite.
"""

couche = ["Troposphère", "Tropopause", "Stratosphère", "Stratosphère", "Stratopause", "Mesosphère", "Mesosphère", "Mesopause"]
altitude = [0, 11, 20, 32, 47, 51, 71, 85]
gradient = [- 6.5, 0, + 1.0, + 2.8, 0, - 2.8, - 2.0, "NA"]  # Attention il faudrait traiter le dernier élément qui n'est pas un nombre.

"""Affichage des données
La syntaxe utilisée n'est pas à connaître.
"""
datas = pd.DataFrame({
    "Couche atmosphérique" : couche,
    "Altitude de la base (km)" : altitude,
    "Gradient thermique vertical (K/km)" : ["{:.1f}".format(i)  if type(i)==float else i for i  in gradient]
})

datas.style
  Couche atmosphérique Altitude de la base (km) Gradient thermique vertical (K/km)
0 Troposphère 0 -6.5
1 Tropopause 11 0
2 Stratosphère 20 1.0
3 Stratosphère 32 2.8
4 Stratopause 47 0
5 Mesosphère 51 -2.8
6 Mesosphère 71 -2.0
7 Mesopause 85 NA

On propose ici de déterminer numériquement la loi de variation de la pression atmosphérique avec l’altitude z dans le cadre du modèle ISA, en supposant que l’atmosphère est un gaz parfait au repos dans le référentiel terrestre galiléen et en négligeant les variations de la pesanteur avec l’altitude. On fixe les valeurs de la température et de la pression au niveau du sol (en z = 0) respectivement à :

{Tsol=288KPsol=1.013×105Pa

On utilisera les données obtenues pour étudier les mouvements d’un ballon sonde.

7.1.1.1. Données numériques#

On prend :

(7.1)#Accélération de la pesanteur:g=9.81m.s2Masse molaire de l'air:Mair=29g.mol1Constante des gaz parfaits:R=8.314J.K1.mol1

7.1.2. Mise en équation#

On dispose de deux fonctions à intégrer : T(z) et P(z) de deux équations : le modèle affine par morceaux de la température et l’équation de la statique des fluides appliquées à un gaz parfait. Il vient le système (on note le gradient kISA de température) :

{dTdz(z)=kISA(z)dPdz(z)=MairgRT(z)×P(z)

avec

{T(z=0)=TsolP(z=0)=Psol

7.1.3. Schéma d’Euler explicite#

On utilise un schéma d’Euler explicite pour le vecteur :

Y(z)={T(z)P(z)

Pour un pas d’intégration h et une suite de valeurs Yk aux altitudes zk, on utilisera la relation de récurrence :

Ykk+1=Yk+h×F(zk,Yk)

7.2. Détermination du profil de pression et température#

Attention aux unités m/km.

Exercice 1 :

  1. Ecrire une fonction kISA qui prend comme argument une altitude z et qui renvoie le gradient de température kISA(z) associé. Pensez à utiliser les listes définies au début. On supposera que l’altitude reste toujours inférieure à 85km, on ne s’occupera donc pas du cas de la Mésopause.

  2. Ecrire une fonction F_atm(z, Y) qui prend comme argument l’altitude z et le vecteur Y=[T(z),P(z)] et qui renvoie la fonction F définie précédemment pour ces valeurs. On rappelle que F doit être un vecteur.

  3. Utiliser odeint pour déterminer le profil de température et de pression dans l’atmosphère

  4. Utiliser la fonction précédente pour obtenir le profil de température et de pression dans l’atmosphère pour le modèle ISA.

  5. Tracer deux deux graphiques les profils T(z) et P(z).

"""Les bibliothèques scientifiques ont déjà été importées"""
from scipy.integrate import odeint

7.3. Dimensionnement d’un ballon-sonde atmosphérique#

Les ballons-sonde stratosphériques constituent une solution simple et relativement économique pour envoyer une charge dans l’atmosphère. Équipés de capteurs divers, ils peuvent par exemple permettre de relever les valeurs de la pression, de la température, de l’humidité ou encore devitesse du vent dans les différentes couches de l’atmosphère traversées

7.3.1. Position du problème#

On considère ici un ballon-sonde stratosphérique “ouvert”, constitué d’une enveloppe de volume V ouverte sur l’extérieur par des manches d’évacuation situées à la base du ballon. Au moment du lancement, le ballon est gonflé à l’hélium (MHe=4,0g.mol1) ; l’enveloppe garde un volume constant tout au long de l’ascension. Le ballon étant ouvert à sa base, la pression à l’intérieur du ballon est identique à tout moment à la pression atmosphérique. La masse de l’ensemble { enveloppe (hors hélium) + nacelle + instruments embarqués } est m=10kg.

Exercice 2 : On souhaite que le ballon atteigne une altitude zmax choisie.

  1. Estimer le volume V de l’enveloppe qui permet d’atteindre cette altitude puis le diamètre du ballon associé. Vous devrez :

  • Préciser la modélisation et le paramétrage du problème. On discutera notamment des hypothèses choisies.

  • Tracer V et d en fonction dezmax.

  • Estimer V et d pour zmax=36km en procédant par dichotomie pour trouver l’indice donnant l’altitude la plus proche de zmax. Commenter la possibilité pour des amateurs de réaliser un tel ballon.

7.4. Complément#

Exercice 3 :
Si le temps le permet, reprendre l’intégration du système mais en tenant compte des variation du champ de pesanteur avec l’altitude en assimilant ce dernier au champ de gravitation terrestre.
Vous représenterez les champs de pression pour les deux modèles (champ de pesanteur uniforme et non uniforme) ainsi que le tracé de l’écart relatif entre les deux modèles en fonction de l’altitude.