1. Simulation par script (Batch Simulation)
Objectif : Automatiser plusieurs exécutions d'un modèle en variant ses paramètres.
Lorsqu'on modélise un phénomène, il est utile de tester plusieurs valeurs de paramètres sans relancer manuellement la simulation.
Méthode :
- Définir le modèle sous forme d’équations différentielles ou algébriques.
- Utiliser une boucle pour tester plusieurs valeurs de paramètres et observer l'évolution du système.
- Stocker et afficher les résultats sous forme de courbes, tableaux ou fichiers pour analyse.
Exemple : Propagation d'une épidémie (Modèle SIR)
beta_values = linspace(0.1, 0.5, 5) % Tester 5 valeurs de beta for beta in beta_values do sir_results = simulate_SIR(beta, gamma=0.2) plot(sir_results, overlay=true) end
📊 Cela permet de comparer l’impact du taux de transmission sur l’épidémie.
2. Résolution d'équations et optimisation
Objectif : Trouver la meilleure solution d'un problème en respectant des contraintes.
2.1. Résolution d'équations (fsolve)
Méthode :
- Définir une fonction représentant l'équation à résoudre.
- Utiliser fsolve pour trouver la valeur de la variable inconnue.
- Interpréter les résultats et ajuster les paramètres si nécessaire.
Exemple : Trouver l'angle optimal pour toucher une cible
function f(theta) v0 = 30 % Vitesse initiale g = 9.81 % Gravitation x_cible = 50 return (v0^2/g) * sin(2*theta) - x_cible end theta_opt = fsolve(f, pi/4)
📌 Résultat : θopt\theta_{opt} donne l’angle parfait pour toucher la cible.
2.2. Optimisation (fmincon)
Méthode :
- Définir une fonction coût qui doit être minimisée.
- Définir les bornes des variables si nécessaire.
- Utiliser fmincon pour trouver les paramètres optimaux.
Exemple : Régler un contrôleur PID
function J(Kp, Ki, Kd) error = simulate_PID(Kp, Ki, Kd) return sum(error^2) end K_opt = fmincon(J, [1, 1, 1], [0,0,0], [10,10,10])
📌 Résultat : Le meilleur réglage PID pour minimiser l’erreur.
3. Contrôle Optimal
Objectif : Trouver la commande optimale u(t) pour un système.
Méthode :
- Définir les équations du système dynamique sous forme d’équations différentielles.
- Choisir un critère de performance à optimiser (ex: minimiser l’énergie utilisée, maximiser la stabilité).
- Appliquer Pontryagin ou la programmation dynamique pour obtenir la commande optimale.
Exemple : Pendule inversé
Deux approches :
- Pontryagin : Calcul d'une trajectoire optimale hors-ligne.
- Programmation dynamique : Politique optimale en temps réel.
Applications : Contrôle des robots, atterrissage de SpaceX.
4. Apprentissage par renforcement
Objectif : Apprendre à contrôler un système sans modèle par essais/erreurs.
Méthode :
- Définir un agent qui interagit avec un environnement.
- Associer des récompenses aux actions pour guider l’apprentissage.
- Utiliser des algorithmes d’optimisation comme Q-Learning ou Deep Q-Networks (DQN).
Exemple : Stabiliser un Segway
- Actions aléatoires initiales.
- Ajustement des actions selon une récompense.
Mécanismes utilisés :
- Q-Learning (Table de récompenses).
- Deep Reinforcement Learning (Réseau de neurones).
5. Identification de modèles
Objectif : Trouver un modèle mathématique à partir de mesures.
Méthode :
- Collecter des données expérimentales (entrée/sortie du système).
- Utiliser des méthodes statistiques pour ajuster un modèle aux données.
- Valider le modèle en comparant ses prédictions aux observations.
Exemple : Modéliser un moteur
X = [1 2 3 4 5] % Entrée Y = [2.1 4.2 6.1 8.2 10.1] % Sortie coeffs = regress(X, Y) % Modèle y = ax + b
📌 Résultat : Un modèle simple du moteur basé sur les données.
Conclusion
✅ Batch Simulation : Tester plusieurs paramètres automatiquement.
✅ Optimisation : Trouver les meilleures valeurs (ex: PID).
✅ Contrôle optimal : Meilleure commande (ex: pendule inversé).
✅ Apprentissage : Tester et apprendre (ex: Segway).
✅ Identification de modèles : Trouver un modèle à partir de mesures.