🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_323cvmn_323.py
Version 1.0.0
Date de création 11/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler le vol d’une fusée en 2D et optimiser son inclinaison via un contrôleur PID pour atteindre une altitude cible de 200 km.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script simule la trajectoire d’une fusée soumise à la gravité terrestre. Il utilise un algorithme PID (Proportionnel, Intégral, Dérivé) pour ajuster dynamiquement l’angle de poussée en fonction de l’écart entre l’altitude actuelle et l’objectif de 200 km, tout en gérant la consommation de carburant et la masse décroissante.
📌 Problème résolu
Il répond au besoin de pilotage automatique : comment passer d’une ascension verticale à un vol incliné de manière fluide et précise sans oscillations excessives, afin d’atteindre une altitude spécifique (apogée) de manière stable.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Scientifique (Matplotlib)
📦 Dépendances / Librairies
numpy : Calculs mathématiques vectorisés et gestion des tableaux.
matplotlib : Génération des graphiques de télémétrie.
📥 ENTRÉES (INPUTS)
📂 Paramètres de classe (SimulateurPID)
# Nom Type Obligatoire Description Exemple
1 kp float ✅ Oui Gain Proportionnel (réaction immédiate) 0.08
2 ki float ✅ Oui Gain Intégral (correction de l’erreur statique) 0.0001
3 kd float ✅ Oui Gain Dérivé (amortissement) 1.5
📤 SORTIES (OUTPUTS)
📂 Données et Visualisation
Type Description
Dictionnaire (hist) Contient les vecteurs de temps, position (x, y), vitesse, masse et détails du PID.
Graphique (Matplotlib) Dashboard 2×3 affichant l’altitude, la vitesse, la masse, l’angle et l’analyse du PID.
Console Affiche l’altitude maximale et la vitesse maximale atteinte en fin de simulation.
🧱 STRUCTURE DU SCRIPT
script_323cvmn_323.py
📌 IMPORTS : numpy, matplotlib.pyplot
📌 CLASSES
ControleurPID : Logique de calcul du signal de correction.
SimulateurPID : Moteur physique 2D et gestion du vol.
📌 MÉTHODES CLÉS
calculer() : Applique la formule u(t)=Kpe(t)+Ki∫e(t)dt+Kddtde(t).
simuler() : Boucle temporelle d’intégration physique.
afficher() : Génération du rapport visuel.
📌 MAIN : Initialisation et lancement du scénario.
🔄 LOGIQUE / ALGORITHME
Initialisation : Définition de la masse initiale, du carburant et de la cible (200 km).
Boucle de calcul (DT = 0.5s) :
Calcul de l’erreur d’altitude normalisée.
Le PID génère une commande de correction basée sur cette erreur.
Calcul de l’angle : Vertical au décollage (< 5km), puis incliné selon le PID. Moteur physique : Calcul de la poussée, de la gravité (loi en 1/r2) et mise à jour des vitesses/positions. Sortie : Stockage des données pour rendu graphique. 🚨 GESTION DES ERREURS Cas d'erreur Type d'exception Comportement attendu Crash (Altitude < 0) Condition logique Arrêt immédiat de la boucle et message "✗ Crash". Panne de carburant Condition logique La poussée tombe à 0, la fusée continue sur sa lancée balistique. Division par zéro (dt) ZeroDivisionError Non géré explicitement (dépend de la configuration fixe). ✅ RÈGLES MÉTIER Règle 1 : L'angle de poussée est limité entre -85° et 89° pour éviter les retournements irréalistes. Règle 2 : La poussée verticale est forcée en dessous de 5 000 m (phase de décollage "propre"). Règle 3 : La gravité est recalculée dynamiquement selon l'altitude (modèle Newtonien). 🧪 TESTS ATTENDUS # Cas de test Entrée Résultat attendu Statut 1 Nominal Paramètres par défaut Atteinte de l'altitude cible (~200 km) ⬜ À tester 2 Sans carburant CARBURANT = 0 La fusée ne décolle pas ⬜ À tester 3 Gain Kp trop élevé kp = 5.0 Oscillations violentes de la trajectoire ⬜ À tester 📝 EXEMPLE D'UTILISATION ▶️ Lancement en ligne de commande Bash python script_323cvmn_323.py 📋 Exemple de sortie attendue Plaintext Altitude max : 201.4 km Vitesse max : 1450.2 m/s






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