Polytech'Nice-Sophia, Département Sciences Informatiques Cours de 4 ème année : Commande par Ordinateur. semaine 5/6, 04/09/2018Page 1 Commande optimale de l'alunissage de Lunar Lander Après cette séance, vous devrez savoir : définir le concept de loi commande linéaire optimale quadratique détailler la forme de la fonction critère quadratique donner le principe d'optimalité de Bellman établir la loi de commande optimale et l'équation de Riccati initialiser la résolution de l'équation de Riccati récurrente en TD : installer une loi de commande optimale sur Lunar Lander * cf.
semaine 5/6,04/09/2018page 2 Poser le problème sur l'axe horizontal de Lunar Lander Exemple du "système à inertie" : il s'agit du mouvement horizon- tal de Lunar Lander normalisé, avec erg=1 ms -2 kg -1 et Te=1s : Problème : trouver la loi de commande par retour d’état qui minimise l’énergie de commande J 0 calculée sur H périodes d'échantillonnage.
semaine 5/6,04/09/2018page 3 Fixer le compromis entre l’énergie de commande et l'écart quadratique dans une fonction critère à minimiser H est l’horizon de la commande, qui dure donc ? Q et R sont deux matrices symétriques, définies, et positives : et sont des formes quadratiques l'état final X H est imposé, ici Écart quadratique énergie de commande Critère à minimiser
semaine 5/6,04/09/2018page 4 Introduire le principe d’optimalité de Bellman pour résoudre Le principe d'optimalité de Bellman pose que "tous les segments d’une trajectoire optimale sont des trajectoires optimales" L’idée est alors de résoudre itérativement le problème de commande optimale d’horizon n à partir de la solution optimale pour un horizon n-1 : –connaissant la trajectoire optimale depuis X n+1 jusqu'à X H, on calculera u n de telle façon que la trajectoire depuis X n jusqu'à X n+1 soit optimale –conséquence, la résolution du problème impose de "remonter le temps", c'est à dire de partir de l’instant final et de remonter jusqu’à l’instant initial. XHXH X k+1 XkXk X k-1 X0X0 X H-1
semaine 5/6,04/09/2018page 5 Donner la solution avec l’équation de Riccati récurrente 1.en introduisant la matrice P n symétrique, définie positive 2.La solution du problème est donnée par : la loi de commande : et la relation P n (P n+1 ), ou équation de Riccati récurrente :
semaine 5/6,04/09/2018page 6 Etablir la loi de commande précédente et l'équation de Riccati 1.faire apparaître P n et P n+1 dans la relation entre J n et J n+1 2.faire disparaître X n+1 avec l’équation d’état. 3.exprimer le second membre avec des formes bilinéaires et des formes quadratiques (cf. page 11). 4.dériver l'équation par rapport au vecteur u n puis par rapport au vecteur d'état
semaine 5/6,04/09/2018page 7 Dériver par rapport à u n permet d'obtenir la loi de commande par retour d'état (retour d'état non stationnaire !)
semaine 5/6,04/09/2018page 8 Dériver par rapport à Xn aboutit à l'équation de Riccati récurrente (avec les conditions initiales en fin de trajectoire !).
semaine 5/6,04/09/2018page 9 Initialiser l’équation récurrente de Riccati On doit calculer P H-2, K H-2 et K H-1 pour initialiser l’équation de Riccati, puis P H-2, K H-2 donneront P H-3, K H-3 etc …
semaine 5/6,04/09/2018page 10 Calcul de P H-2 Conduit à Utilisation de P H-2 si H > 2 à partir de P H-2, l’équation de Riccati donne : et puis, P H-3 et l’équation de Riccati donnent : et etc … (le script Maple 'Riccati.mws' donne tous les résultats pour H=10) Initialiser l’équation récurrente de Riccati pour trouver la commande optimale du système à inertie (suite et fin)
semaine 5/6,04/09/2018page 11 Avec des dimensions cohérentes des vecteurs x, y et de la matrice Q telles que les produits ci-dessous restent licites : On appelle forme quadratique le scalaire : On appelle forme bilinéaire le scalaire : Q est définie positive si la forme quadratique associée F(x) est positive quelque soit x non nul et nulle seulement en x=0. dérivation : la dérivée de F(x) par le vecteur est : Dériver les formes bilinéaires et les formes quadratiques
semaine 5/6,04/09/2018page 12 Travaux dirigés 5 : commande optimale de Lunar Lander créer une fonction Matlab (ou Scilab) nommée 'riccati' et capable de résoudre l'équation de Riccati récurrente : –le critère à minimiser est réduit à l'énergie de commande –tester la nouvelle fonction avec les résultats du script 'riccati.mws' utiliser riccati pour calculer la loi de commande optimale de Lunar Lander, si on cherche à minimiser le carburant consommé durant l'alunissage qui doit durer 4 secondes –c'est le fichier K.txt qui est utilisé par l'animation pour la commande optimale, –et on accède au mode commande optimale en tapant 'h' au clavier étudier la consommation de carburant en fonction de la durée d'alunissage