Commande en boucle fermée et par retour d’état de l'alunissage de Lunar Lander Contenu du cours : Principe de la commande par retour d'état Effet de la discrétisation sur les valeurs propres Reproduire le temps de réponse d’une valeur propre réelle Reproduire le temps de croisement de deux valeurs propres complexes conjuguées Commande par retour d’état de la vitesse de Lunar Lander Comparaisons de deux retours d’état pour l’alunissage * document http://cours.polytech.unice.fr/intcom/4.seance/RetourEtat.ppt et script solution du TD 4-2012.doc : TD4RetourEtat.sce et TD4.sce. 14/04/2017
Principe de la commande par retour d’état À tout instant, le vecteur de commande est calculé à partir de la valeur du vecteur d’état retourné par les capteurs, et du vecteur d’état désiré, ou consigne. Soit l’équation d’état : Voici la loi de commande par retour d’état : Cn est la consigne, ou référence, de la commande Cn – Xn est l’erreur de commande K est la matrice de commande ou de gain du retour d’état il s’agit d’un système en boucle fermée, loi de commande+équation d’état, ou encore d’une contre réaction (feedback) 14/04/2017
Formulation du retour d'état pour Lunar Lander Ad- BdK est la matrice d’état du système bouclé BdK est la matrice de commande K est une matrice (2 lignes, 4 colonnes) Question : comment calculer K ? 14/04/2017
Calcul de K par placement des valeurs propres de la matrice d’état du système bouclé (pole mapping) Les valeurs propres vd de la matrice d’état, qui sont aussi les pôles de la fonction de transfert, ou encore les racines du polynôme caractéristique, déterminent le comportement dynamique d’un système en temps discret : La stabilité au sens EBSB (si |vd| < 1) La rapidité (plus la partie réelle de vd est faible en valeur absolue, et plus le temps de réponse est petit) Si vd=0, on obtient la réponse pile, réponse en temps fini ! La forme du régime transitoire : Une valeur propre vd réelle donne un régime transitoire apériodique Valeurs propres complexes conjuguées vd et vd* : régime sinusoïdal amorti On calcule K de façon à imposer les valeurs propres de Ad-BdK 14/04/2017
Effet de la discrétisation sur les valeurs propres Soit un processus en temps continu de matrice d’état A discrétisé à la période d’échantillonnage Te. On démontre que Ad, la matrice d’état du processus discrétisé vaut : En conséquence, on obtient les valeurs propres vd de la matrice Ad à partir des valeurs propres v de la matrice A en utilisant la relation : On utilise ce résultat pour reproduire dans un système discret le comportement dynamique connu d’un processus continu : Du premier ordre, c’est-à-dire doté d’une unique valeur propre v réelle Du second ordre, c’est-à-dire doté d’une paire de valeurs propres complexes conjuguées : v, v* 14/04/2017
Reproduction du comportement apériodique du premier ordre : une valeur propre réelle –a imposant un temps de réponse 3/a racine équation caractéristique racine équation caractéristique Quelle est la relation entre z et p ? 14/04/2017
Reproduction du comportement indiciel sinusoïdal amorti du second ordre : deux valeurs propres complexes conjuguées tc tr5% 14/04/2017
Étude de l’effet de l'amortissement réduit m et de la pulsation propre w0 sur le temps de réponse à 5% (en abscisse, on porte t/ w0 et non t) m tr5% 0.1 0.456 0.707 1 2 14/04/2017
Abaque en fonction de l’amortissement réduit m tracé par Matlab (on note qu’au minimum on a tr5%= 2.93/w0 et tc= 3.4/w0) 14/04/2017
Placement des pôles (valeurs propres) avec Scilab Après avoir déterminé les valeurs propres souhaitées pour la matrice d’état du système bouclé, il faut calculer la matrice K La fonction ‘ppol’ de Scilab calcule la matrice K telle que les valeurs propres de la matrice Ad-BdK sont celles d’un vecteur vp=[v1,v2,v3,v4] imposé. Restriction de ‘ppol’ : on doit appliquer ppol séparément pour les 2 entrées de commande de Lunar Lander. En fait K=[Kh,0,0;0,0,Kv] avec Kh=ppol(ad(1:2,1:2), bd(1:2,1), vz(1:2)); Kv=ppol(ad(3:4,3:4), bd(3:4,2), vz(3:4)); Application à la commande de la vitesse de Lunar Lander avec Matlab et la fonction ‘place’ (au lieu de ‘ppol’ en Scilab) 14/04/2017
Réglage de la commande en vitesse de Lunar Lander (saisir ‘v’ au clavier pour ce mode de contrôle) Les équations à considérer (d’ordre deux, donc plus simples): La discrétisation donne : La loi de commande est avec La matrice d’état est : Deux valeurs propres : Exemple : fixer des valeurs propres nulles : 14/04/2017
Calcul de la commande en vitesse de Lunar Lander avec deux valeurs propres nulles (réponse pile de durée Te) Pour calculer le gain K du retour d’état donnant la réponse pile, Matlab utilise la fonction place(.) car il y a plusieurs entrées de commandes. La fonction ltiview de Matlab calcule le retour à l'équilibre depuis l'état x0=[1;1]. mvide= 6839; mfuel=816.5; m= mvide + mfuel ve=4500; erg = ve/m; Te=0.04; A=zeros(2); B=[erg,0;0,erg]; C=eye(2); ll=ss(A,B,C,0); lld=c2d(ll,Te); ad=get(lld,'a') bd=get(lld,'b') % spécification des valeurs propres vecpol=[0 0] K=place(ad,bd,vecpol); % donne k1= 42.53, k2= 42.53 x0=[1;1]; sbf=ss(ad-bd*K, bd*K, C, 0, Te); ltiview('initial',sbf,x0) maxCom=max(K) % donne maxCom=42.53 14/04/2017
Calcul de la commande en vitesse de Lunar Lander avec deux valeurs propres réelles et non nulles : 0.5 et 0.75 mvide= 6839; mfuel=816.5; m= mvide + mfuel ve=4500; % vitesse éjection gaz erg = ve/m; Te=0.04; A=zeros(2); B=[erg,0;0,erg]; C=eye(2); ll=ss(A,B,C,0); lld=c2d(ll,Te); ad=get(lld,'a') bd=get(lld,'b') % choix des valeurs propres vecpol=[0.5, 0.75] K=place(ad,bd,vecpol); % donne k1= 21.27, k2= 10.63 x0=[1; 1]; initial(ss(ad-bd*K,bd*K,C,0,Te),x0) maxCom=max(K) % maxCom= 21.27 14/04/2017
Commande en vitesse de LL avec deux valeurs propres complexes conjuguées (m=sqrt(2)/2, w0=1rd/s) mvide= 6839; mfuel=816.5; m= mvide + mfuel ve=4500; erg = ve/m; Te=0.04; A=zeros(2); B=[erg,0;0,erg]; C=eye(1,2); ll=ss(A,B,C,0); lld=c2d(ll,Te); ad=get(lld,'a') bd=get(lld,'b') % calcul des valeurs propres pol=[-1+i, -1-i]*sqrt(2)/2 vecpol=exp(Te*pol) K=place(ad,bd,vecpol); % x0=[1;-1]; initial(ss(ad-bd*K,bd*K,C,0,Te),x0) maxCom=max(K) % maxCom = 1.206 14/04/2017
Alunissage avec des valeurs propres réelles, sur les deux axes horizontal et vertical, et tr5%=4s Saisir ‘e’ au clavier pour le mode retour d’état, Le fichier Kre.txt contient 8 valeurs : 0.33, 1.11, 0.0, 0.0, 0.0, 0.0, 0.33, 1.11 On impose quatre valeurs propres réelles, telles que tr5%=4s Qu’est ce qu’on constate ? 14/04/2017
Alunissage avec des valeurs propres complexes conjuguées, sur les axes horizontal et vertical, m=sqrt(2)/2 et tr5%=4s Scilab a trouvé la matrice K suivante : Il y a 8 valeurs dans le fichier Kre.txt, Les valeurs propres sont des paires complexes conjuguées avec tr5%=4s, w0=1 rd/s et m=sqrt(2)/2 Vérifier : le temps de croisement tc vaut 4.6s quand tr5% vaut 4s 14/04/2017