Cette activité présente un exemple d'exploitation des données d'un pointage vidéo en Python à partir du décollage d'une fusée Ariane 5. Vous pouvez exécuter et modifier librement chaque fenêtre de code directement dans la page : seule la boucle de calcul de la vitesse présentée plus loin est à comprendre.
Le pointage vidéo a été réalisé de façon similaire à un TP de pointage classique. Les données fournies par le logiciel (repérages temporels $t$ et altitudes $y$ de la fusée) ont été enregistrées dans un fichier de données nommé arianelaunch.csv.
Fichier CSV et bibliothèque pandas
Un fichier CSV (Comma-Separated Values) est un fichier texte contenant un tableau de valeurs séparées par un caractère délimiteur (souvent un point-virgule ; en français). En Python, la bibliothèque pandas permet d'importer et de manipuler très facilement ces tableaux de mesures.
Cliquez sur ▶ Exécuter dans la fenêtre ci-dessous pour importer le fichier arianelaunch.csv, afficher le tableau de mesures, puis extraire les colonnes sous forme de deux listes Python temps et altitude :
Pour déterminer la valeur de la vitesse verticale $v(t_i)$ de la fusée à chaque instant $t_i$, on calcule le quotient de la distance parcourue entre les instants $t_i$ et $t_{i+1}$ par la durée écoulée :
Vitesse verticale à l'instant $t_i$
$$v(t_i) = \dfrac{y(t_{i+1}) - y(t_i)}{t_{i+1} - t_i}$$
Construction de la liste des vitesses
Pour construire automatiquement la liste vitesse à partir des listes temps et altitude :
vitesse = [] crée au départ une liste vide ;len(temps) renvoie le nombre total d'éléments de la liste temps (ici $28$ mesures) ;for i in range(len(temps) - 1): fait varier l'indice i de 0 jusqu'à 26 (soit $27$ calculs), car le calcul en i utilise le point suivant d'indice i + 1 ;vitesse.append(...) ajoute à la fin de la liste vitesse la nouvelle valeur calculée à chaque tour de boucle.Exécutez le programme ci-dessous (moteur instantané) pour observer le calcul de la liste vitesse :
Indice i | temps (s) | altitude (m) | vitesse (m/s) |
|---|---|---|---|
| 0 | 0,0 | 0,00 | 0,30 |
| 1 | 0,2 | 0,06 | −0,50 |
| 2 | 0,4 | −0,04 | 0,50 |
| 3 | 0,6 | 0,06 | −0,50 |
| 4 | 0,8 | −0,04 | 0,80 |
| 5 | 1,0 | 0,12 | 4,45 |
| 6 | 1,2 | 1,01 | 4,75 |
| 7 | 1,4 | 1,96 | 6,95 |
| 8 | 1,6 | 3,35 | 6,35 |
| 9 | 1,8 | 4,62 | 8,85 |
| 10 | 2,0 | 6,39 | 10,40 |
| 11 | 2,2 | 8,47 | 11,10 |
| 12 | 2,4 | 10,69 | 11,40 |
| 13 | 2,6 | 12,97 | 15,80 |
| 14 | 2,8 | 16,13 | 16,45 |
| 15 | 3,0 | 19,42 | 18,35 |
| 16 | 3,2 | 23,09 | 18,35 |
| 17 | 3,4 | 26,76 | 20,85 |
| 18 | 3,6 | 30,93 | 21,55 |
| 19 | 3,8 | 35,24 | 23,40 |
| 20 | 4,0 | 39,92 | 24,65 |
| 21 | 4,2 | 44,85 | 25,00 |
| 22 | 4,4 | 49,85 | 27,85 |
| 23 | 4,6 | 55,42 | 29,40 |
| 24 | 4,8 | 61,30 | 31,00 |
| 25 | 5,0 | 67,50 | 34,15 |
| 26 | 5,2 | 74,33 | 35,75 |
| 27 | 5,4 | 81,48 | NaN (non défini) |
Remarque :
Lorsqu'on intègre la liste vitesse (qui compte $27$ valeurs) dans le tableau de $28$ lignes avec pandas, la dernière ligne ($t = \pu{5,4 s}$) affiche NaN (Not a Number). En effet, aucune vitesse ne peut être calculée pour la toute dernière position pointée, puisque la formule nécessite de connaître la position suivante $y(t_{i+1})$, qui n'existe pas !
Exécutez les deux fenêtres ci-dessous pour tracer les graphiques interactifs de l'altitude puis de la vitesse en fonction du temps. Vous pouvez passer la souris sur chaque point du graphique pour lire directement ses coordonnées.
Questions
Vérifiez « à la main » le calcul réalisé par Python pour déterminer la vitesse atteinte à $t = \pu{3,0 s}$ (les graphiques étant interactifs, vous pouvez lire les altitudes et vérifier la valeur de la vitesse en survolant les points correspondants).
Convertir cette vitesse en km/h.
En supposant que le mouvement est purement vertical, comment peut-on qualifier le mouvement de la fusée après $t = \pu{1,0 s}$ ?
En combien de temps la fusée atteindra-t-elle la vitesse du son ($v_\text{son} = \pu{340 m/s}$) si sa vitesse continue d'augmenter au même rythme ?
Calcul de la vitesse à $t_{15} = \pu{3,0 s}$ :
Sur le tableau ou le premier graphique, on relève les altitudes aux instants $t_{15} = \pu{3,0 s}$ et $t_{16} = \pu{3,2 s}$ :
$$y(\pu{3,0 s}) = \pu{19,42 m} \quad\text{et}\quad y(\pu{3,2 s}) = \pu{23,09 m}$$
En appliquant la relation du cours :
$$v(\pu{3,0 s}) = \dfrac{y(\pu{3,2 s}) - y(\pu{3,0 s})}{3{,}2 - 3{,}0} = \dfrac{23{,}09 - 19{,}42}{0{,}2} = \dfrac{3{,}67}{0{,}2} = \pu{18,35 m/s}$$
On retrouve exactement la valeur $\pu{18,35 m/s}$ indiquée sur le second graphique.
Conversion en $\pu{km/h}$ :
Pour convertir des m/s en km/h, on multiplie par $3{,}6$ :
$$v(\pu{3,0 s}) = 18{,}35 \times 3{,}6 \approx \pu{66,1 km/h}$$
Description du mouvement :
Entre $t = \pu{0,0 s}$ et $t = \pu{1,0 s}$, la fusée est encore immobile sur son pas de tir (les infimes variations de $\pm\pu{0,06 m}$ sont dues à l'imprécision du pointage manuel à la souris).
Après le décollage ($t \geqslant \pu{1,0 s}$), la trajectoire est une droite verticale et la valeur de la vitesse augmente au cours du temps : le mouvement de la fusée est donc rectiligne accéléré.
Durée pour atteindre la vitesse du son ($v_\text{son} = \pu{340 m*s-1}$) :
Sur le second graphique, à partir du décollage effectif à $t_0 = \pu{1,0 s}$, les points $(t, v)$ sont sensiblement alignés sur une droite : la vitesse augmente de façon quasi proportionnelle à la durée écoulée depuis le décollage.
En réalité, comme la fusée consomme son carburant, sa masse diminue fortement au cours de l'ascension : son accélération augmente donc encore plus vite, et Ariane 5 franchit le mur du son (Mach 1) au bout d'environ $45\text{ à }50\text{ s}$ de vol malgré l'augmentation des frottements de l'air.