190 likes | 595 Views
Commande optimale linéaire quadratique de Lunar Lander. Contenu de la séance : Loi de commande optimale linéaire quadratique sur un exemple Compromis entre énergie de commande et écart quadratique Principe d'optimalité de Bellman pour trouver la loi de commande
E N D
Commande optimale linéaire quadratique de Lunar Lander Contenu de la séance : Loi de commande optimale linéaire quadratique sur un exemple Compromis entre énergie de commande et écart quadratique Principe d'optimalité de Bellman pour trouver la loi de commande Retour d’état optimal et équation de Riccati récurrente Résolution de l'équation de Riccati récurrente : initialisation Application à Lunar Lander :résolution de l’équation de Riccati récurrente (cf. riccati.sce) et application à la commande optimale de l’alunissage de Lunar Lander (cf. TD56CommandeOptimale.sce) * Page de la séance : http://cours.polytech.unice.fr/intcom/5.seance
Loi de commande optimale linéaire quadratique sur l’exemplesimple du mouvement horizontal de Lunar Lander (normalisé) • On étudie durant l’alunissage, avec une consigne Cn nulle, le mouve-ment horizontal de Lunar Lander normalisé, c’est-à-dire avec e=1 ms-1kg-1 et Te=1s : • Peut-on trouver une loi de comman-de par retour d’état qui minimise la forme quadratique J0 ci-dessous et assure un alunissage de durée finie, en H périodes d'échantillonnage ? • C’est un problème de commande optimale linéaire quadratique : on connaît les équations du processus, on impose J0, H, et on cherche K adéquat.
Compromis entre l’énergie de commande et l'écart quadratique énergie de commande Critère à minimiser Écart quadratique • H est l’horizon de la commande, qui dure donc HTe • Les matrices Q et R sont symétriques définies positives, soit pour Q : • et sont des formes quadratiques • On dans la suite pour simplifier Cn=XH=0
Principe d’optimalité de Bellman pour trouver la loi de commande optimale • Principe d'optimalité de Bellman : tout segment d’une trajectoire optimale est lui-même une sous-trajectoire optimale • Mettons que vous avez résolu le problème de la commande optimale de Lunar Lander entre l’instant (k+1)Te et l’instant final HTe, vous pouvez en déduire la solution entre kTe et HTe, en calculant la commande uk entre kTe et (k+1)Te de façon à ce qu’elle soit optimale. • Ou bien, connaissant la trajectoire optimale de l’état Xk+1 jusqu'à XH, on calculera uk pour que la trajectoire de Xkjusqu'àXk+1 soit optimale • En conséquence, la résolution du problème impose de "remonter le temps" depuis l’instant final HTe et l’état XH jusqu’à l’instant initial t=0 et l’état initialX0avec H itérations. Xk+1 uk XH Xk X0 uH-1 u0 uk-1 XH-1 X1 Xk-1 u1
Solution du problème de commande optimale : un retour d’état non stationnaire calculé par l’équation de Riccati récurrente • écrire Jn avec la matrice Pn symétrique, définie positive : • trouver la solution du problème de commande avec : • Une loi de commande qui donne un fonction Xn et de Pn+1: • L’équation récurrente de Riccati qui calcule Pn= f (Pn+1 ) • Kn dépend de n (loi de commande non stationnaire) !! • nTe est antérieur à (n+1)Te (intégration en temps inversé !!) • On rappelle que : Cn=XH=0
Résolution de l'équation récurrente de Riccati • faire apparaître Pn et Pn+1dans la relation entre Jn et Jn+1 • faire disparaître Xn+1 en utilisant l’équation d’état. • Exprimer le second membre avec des formes bilinéaires et des formes quadratiques (cf. page 4). • Écrire que la dérivée de l'équation par rapport à un est nulle au minimum
Dérivation des formes quadratiques et des formes bilinéaires • Avec des dimensions compatibles des vecteurs X, u et de la matrice M telles que les produits ci-dessous restent licites mathématiquement : • On appelle forme quadratique la quantité scalaire : • On appelle forme bilinéaire le scalaire : • Définition : M est définie positive si Q(X) est positive pour tout X non nul et Q(X) = 0 si et seulement si X=0. • Dérivation par rapport à un vecteur : • si alors :
Dériver l’équation précédente par rapport à un à Xn constant fournit la loi de commande • rappel de l’équation précédente : • dérivation partielle par rapport à un • Jn est minimum : • solution un de l’équation • Kn dépend du temps n ! (commande non stationnaire)
Dériver par rapport à Xn aboutit à l'équation récurrente de Riccati qui calcule Pn à partir de Pn+1, puis Pn-1 à partir de Pn … jusqu’à P0 • D’où l’équation récurrente de Riccati qui calcule (en temps inversé !) • Pnà partir de A, B, Q, R et Pn+1 (car n+1 est supérieur à n): • Noter que la dérivée partielle de Jn par rapport à Xn n’est pas nulle. • la condition initiale de l’équation de Riccati est PH et non P0 • l’équation algébrique de Riccati est le régime permanent (n disparaît).
Initialisation de l’équation de Riccati récurrente : • Si le processus est gouvernable et d’ordre deux, il existe une et une seule série de commandes pour rejoindre en deux périodes d’échantillonnage XH depuis XH-2 • On évalue donc JH-2 en fonction de XH-2 et on en déduira PH-2 , puis PH-3, puis PH-4, etc … et ainsi jusqu’à P0 par itération de l’équation récurrente de Riccati. • Chaque valeur Pn trouvée fournit une valeur Kn , il suffit de calculer KH-2 et KH-1 Utilisation du calcul de la commande en boucle ouverte
Initialisation de l’équation de Riccati pour minimiser l’énergie de commande du mouvement horizontal normalisé de Lunar Lander. • On doit calculer KH-2et KH-1 , puis PH-2 pour initialiser l’équation de Riccati, puis PH-2, KH-2 donneront PH-3, KH-3 etc … Noter : on calcule la commande en boucle ouverte pour rejoindre l’état XH=0 depuis XH-2 quelconque en 2Te, avec H=2, c’est possible, car le processus est gouvernable (cf. cours 3)
Initialiser l’équation récurrente de Riccati : calcul de PH-2 • aboutit à • Puis on utilise PH-2 pour H > 2 • à partir de PH-2, l’équation de Riccati donne : • et • puis, PH-3 et l’équation de Riccati donnent : • et • etc …
Le script ‘riccati.sce’ ci-dessous résout l’équation récurrente de Riccati pour Lunar Lander en considérant l’énergie de commande et l’écart quadratique
Le script ci-dessous utilise ‘riccati.sce’ pour calculer la commande optimale de l’alunissage de Lunar Lander
Alunissage ‘optimal’ de Lunar Lander minimisant l’énergie de commande seule (R=1, Q=0) avec un horizon H=100 • saisir ‘h’ • H=100 • les Kn successifs sont calculés par Scilab et lus dans ‘K.txt’ • déplacer la consigne (symbole ‘ici’) et saisir ‘h’ déclenche la poursuite de la consigne pour une durée de 100 périodes d’échantillonnage, soit 4 secondes
Cas où l’état final Xf n’est pas l’état d’équilibre (X=0) • En fait, cela ne change rien au calcul précédent, pourquoi ? • Imaginons que Xf est l’origine d’un repère mobile qui se déplace dans le repère de la lune, Xf=[x0;vx0;y0;vy0], le point d’origine du repère mobile (x0,y0) se déplace à vitesse constante (vx0,vy0) dans le repère de la lune. • Le repère mobile se déplace donc par translation par rapport au repère mobile, c’est un repère galiléen • D’après la relation fondamentale de la dynamique, seconde loi de Newton, l’équation différentielle de Lunar Lander reste inchangée dans le nouveau repère. • La discrétisation de cette équation donne donc le même résultat, et donc les mêmes matrices d’état et de commande Ad et Bd • La résolution de l’équation récurrente de Ricatti donne donc les mêmes résultats, matrice initiale PH-2 de Ricatti, et gains KH-2 et KH-1 • La seule différence, c’est qu’on se pose en X= Xf, en appliquant la loi de commande un=Kn*(Xf - X)