script_336cvmn_336.py

49,00 

Simuler, exporter en CSV et animer graphiquement la trajectoire d’une fusée avec télémétrie en temps réel.

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

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_336cvmn_336.py

Version 1.0.0

Date de création 11/03/2026

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

Objectif principal Simuler, exporter en CSV et animer graphiquement la trajectoire d’une fusée avec télémétrie en temps réel.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script génère une simulation de vol de fusée (données de trajectoire, vitesse, masse et inclinaison). Il exporte ces données dans un fichier CSV horodaté et lance une interface graphique animée montrant la progression de la fusée dans un environnement spatial stylisé avec un affichage de bord (HUD).

📌 Problème résolu

Il permet de visualiser dynamiquement des vecteurs de poussée et des changements d’états (perte de masse, inclinaison) qui sont souvent difficiles à interpréter via de simples tableaux de chiffres.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x (recommandé 3.8+)

OS cible Windows / Linux / MacOS

Mode d’exécution Script autonome (CLI + GUI)

📦 Dépendances / Librairies

Librairies standard (built-in) : numpy, csv, datetime.

Librairies externes (pip install) : matplotlib.

📥 ENTRÉES (INPUTS)

# Nom Type Obligatoire Description

1 hist_x / hist_y list/np.array ✅ Oui Coordonnées de la trajectoire (0.0 à 1.0).

2 hist_angle list ✅ Oui Angle d’inclinaison en degrés.

3 hist_vitesse list ✅ Oui Vitesse instantanée en m/s.

4 hist_masse list ✅ Oui Masse actuelle de la fusée en kg.

📤 SORTIES (OUTPUTS)

# Nom Type Description

1 nom_fichier str Nom du fichier CSV généré.

2 ani Animation Objet d’animation Matplotlib (rendu visuel).

📂 Fichiers en sortie

CSV : simulation_fusee_YYYYMMDD_HHMMSS.csv (Données brutes avec en-tête métadonnées).

🧱 STRUCTURE DU SCRIPT

Plaintext

script_336cvmn_336.py

├── 📌 IMPORTS (numpy, matplotlib, csv, datetime)

├── 📌 FONCTIONS

│ └── exporter_csv() → Génère le fichier de données structuré.

├── 📌 CLASSES

│ └── AnimationFusee → Gère le moteur de rendu graphique.

│ ├── _dessiner_fusee() → Dessine les polygones de la fusée (rotation).

│ └── animer() → Boucle d’animation et gestion du HUD.

└── 📌 MAIN (Démonstration) → Génération de données factices et lancement.

🔄 LOGIQUE / ALGORITHME

Génération/Réception des vecteurs de données (vitesse, angle, position).

Exportation : Création d’un fichier CSV avec séparateur ; et formatage à 4 décimales pour l’altitude.

Initialisation Graphique : Création d’un espace sombre avec des étoiles générées aléatoirement.

Boucle d’Animation :

Calcul de la matrice de rotation pour le corps, la coiffe et la tuyère.

Mise à jour de la traînée (fumée) sur les 40 derniers points.

Calcul et mise à jour des textes du HUD (T+, Alt, Vit, Mss, Ang).

🚨 GESTION DES ERREURS

Cas d’erreur Type d’exception Comportement attendu

Dossier non scriptible IOError Arrêt du script lors de l’export CSV.

Données de tailles différentes IndexError Le HUD ou l’animation risque de planter au milieu du vol.

🧪 TESTS ATTENDUS

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

1 Cas nominal Données démo CSV créé + Animation fluide ⬜ À tester

2 Angle fixe 90° angle = [90]*n Fusée restant parfaitement verticale ⬜ À tester

3 Export sans nom nom_fichier=None Fichier généré avec horodatage système ⬜ À tester

📊 PERFORMANCES ATTENDUES

Temps d’exécution : Export CSV quasi-instantané (< 0.1s pour 600 points). Animation : Fluide à 30ms d'intervalle. Consommation : Faible (Matplotlib standard). 📝 EXEMPLE D'UTILISATION ▶️ Lancement direct (Démo) Bash python script_336cvmn_336.py 💻 Exemple d'appel en tant que module Python from script_336cvmn_336 import exporter_csv, AnimationFusee # Vos données data = {"temps_s": [0, 1], "altitude_km": [0, 10], "vitesse_ms": [0, 500], "masse_kg": [50000, 48000], "angle_deg": [90, 85]} # Export et Animation exporter_csv(data, "mon_vol.csv") anim = AnimationFusee([0, 0.1], [0, 0.5], [90, 85], [0, 500], [50000, 48000]) anim.animer()

Avis

Il n’y a pas encore d’avis.

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

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