🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_3fnnimc1hz7jkd7m_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur refoïa jeremy
Objectif principal Simuler physiquement le vol d’une fusée en tenant compte de la gravité variable et de la traînée atmosphérique sur différentes planètes.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script fournit un cadre de simulation physique pour le lancement de fusées. Il modélise la perte de masse (consommation de carburant), les variations de gravité selon l’altitude, et calcule la traînée aérodynamique en fonction de la densité atmosphérique de plusieurs corps célestes (Terre, Mars, Lune).
📌 Problème résolu
Il permet de prédire le comportement d’un lanceur spatial (altitude, vitesse, consommation) sans nécessiter de tests réels, en offrant une approche modulaire pour tester différents types de moteurs et d’environnements planétaires.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.9+ (utilise les dataclasses et le typage avancé)
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Module / Script de simulation
📦 Dépendances / Librairies
# Librairies standard (built-in)
math : Calculs trigonométriques et exponentiels.
dataclasses : Structuration des données des fusées.
typing : Annotations de type pour la robustesse du code.
# Librairies externes (pip install)
numpy : Gestion des vecteurs d’état (position, vitesse).
matplotlib : Visualisation et animation des résultats.
📥 ENTRÉES (INPUTS)
📂 Objets de données
# Nom Type Obligatoire Description
1 nom_planete str ✅ Oui Nom de la planète cible (ex: « Terre », « Mars »).
2 fusee Fusee ✅ Oui Objet contenant masse, poussée, Isp et diamètre.
📤 SORTIES (OUTPUTS)
📂 Données en sortie
# Nom Type Description
1 historique dict Dictionnaire contenant les listes de temps, altitude, vitesse et carburant.
🧱 STRUCTURE DU SCRIPT
onizuka_3fnnimc1hz7jkd7m_333.py
📌 IMPORTS (numpy, matplotlib, dataclasses)
📌 CLASSES DE DONNÉES
Fusee : Propriétés physiques de l’engin.
📌 CLASSES LOGIQUES
Moteur : Factory pour générer des configurations (Liquide, Solide, Nucléaire).
Environnement : Modèle atmosphérique et gravitationnel.
SimulateurVol : Moteur de calcul de la trajectoire.
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
get_pression(alt) altitude: float float Calcule la pression atmosphérique exponentielle.
get_gravite(alt) altitude: float float Applique la loi de la gravitation universelle de Newton.
calculer_trainee() Aucun float Calcule la résistance de l’air (1/2⋅ρ⋅v2⋅Cd⋅A).
reset() Aucun None Réinitialise les vecteurs d’état pour une nouvelle simulation.
🔄 LOGIQUE / ALGORITHME
Initialisation : Choix de la planète et du type de moteur.
Boucle de calcul (incrémentale) :
Calcul de la Gravité locale selon G⋅r2m1⋅m2.
Calcul de la Pression et de la Traînée (si atmosphère présente).
Soustraction de la masse de carburant consommée.
Mise à jour des vecteurs Accélération → Vitesse → Position.
Stockage : Enregistrement des données dans l’historique pour analyse.
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Planète non répertoriée ValueError Le script s’arrête avec un message explicatif.
Division par zéro (gravité) ZeroDivisionError Géré par une vérification de la masse planétaire dans get_gravite.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : La poussée est considérée comme constante jusqu’à épuisement du carburant (modèle simplifié).
Règle 2 : L’altitude ne peut pas être négative (utilisation de max(0, altitude)).
Règle 3 : La densité de l’air est une approximation basée sur une température constante de 288.15K.
📝 EXEMPLE D’UTILISATION
💻 Exemple d’appel en tant que module
Python
env = Environnement(« Mars »)
ma_fusee = Moteur.moteur_liquide()
sim = SimulateurVol(ma_fusee, env)
# La simulation peut ensuite être lancée via une boucle de mise à jour



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