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