script_349cvmn_349.py

49,00 

Simuler la trajectoire de vol d’une fusée, incluant la phase propulsée, l’apogée et la descente sous parachute.

UGS : script_349cvmn_349.py Catégories : , Étiquette :

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_349cvmn_349.py

Version 1.0.0

Date de création 22/05/2024

Auteur / Demandeur IA Généré (Gemini)

Objectif principal Simuler la trajectoire de vol d’une fusée, incluant la phase propulsée, l’apogée et la descente sous parachute.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script réalise une simulation numérique (méthode d’Euler) du vol vertical d’un lanceur. Il calcule l’évolution de l’altitude, de la vitesse et de la masse en tenant compte de la poussée du moteur, de la gravité et de la traînée aérodynamique (variable selon l’altitude et le déploiement d’un parachute).

📌 Problème résolu

Il permet de modéliser le comportement physique d’un engin spatial suborbital pour vérifier si l’apogée cible est atteinte et s’assurer que le système de récupération (parachute) s’active correctement lors de la descente.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Windows / Linux / MacOS

Mode d’exécution CLI (Script autonome avec affichage graphique)

📦 Dépendances / Librairies

Librairies externes (pip install)

numpy (Calcul vectoriel et mathématique)

matplotlib (Génération des graphiques)

📥 ENTRÉES (INPUTS)

📂 Paramètres de simulation (Fixes dans le code)

# Nom Type Obligatoire Description Exemple

1 m_seche int ✅ Oui Masse de la fusée sans carburant 500

2 F_poussee_max int ✅ Oui Force de poussée du moteur (N) 20000

3 isp int ✅ Oui Impulsion spécifique (secondes) 300

📤 SORTIES (OUTPUTS)

📂 Données en sortie

Type Chemin / Format Description

Graphique Fenêtre Matplotlib 4 subplots : Vitesse, Altitude, Masse et Portrait de phase (Vitesse vs Altitude).

🧱 STRUCTURE DU SCRIPT

script_349cvmn_349.py

├── 📌 CONSTANTES (g, masses, coefficients de traînée, atmosphère)

├── 📌 FONCTIONS

│ ├── systeme_gestion_vol() → Logique de décision (moteur, parachute, alertes)

│ └── calculer_trainee() → Modélisation de la résistance de l’air (modèle rho exponentiel)

└── 📌 BOUCLE PRINCIPALE (Intégration numérique et stockage des données)

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

systeme_gestion_vol alt, vit, m_carb, t, par_stat dict Gère l’allumage moteur et l’ouverture parachute.

calculer_trainee vit, alt, par_actif float Calcule la force de traînée Fd​ selon la densité de l’air.

🔄 LOGIQUE / ALGORITHME

Initialisation : Définition de l’état initial (v=0,y=0).

Boucle de temps (dt = 0.05s) :

Gestion de vol : Vérification du carburant et détection de l’apogée (si v<0, alors parachute = ON). Bilan des forces : ∑F=Fpousseˊe​−Fpoids​−Ftraı^neˊe​. Accélération : a=m∑F​. Intégration (Euler) : Mise à jour de v et y. Condition d’arrêt : Si y≤0 après le décollage (atterrissage). Visualisation : Génération des courbes temporelles. 🚨 GESTION DES ERREURS Cas d’erreur Type de gestion Comportement attendu Panne carburant Flag alerte Le moteur se coupe (moteur_actif = False). Sortie atmosphère Flag alerte Alerte « ESPACE_ATTEINT » si altitude > 100km.

Atterrissage Condition if y <= 0 Sortie de la boucle while pour éviter les altitudes négatives.

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : La traînée doit toujours s’opposer au vecteur vitesse (gestion du signe dans calculer_trainee).

Règle 2 : La masse totale diminue proportionnellement au temps de fonctionnement du moteur.

Règle 3 : Le parachute augmente drastiquement le coefficient Cd​ (de 0.75 à 15.0).

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu Statut

1 Cas nominal Paramètres par défaut Vol complet avec apogée et atterrissage doux. ⬜ À tester

2 Pas de carburant m_carburant_initial = 0 La fusée reste au sol. ⬜ À tester

3 Gravité nulle g = 0 Ascension infinie (si moteur actif). ⬜ À tester

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_349cvmn_349.py”

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