6 Observateur d`état
Transcription
6 Observateur d`état
6. Observateur d’état des systèmes linéaires continus et discrets Chapitre 6 1 Observateur d’état 6.1. Problème a résoudre 6.2. Théorie générale des observateurs 6.3. Observateur d’ordre n (identité) 6.3.1. Calculs théoriques 6.3.2. Calcul de la matrice de transformation M 6.4. Application 6.4.1. Cahier des charges 6.4.2. Calcul de la commande modale 6.4.3. Calcul de l’observateur d’état 6.4.4. Calcul de la matrice M par la première méthode 6.4.5. Simulation 6.4.6. Synthèse 6.5. Observateur minimal de degré (n-1) 6.5.1. Calculs théoriques 6.5.2. Application 6.6. Observateur d'état discret 6.7. Chaîne de commande modale avec observateur d’état 6.8. Etude d’une chaine de commande 6.8.1. Cahier des charges 6.8.2. Commande modale 6.8.3. Observateur d’état 6.8.4. Mécanisation de la boucle de commande 6.8.5. Calcul de la fonction de transfert 6.1. PROBLEME A RESOUDRE Pour réaliser une commande modale il est nécessaire de disposer de toutes les composantes du vecteur d’état (Cf. §5.2). Or toutes elles ne sont pas toujours accessibles à la mesure (capteurs qui existent pas, mesures peu fiables et bruitées, difficultés d’accès aux grandeurs à mesurer, ..). Plusieurs solutions peuvent être envisagées pour reconstruire le vecteur d'état. • La solution qui consisterait à dériver la sortie y (t ) doit être exclue car toute dérivation accroît le bruit des signaux obtenus. • On peut encore imaginer de recourir à la simulation et d'élaborer un modèle du système S que l'on exciterait par la commande u (t ) . On exploiterait alors le vecteur d'état du modèle ainsi commandé. La mise en oeuvre de cette méthode suppose que l'identification de S soit parfaite (connaissance des matrices A et B et des conditions initiales x(t 0 ) ), ce qui n'est pratiquement pas réalisable. Par ailleurs cette solution ne tient pas compte des perturbations qui affectent le système réel. • La troisième voie repose sur la réalisation d'un modèle dynamique (l'observateur), qui sera commandé par u (t ) et la sortie y (t ) afin de corriger l'écart existant entre l'état réel x(t ) et l'état estimé xˆ (t ) qu’il est appelé à fournir. RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 6.2. 2 THEORIE GENERALE DES OBSERVATEURS Un observateur est un système dynamique capable de reproduire les états non mesurables d'un système S à partir de la connaissance des entrées et des sorties de ce système. A des fins de simplification les états mesurables sont inclus dans le vecteur de sortie. Soit le système continu S, complètement observable, régit par les équations : x& (t ) = Ax(t ) + Bu (t ) y (t ) = Cx(t ) L'observateur est défini par les équations suivantes : z& = αz + L1 y + L2u xˆ = γz + δy z = Tx + ε « z » est le vecteur d’état de l’observateur. La matrice « α » fixe la dynamique de l'observateur. Elle est choisie par le concepteur et constitue à ce titre une donnée du problème. Les critères retenus pour orienter le choix de α seront précisés ultérieurement. La mécanisation de l'observateur est donnée par le schéma suivant. L2 u x B + + 1/p C y + L1 + z 1/p + γ ^ x + + α A Système δ Observateur Résolvons le système d'équations : z& = Tx& + ε& = TAx + TBu + ε& z& = αz + L1 y + L2u = αTx + αε + L1Cx + L2u TAx + TBu + ε& = αTx + αε + L1Cx + L2 u La relation suivante doit être vérifiée ∀x et ∀u : (TA − αT − L1C ) x + (TB − L2 )u + (ε& − αε ) = 0 D'où les conditions : TA − αT = L1C ; TB = L2 ; dε / dt = αε RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 3 Ces conditions étant satisfaites on a de plus : z0 = Tx0 + ε0 z = Tx + Exp[α (t − t 0 )] ( z 0 − Tx0 ) ε = Exp[α (t − t 0 )] ( z0 − Tx0 ) L'équation TA − αT = L1C admet une solution si les matrices A et α n'ont pas de valeurs propres communes. La condition z0 = Tx0 est impossible à satisfaire car si on sait initialiser l’observateur on ne connaît pas l’état initial du processus. En fait la dynamique de l'observateur, caractérisée par les valeurs propres de la matrice α devra être plus rapide que celle du système afin que l'erreur ε (t ) entre les vecteurs z et Tx s'annule rapidement et puisse être considérée comme négligeable. Le choix de la dynamique de l'observateur doit nous conduire à la réalisation d'un observateur rapide tel que l’erreur d’estimation décroisse rapidement. Cela est obtenu par le placement des pôles de l’observateur bien à gauche des pôles du système observé dans le p-plan. Ce choix conduit à adopter une large bande passante pour l’observateur. Or, on se rappellera, qu'une bande passante trop large peut nuire au système en favorisant la transmission des bruits. Revenons au calcul de l'estimée xˆ (t ) de x(t ) : xˆ = γz + δy = γTx + δCx + γε ⎡T ⎤ xˆ = [γ δ ] ⎢ ⎥ x + γε ⎣C ⎦ En régime permanent ε = 0 aussi : ⎡T ⎤ δ] ⎢ ⎥ = In ⎣C ⎦ Pour que le produit de ces 2 matrices soit de rang n, il faut que chacune des matrices soit de rang n. ⎡T ⎤ rang[ γ δ ] ≥ n et rang ⎢ ⎥ ≥ n ⎣C ⎦ Le rang d’une matrice est limité par sa plus petite dimension. ⎡T ⎤ ⎡T ⎤ Le nombre de colonnes de T, égal à n, limite le rang de ⎢ ⎥ à n ⇒ rang ⎢ ⎥ = n ⎣C ⎦ ⎣C ⎦ [γ Dans le cas d'un système mono sortie C est un (n)-vecteur ligne, aussi le nombre minimal d'état de l'observateur est-il égal à (n –1). 6.3. OBSERVATEUR D’ORDRE n (IDENTITE) 6.3.1. CALCULS THEORIQUES Nous rechercherons un observateur tel que T = In (observateur identité). Dans ce cas : A − α = L1C B = L2 RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 4 Supposons que, par un changement de base de matrice de transformation M, on ait écrit la représentation d'état du système sous sa forme compagne pour l'observation (fco = forme tildée). x1 ⎤ ⎡ an −1 ⎤ ⎡ − bn −1 1 0 ... 0 0 ⎤ ⎡ ~ ⎢− b ⎥ ⎢ ⎥ ~ ⎥ ⎢ ⎢ n − 2 0 1 ... 0 0 ⎥ ⎢ x2 ⎥ ⎢an − 2 ⎥ ⎢ ... ... ... ... ... ...⎥ ~ ⎢ ... ⎥ ⎢ ... ⎥ ~ x& (t ) = ⎢ ⎥ x⎢ ⎥+⎢ ⎥ u (t ) 0 0 ... 1 0 ⎥ ⎢ ... ⎥ ⎢ ... ⎥ ⎢ − b2 ⎢ − b1 xn −1 ⎥ ⎢ a1 ⎥ 0 0 ... 0 1 ⎥ ⎢ ~ ⎢ ⎥ ⎢ ~ ⎥ ⎢ ⎥ 0 0 ... 0 0 ⎥⎦ ⎢⎣ xn ⎥⎦ ⎢⎣ a0 ⎥⎦ ⎢⎣ − b0 y (t ) = [1 0 0 ... 0 0]~ x (t ) et que la matrice dynamique de l’observateur α~ , soit également donnée sous cette forme canonique : ⎡ − α n −1 ⎢− α ⎢ n−2 ⎢ ... α~ = ⎢ ⎢ − α2 ⎢ − α1 ⎢ ⎢⎣ − α0 0⎤ 0 1 ... 0 0 ⎥⎥ ... ... ... ... ...⎥ ⎥ 0 0 ... 1 0 ⎥ 0 0 ... 0 1 ⎥ ⎥ 0 0 ... 0 0 ⎥⎦ 1 0 ... 0 ~ ~ Il vient d'après A − α~ = L1C ⎡ − bn −1 + α n −1 ⎢− b ⎢ n − 2 + αn − 2 ... ~ ~ ⎢ A − α~ = L1C = ⎢ ⎢ − b2 + α 2 ⎢ − b1 + α1 ⎢ ⎢⎣ − b0 + α0 0⎤ 0 0 ... 0 0 ⎥⎥ ... ... ... ... ...⎥ ⎥ 0 0 ... 0 0 ⎥ 0 0 ... 0 0 ⎥ ⎥ 0 0 ... 0 0 ⎥⎦ 0 0 ... 0 ~ Sachant que C = [1 0 ... 0] , il vient : ⎡ l1,1 ⎤ ⎡ − bn −1 + α n −1 ⎤ ⎢ l ⎥ ⎢ ⎥ ⎢ 2 ,1 ⎥ ⎢− bn − 2 + α n − 2 ⎥ ⎢ ... ⎥ ⎢ ⎥ ... L1 = ⎢ ⎥=⎢ ⎥ ⎢l n − 2 ,1 ⎥ ⎢ − b2 + α 2 ⎥ ⎢ l n −1,1 ⎥ ⎢ − b1 + α1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎣⎢ l n,1 ⎦⎥ ⎣⎢ − b0 + α 0 ⎦⎥ RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 5 6.3.2. CALCUL DE LA MATRICE DE TRANSFORMATION M M permet d'obtenir la forme compagne pour l'observation. x = M~ x ⎫ ⎪ ~ ~ −1 Abo = M Abo M ⎪ ⎧⎪ Abo M = MAbo ⎬ ⇒ ⎨ ~ ~ Bbo = M −1Bbo ⎪ ⎪⎩ Bbo = MBbo ~ ⎪ Cbo = Cbo M ⎭ a. Première méthode Pour résoudre ce problème, on applique les principes évoqués au §4.4. concernant le système dual. On détermine la matrice P selon la méthode indiquée ci-dessous. x& (t ) = Abo x(t ) + BboVe(t ) Dual y (t ) = Cbo x(t ) T T ⎧⎪ξ&(t ) = Abo ξ (t ) + Cbo υ (t ) ⎨ T ⎪⎩ψ (t ) = Bbo ξ (t ) ⇒ P = [ p1 A déterminer M = [m1 m2 ... mn ] ⇓ P = ( M −1 )T ~ ~ ~ x& (t ) = Abo x(t ) + BboVe(t ) ~ y (t ) = Cbo x(t ) Dual ~ x = M~ x ⎫ ⎪ ~ ~ −1 Abo = M Abo M ⎪ ⎧⎪ Abo M = MAbo ⎬⇒⎨ ~ ~ Bbo = M −1Bbo ⎪ ⎪⎩ Bbo = MBbo ~ ⎪ Cbo = Cbo M ⎭ ~T Abo ~T Cbo ~T Bbo pn ] = [ p1 p2 ... pn ] et compte tenu de la forme p2 ... ⎡1 ⎤ ⎢0⎥ pn ]⎢ ⎥ = p1 ⎢...⎥ ⎢ ⎥ ⎣0⎦ p2 ... ⎡− bn −1 − bn − 2 ... − b0 ⎤ ⎢ 1 0 ... 0 ⎥⎥ ⎢ pn ] ⎢ ... ... ... 0 ⎥ ⎥ ⎢ ... 1 0 ⎦ ⎣ 0 ~T T Abo P = PAbo p2 ... ⎫ ⎪ ~T T T ⎧⎪ Abo = P −1 Abo P⎪ P = PAbo ⇒⎨ ~T T ⎬ T = P −1Cbo ⎪⎩Cbo = PCbo ⎪ ⎪ T = Bbo P ⎭ ξ = Pξ En explicitant les n colonnes de P = ( M −1 )T = [ p1 compagne recherchée on a : T [ p1 Abo ⇓ ⎧⎪ξ~& = ( P −1 AT P)ξ~ + ( P −1C T )ν bo bo ⎨ ~ T ⎪⎩ψ = ( Bbo P)ξ ⇒ T Cbo = [ p1 pn ] p2 ... Par identifications successives des colonnes on obtient : RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets [ 6 ] ATbo p1 = −bn −1 p1 + p2 ⇒ p2 = ATbo + bn −1I p1 ATbo p2 = −bn − 2 p1 + p3 ⇒ p3 = ( ATbo ) 2 + bn −1 ATbo + bn − 2 I p1 .... [ .... ATbo pn −1 = −b1 p1 + pn ⇒ ] [ ] pn = ( ATbo ) n + bn −1 ( ATbo ) n −1 + ... + b0 I p1 Dès lors que l’on connaît P on obtient M puisque P = ( M −1 )T b. Seconde méthode : Il est possible de calculer la matrice M à partir des matrices d'observabilité. ⎡ C ⎤ ⎢ CA ⎥ ⎥ ⎢ O = ⎢ CA2 ⎥ ⎥ ⎢ ⎢ ... ⎥ ⎢⎣CAn −1 ⎥⎦ ~ ⎡ C ⎤ ⎡ CM ⎤ ⎡ C ⎤ ⎢ ~~ ⎥ ⎢ ⎥ ⎢ CA ⎥ −1 CMM AM CA ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ ~ ~~ O = ⎢ CA 2 ⎥ = ⎢CMM −1 AMM −1 AM ⎥ = ⎢ CA2 ⎥ .M = O.M ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ ... ⎢ ... ⎥ ⎢ ⎥ ⎢ ... ⎥ ~ n −1 ⎥ ⎢ ⎢C~A ⎥⎦ ⎢⎣CAn −1 ⎥⎦ CAn −1M ⎣ ⎦ ⎣ Ainsi : ~ M = O −1.O 6.4. APPLICATION 6.4.1. CAHIER DES CHARGES Soit le système S caractérisé par : Abo ⎡− 1 0 1⎤ = ⎢⎢ 0 1 1⎥⎥ ⎢⎣ 1 2 1⎥⎦ Bbo ⎡1⎤ = ⎢⎢− 1⎥⎥ ⎢⎣− 1⎥⎦ Cbo = [1 0 0] Au § 5.6 de ce cours nous avons calculé une commande modale permettant de stabiliser le processus S, qui est intrinsèquement instable, en fixant les pôles de la boucle fermée à −1, −2 et −3. Déterminons l'observateur identité ( T = I 3 ) dont la dynamique est caractérisée par le pôle triple p = −5 . 6.4.2. CALCUL DE LA COMMANDE MODALE RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 7 Fichier « .m » Résultats % RE_chap6_obs_m1 % ---------------% REPRESENTATION D'ETAT % Cours Au 43 - Chapitre 6 % Réalisé par M. JL Cougnon % ------------------------clear all;clc % Définition du système Sbo % bo = boucle ouverte Abo=[-1 0 1; 0 1 1; 1 2 1]; Bbo=[1;-1;-1]; Cbo=[1 0 0];Dbo=0; polcar_Abo=poly(Abo) poles_bo=eig(Abo) ss_sys_bo=ss(Abo,Bbo,Cbo,Dbo); zpk_sys_bo=zpk(ss_sys_bo) % % ---------------------------% CALCUL DE LA COMMANDE MODALE % ---------------------------% Cf. chapitre 5 (RE_chap5_m1) % Calcul de la matrice G G=ctrb(Abo,Bbo); rG=rank(G) % Définition de Sbo dans la forme fcc Afcc_bo=[0 1 0; 0 0 1; -polcar_Abo(4) -polcar_Abo(3) -polcar_Abo(2)]; Bfcc_bo=[0;0;1]; % Calcul de Gfcc Gfcc=ctrb(Afcc_bo,Bfcc_bo); % Calcul de la matrice M Mfcc=G*inv(Gfcc) % Définition de Sbf admettant les % des poles égaux à -1, -2 et -3 poles_bf=[-1 -2 -3]; polcar_bf=poly(poles_bf) Afcc_bf=[0 1 0; 0 0 1; -polcar_bf(4) -polcar_bf(3) -polcar_bf(2)]; Bfcc_bf=[0;0;1]; % Calcul de Kfcc BfccKfcc=Afcc_bf-Afcc_bo; Kfcc=BfccKfcc(3,:); % Calcul de K K=Kfcc*inv(Mfcc) % Pour obtenir un gain statique égal à 1 V=-3; % RE_chap6_observateur d'état Mis à jour le 07/04/2006 polcar_Abo = 1.0000 -1.0000 -4.0000 0.0000 poles_bo = 2.5616 -1.5616 0.0000 Zero/pole/gain: (s+0.5616) (s-3.562) ------------------------s (s-2.562) (s+1.562) rG = 3 Mfcc = -2.0000 -3.0000 1.0000 2.0000 -1.0000 -1.0000 -2.0000 -1.0000 -1.0000 polcar_bf = 1 6 11 K= 2.0000 6 4.0000 5.0000 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 8 6.4.3. CALCUL DE L’OBSERVATEUR D’ETAT % % -----------------------------% CALCUL DE L'OBSERVATEUR D'ETAT % -----------------------------% Observateur identité T = I % Le polcar de l'observateur est (p+5)^3 % Le polcar de S est égal à polcar_Abo % Vérifions l'observabilité du processus O=obsv(Abo,Cbo); rO=rank(O) % % "fco" du processus Afco_bo=[-polcar_Abo(2) 1 0; -polcar_Abo(3) 0 1; -polcar_Abo(4) 0 0]; Cfco_bo=[1 0 0]; % % Matrice d'observabilité dans la base fco Ofco=obsv(Afco_bo,Cfco_bo); % Matrice M de passage à la base fco Mfco=inv(O)*Ofco Bfco=inv(Mfco)*Bbo; % Vérifions ce résultat [Afco_bo,Bfco_bo,Cfco_bo,Dfco_bo,]=ss2ss(Abo, Bbo,Cbo,Dbo,inv(Mfco)) % % Polynome caractéristique de l'observateur polcar_obs=conv([1 5],conv([1 5],[1 5])); % Calcul de l'observateur alpha=[-polcar_obs(2) 1 0; -polcar_obs(3) 0 1; -polcar_obs(4) 0 0]; L1=Afco_bo(:,1)-alpha(:,1) L2=Bfco % % Description de l'observateur Aobs=alpha; Bobs=[L2 L1]; Cobs=Mfco; Dobs=[0 0;0 0;0 0]; ss_obs=ss(Aobs,Bobs,Cobs,Dobs) zpk_obs=zpk(ss_obs); rO = 3 Mfco = 1.0000 1.5000 2.0000 0 0.5000 1.0000 0 0.5000 0 Afco_bo = 1.0000 1.0000 0 4.0000 0.0000 1.0000 -0.0000 -0.0000 -0.0000 Bfco_bo = 1.0000 -3.0000 -2.0000 Cfco_bo = 1 0 0 Dfco_bo = 0 L1 = 16 79 125 L2 = 1.0000 -3.0000 -2.0000 a= x1 x2 x3 x1 -15 1 0 x2 -75 0 1 x3 -125 0 0 b= u1 u2 x1 1 16 x2 -3 79 x3 -2 125 c= x1 x2 x3 y1 1 0 0 y2 1.5 0.5 0.5 y3 2 1 0 d= u1 u2 y1 0 0 y2 0 0 y3 0 0 Continuous-time model. RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 6.4.4. CALCUL DE LA MATRICE M 9 PAR LA PREMIERE METHODE a. Equations T Cbo = [ p1 p2 ... ~T T Abo P = PAbo T Abo [ p1 ⎡1⎤ ⎢0⎥ pn ]⎢ ⎥ = p1 ⎢...⎥ ⎢ ⎥ ⎣0⎦ pn ] = [ p1 p2 ... p2 ... ⎡− bn −1 − bn − 2 ... − b0 ⎤ ⎢ 1 0 ... 0 ⎥⎥ pn ]⎢ ⎢ ... ... ... 0 ⎥ ⎢ ⎥ ... 1 0 ⎦ ⎣ 0 b. Calcul de P T p1 = Cbo ⎡1⎤ ⎢0⎥ =⎢ ⎥ ⎢...⎥ ⎢ ⎥ ⎣0⎦ ⎡− 1 0 1 ⎤ ⎢ 0 1 2⎥[ p ⎢ ⎥ 1 ⎢⎣ 1 1 1 ⎥⎦ p2 p3 ] = [ p1 ⎡1 4 0 ⎤ p3 ]⎢⎢1 0 0⎥⎥ ⎢⎣0 1 0⎥⎦ p2 Par identifications successives des colonnes on obtient : ⎡− 1 0 1⎤ ⎡ − 1 0 1 ⎤ ⎡1 ⎤ ⎡1 ⎤ ⎡ − 2 ⎤ ⎢ 0 1 2 ⎥ p = p + p ⇒ p = ⎢ 0 1 2 ⎥ ⎢0 ⎥ − ⎢0 ⎥ = ⎢ 0 ⎥ 1 2 2 ⎢ ⎥ 1 ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣ 1 1 1 ⎥⎦ ⎢⎣ 1 1 1 ⎥⎦ ⎢⎣0⎥⎦ ⎢⎣0⎥⎦ ⎢⎣ 1 ⎥⎦ ⎡− 1 0 1⎤ ⎡− 1 0 1 ⎤ ⎡− 2⎤ ⎡4⎤ ⎡− 1⎤ ⎢ 0 1 2⎥ p = 4 p + p ⇒ p = ⎢ 0 1 2⎥ ⎢ 0 ⎥ − ⎢0 ⎥ = ⎢ 2 ⎥ 1 3 3 ⎢ ⎢ ⎥ 2 ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣ 1 1 1 ⎥⎦ ⎢⎣ 1 1 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ ⎢⎣0⎥⎦ ⎢⎣− 1⎥⎦ ⎡1 − 2 − 1⎤ 2 ⎥⎥ P = ⎢⎢0 0 ⎢⎣0 1 − 1⎥⎦ ⇒ RE_chap6_observateur d'état [ ] M= P −1 T 0 0⎤ ⎡1 ⎢ = ⎢1,5 0,5 0,5⎥⎥ ⎢⎣ 2 1 0 ⎥⎦ Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 10 6.4.5. SIMULATION a. Programme % % ---------% SIMULATION % ---------% Valeurs initiales des variables d'état. % A ajuster selon le besoin disp('Les conditions initiales du processus') disp('ne sont pas connues de l''observateur') disp('Elles donnent une erreur d''estimation') disp('qui s''annule selon la dynamique de l''observateur') x0=[-0.05;0;0] tsim=6;D=[0;0;0];I=eye(3); % On lance la simulation sim('RE_chap6_obs_mdl1') figure(1);plot(t,x1,t,x2,t,x3);grid title('Vecteur d''état du processus compensé') figure(2);plot(t,eps1,t,eps2,t,eps3);grid title('Erreurs d''estimation dues au conditions initiales') % Continuous-time model. Les conditions initiales du processus ne sont pas connues de l'observateur Elles donnent une erreur d'estimation qui s'annule selon la dynamique de l'observateur x0 = -0.0500 0 0 b. Schéma Simulink eps1 Commande u(t) x' = Ax+Bu 3 y = Cx+Du 2 x' = Ax+Bu 3 y = Cx+Du V Entrée Gain pour ajustage du gain statique Processus [Abo],[Bbo], [I3],[0;0;0] 3 erreur x1 eps2 observateur [alpha], [L2 L1], [Mfco], [0 0;0 0;0 0] K*u [Cbo[ erreur x2 eps3 erreur x3 Sortie y(t) Sortie K* u Commande modale 3 3 em Erreurs estimation 3 Vecteur d'état estimé t Horloge Temps 3 x1 x1 3 x2 Vecteur d'étét du processus x2 3 em x3 x3 RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 11 c. Résultats des simulations Vecteur d'état du processus compensé Erreurs d'estimation dues au conditions initiales 1.5 0.15 0.1 1 0.05 0 0.5 -0.05 -0.1 0 -0.15 -0.2 -0.5 -0.25 -1 0 1 2 3 4 5 -0.3 6 0 1 2 3 4 5 6 6.4.6. SYNTHESE La représentation d'état du système dans la nouvelle base est donnée par : ⎡1 1 0⎤ ⎡1 ⎤ ⎢ ⎥ ~ x& = ⎢4 0 1⎥ ~ x + ⎢⎢ − 3⎥⎥ u ⎢⎣0 0 0⎥⎦ ⎢⎣− 2⎥⎦ L'équation caractéristique de l'observateur est : et y = [1 0 0] ~ x ( p + 5) 3 = p 3 + 15 p 2 + 75 p + 125 ⎡ − 15 1 0⎤ ~ α = ⎢⎢ − 75 0 1⎥⎥ ⎢⎣− 125 0 0⎥⎦ ⎡ 16 ⎤ L1 = ⎢⎢ 79 ⎥⎥ ⎢⎣125⎥⎦ ⎡1 ⎤ ~ ⎢ ⎥ L2 = B = ⎢ − 3⎥ ⎢⎣− 2⎥⎦ ~ ~ L'observateur détermine ~z = xˆ et l'on obtient x̂ à partir de xˆ = Mxˆ . 1 -3 -2 u 1 -1 -1 y x + + 1/p 100 -1 0 1 0 1 1 1 2 1 + + 1/p Μ ^ x + -15 1 0 -75 0 1 -125 0 0 Système RE_chap6_observateur d'état 16 79 125 Observateur Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 6.5. 12 OBSERVATEUR MINIMAL DE DEGRE (n-1) 6.5.1. CALCULS THEORIQUES Le système est mono sortie de dimension n. Dans y (t ) = Cx(t ) , C est un (n)-vecteur et la ⎡T ⎤ relation rang ⎢ ⎥ = n permet d'envisager de choisir la matrice T de dimension [(n − 1) x n] . ⎣C ⎦ Admettons que la représentation d'état du système soit sous sa forme compagne pour ~ ~ ~ l'observation ( A, B et C = [1 0 ... 0] ). L'observateur cherché est de degré (n − 1) . Sa dynamique sera caractérisée par la matrice d'évolution α. Posons : ⎡ − αn − 2 ⎢− α ⎢ n −3 ~ α = ⎢ ... ⎢ ⎢ − α1 ⎢⎣ − α0 ... 0 ⎤ 0 1 ... 0 ⎥⎥ ... ... ... ...⎥ [dimension (n − 1) x (n − 1) ] ⎥ 0 0 ... 1 ⎥ 0 0 ... 0 ⎥⎦ 1 0 ~ ~ Parmi le choix infini de solutions possibles pour T vérifiant la relation TA − α~T = L1C on peut adopter celle préconisée par LUENBERGER qui consiste à poser : ⎡− αn − 2 1 0 ... 0 ⎤ ⎢− α ⎥ ⎢ n −3 0 1 ... 0 ⎥ T = ⎢ ... ... ... ... ...⎥ [dimension (n − 1) x n] ⎢ ⎥ 0 0 ... 0 ⎥ ⎢ − α1 ⎢⎣ − α0 0 0 ... 1 ⎥⎦ ~ ~ En développant la relation TA − α~T = L1C on obtient : Lk ,1 = α n − k −1 (an −1 − α n − 2 ) − an − k −1 + α n − k − 2 Ln −1,1 = α 0 (an −1 − α n − 2 ) − a0 Par ailleurs [δ [δ ⎡C ⎤ γ ]⎢ ⎥ = In T ⎣ ⎦ ⎡ 1 ⎢ −1 ⎢ − α n − 2 ⎡C ⎤ γ ] = ⎢ ⎥ = ⎢− α n −3 ⎢ ⎣T ⎦ ⎢ ... ⎢⎣ − α 0 ⎡ 1 ⎤ ⎢α ⎥ ⎢ n−2 ⎥ δ = ⎢ ... ⎥ ⎥ ⎢ ⎢ α1 ⎥ ⎢⎣ α 0 ⎥⎦ RE_chap6_observateur d'état 0 0 ... 0⎤ 1 0 ... 0⎥⎥ 0 1 ... 0⎥ ⎥ 0 0 ... 0⎥ 0 0 ... 1⎥⎦ ⎡0 ⎢1 ⎢ γ = ⎢... ⎢ ⎢0 ⎢⎣ 0 −1 ⎡ 1 ⎢α ⎢ n−2 = ⎢α n − 3 ⎢ ⎢ ... ⎢⎣ α 0 0 ... 0 0 ... 0 ... ... ... 0 ... 1 0 ... 0 Mis à jour le 07/04/2006 0 0 ... 0⎤ 1 0 ... 0⎥⎥ 0 1 ... 0⎥ ⎥ 0 0 ... 0⎥ 0 0 ... 1⎥⎦ 0⎤ 0 ⎥⎥ ...⎥ ⎥ 0⎥ 1 ⎥⎦ Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 13 6.5.2. APPLICATION Soit le système S caractérisé par : ⎡−1 0 1⎤ A = ⎢⎢ 0 1 1⎥⎥ ⎢⎣ 1 2 1⎥⎦ ⎡1⎤ B = ⎢⎢−1⎥⎥ ⎢⎣−1⎥⎦ C = [1 0 0] Calculons l'observateur d'ordre 2 dont la dynamique est caractérisée par un pôle double p = −5. Son polynôme caractéristique est : ( p + 5) 2 = p 2 + 10 p + 25 ⎡ − 10 1⎤ Soit α~ = ⎢ ⎥. ⎣− 25 0⎦ Fichier « .m » Résultats % % RE_chap6_obs_m2 % ---------------% REPRESENTATION D'ETAT % Cours Au 43 - Chapitre 6 % Observateur de degré minimal (n-1) % Réalisé par M. JL Cougnon % ------------------------clear all;clc % ------------------------% DEFINITION DU PROCESSUS S % ------------------------Abo=[-1 0 1; 0 1 1; 1 2 1]; Bbo=[1;-1;-1]; Cbo=[1 0 0];Dbo=0; polcar_Abo=poly(Abo) O=obsv(Abo,Cbo); % % "fco" du processus S Afco_bo=[-polcar_Abo(2) 1 0; -polcar_Abo(3) 0 1; -polcar_Abo(4) 0 0]; Cfco_bo=[1 0 0]; % Matrice d'observabilité dans la base fco Ofco=obsv(Afco_bo,Cfco_bo); % Matrice M de passage à la base fco Mfco=inv(O)*Ofco Bfco=inv(Mfco)*Bbo; % Vérifions ce résultat [Afco_bo,Bfco_bo,Cfco_bo,Dfco_bo,]=ss2ss(Abo,B bo,Cbo,Dbo,inv(Mfco)) % RE_chap6_observateur d'état Mis à jour le 07/04/2006 polcar_Abo = 1.0000 -1.0000 -4.0000 Mfco = 1.0000 1.5000 2.0000 0 0.5000 1.0000 0.0000 0 0.5000 0 Afco_bo = 1.0000 1.0000 0 4.0000 0.0000 1.0000 -0.0000 -0.0000 -0.0000 Bfco_bo = 1.0000 -3.0000 -2.0000 Cfco_bo = 1 0 0 Dfco_bo = 0 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets % % ----------------------% CALCUL DE L'OBSERVATEUR % ----------------------% Polynome caractéristique de l'observateur polcar_obs=conv([1 5],[1 5]); % Calculons l'observateur d'ordre 2 alpha=[-polcar_obs(2) 1; -polcar_obs(3) 0]; T=[alpha [0;1]] CT=[Cfco_bo;T] % On obtient les matrices Delta et Gamma DG=inv(CT) Delta=DG( :,1) Gamma=DG( :,2:3) % Calculons L1 L1Cfco=T*Afco_bo-alpha*T; L1=L1Cfco(:,1) % Calculons L2 L2=T*Bfco_bo % 14 T= -10 -25 1 0 0 1 CT = 1 -10 -25 0 1 0 0 0 1 DG = 1 10 25 0 1 0 0 0 1 Delta = 1 10 25 Gamma = 0 0 1 0 0 1 L1 = -81 -275 L2 = -13 -27 % % ---------% SIMULATION % ---------% Commande modale K=[2 4 5]; V=-3; % Description de l'observateur Aobs=alpha; Bobs=[L2 L1]; I2=eye(2); Dobs=[0 0;0 0]; ss_obs=ss(Aobs,Bobs,I2,Dobs) zpk_obs=zpk(ss_obs); % % Valeurs initiales des variables d'état. % A ajuster selon le besoin disp('Les conditions initiales du processus') disp('ne sont pas connues de l''observateur') disp('Elles donnent une erreur d''estimation') disp('qui s''annule selon la dynamique de l''observateur') x0=[-0.05;0;0] ; tsim=4;D=[0;0;0];I3=eye(3); % On lance la simulation sim('RE_chap6_obs_mdl2') figure(3);plot(t,x1,t,x2,t,x3);grid title('Vecteur d''état du processus compensé') figure(4);plot(t,eps1,t,eps2,t,eps3);grid title('Erreurs d''estimation dues au conditions initiales') RE_chap6_observateur d'état Mis à jour le 07/04/2006 a= x1 x2 x1 -10 1 x2 -25 0 b= u1 u2 x1 -13 -81 x2 -27 -275 c= x1 x2 y1 1 0 y2 0 1 d= u1 u2 y1 0 0 y2 0 0 Continuous-time model. Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 15 Observateur -13 -27 u -81 -275 100 1/p + + + y x 1 -1 -1 1/p + + -1 0 1 0 1 1 1 2 1 Entrée Gain pour e(t) ajustage du gain statique 3 K*u 3 K*u x' = Ax+Bu 2 y = Cx+Du eps1 [GD] Observateur [alpha], [L2 L1] [I2], [0 0;0 0] x(t) Processus [Abo],[Bbo], [I3],[0;0;0] Μ 1 10 25 2 3 ^x -10 1 -25 0 Commande u(t) V + + Système x' = Ax+Bu 3 y = Cx+Du 0 0 1 0 0 1 3 eps2 K*u [Mfco] erreur x2 eps3 Sortie y(t) [Cbo] erreur x1 3 erreur x3 Sortie 3 K* u Commande modale [K]=[2 4 5] 3 3 3 em Vecteur d'état estimé Erreurs estimation x1 3 t Horloge x1 Vecteur d'état du processus Temps x2 x2 3 em x3 x3 Erreurs d'estimation dues au conditions initiales Vecteur d'état du processus compensé 0.4 1.5 0.2 1 0 0.5 -0.2 -0.4 0 -0.6 -0.5 -0.8 -1 0 0.5 1 1.5 2 RE_chap6_observateur d'état 2.5 3 3.5 4 -1 0 Mis à jour le 07/04/2006 0.5 1 1.5 2 2.5 3 3.5 4 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 6.6. 16 OBSERVATEUR D'ETAT DISCRET Evidemment les résultats précédents établis à partir de la représentation interne des systèmes continus sont transposables pour la commande modale et la reconstruction d'état des systèmes discrets. Cependant nous présenterons ce problème à partir d'une approche différente qui est bien entendu directement utilisable pour l'étude des estimateurs continus. Soit l'équation vectorielle d'un processus discret : xk +1 = Axk + Bu k y k = Cxk Afin de pouvoir utiliser directement les résultats établis pour les systèmes continus on a conservé la notation adoptée pour la représentation d'état des systèmes continus. Ainsi les matrices A et B correspondent aux matrices F et H. Considérons l'observateur identité (T= I) étudié au § 6.4.1. z k = xˆ k = xk + ε k A − α = L1C B = L2 L'équation de l'observateur est : xˆk +1 = αxˆk + L1 yk + L2uk = ( A − L1C ) xˆk + L1 yk + Buk xˆk +1 = Axˆk + Buk + L1 ( yk − yˆ k ) On reconstruit l'état x(t) à partir d'un modèle du processus corrigé par une comparaison entre la mesure de la sortie du processus réel et celle du modèle. L'erreur d'estimation évolue selon la dynamique imposée par la matrice ( A − L1C ) puisque : ε k = xˆ k − xk ε k +1 = ( A − L1C )ε k La détermination de L1 s'effectue selon : • la méthode dite par « allocation de pôles » ; • une approche optimale qui consiste à minimiser l'espérance mathématique de l'erreur E ( ε Tk ε k ) en tenant compte des bruits qui affectent l'état et les sorties du processus; il s'agit du filtre de KALMAN. RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 17 ^x k B uk B retard xk + + C + yk L1 + C retard + A A Système + _ y^k Observateur Précisons l'impact de l'observateur sur la dynamique du système en boucle fermée. xk +1 = Axk + Bu k Le processus est caractérisé par : yk = Cxk xˆ k +1 = ( A − L1C ) xˆ k + L1 y k + Bu k ε k = xˆ k − xk L'observateur est défini par : ε k +1 = ( A − L1C )ε k La commande modale répond à l'équation : u k = ek + Kxˆ k Plaçons nous en mode régulateur ek = 0 xk +1 = Axk + BKxˆk = Axk + BK ( xk + ε k ) = ( A + BK ) xk + BKε k ε k +1 = ( A − L1C )ε k ⎡ xk +1 ⎤ ⎡( A + BK ) ⎢ε ⎥ = ⎢ 0 ⎣ k +1 ⎦ ⎣ BK ⎤ ⎡ xk ⎤ A − L1C ⎥⎦ ⎢⎣ε k ⎥⎦ L'équation caractéristique de l'ensemble « commande modale-observateur » est égale à : det[zI − (A + BK)] det[zI − (A − L1C )] Ainsi les modes de l'observateur se superposent aux modes du système compensé. Cependant on vérifie que les modes de l’observateur ne sont pas vus de la sortie puisque la matrice de transfert est donnée par : T ( z ) = C [zI − (A + BK)]−1 B RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 6.7. 18 CHAINE DE COMMANDE MODALE AVEC OBSERVATEUR D’ETAT On raisonnera sur un observateur continu. On utilise l'état reconstruit pour réaliser une boucle de commande modale. x& (t ) = Ax(t ) + Bu (t ) y = Cx(t ) Le processus est caractérisé par : z& (t ) = αz (t ) + L1 y (t ) + L2u (t ) xˆ (t ) = γz (t ) + δy (t ) L'observateur est défini par : z (t ) = Tx (t ) + ε (t ) TA − αT = L1C L'observateur vérifie les équations : TB = L2 ε& = αε et [γ ⎡T ⎤ δ ]⎢ ⎥ = In C ⎣ ⎦ ε (t ) = −Tx(t ) + z (t ) L'erreur d'estimation d'état est : ⎡ x⎤ ⎡ I ⎢ z ⎥ = ⎢T ⎣ ⎦ ⎣ 0⎤ ⎡ x ⎤ ⎡ x⎤ ⎡ I .⎢ ⎥ ⇔ ⎢ ⎥ = ⎢ ⎥ I ⎦ ⎣ε ⎦ ⎣ε ⎦ ⎣− T 0⎤ ⎡ x ⎤ . I ⎥⎦ ⎢⎣ z ⎥⎦ u (t ) = e(t ) + Kxˆ (t ) La commande modale répond à l'équation : x& = Ax + Be + BKγz + BKδCx z& = αz + L1Cx + L2e + L2 Kγz + L2 KδCx ( BKγ ) ⎤ ⎡ x ⎤ ⎡ B ⎤ ⎡ x& ⎤ ⎡ (A + BKδC ) = ⎢ z& ⎥ ⎢(L C + L KδC ) (α + L Kγ )⎥ ⎢ z ⎥ + ⎢ L ⎥ e ⎣ ⎦ ⎣ 1 2 2 ⎦⎣ ⎦ ⎣ 2 ⎦ En tenant compte des relations qui définissent l'observateur on obtient : ⎡ x& ⎤ ⎡ I ⎢ε& ⎥ = ⎢− T ⎣ ⎦ ⎣ ( BKγ ) ⎤ ⎡ I 0⎤ ⎡ ( A + BKδC ) .⎢ . ⎥ I ⎦ ⎣( L1C + L2 KδC ) (α + L2 Kγ )⎥⎦ ⎢⎣T 0⎤ ⎡ x ⎤ ⎡ I + I ⎥⎦ ⎢⎣ε ⎥⎦ ⎢⎣− T 0⎤ I ⎥⎦ Soit en développant et en simplifiant : ⎡ x& ⎤ ⎡( A + BK ) ( BKγ )⎤ ⎡ x ⎤ ⎡ B ⎤ . + .e ⎢ε& ⎥ = ⎢ α ⎥⎦ ⎢⎣ε ⎥⎦ ⎢⎣ 0 ⎥⎦ 0 ⎣ ⎦ ⎣ La matrice d'évolution du système bouclé est égale à : ⎡ A + BK Abf = ⎢ ⎣ 0 Aussi : RE_chap6_observateur d'état [ BKγ ⎤ α ⎥⎦ ] det pI − Abf = det[ pI − (A + BK)]. det[ pI − α ] Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 19 Ainsi l'équation caractéristique du système compensé par les états reconstruits est égale au produit de l'équation caractéristique du système compensé par le vecteur d'état réel par celle de l'observateur. En d'autres termes l'observateur ajoute sa dynamique propre au processus bouclé. Par ailleurs on vérifie que l'erreur ε n'est pas commandable. Enfin on peut vérifier que l’observateur n’est pas « vu » de la sortie. En effet calculons la matrice de transfert du système ainsi corrigé avec un observateur identité par exemple. ⎡ pI − (A + BK) T ( p ) = [C 0 n ] ⎢ n 0n ⎣ 6.8. −1 BKγ ⎤ ⎡ B ⎤ = C [ pI − (A + BK)]−1 B ⎥ ⎢ ⎥ pI n − α ⎦ ⎣0 n ⎦ ETUDE D’UNE CHAINE DE COMMANDE 6.8.1. CAHIER DES CHARGES Considérons le système continu (servomécanisme élémentaire de position) de transmittance : P( p) = 1 p( p + 1) Une représentation d’état de ce système est la suivante (fcc) : ⎡0 1 ⎤ ⎡0 ⎤ x& = ⎢ x + ⎥ ⎢1 ⎥ u ⎣0 − 1⎦ ⎣ ⎦ y = [1 0] x Par une commande modale on désire que ce système présente, en boucle fermée, un mode du second ordre caractérisé par un gain statique de 1, ζ = 2 / 2 et ω n = 2 rad/s . Déterminer la matrice des gains de la commande modale. Les états n’étant pas directement disponibles, on réalise un observateur identité dont la dynamique est caractérisée par un pôle double p = −2 . Déterminer l’observateur d’état. Calculer la fonction de transfert du système bouclé à travers l’observateur. 6.8.2. COMMANDE MODALE Le système en boucle ouverte est donné sous sa fcc ⎧ x& = Abo x + Bbou ⎨ ⎩ y = Cbo x Le dénominateur de la FTBF ( p) (polynôme caractéristique de la FTBF ) est : ⎧ p1 = −1 + j det[ pI − (Abo + Bbo K)] = p 2 + 2 p + 2 ⇒ modes = ⎨ ⎩ p 2 = −1 − j ⎡0 1 ⎤ ⎡0 ⎤ Abo + Bbo K = ⎢ ⎥ + ⎢ ⎥ [k0 ⎣0 − 1⎦ ⎣1⎦ RE_chap6_observateur d'état ⎡0 k1 ] = ⎢ ⎣k0 1 ⎤ ⎡0 1⎤ ⎧k = −2 ⇒ K =⎨ 0 =⎢ ⎥ ⎥ k1 − 1⎦ ⎣− 2 − 2⎦ ⎩k1 = −1 Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 20 Déterminons le paramètre V pour que le gain statique de la chaîne de commande soit égal à l’unité.. Fichier « .m » Résultats % RE_chap6_obs_m3 % ---------------% REPRESENTATION D'ETAT % Cours Au 43 - Chapitre 6 % Asservissement de position % Réalisé par M. JL Cougnon % -------------------------clear all;clc % Définition du système Sbo Abo=[0 1;0 -1];Bbo=[0;1];Cbo=[1 0];Dbo=[0]; % Définition du système Sbf Abf=[0 1;-2 -2];Bbf=[0;1];Cbf=[1 0];Dbf=[0]; ss_sys_bf=ss(Abf,Bbf,Cbf,Dbf); zpk_sys_bf=zpk(ss_sys_bf) % Détermination de V pour un gain % statique de la FTBF égal à 1 V=1/dcgain(zpk_sys_bf) Zero/pole/gain: 1 ----------------(s^2 + 2s + 2) V= 2.0000 Il faut attaquer le comparateur avec 2u (t ) pour avoir un gain statique de 1. 6.8.3. OBSERVATEUR D’ETAT Le système en boucle ouverte est décrit par sa fcc : x& = Acc x + Bccu y = Ccc x Ecrivons l’équation du système dans la base de sa fco. ⎡ − 1 1 ⎤ ~ ⎡0⎤ ~ x + Bco u = ⎢ x& = Aco ~ ⎥ x + ⎢1 ⎥ u ⎣ 0 0⎦ ⎣ ⎦ ~ ~ y = Cco x = [1 0]x Il s’agit de réaliser un observateur identité qui, dans la base correspondant à la fco, vérifie l’équation : ~& ~ ~ xˆ = [Aco − Lco Cco ]xˆ + Lco y + Bco u = [α ]xˆ + Lco y + Bco u Les pôles de l’observateur sont : ⎧ p1 = −2 dét [ pI − α ] = p 2 + 4 p + 4 ⇒ modes = ⎨ ⎩ p2 = −2 Appliquons la méthode de calcul de la matrice M permettant le passage de la fcc à la fco. % Acc=Abo;Bcc=Bbo;Ccc=Cbo];Dcc=Dbo; Aco=[-1 1;0 0];Bco=[0;1];Cco=[1 0];Dco=[0]; Occ=obsv(Acc,Ccc); Oco=obsv(Aco,Cco); M=inv(Occ)*Oco; RE_chap6_observateur d'état Mis à jour le 07/04/2006 M= 1 -1 0 1 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 21 Calculons Lco : ⎧lco1 = 3 ⎡− 1 − lco1 1⎤ ⎡− 4 1⎤ ⎡− 1 1⎤ ⎡ lco1 ⎤ [1 0] = ⎢ ⇒ L=⎨ −⎢ =⎢ ⎥ ⎥ ⎥ ⎥ 0⎦ ⎣− 4 0⎦ ⎣ 0 0⎦ ⎣lco 2 ⎦ ⎣ − lco 2 ⎩lco 2 = 4 α =⎢ Exprimons L dans la base initiale correspondant à fcc. ~& ~ xˆ = [Aco − Lco C co ]xˆ + Lco y + Bco u ~& ~ xˆ = α xˆ + Lco y + Bco u xˆ = M~ xˆ ~& ~ xˆ = [Aco − Lco C co ]xˆ + Lco y + Bco u ~& ~ xˆ = Aco xˆ + Lco ( y − yˆ ) + Bco u xˆ = M~ xˆ M −1 xˆ& = α M −1 xˆ + Lco y + Bco u MM −1 xˆ& = MαM −1 xˆ + MLco y + MBco u xˆ& = MαM −1 xˆ + ML y + MB u M −1 x&ˆ = Aco M −1 xˆ + Lco ( y − yˆ ) + Bco u MM −1 xˆ& = MAco M −1 xˆ + MLco ( y − yˆ ) + MBco u xˆ& = A xˆ + ML (y − yˆ ) + B u co cc co co cc Lcc = MLco Ainsi : % Lcc=M*[3;4] Lcc = 3 1 La réalisation de l’observateur peut-être différente selon les équations retenues. Nous examinerons trois cas. Réalisation à partir de l’équation x&ˆ = Acc xˆ + Lcc ( y − yˆ ) + Bcc u Bcc ⎡0⎤ ⎢1⎥ ⎣ ⎦ u(t) ⎡0⎤ ⎢1⎥ ⎣ ⎦ Bcc + + 1/p x [1 0] Ccc Observateur + y ⎡3⎤ ⎢1⎥ ⎣ ⎦ Lcc + 1/p RE_chap6_observateur d'état Acc [1 0] C cc + ⎡0 1 ⎤ ⎢0 −1⎥ ⎣ ⎦ ⎡0 1 ⎤ ⎢ − ⎥ ⎣0 1⎦ Système x^ + Mis à jour le 07/04/2006 _ y^ Acc Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 22 ~& ~ Réalisation à partir de l’équation xˆ = αxˆ + Lco y + Bco u Bco Observateur ⎡0⎤ ⎢1⎥ ⎣ ⎦ u ( t) ⎡0⎤ ⎢1⎥ ⎣ ⎦ + + Bcc x 1/p [1 0] ⎡3⎤ ⎢4⎥ ⎣ ⎦ Ccc + Lco 1/p M ⎡ 1 0⎤ ⎢− ⎥ ⎣ 1 1⎦ xˆ + ⎡− 4 1⎤ ⎢− ⎥ ⎣ 4 0⎦ ⎡0 1 ⎤ ⎢0 −1⎥ ⎣ ⎦ Système ~ xˆ + y α Acc Réalisation à partir de l’équation xˆ& = MαM −1 xˆ + Lcc y + Bcc u Bcc Observateur ⎡0⎤ ⎢ ⎥ ⎣1 ⎦ u(t) ⎡0 ⎤ ⎢ ⎥ ⎣1 ⎦ Bcc + + 1/p x [1 0] y Ccc ⎡0 1 ⎤ ⎢ − ⎥ 1⎦ ⎣0 Système RE_chap6_observateur d'état + ⎡3⎤ ⎢ ⎥ ⎣1⎦ Lcc + 1/p x̂ + ⎡− 3 1 ⎤ ⎢− ⎥ ⎣ 1 − 1⎦ ΜαΜ−1 Acc Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 23 6.8.4. MECANISATION DE LA BOUCLE DE COMMANDE Bcc u (t ) ⎡0⎤ ⎢1⎥ ⎣ ⎦ 2 + + Bcc Observateur ⎡0⎤ ⎢1⎥ ⎣ ⎦ e(t) 1/p x xˆ (t ) + ⎡3⎤ ⎢1⎥ ⎣ ⎦ [1 0] + + Ccc Lcc + 1/p [1 0] Ccc + ⎡0 1 ⎤ ⎢0 − 1⎥ ⎣ ⎦ ⎡0 1 ⎤ ⎢ − ⎥ ⎣0 1⎦ Système y(t) Acc _ + y^ Acc K Cde modale [2-2 -11] 6.8.5. CALCUL DE LA FONCTION DE TRANSFERT Rappelons les différentes équations concernées. x& = Acc x + Bcc u Système commandé y = C cc x Observateur xˆ& = Acc xˆ + Lcc ( y − yˆ ) + Bcc u u (t ) = Ve(t ) + Kxˆ (t ) Commande modale La représentation du système complet est la suivante : ⎫ Bcc K ⎤ ⎡ x ⎤ ⎡ BccV ⎤ e(t )⎪ +⎢ ⎧ ⎡ x⎤ ⎥ ⎥ ⎢ ⎥ Acc + Bcc K − Lcc C cc ⎦ ⎣ xˆ ⎦ ⎣ BccV ⎦ [ ] y = C 0 ⎪ cc ⎢ xˆ ⎥ ⎪ ⎣ ⎦ ⎪ ⎪ ⎬ et ⎨ ⎪ y = C ⎡ x⎤ ⎪ ⎡ x⎤ d ⎡ x⎤ ⎢ xˆ ⎥ ⎪ ⎪ = Α ⎢ ⎥ + Be(t ) ⎣ ⎦ ⎩ ˆ ⎪ x dt ⎢⎣ xˆ ⎥⎦ ⎣ ⎦ ⎭ d ⎡ x ⎤ ⎡ Acc = dt ⎢⎣ xˆ ⎥⎦ ⎢⎣ Lcc C cc Calculons la représentation d’état du système bouclé. ⎡⎡ A A = ⎢ ⎢ cc ⎣ ⎣ LccCcc 0 0⎤ ⎡0 1 ⎡0 ⎤ ⎢ ⎥ ⎢ 2⎥ Bcc K ⎤ ⎤ ⎢0 − 1 − 2 − 1 ⎥ ; B = ⎢ ⎥ et C = [1 0 0 0] ⎥= ⎢0 ⎥ Acc + Bcc K − LccCcc ⎥⎦ ⎦ ⎢3 0 − 3 1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎣1 0 − 3 − 2⎦ ⎣ 2⎦ RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL 6. Observateur d’état des systèmes linéaires continus et discrets 24 Calculons la matrice des transmittances : T ( p ) = C( pI − A ) −1B −1 −1 0 0 ⎤ ⎡0 ⎤ ⎡p ⎢ 0 p +1 2 1 ⎥⎥ ⎢⎢2⎥⎥ ⎢ T ( p ) = [1 0 0 0] ⎢− 3 0 p + 3 − 1 ⎥ ⎢0 ⎥ ⎢ ⎥ ⎢ ⎥ 0 3 p + 2⎦ ⎣ 2⎦ ⎣ −1 det( pI − A ) = p ( p + 1)( p + 2)( p + 3) + 3 p ( p + 1) + (7 p + 8) ( pI − A ) −1 T ( p) = T ( p) = det( pI − A ) = ( p + 2) 2 ( p 2 + 2 p + 2) ⎡ ? ? ? ?⎤ ⎢a ⎥ ⎧⎪a 21 = p 2 + 5 p + 9 1 21 ? ? ?⎥ ⎢ = avec ⎨ ⎪⎩a 41 = − p − 5 ( p + 2) 2 ( p 2 + 2 p + 2) ⎢ ? ? ? ? ⎥ ⎢ ⎥ ⎣a 41 ? ? ?⎦ 2(a 21 + a 41 ) ( p + 2) 2 ( p 2 + 2 p + 2) 2( p 2 + 4 p + 4) ( p + 2) 2 ( p 2 + 2 p + 2) = = 2 p 2 + 10 p + 18 − 2 p − 10 ( p + 2) 2 ( p 2 + 2 p + 2 ) 2( p + 2) 2 ( p + 2) 2 ( p 2 + 2 p + 2) 2 T ( p) = 2 ( p + 2 p + 2) Ainsi la dynamique de l’observateur n’est perçue (n’est pas observable) en sortie. a= K=[-2 -1]; A=[Acc Bcc*K; Lcc*Ccc Acc+Bcc*K-Lcc*Ccc]; B=[Bcc*V; Bcc*V]; C=[Ccc 0 0]; ss_sys_boucle=ss(A,B,C,0) zpk_sys_boucle=zpk(ss_sys_boucle) x1 x2 x3 x4 b= x1 x2 x3 x4 c= x1 x2 0 1 0 -1 3 0 1 0 x3 0 -2 -3 -3 x4 0 -1 1 -2 u1 0 2 0 2 x1 x2 x3 x4 y1 1 0 0 0 d= u1 y1 0 Continuous-time model. Zero/pole/gain: 2 (s+2)^2 ----------------------(s+2)^2 (s^2 + 2s + 2) RE_chap6_observateur d'état Mis à jour le 07/04/2006 Cours de M. Cougnon JL