Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parDominique Champagne Modifié depuis plus de 6 années
1
Commande optimale de l'alunissage de Lunar Lander
Contenu de cette séance : définir le problème de commande optimale (linéaire quadratique) Distinguer énergie de commande et écart quadratique Expliquer le principe d'optimalité de Bellman Donner la solution du problème de commande optimale avec une loi de commande non stationnaire et l’équation récurrente de Riccati Initialiser la résolution de l'équation de Riccati récurrente En travaux dirigés : on teste une loi de commande optimale linéaire quadratique minimisant l’énergie de commande de Lunar Lander lors de l’alunissage * On retrouve ce document <01/01/2019>
2
On pose le problème de commande optimale sur un exemple simple
Exemple du "système à inertie" : il s'agit du mouvement horizontal de Lunar Lander normalisé, c’est-à-dire avec e=1 ms-1kg-1 et Te=1s : Problème : trouver la loi de commande par retour d’état qui minimise l’énergie de commande J0 et assure une réponse de durée finie H périodes d'échantillonnage. C’est un problème de Commande Linéaire Quadratique 01/01/2019
3
La fonction critère à minimiser fixe un compromis entre deux termes, l’énergie de commande et l'écart quadratique Critère à minimiser Écart quadratique énergie de commande 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 XH est imposé, ici 01/01/2019
4
Formes quadratiques, formes bilinéaires et dérivées
Avec des dimensions compatibles des vecteurs x, y et de la matrice Q telles que les produits ci-dessous restent mathématiquement justes : On appelle forme quadratique la quantité scalaire : On appelle forme bilinéaire le scalaire : Définition : la matrice 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 : Note : si alors : 01/01/2019
5
Pour résoudre le problème de commande linéaire quadratique ainsi posé, on utilise le principe d’optimalité de Bellman XH Xk+1 Xk Xk-1 X0 XH-1 X1 u0 u1 uk uk-1 uH-1 Principe d'optimalité de Bellman : « tout segment de la trajectoire optimale est lui-même une trajectoire optimale" 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 Xn+1 jusqu'à XH, on calculera un de telle façon que la trajectoire depuis Xn jusqu'à Xn+1 soit optimale En 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. 01/01/2019
6
La solution est obtenue en introduisant une matrice symétrique, définie positive, la matrice de Riccati on introduit la matrice Pn symétrique, définie positive telle que : la solution du problème est alors donnée par : la loi de commande qui donne un fonction de l’état Xn: et l’équation de Riccati récurrente qui donne Pn= f(Pn+1 ) Trois remarques : loi de commande non stationnaire l’équation de Riccati récurrente s’intègre en temps inversé ?! il existe une équation algébrique de Riccati, où n disparaît 01/01/2019
7
Comment on résout l'équation récurrente de Riccati :
faire apparaître Pn et Pn+1 dans 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 01/01/2019
8
La dérivation partielle par rapport à un fournit la loi de commande
S’agit-il d’un minimum ou d’un maximum ? Kn dépend de n : le gain du retour d’état varie au cours de la trajectoire, on dit qu’il est non stationnaire ! 01/01/2019
9
La dérivation par rapport à Xn fournit l'équation récurrente de Riccati qui calcule Pn, et par conséquent Kn, à partir de Pn+1 ! Quelques remarques : la dérivée de Jn par rapport à Xn n’est pas nulle. une autre méthode pour obtenir l’équation récurrente de Riccati serait de remplacer directement un par sa valeur dans l’équation du haut de page. l’équation récurrente de Riccati, calcule Pn à partir de A, B, Q, R et Pn+1 la condition initiale est donc PH et non P0 01/01/2019
10
Comment on résout l’équation récurrente de Riccati pour le système à inertie, en partant de la fin de la trajectoire (en HTe!) Mais si le système à inertie est gouvernable, il existe une et une seule série de commandes pour rejoindre en deux périodes d’échantillonnage XH depuis XH-2 On va donc évaluer la valeur de PH-2, et on en déduira PH-3, puis PH-4, etc … jusqu’à P0, en itérant l’équation de Riccati. Pour chaque valeur de Pn trouvée, on déduira la valeur de Kn Il faudra calculer KH-2 et KH-1 pour les deux dernières périodes d’échantillonnage 01/01/2019
11
Initialiser l’équation récurrente de Riccati pour mini-miser l’énergie de commande du système à inertie. On doit calculer PH-2, KH-2 et KH-1 pour initialiser l’équation de Riccati, puis PH-2, KH-2 donneront PH-3, KH-3 etc … 01/01/2019
12
Initialiser l’équation récurrente de Riccati pour minimiser l’énergie de commande du système à inertie (suite et fin) Calcul de PH-2 Conduit à Utilisation de PH-2 si H > 2 à partir de PH-2, l’équation de Riccati donne : et puis, PH-3 et l’équation de Riccati donnent : etc … cf. script Maple riccati.mws qui donne tous les résultats pour H=10 01/01/2019
13
Script riccati.m résout l’équation récurrente de Riccati
function [K,P0]= riccati(H, ad, bd, R, Q) % initialise et résoud l'équation de Riccati récurrente pour Lunar Lander % - K retourne [K0,K1, ... KH-2, KH-1] (dim((2,4) % - retour P0 (4,4) est la matrice de Riccati en t=0 % - H est l'horizon de la commande % - Q (4,4) et R(2,2) fixent les poids de l'écart quadratique et de l'énergie de commande % - ad(4,4) et bd(4,2) matrices d'état et de commande du processus discrétisé G=[ad*bd bd]; % matrice de gouvernabilité carrée doit être inversible N = inv(G)*ad^2; % état final est nul K= N(1:2,:); % pour trouver KH-2 % on exprime que l'état final est nul dans l'équation d'état pour trouver KH-1 = pinv(bd)*ad K=[K; pinv(bd)*ad]; % P0= N'*N % cas où on minimise l’énergie de commande RR= [R, zeros(size(R)); zeros(size(R)), R] P0=Q+N'*RR*N+(ad-bd*N(1:2,:))'*Q*(ad-bd*N(1:2,:)); X= P0; for k = 1:H-2 % résolution de l’équation de Riccati récurrente K1= inv(R+bd'*P0*bd)*bd'*P0*ad; P0= ad'*P0*ad + Q - ad'*P0*bd*K1; X= [P0; X]; K= [K1 ;K]; end 01/01/2019
14
Travaux dirigés 5 : commande optimale de Lunar Lander
On fournit une fonction Matlab nommée 'riccati' et capable de résoudre l'équation de Riccati récurrente : Comment réduire le critère à minimiser à l'énergie de commande Comparer les résultats de ‘riccati’ et ceux de 'riccati.mws‘ (pour H=10) utiliser ‘riccati’ pour calculer la loi de commande optimale de Lunar Lander, on cherche à minimiser l’énergie de commande durant l'alunissage qui devra durer 4 secondes c'est le fichier K.txt qui est lu par l'animation lors la commande optimale à horizon fini, on accède au mode de commande optimale en tapant 'h' au clavier noter la consommation de carburant en fonction de la durée d'alunissage 01/01/2019
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.