Commande en boucle ouverte et à horizon fini de l’alunissage de Lunar Lander Dans cette séance : problème de « gouvernabilité » de l’alunissage de Lunar.

Slides:



Advertisements
Présentations similaires
III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES
Advertisements

Portée des variables VBA & Excel
Cours 3-b Méthode des éléments finis 1D
Cours 5-b Problèmes spatio-temporels d’ordre 1 en temps
S.S.I., ESSI1, lundi 9 mai 2005 Page 1 Comment compresser avec le spectre Séance 10, 1 heure Version : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni Contenu.
Notion d ’état interne Démontrer le résultat trouvé pour s(t) :
S.S.I., ESSI1, samedi 10 avril 2004 Page 1 Comment tailler les filtres sur mesure Séance 8, nouvelle application des filtres, 1 heure Version : samedi.
Comment créer des filtres d’ordre 1 et 2
Cours 5 – Comment bien échantillonner le signal audio
SuivantPrécédent ESSI 1 - Auto TS © Jean-Paul Stromboni (Mai 2000) Consolidation: tester les connaissances acquises 1 Etude de la commande du système.
Comment décimer les sons numériques
Calcul de la composition fréquentielle du signal audio
Comment créer des filtres « simples »
Calcul numérique (avec Maple)
Notion d'asservissement
Sous-échantillonner le signal audio pour compresser
Equations différentielles ordinaires
Cours du 20 septembre Exceptionnellement, le cours prévu pour le mercredi 20 septembre se donnera Mardi le 19 septembre de 13h30 à 15h20 à la salle 1112.
Equations Non Linéaires
Chapitre VII :Commande par retour d’état
CINEMATIQUE DU POINT OBJECTIFS : -Décrire les principales grandeurs cinématiques (position,vitesse,accélération). - Définir la trajectoire dun point dun.
Septième étape : travailler avec des graphes probabilistes
Créer une animation simple Gif avec ImageReady.
Rappel... Sous-espaces de Rn: Définition;
VI – Rang d’une matrice Mots clés : Rang.
S.S.I.I., , n°7 : Construire et utiliser un banc de filtres Page 1 Construire et utiliser un banc de filtres pour analyser le spectre dun signal.
ASI 3 Méthodes numériques pour l’ingénieur
Cours S.S.I.I., , n°8, Créer des filtres pour compresser Cours S.S.I.I., , n°8, : Créer des filtres pour compresser Page 1 Mise en œuvre.
Mémoire de Projet de Fin d’Etudes
5. Echantillonnage Introduction
SSII : séance finale , lundi 9/01/2012 Page 1 Voici quelques questions pour assimiler la seconde partie du cours S.S.I.I., spectre, filtrage, banc.
Optimisation linéaire
Introduction à la commande par ordinateur
Équations différentielles.
VI-1 Introduction VI-2 Représentation d’état
Chapitre 3bis Applications linéaires et Matrices
S.S.I.I., , cours n°8 : Compresser avec un banc de filtres Page 1 Compresser avec un banc de filtres Le contenu de ce cours : T.D. n° 8 : simulation.
Rappel... Solution itérative de systèmes linéaires (suite et fin).
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
Filtrer le signal audio numérique
Un moyen de compresser le signal audio présenté à travers un exemple
Algèbre linéaire (GCI –100)
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Les fentes multiples Méthode semi graphique d’addition d’ondes. La méthode trigonométrique n’est pas commode dans le cas de 3 sources ou plus, ou si les.
Rappel du dernier cours
2.4 Mouvements de charges dans un champ électrique uniforme
Le pendule simple.
Initiation à la programmation en Python
Transformations linéaires et sous-espaces associés
Sous-espaces vectoriels engendrés
Programmation linéaire en nombres entiers : les méthodes de troncature
Présentation de la méthode des Eléments Finis
Commande en espace d’état
- énergie bornée (tend vers 0 lorsque
Contenu de cette séance :
Cours S.S.I.I., , n°7, Créer des filtres pour compresser Cours S.S.I.I., , n°7, : Créer des filtres pour compresser Page 1 Retour sur le.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
Contenu du cours : Principe de la commande par retour d'état
Commande par ordinateur
Commande optimale linéaire quadratique de Lunar Lander
Commande en temps fini (boucle ouverte)
MATHÉMATIQUES L1 Second Semestre Armand Taranco. BIBLIOGRAPHIE Dupont : Algèbre pour les sciences économiques, Flash U, A. Colin. Bernard Guerrien, Isabelle.
Polytech'Nice-Sophia, Département Sciences Informatiques Cours de 4 ème année : Commande par Ordinateur. semaine 5/6, 29/04/2018Page 1 Commande optimale.
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.
Commande en boucle ouverte et à horizon fini de l’alunissage de Lunar Lander Dans cette séance : problème de « gouvernabilité » de l’alunissage de Lunar.
Commande optimale de l'alunissage de Lunar Lander
Transcription de la présentation:

Commande en boucle ouverte et à horizon fini de l’alunissage de Lunar Lander Dans cette séance : problème de « gouvernabilité » de l’alunissage de Lunar Lander Formulation mathématique du problème de gouvernabilité Solution du problème de gouvernabilité Illustration avec la commande horizontale normalisée de Lunar Lander Calcul et mise en œuvre dans l’animation Lunar Lander Définition du projet associé au cours Commande par Ordinateur * pour retrouver cette présentation, http://cours.polytech.unice.fr/intcom/3.seance ainsi que les scripts TD3Blin.sce et Scilab2Flash.sce

Problème de l’alunissage de Lunar Lander en boucle ouverte et avec un horizon fini À l’instant t = 0, les capteurs de Lunar Lander indiquent sa position et sa vitesse regroupées dans le vecteur d’état X0 Peut-on utiliser les entrées de commandes pour atteindre le point d’alunissage et la vitesse d’impact souhaités (dans Xh) au bout de h périodes d’échantillonnage seulement ? On rappelle l’équation d’état discrétisée de Lunar Lander : S’il existe une solution, quelque soient X0 et Xh, le processus d’alunissage de Lunar Lander est ‘entièrement gouvernable’ et h est l’horizon (fini) de l’alunissage (de durée hTe) 01/04/2017

Formulation mathématique du problème de gouvernabilité lors de l’alunissage de Lunar Lander Il faut trouver U vérifiant y=GU. G : matrice de gouvernabilité, U : vecteur des commandes, h : horizon de la commande y : dépend de X0, Xh, et A 01/04/2017

Importance de la matrice de gouvernabilité G Il s’agit de trouver un vecteur U de taille 2h vérifiant : G est la matrice d’une application de R2h dans R4, et possède 4 lignes et 2h colonnes, soit gk le kième vecteur colonne de G : 01/04/2017

Conditions d’existence d’une ou plusieurs solutions au problème de gouvernabilité de Lunar Lander S’il existe quatre vecteurs colonnes linéairement indépendants dans la matrice G, ces vecteurs forment une base de R4, et il existe au moins une solution U : soient ga, gb, gc et gd ces quatre vecteurs, D’où la solution U où toutes les composantes sont nulles sauf les quatre composantes ua, ub, uc, et ud puisque : On dit aussi que G est de rang 4, ou de rang complet 01/04/2017

Solution du problème de gouvernabilité de Lunar Lander Si h = 2, G est carrée, si elle est de rang 4, elle est inversible, et il existe une seule solution Si h > 2, et G de rang 4, la matrice (GGT)-1 existe (cf. démo ci-dessous) d’où une solution du problème de gouvernabilité : Vérification : G+ est une pseudo inverse à droite de G : Démonstration de l’existence de (GGT)-1 : l'application U  y= GU engendre R4, et détermine une application surjective de R2h dans R4 : pour tout y, il existe au moins un vecteur U tel que y= GU. L’application y  U= GTy est une injection de R4 dans R2h : u = GTy et u = GTy1 => y = y1. L’application : yx=GGT y est une bijection de R4 (composition d’une injection et d’une surjection) et GGT est inversible C.Q.F.D. 01/04/2017

Alunissage de Lunar Lander ‘en temps minimal’ équations horizontale et verticale de Lunar Lander : Pour le mouvement horizontal de Lunar Lander : Quel est le vecteur d’état final Xh ? Que vaut la matrice G si h=2 ? Quel est le rang de G ? Quel est la durée d’alunissage ? Comment calculer le vecteur des commandes ? Qu’est ce qui change pour le mouvement horizontal ? 01/04/2017

Pour simplifier : on fait le calcul pour le mouvement horizontal normalisé (c’est-à-dire e=1 ms-1kg-1, Te=1s) On part de l’origine [0;0], on aboutit en [1;0] ! Note : pour le mouvement vertical, peu de modification, si ce n’est qu’il faut retrouver la commande ay appliquée au réacteur vertical en ajoutant à la commande u le terme glune/e. 01/04/2017

Calcul de la commande en boucle ouverte avec h=2 du mouvement horizontal normalisé de Lunar Lander (on utilise Matlab) %séance 3 s=ss([0,1;0,0],[0;1],[1 0],0) Te=1 % échantillonnage (s) sd=c2d(s,Te) ad=get(sd,'a') bd=get(sd,'b') G=[ad*bd, bd] x0=[1 0]‘; xf=[0;0]; a=inv(G)*(xf-(ad^2)*x0) x1=ad*x0+bd*a(1) x2=ad*x1+bd*a(2) x=[x0,x1,x2] plot(x(1,:),x(2,:)) maxcom=num2str(max(abs(a))); carbu=num2str(sum(abs(a)))*Te Dure=num2str(2*Te) title([‘maxcom’, maxCom, ‘carburant’,carbu, ‘durée’,dure]) grid, xtitle(‘x’),ytitle=(‘dx/dt’); 01/04/2017

Que se passe t’il si l'horizon augmente ? h=3 puis h=6 Ici on représente la trajectoire dans le plan de phase (x, dx/dt) 01/04/2017

Application avec Scilab : alunissage de Lunar Lander en boucle ouverte avec un horizon de h=100 périodes d’échantillonnage //tiré du script : TD3Blin.sce Te = 0.04; h = 100; // horizon Tvol= h*Te;//durée d‘alunissage X0= [45;1;51;-1]; //état initial Xh = [0;0;0;0] // état d’alunissage //équations de Lunar Lander mvide= 6839; // masse à vide (kg) mfuel= 816.5; // masse de carburant (kg) m= mvide+ mfuel; // masse totale ve= 4500; // vitesse d'éjection (en m/s) erg= ve/m; // noté epsilon g_lune= 1.6; //gravité lunaire en m/s² A = [0,1,0,0;0,0,0,0;0,0,0,1;0,0,0,0]; B = [0,0;erg,0;0,0;0,erg]; C = [1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]; ll = syslin('c', A, B, C); //discrétisation des équations Lunar Lander lld = dscr(ll, Te); Ad = lld('a'); Bd = lld('b'); Cd = lld('c'); //calcul de la matrice de gouvernabilité G = Bd; //Calcul de G for n = 1:h-1 do G = [(Ad^n)*Bd, G]; end if rank(G) <> size(Ad,1) disp("pas de solution") else // calcul de la solution y = Xh - (Ad^h) * X0; Gt = G'; u = (Gt * (inv(G * Gt))) * y; //vecteur des commandes des réacteurs a = u; //calcul de ay(n)= u(2*n)+glune/erg for n = 1:h do a(2*n) = a(2*n) + g_lune/erg end disp(sum(abs(a))*Te, "Consommation :") disp(max(abs(a)), "Commande maximale") // Scilab2texte : a sauvé dans 'com.txt' fileid='com.txt' fp=mopen(pwd()+'\'+fileid,'w'); Kt=u'; Ks=string(u(1)); for k=2:length(u), Ks=Ks+','+string(Kt(k)); mputstr(Ks,fp); mclose(fp); 01/04/2017

Mise en œuvre des résultats du script précédent ‘o’ clavier pour ce mode de commande commandes successives des réacteurs ax et ay lues dans le fichier ‘com.txt’. h=100 Te = 40 ms Tvol = 4 s fuel consommé : 123 kg commande maximale : 34 m/(kg*s) 01/04/2017

Description du projet associé au cours Objectif : créer une simulation de la commande d’un processus physique par un ordinateur dans un jeu simple Technologie : Html5, Processing (l’an dernier), ou … à discuter Effectifs : de deux à trois élèves par groupe de projet Durée : les quatre séances de travaux dirigés à venir Scilab : pour discrétiser et calculer les lois de commandes Sujet du projet (cf. page suivante) Résultats demandés : Notice de l’application : équations, loi de commande, utilisation Exécutable : windows, ou page html, ou … 01/04/2017

Description du projet associé au cours Cadre et contenu imposé du projet Choisir un processus physique d’ordre au moins 2 et au plus 4 et écrire ses équations Mettre les équations sous la forme de commande de la représentation d’état Choisir une fréquence d’échantillonnage et discrétiser les équations du processus Simuler la commande manuelle du processus, Ajouter une ou plusieurs lois de commande de façon à automatiser le suivi d’une consigne (poursuite d’une consigne mobile, ou régulation d’une consigne fixe) Ne pas oublier de calculer l’énergie consommée par les actionneurs (entrées de commande) pour étudier le compromis entre rapidité et consommation. L’IHM doit afficher l’état du processus, le temps simulé, les entrées de commande, l’énergie consommée, et les paramètres de la loi de commande (horizon, gains, …) On se place dans le cadre d’un jeu (réflexe, adresse, stratégie d’économie d’énergie), et selon le temps disponible, on ajoutera à l’IHM une animation même rudimentaire pour augmenter le caractère ludique de la simulation, ainsi que des scores, des sons, … 01/04/2017

Exemple du projet de J. et A. Boursier (2012-13) 01/04/2017

Saisir ‘T’, cliquer pour construire la trajectoire point par point 01/04/2017