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
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.
Advertisements

Contenu du cours : Principe de la commande par retour d'état
Commande optimale linéaire quadratique de Lunar Lander
Commande en temps fini (boucle ouverte)
Courbes d'Interpolation Interpolation de Lagrange, et Interpolation B-spline.
Cour Régulation AII3 Chapitre I: Modélisation des systèmes automatiques Abdelkhalek.S 1.
Les objectifs de connaissance : Les objectifs de savoir-faire : - La lumière présente des aspects ondulatoire et particulaire ; - On peut associer une.
Chapitre 1 Les oscillations 1.  Site Web: A-2010/Bienvenue_.htmlhttp://
Cours d’Econométrie de la Finance (Stat des choix de portf. IV 1-2)
Relativité d’un mouvement
SanMarco – Outil MicroStrategy Manuel d’utilisation sur les fonctionnalités 27 juillet 2015.
Pierre Joli Cours de Mathématique Pierre Joli
Première activité : Modélisation du système solaire
Tiré de: J.-M. Muller, Arithmétique des ordinateurs, Masson, 1989.
Thème 2 : Lois et modèles.
Micro Informatique au Cellier
Réalisé par : Ghilani Idriss Butadjine Oussama Rahmani Khaled
Semaine #1 INF130 par Frédérick Henri.
Proportions.
AIDE A L’UTILISATION DU LOGICIEL LATISPRO
Résumé de l’objectif de l’A.C.P.
Tir à l’arc Préambule — Note à l’attention de l’enseignant
Analyse en Composantes Principales A.C.P. M. Rehailia Laboratoire de Mathématiques de l’Université de Saint Etienne (LaMUSE).
Fonctions affines.
Exercices corrigés de statistiques
Précision d'une mesure et chiffres significatifs
PREMIERE PARTIE: De la gravitation à l’énergie mécanique
3ème Livre 1 Rappel.
S. Briot1 and V. Arakelian2 1 IRCCyN – Nantes 2 INSA – Rennes
Mouvement parabolique dans un champ de pesanteur uniforme
Simulation des nanostructures à base de nanorubans de graphène
Cyber-Sphinx Séance 2.
Calcul littéral 2.
Présentation de la séquence Positionnement dans l'année
Les tableaux.
Cyber-Sphinx Séance 2.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
Création Et Modification De La Structure De La Base De Données
Mécanique & objets techniques
Module: Logique Mathématique. SOMMAIRE 1- Notions d’ensembles 2- Constructions d’ensembles 3- Cardinal d’ensembles 4- Relations d’ensembles ordonnées.
Fonction rationnelle Chapitre 5.
Filtre en traitement du signal entrée filtre sortie e s h
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.
Points essentiels Cinématique; Position; Déplacement; Vitesse moyenne; Équation d’un mouvement rectiligne uniforme.
OPTIMISATION 1ère année ingénieurs
Simulation de robots en MATLAB
CINEMATIQUE DU POINT OBJECTIFS :
Modélisation des procédés
Cours de physique générale II Ph 12
Rappel (3): les étapes des tests statistiques
Etude de la commande du système à inertie
2.4 La loi de vitesse d’une réaction chimique
CalculmatricielCalculmatriciel. I. Matrices Définitions & notations :
Commande optimale de l'alunissage de Lunar Lander
Sous-échantillonner le signal audio pour compresser
Points essentiels Définition du travail; Énergie cinétique; Le théorème de l’énergie cinétique; Puissance.
Construire et utiliser un banc de filtres
7- Nouveaux services pédagogiques pour les élèves
La collecte d’informations Présenté par: Boudries. S.
Recherche de zero d'une fonction MARMAD ANAS MPSI -2.
Proposer, déployer et assurer la diffusion des procédures RH
Conception cartographique
Collaborateurs & managers
Sous-échantillonner le signal audio pour compresser
Commande par ordinateur
Exploiter la fonction fft(.) de Scilab
Type Tableau Partie 1 : Vecteurs
Oscillations libres des systèmes à deux degrés de liberté 1.
Oscillations libres des systèmes à deux degrés de liberté 1.
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, solutions Scilab de TD3

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) 29/11/2018

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 successives h : horizon de la commande y dépend de X0, Xh, et A 29/11/2018

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 : 29/11/2018

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, et que G est de rang complet 29/11/2018

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 et 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 car : 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. 29/11/2018

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 ? 29/11/2018

Pour simplifier : on fait le calcul pour le mouvement horizontal normalisé (c’est-à-dire e=1 ms-1kg-1, Te=1s) 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. 29/11/2018

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’); Matlab  Scilab %  // ss  syslin c2d  dscr num2str  string 29/11/2018

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) 29/11/2018

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") // //Scilab2text : a 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); 29/11/2018

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) 29/11/2018

Description du projet associé au cours Objectif : simuler les équations et la loi de commande d’un processus physique par un ordinateur Technologie : html5 et javaScript, Processing, … vtk ? Phaser? Effectifs : deux à trois élèves par groupe de projet Durée : les quatre séances de travaux dirigés à venir Scilab : discrétise le processus et calcule la loi de commande Sujet du projet (détails, cf. page suivante) Résultats demandés : Notice de l’application avec les équations, la loi de commande, l’utilisation Un exécutable Windows, ou une page html, ou … 29/11/2018

Description du projet associé au cours Cadre et contenu imposé du projet Choisir un processus physique linéaire d’ordre 1, 2, 2x2= 4 comme Lunar Lander, … Écrire les équations du processus sous la forme de commande de la représentation d’état. Discrétiser les équations du processus au besoin avec ou sans l’aide de Scilab Simuler la commande manuelle de la sortie du processus, i.e. on contrôle directement les entrées de commande avec le clavier, la souris, … Ajouter une loi de commande des sorties du processus: pour contrôler les sorties, on fixe maintenant une consigne pour le système bouclé avec le clavier, la souris, … Tester la stabilité, le temps de réponse, la précision du système bouclé Sur un tableau de bord, on affichera l’état du processus, le temps simulé, les entrées de commande la valeur maximum des entrées de commande, l’énergie de commande. [Selon le temps disponible : on ajoute une animation même rudimentaire pour augmenter le caractère ludique de la simulation, ainsi que des scores, des sons, et un jeu simple (réflexe, adresse, stratégie d’économie d’énergie, …) 29/11/2018

Exemple du projet de J. et A. Boursier (2012-13) 29/11/2018

Saisir ‘T’, cliquer pour construire la trajectoire point par point 29/11/2018