Comment poser Lunar Lander en boucle ouverte commande horizon fini ou en temps fini - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Comment poser Lunar Lander en boucle ouverte commande horizon fini ou en temps fini

Description:

Calculer la s quence des commandes appliquer pour rejoindre un tat ... Int grer une s quence des commandes calcul es par Matlab dans l'animation Lunar ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 17
Provided by: stro81
Category:

less

Transcript and Presenter's Notes

Title: Comment poser Lunar Lander en boucle ouverte commande horizon fini ou en temps fini


1
Comment poser Lunar Lander en boucle ouverte
(commande à horizon fini ou en temps fini)
Après cette 3ème séance, vous DEVEZ savoir
  • Poser le problème de la commande en boucle
    ouverte et à horizon fini.
  • Définir le coût de l'alunissage.
  • Définir la gouvernabilité dun processus.
  • Calculer la séquence des commandes à appliquer
    pour rejoindre un état final donné depuis un état
    initial donné.
  • Intégrer une séquence des commandes calculées par
    Matlab dans lanimation Lunar Lander et tester

2
Poser le problème de la commande en boucle
ouverte à horizon fini
  • On connaît léquation détat de Lunar Lander

  • On impose l'état initial X0, à linstant t0s, et
    l'état final XHX(HTe) à l'instant tHTe
    secondes.
  • Problème existe t'il une séquence de commandes
    aa0,a1,a2, aH-1 pour rejoindre XH depuis X0
    ?
  • a est le vecteur des commandes
  • H est lhorizon de la commande, HTe en est la
    durée

avec
3
Donner le principe de la solution.
Préciser les dimensions des matrices A, AH, B,
X, AB, G, a, y pour Lunar Lander
4
Évaluer le coût de la solution
  • Existe-t-il toujours une solution a à léquation
    yGa ?
  • Comment trouver si elle existe la solution a,
    séquence de commandes qui amène Lunar Lander de
    X0 à Xf en H périodes déchantillonnage
  • Et quel est le coût de cette commande ?
  • Maximum de commande (taille des réacteurs)
  • Intégrale de la commande (carburant consommé)

5
Comment alunir en temps minimal
  • Si G est carrée et inversible, il existe une
    solution unique
  • G est de rang n, ou de rang complet
  • yGa est une transformation bijective
  • c'est la réponse en temps minimal, la plus rapide
    possible
  • Application pour Lunar Lander la réponse en
    temps minimal dure 2 périodes déchantillonnage
    (car H2)

6
Appliquer au système à inertie (Te1s)
7
Prendre son temps pour alunir
  • si on augmente H, par exemple H3 périodes
    dé-chantillonnage au lieu de 2, léquation yGa
    devient
  • G nest plus inversible, par contre, si GGT est
    inversible, il y a au moins une solution
  • On dit que G est pseudo-inversible à droite,
    avec la matrice pseudo inverse de G

8
Comment savoir si G est (pseudo)inversible
  • G (n,m), avec mgtn, est (pseudo)inversible sil
    existe dans G
  • n vecteurs lignes linéairement indépendants, ou
  • n vecteurs colonnes linéairement indépendants
  • Dans ce cas, la matrice G est dite de rang n,
    ou de rang complet, G (cas mn) ou GGT (cas
    mgtn) sont inversibles, parce que
  • a ? yGa est une surjection de Rm dans Rn
  • GT définit alors une injection de Rn dans Rm
  • Et GGT est bijective dans Rn, elle est donc
    inversible

9
Résumer les solutions si G est de rang n
  • Si G est carrée, solution unique aG-1y
  • Si G est rectangulaire, infinité de solutions, de
    la forme apinv(G)y, où pinv(G) est une matrice
    pseudo inverse de G.
  • Cas particulier la pseudo inverse suivante
    (dite de More-Penrose) donne la solution a dont
    la norme est minimale

10
Quest ce quun processus gouvernable ?
  • Un processus est dit entièrement gouvernable
    quand on peut lamener de tout état Xinitial à
    tout état Xfinal en utilisant les entrées de
    commande.
  • Un processus est donc entièrement gouvernable si
    et seulement si la matrice G est de rang n, où n
    est lordre du processus.
  • G est la matrice de gouvernabilité du processus.

11
Appliquer au système à inertie avec Matlab
seance 3 sss(0,10,0,01,1 0,0) Te1
échantillonnage (s) sdc2d(s,Te) adget(sd,'a') bd
get(sd,'b') Gadbd, bd x01 0
xf00 ainv(G)(xf-(ad2)x0) x1adx0bda(1)
x2adx1bda(2) xx0,x1,x2 plot(x(1,),x(2,))
maxcomnum2str(max(abs(a))) carbunum2str(sum(ab
s(a)))Te Durenum2str(2Te) title(maxcom,
maxCom, carburant,carbu,
durée,dure) grid, xtitle(x),ytitle(dx/dt)
12
Augmenter H a un effet sur la commande
Ici on représente la trajectoire dans le plan de
phase (x, dx/dt)
13
Appliquer les commandes dans Lunar Lander
  • Nous avons regroupé dans un vecteur unique les
    commandes verticale et horizontale avec
    lattraction lunaire.
  • Les commandes à appliquer sont comx et comy

14
Comment Matlab communique à lanimation Lunar
Lander les commandes calculées
Le script matlab2Flash.m ci-dessous transforme
les lignes de K en chaînes de caractères
séparées par ,  et sauvées dans fileid
function matlab2Flash(K,fileid) transforme K
ligne par ligne en chaîne de caractères les
valeurs sont séparées par des virgules, puis
sauvées dans fileid KtK' pour lire ligne par
ligne Ksnum2str(K(1)) for k2size(K,1)size(K,2
), KsKs ',' num2str(Kt(k)) end fid
fopen(fileid,'w') fwrite(fid, Ks,
'char') fclose(fid)
15
Comment lanimation Lunar Lander utilise les
commandes calculées par Matlab
Flash lit le vecteur de commande I et lhorizon
nbu dans com.txt
var u_lvLoadVars new LoadVars() //crée un
chargeur u_lv.load("com.txt") // pour lire
com.txt //quand les valeurs sont chargées dans
la chaîne src u_lv.onData function(srcString)V
oid if (src ! undefined)
myLander.u src.split(",")
myLander.nbumyLander.u.length/2 else
trace("Unable to load com.txt file.")
Il faut prélever périodiquement 2 valeurs de u et
nbu fois. La variable n de Lander.as est remise
à zéro à chaque action sur le clavier, pour être
utilisée comme compteur temporel.
16
La structure de lanimation Lunar Lander
  • Les fichiers suivants sont inclus lors de la
    compilation
  • lunarLanderControl.as associé à la première
    image
  • Lander.as définit la classe qui crée l'objet
    myLander
  • CommandesClavier.as détection des touches du
    clavier, et association à une valeur de la
    variable modeControle
  • b est associée à modeControle 5 (commande
    boucle ouverte)
  • m est associée à modeControle0 (commande
    manuelle)
  • v est associée à modeControle2 (commande de la
    vitesse)
  • CommandeOrdinateur.as plusieurs lois de
    commandes, dans un bloc switch (modeControle)
  • Pour associer notre commande à la touche b, il
    faut donc ajouter au switch un bloc case 5.
  • On trouve lhorizon dans nbu, les commandes dans
    le tableau u,
  • La variable n est remise à zéro quand on presse
    le clavier et doit être incrémentée pour mesurer
    le temps durant la commande
Write a Comment
User Comments (0)
About PowerShow.com