script_251cvmn_251

49,00 

UGS : script_251cvmn_251 Catégories : ,

Voici la fiche descriptive complète pour le script de simulation de lancement de fusée que vous avez fourni.

# 📄 Fiche Descriptive — Script Python : `script_251cvmn_251.py`

## 🔷 INFORMATIONS GÉNÉRALES

| Champ | Détail |
| — | — |
| **Nom du script** | `script_251cvmn_251.py` |
| **Version** | 1.0.0 |
| **Date de création** | 02/03/2026 |
| **Auteur / Demandeur** | Gemini (IA Générée) |
| **Objectif principal** | Simuler la trajectoire 3D d’une fusée à masse variable soumise à la gravité et à la traînée atmosphérique. |

## 🎯 DESCRIPTION FONCTIONNELLE

### 📌 Que fait ce script ?

Le script modélise le vol d’un lanceur spatial en résolvant des équations différentielles ordinaires (EDO). Il calcule en temps réel l’évolution de la masse (consommation de carburant), les forces gravitationnelles, la poussée du moteur et la résistance de l’air pour tracer l’altitude de la fusée sur une période donnée.

### 📌 Problème résolu

Il permet de prédire les performances d’un lanceur (apogée, temps de combustion) en fonction de paramètres physiques comme l’Impulsion Spécifique ($I_{sp}$), le ratio de masse et les propriétés aérodynamiques.

## ⚙️ SPÉCIFICATIONS TECHNIQUES

### 🐍 Environnement

| Élément | Valeur |
| — | — |
| **Version Python** | 3.x |
| **OS cible** | Tous (Windows / Linux / MacOS) |
| **Mode d’exécution** | CLI / Script de calcul scientifique |

### 📦 Dépendances / Librairies

* **numpy** : Calculs vectoriels et gestion des tableaux.
* **scipy (integrate)** : Résolution numérique de l’équation différentielle via `odeint`.
* **matplotlib** : Génération du graphique de la trajectoire.

## 📥 ENTRÉES (INPUTS)

### 📂 Paramètres de la classe `Rocket`

| # | Nom | Type | Obligatoire | Description |
| — | — | — | — | — |
| 1 | `m0` | float | ✅ Oui | Masse initiale totale (kg) |
| 2 | `mp` | float | ✅ Oui | Masse de propergol (kg) |
| 3 | `Isp` | float | ✅ Oui | Impulsion spécifique (s) |
| 4 | `CdA` | float | ✅ Oui | Traînée ($C_x times S$) en $m^2$ |
| 5 | `r_start` | list | ✅ Oui | Position initiale $[x, y, z]$ |

## 📤 SORTIES (OUTPUTS)

### 📂 Données et Visualisation

| # | Nom | Type | Description |
| — | — | — | — |
| 1 | `positions` | ndarray | Matrice des positions $(x, y, z)$ au cours du temps. |
| 2 | `vitesses` | ndarray | Matrice des vecteurs vitesses au cours du temps. |
| 3 | **Graphique** | Matplotlib | Courbe de l’altitude (km) en fonction du temps (s). |

## 🧱 STRUCTURE DU SCRIPT

`script_251cvmn_251.py`

* **📌 IMPORTS** : `numpy`, `scipy.integrate`, `matplotlib.pyplot`.
* **📌 CONSTANTES** : $G$ (Gravitation), $R_E$ (Rayon Terre), $M_E$ (Masse Terre).
* **📌 CLASSE `Rocket**` : Coeur du modèle physique.
* **📌 FONCTION `run_rocket_simulation**` : Pilote de l’intégration numérique.
* **📌 MAIN** : Paramétrage d’un lanceur de 50 tonnes et affichage des résultats.

### 🔧 Détail des fonctions principales

| Fonction | Paramètres | Retour | Rôle |
| — | — | — | — |
| `get_mass(t)` | $t$ (temps) | float | Calcule la masse actuelle (décroissante si $t < burn_time$). |
| `calculate_forces(y, t)` | $y$ (état), $t$ | ndarray | Définit les dérivées $frac{dr}{dt}$ et $frac{dv}{dt}$ pour le solveur. |
| `run_rocket_simulation()` | rocket, $T_{max}$ | tuple | Exécute `odeint` sur l’intervalle de temps défini. |

## 🔄 LOGIQUE / ALGORITHME

1. **Initialisation** : Calcul du débit massique ($dot{m}$) et de la poussée ($F_p$) à partir de l’$I_{sp}$.
2. **Boucle d’intégration** :
* Calcul de la **Gravité** : Loi de Newton en $frac{1}{r^2}$.
* Calcul de la **Poussée** : Constante jusqu’à épuisement du carburant.
* Calcul de la **Traînée** : Modèle d’atmosphère exponentiel ($rho = rho_0 e^{-h/H}$).
* Somme des forces et application de la deuxième loi de Newton ($a = frac{sum F}{m}$).

3. **Résolution** : `odeint` agrège les vecteurs d’état pour fournir la trajectoire complète.

## 🚨 GESTION DES ERREURS

* **Singularité de Gravité** : Le script ne gère pas explicitement le cas où $r = 0$ (collision avec le centre de la terre), mais l’initialisation à $R_E$ prévient cela.
* **Division par zéro** : Protection intégrée pour le calcul de la traînée si la vitesse est nulle.

## ✅ RÈGLES MÉTIER & PHYSIQUES

* **Masse variable** : La masse diminue linéairement jusqu’à ce que `m_propellant` atteigne 0.
* **Atmosphère** : La densité de l’air est simplifiée avec une échelle de hauteur de 7000 m.
* **Orientation** : La poussée est fixée verticalement (axe Z) pour cette version simplifiée.

## 📝 EXEMPLE D’UTILISATION

### ▶️ Lancement

« `bash
python script_251cvmn_251.py

« `

### 📋 Sortie console attendue

« `text
Temps de combustion : 122.32 s
[Affichage d’une fenêtre graphique montrant une courbe ascendante]

« `

**Souhaitez-vous que je modifie ce script pour inclure un basculement gravitationnel (Gravity Turn) afin de simuler une mise en orbite ?**

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_251cvmn_251”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *