🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_294cvmn_294.py
Version 1.0.0
Date de création 09/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler et visualiser la trajectoire verticale (altitude et vitesse) d’une fusée en tenant compte de la consommation de carburant, de la gravité et de la traînée atmosphérique.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script calcule la physique d’un lancement de fusée point par point (méthode d’Euler). Il modélise la poussée du moteur, la perte de masse due à la combustion, la force gravitationnelle et la résistance de l’air qui diminue avec l’altitude. À la fin, il génère un graphique comparatif.
📌 Problème résolu
Il permet de prédire l’apogée (point le plus haut) et le profil de vitesse d’un lanceur spatial simplifié sans avoir recours à des tests physiques coûteux.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Windows / Linux / MacOS
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
numpy : Calculs mathématiques et gestion des vecteurs d’état.
matplotlib : Génération des graphiques de performance.
📥 ENTRÉES (INPUTS)
📂 Paramètres internes (Classe RocketSimulation)
# Nom Type Obligatoire Description Exemple
1 mass_dry float ✅ Masse de la structure (kg) 2000.0
2 mass_fuel float ✅ Masse initiale du carburant (kg) 8000.0
3 thrust float ✅ Poussée du moteur (N) 150000.0
4 burn_rate float ✅ Consommation de carburant (kg/s) 50.0
📤 SORTIES (OUTPUTS)
📂 Données en sortie
Graphique (Matplotlib) : Une fenêtre interactive affichant deux courbes (Altitude en bleu, Vitesse en rouge) sur un axe temporel.
Vecteurs d’état : Tableaux Numpy contenant l’historique de l’altitude, de la vitesse et de la masse.
🧱 STRUCTURE DU SCRIPT
Plaintext
script_294cvmn_294.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CLASSE RocketSimulation
│ ├── __init__() → Initialise les constantes physiques
│ ├── get_air_density() → Calcule rho selon l’altitude
│ ├── run() → Boucle de simulation principale
│ └── plot_results() → Génère le graphique final
└── 📌 MAIN (Instanciation et exécution)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
get_air_density(altitude) altitude: float float Retourne la densité de l’air via un modèle exponentiel.
run(dt, max_time) dt: float, max_time: int None Exécute l’intégration d’Euler pour calculer la trajectoire.
plot_results(t, h, v) t, h, v: ndarray None Trace le graphique à double axe ordonné.
🔄 LOGIQUE / ALGORITHME
ÉTAPE 1 → Initialisation de la masse totale (msec+mcarburant).
ÉTAPE 2 → Boucle temporelle (incrément dt) :
Si Masse>Massesec : Poussée active et réduction de la masse. Sinon : Poussée = 0.
Calcul des forces : Gravité (Fg=mg) et Traînée (Fd=21ρv2CdA).
Calcul de l’accélération : a=mFpousseˊe−Ftraı^neˊe−Fgraviteˊ.
Mise à jour de la vitesse et de l’altitude (Intégration d’Euler).
ÉTAPE 3 → Condition d’arrêt : Si l’altitude devient négative (retour au sol).
ÉTAPE 4 → Génération visuelle des résultats.
🚨 GESTION DES ERREURS
Crash au sol : Géré par un break si curr_h < 0 après le décollage initial. Épuisement carburant : Géré par une condition if curr_m > self.mass_dry pour annuler la poussée.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : La densité de l’air suit une décroissance exponentielle basée sur une échelle de 8500m.
Règle 2 : La poussée est constante jusqu’à épuisement complet du carburant.
Règle 3 : La simulation s’arrête automatiquement après 300s ou au contact du sol.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal Paramètres par défaut Apogée atteinte, puis redescente ⬜ À tester
2 Poussée nulle thrust = 0 La fusée reste au sol ⬜ À tester
3 Pas d’atmosphère rho_0 = 0 Altitude beaucoup plus élevée (pas de traînée) ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement direct
Bash
python script_294cvmn_294.py
📋 Exemple de sortie attendue
Une fenêtre Matplotlib s’ouvre montrant une courbe d’altitude parabolique et une courbe de vitesse atteignant un maximum avant de décroître.



Avis
Il n’y a pas encore d’avis.