La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Polytech'Nice-Sophia, Départements S.I. et M.A.M., cours de 4 ème année. Commande par Ordinateur – séance 3 : Jean-Paul Stromboni, version février 2014.

Présentations similaires


Présentation au sujet: "Polytech'Nice-Sophia, Départements S.I. et M.A.M., cours de 4 ème année. Commande par Ordinateur – séance 3 : Jean-Paul Stromboni, version février 2014."— Transcription de la présentation:

1 Polytech'Nice-Sophia, Départements S.I. et M.A.M., cours de 4 ème année. Commande par Ordinateur – séance 3 : Jean-Paul Stromboni, version février 2014 Commande en boucle ouverte et à horizon fini de lalunissage de Lunar Lander Dans cette séance : problème de « gouvernabilité » de lalunissage 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 lanimation Lunar Lander Définition du projet associé au cours Commande par Ordinateur * pour retrouver cette présentation, ainsi que les scripts TD3Blin.sce et Scilab2Flash.scehttp://cours.polytech.unice.fr/intcom/3.seance

2 31/05/2014page 2 Problème de lalunissage de Lunar Lander en boucle ouverte et avec un horizon fini À linstant 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 dalunissage et la vitesse dimpact 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 : Sil existe une solution, quelque soient X0 et Xh, le processus dalunissage de Lunar Lander est entièrement gouvernable et h est lhorizon (fini) de lalunissage (de durée hTe)

3 31/05/2014page 3 Formulation mathématique du problème de gouvernabilité lors de lalunissage 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 X 0, X h, et A

4 31/05/2014page 4 Importance de la matrice de gouvernabilité G Il sagit de trouver un vecteur U de taille 2h vérifiant : G est la matrice dune application de R 2h dans R 4, et possède 4 lignes et 2h colonnes, soit g k le k ième vecteur colonne de G :

5 31/05/2014page 5 Conditions dexistence dune ou plusieurs solutions au problème de gouvernabilité de Lunar Lander Sil existe quatre vecteurs colonnes linéairement indépendants dans la matrice G, ces vecteurs forment une base de R 4, et il existe au moins une solution U : –soient ga, gb, gc et gd ces quatre vecteurs, –Doù 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

6 31/05/2014page 6 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 (GG T ) -1 existe (cf. démo ci-dessous) doù une solution du problème de gouvernabilité : Vérification : G+ est une pseudo inverse à droite de G : Démonstration de lexistence de (GG T ) -1 : –l'application U y= GU engendre R 4, et détermine une application surjective de R 2h dans R 4 : pour tout y, il existe au moins un vecteur U tel que y= GU. –Lapplication y U= G T y est une injection de R 4 dans R 2h : u = G T y et u = G T y 1 => y = y 1. –Lapplication : y x=GG T y est une bijection de R 4 (composition dune injection et dune surjection) et GG T est inversible C.Q.F.D.

7 31/05/2014page 7 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 dalunissage ? –Comment calculer le vecteur des commandes ? –Quest ce qui change pour le mouvement horizontal ?

8 31/05/2014page 8 Pour simplifier : on fait le calcul pour le mouvement horizontal normalisé (cest-à-dire =1 ms -1 kg -1, Te=1s) Note : pour le mouvement vertical, peu de modification, si ce nest quil faut retrouver la commande ay appliquée au réacteur vertical en ajoutant à la commande u le terme g lune /

9 31/05/2014page 9 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);

10 31/05/2014page 10 Que se passe til si l'horizon augmente ? h=3 puis h=6 Ici on représente la trajectoire dans le plan de phase (x, dx/dt)

11 31/05/2014page 11 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 dalunissage X0= [45;1;51;-1]; //état initial Xh = [0;0;0;0] // état dalunissage //é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)); end mputstr(Ks,fp); mclose(fp); end

12 31/05/2014page 12 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)

13 31/05/2014page 13 Description du projet associé au cours Objectif : créer une simulation de la commande dun processus physique par un ordinateur dans un jeu simple Technologie : Html5, Processing (lan 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 lapplication : équations, loi de commande, utilisation –Exécutable : windows, ou page html, ou …

14 31/05/2014page 14 Description du projet associé au cours Cadre et contenu imposé du projet –Choisir un processus physique dordre 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 dune consigne (poursuite dune consigne mobile, ou régulation dune 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. –LIHM 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 dun jeu (réflexe, adresse, stratégie déconomie dénergie), et selon le temps disponible, on ajoutera à lIHM une animation même rudimentaire pour augmenter le caractère ludique de la simulation, ainsi que des scores, des sons, …

15 31/05/2014page 15 Exemple du projet de J. et A. Boursier ( )

16 31/05/2014page 16 Saisir T, cliquer pour construire la trajectoire point par point


Télécharger ppt "Polytech'Nice-Sophia, Départements S.I. et M.A.M., cours de 4 ème année. Commande par Ordinateur – séance 3 : Jean-Paul Stromboni, version février 2014."

Présentations similaires


Annonces Google