Partielo | Créer ta fiche de révision en ligne rapidement

Simulation, Optimisation et Contrôle Optimal en OML

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 :

  1. Définir le modèle sous forme d’équations différentielles ou algébriques.
  2. Utiliser une boucle pour tester plusieurs valeurs de paramètres et observer l'évolution du système.
  3. 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 :

  1. Définir une fonction représentant l'équation à résoudre.
  2. Utiliser fsolve pour trouver la valeur de la variable inconnue.
  3. 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 :

  1. Définir une fonction coût qui doit être minimisée.
  2. Définir les bornes des variables si nécessaire.
  3. 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 :

  1. Définir les équations du système dynamique sous forme d’équations différentielles.
  2. Choisir un critère de performance à optimiser (ex: minimiser l’énergie utilisée, maximiser la stabilité).
  3. Appliquer Pontryagin ou la programmation dynamique pour obtenir la commande optimale.

Exemple : Pendule inversé

Deux approches :

  1. Pontryagin : Calcul d'une trajectoire optimale hors-ligne.
  2. 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 :

  1. Définir un agent qui interagit avec un environnement.
  2. Associer des récompenses aux actions pour guider l’apprentissage.
  3. 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 :

  1. Collecter des données expérimentales (entrée/sortie du système).
  2. Utiliser des méthodes statistiques pour ajuster un modèle aux données.
  3. 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.


Simulation, Optimisation et Contrôle Optimal en OML

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 :

  1. Définir le modèle sous forme d’équations différentielles ou algébriques.
  2. Utiliser une boucle pour tester plusieurs valeurs de paramètres et observer l'évolution du système.
  3. 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 :

  1. Définir une fonction représentant l'équation à résoudre.
  2. Utiliser fsolve pour trouver la valeur de la variable inconnue.
  3. 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 :

  1. Définir une fonction coût qui doit être minimisée.
  2. Définir les bornes des variables si nécessaire.
  3. 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 :

  1. Définir les équations du système dynamique sous forme d’équations différentielles.
  2. Choisir un critère de performance à optimiser (ex: minimiser l’énergie utilisée, maximiser la stabilité).
  3. Appliquer Pontryagin ou la programmation dynamique pour obtenir la commande optimale.

Exemple : Pendule inversé

Deux approches :

  1. Pontryagin : Calcul d'une trajectoire optimale hors-ligne.
  2. 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 :

  1. Définir un agent qui interagit avec un environnement.
  2. Associer des récompenses aux actions pour guider l’apprentissage.
  3. 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 :

  1. Collecter des données expérimentales (entrée/sortie du système).
  2. Utiliser des méthodes statistiques pour ajuster un modèle aux données.
  3. 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.

Retour

Actions

Actions