Vous êtes sur la page 1sur 7

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

OBSERVATEURS - ETUDE DU PRINCIPE


RETOUR D'ETAT ESTIME

I - INTRODUCTION
Ce TP a pour objectif d'illustrer le concept d'observation sur des systmes linaires S.I.S.O. (Single
Input Single Output). Les principes et proprits d'un observateur en boucle ouverte et en boucle
ferme (rgl par placement de ples) seront tudis en simulation dans l'environnement logiciel
Matlab/Simulink. Une estimation des variables d'tat sera effectue ensuite en temps rel sur un
systme lectrique du 3me ordre. Enfin, on s'intressera la synthse d'une commande par retour
d'tat estim.

II - ELEMENTS THEORIQUES
1) Gnralits.
Le TP prcdent a montr que la synthse dune commande par retour dtat ncessite la
connaissance de l'tat complet du systme : u(k) = - K x(k). Or, celui-ci nest gnralement pas
mesurable, soit par manque de capteur, soit parce que ltat choisi ne correspond pas une variable
physique du systme. Dans ce cas, il est ncessaire dobtenir une estimation de cet tat partir des
mesures disponibles qui sont gnralement lentre et la sortie du systme commander. Une telle
estimation est possible condition que le systme considr soit observable.
On met donc en place, en parallle sur le systme considr, un reconstructeur dtat ou estimateur
ayant comme entres, les entres et les sorties du systme et dont la sortie est une estimation de
ltat du systme considr. Sous lhypothse de linarit du modle du procd, la structure de base
de l'estimateur est toujours la mme, mais sa ralisation dpendra du contexte choisi : continu ou
discret, dterministe ou stochastique.
Dans le cas o ce modle est un modle dterministe, le reconstructeur dtat sera appel
observateur, ce qui sera le cas dans ce TP. Dans le cas de systmes bruits, o interviennent des
phnomnes alatoires, nous parlerons alors de filtre (filtre de Kalman).

2) Observateur en boucle ouverte.


On se demande donc comment reconstruire l'tat complet x(k) du systme. On peut essayer de
donner ce problme une solution en boucle ouverte. On cherche obtenir, l'instant k, un
prdicteur rcursif x (k + 1) du vecteur d'tat partir des mesures connues de la commande u(k) et
de la sortie y(k). Un tel systme dynamique est vident obtenir partir de la reprsentation d'tat :
+ 1) = F x(k)

x(k
+ G u(k) .
C'est l'observateur en boucle ouverte (cf. figure 1). Il a l'avantage d'tre simple mettre en uvre,
mais il est trs sensible aux erreurs de modlisation en prsence de u(k). Si l'observateur possde les
mmes conditions initiales que le systme, alors il se comportera comme le systme rel.
TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

La moindre perturbation sur la sortie le fera dvier du systme rel. Cette mthode correspond au
schma bloc suivant :
u(k)

y(k)

Systme

x (k)
y (k)

Observateur

Figure 1 : Observateur en boucle ouverte


Remarque : la reconstruction du vecteur d'tat ne fait pas, ici, appel la mesure de la sortie y(k).
3) Observateur en boucle ferme.
La structure suivante (cf. figure 2) permet de palier le problme voqu en introduisant un terme

correctif en fonction de lerreur de reconstruction de la sortie, y(k) - y(k)


et d'un gain de correction
M appel gain de lobservateur qui doit tre dtermin. Cette mthode correspond au schma bloc
suivant :
u(k)

y(k)

Systme
+

y (k)

Modle

x (k)

Observateur

Figure 2 : Observateur en boucle ferme

L'objectif est de faire converger l'erreur d'estimation x(k) - x(k)


asymptotiquement et rapidement
vers 0. En consquence, il faudra calculer le gain M tel que la dynamique dannulation de lerreur
destimation soit plus rapide que la dynamique dsire du systme en boucle ferme. Cependant, on
ne peut les prendre infiniment grandes pour deux raisons essentielles : on ne peut utiliser que des
gains ralisables et laugmentation de la bande passante de lobservateur ne permet plus de ngliger
les bruits qui deviennent prpondrants en hautes frquences.

III - TRAVAIL PREPARATOIRE OBLIGATOIRE


Ltude en simulation se fera sur un systme du 3me ordre obtenu par la mise en srie de deux
systmes du premier et du second ordre. Les deux fonctions de transfert sont :
G1 (p) =

k1
1
avec a =
p+a

G 2 (p) =

k 2n
p

+ 2 n p + 2n

u(t)

G1(p)

y1(t)

G2(p)

y(t)

k2
avec p1,2 = - n j n 1 2
( p - p1 )( p - p 2 )

TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

1) Reprsentation d'tat du systme continu.


a) Mettre le systme G1(p) sous forme d'tat (variable d'tat x1(t)) et le systme G2(p) sous
forme canonique de commandabilit (la variable d'tat x2(t) correspond la sortie y(t)). A
partir de ces deux reprsentations et en considrant la sortie du systme du 1er ordre G1(p)
comme la 1re composante du vecteur dtat x(t), en dduire que le systme complet peut se
mettre sous la forme srie suivante :
0
0
a
k1

0
1 , B = 0
x& (t ) = A x (t ) + B u (t ) avec A = 0
1 p1 p 2 (p1 + p 2 )
0

et y(t ) = C x(t ) = [0 k 2 0] x(t )


b) Exprimer la matrice dobservabilit en fonction des paramtres p1, p2 et k2 et montrer ensuite
que le systme est observable.
2) Observateur en boucle ouverte.
On suppose le systme continu (A, B, C) a t chantillonn. Le comportement du systme
chantillonn correspondant (F, G, H) est donn par : x(k + 1)= F x(k) + G u(k) et y(k) = H x(k)
o u(k), y(k) et x(k) sont respectivement l'entre, la sortie et l'tat du systme l'instant k.
a) Etude en rgime libre u(k) = 0 : en supposant que l'observateur possde la mme dynamique
que le systme, tablir l'quation laquelle satisfait l'erreur d'estimation que l'on note
%

x(k)
= x(k)- x(k)
, o x (k) reprsente le vecteur d'tat estim de x(k).
Montrer que, si les conditions initiales du systme sont diffrentes de celles de l'observateur,
%
alors x(k)
0 asymptotiquement si le systme est stable. Quelle est la dynamique
d'annulation de cette erreur ?
b) u(k) est toujours nulle. On suppose que la dynamique du systme est connue avec une
certaine imprcision et par consquent que la dynamique de l'observateur est lgrement
diffrente de celle du systme. L'tat du systme peut alors s'crire : x(k + 1) = F' x(k) avec
F ' = F + ( reprsente l'imprcision sur la dynamique) et celui de l'observateur est dfini
+ 1) = F x(k)

.
par : x(k
%
Dans ces conditions, tablir l'quation laquelle satisfait l'erreur d'estimation x(k)
. En
considrant que, malgr ces incertitudes, le systme est toujours stable, montrer que l'erreur
%
x(k)
0 asymptotiquement. Quelle est la dynamique d'annulation de cette erreur ?

3) Observateur en boucle ferme.


a) En notant M le gain de lobservateur, crire les quations de lobservateur partir du modle
dtat (F, G, H).
%
. Quelle est la dynamique
b) Etablir lquation laquelle satisfait lerreur destimation x(k)
d'annulation de cette erreur ?
TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------ 10

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

c) A quelle condition est-il possible de placer arbitrairement les ples de l'observateur ?


4) Retour d'tat estim.
On s'intresse ensuite la synthse d'une commande par retour d'tat estim. Si on rpond un
objectif de rgulation et de poursuite alors, la loi de commande a pour expression :

u(k) = K x(k)
+ y * (k) ,

o y*(k) tant un signal de consigne constant


et le prcompensateur.

a) Montrer que le systme en boucle ferme (observateur + retour d'tat) peut se mettre sous la
forme suivante :
G K x(k) G
x(k + 1) F - G K
=
+ y* (k)
x(k+1)

% 0
F - M H x(k)
%
0
b) En dduire qu'il est possible de placer les ples de l'observateur et les ples du retour d'tat
de manire indpendante. Combien de ples au total possde le systme en boucle ferme ?

IV - TRAVAIL EXPERIMENTAL
Slectionner votre rpertoire de travail sous Matlab. Il est demand de crer un fichier script Matlab
(extension .m) contenant l'ensemble des instructions permettant la mise au point de l'observateur. Il
est fortement conseill de dfinir des variables contenant les paramtres du systme continu (ples,
gains, ).

1) Prparation avec Matlab.


a) Noter les valeurs correspondant aux systmes lectriques proposs et crer les foncions de
transfert pour les 2 systmes en utilisant la fonction Matlab tf. On appellera respectivement
G1 et G2 les fonctions de transfert du systme du 1er et du 2nd ordre. Pour rcuprer par
exemple le dnominateur de G1, on peut crire : den1 = G1.den{:}. On rappelle que si on
excute par exemple la commande: a = den1(1,2), cela permet d'isoler le 2me terme de
den1. Dterminer ensuite les ples du systme avec la fonction roots de Matlab que l'on
notera p1 et p2 pour le systme du 2nd ordre.
b) Dfinir les matrices A, B et C du travail prparatoire puis construire la reprsentation d'tat
continue du systme complet en utilisant la fonction Matlab ss. On appellera sys l'objet
systme correspondant.
c) A partir du travail prparatoire, construire la matrice d'observabilit du systme et vrifier
son observabilit avec les fonctions Matlab det et rank. Vrifier le rsultat en utilisant la
fonction Matlab obsv.
d) La priode d'chantillonnage Ts tant fixe 0,5 seconde, discrtiser le systme continu en
utilisant la fonction Matlab c2d (option 'zoh'). On appellera sysd l'objet systme
correspondant. Pour rcuprer les matrices F, G, H, on peut crire :
F = sysd.A, G = sysd.B et H = sysd.C.
TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------

11

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

e) Dterminer les valeurs propres de F en utilisant la fonction Matlab eig. Vrifier les valeurs
obtenues en utilisant les ples du systme continu.
f) Faire raliser par votre programme le calcul du gain M de l'observateur pour que les ples de
celui-ci soient positionns en [0,4 0,45 0,5]. Le choix de ces ples vous parat-il judicieux ?
Utiliser les fonctions Matlab place ou acker (en prenant soin dutiliser les matrices
transposes de F et de H (sous Matlab, F' est la transpose de F).

2) Ralisation du schma Simulink.


Sous Simulink, charger le fichier observateur.mdl. Le systme est simul par son transfert continu
(1 block LTI pour G1 et 1 block LTI pour G2) et les observateurs apparaissent sous forme de soussystmes qu'il faudra complter. Le temps de simulation pour tudier le rgime libre et le rgime
forc sera de 120 secondes. Deux scopes associs chacun un multiplexeur ont t introduits. Le 1er
permet de visualiser la fois la sortie du systme et la sortie estime des 2 observateurs boucle
ouverte et boucle ferme. Le 2me permet de visualiser la sortie de G1 avec la 1re variable d'tat
estime des 2 observateurs.
Construire les 2 observateurs en comptant les sous-systmes "Observateur Boucle ouverte" et
"Observateur Boucle ferme". Pour cela, vous pouvez introduire les matrices du modle dtat
discret (F, G, H) dans les blocs de gain Simulink. En rgime forc, l'chelon appliqu sera unitaire
et sera dclench 40 secondes. Vrifier ensuite le bon fonctionnement de la simulation.
%
3) Etude en rgime libre : x(0)
0.
On fixe u(k) = 0 et on initialise les observateurs avec des conditions initiales diffrentes de celles du
%
systme ( x(0)
0 ). Sachant que x T (0) = [ 0 0 0] , dfinir par exemple x T (0) = [ 0.2 0.2 0.2]

dans le champ "Initial conditions" du bloc 1/z des observateurs. Etudier le comportement et justifier
les rsultats obtenus avec ceux du travail prparatoire (questions 2) a) et 3) b)). Rcuprer les
donnes sous Matlab (voir configuration du scope) et les reprsenter graphiquement. Sauvegarder la
figure.
%
4) Etude en rgime libre : x(0)
0 et F ' = F + .

Etudier le comportement des observateurs en rgime libre en considrant une erreur sur la
dynamique du systme du 1er ordre. Pour cela, modifier le ple de celui-ci de +25% tout en
conservant le mme gain statique et construire une nouvelle fonction de transfert note G1d (on
ne change pas l'observateur).
Introduire G1d dans le schma Simulink et tudier le comportement. Justifier les rsultats obtenus
avec ceux du travail prparatoire (questions 2) b) et 3) b)). Rcuprer les donnes sous Matlab et
les reprsenter graphiquement. Sauvegarder la figure.
%
5) Etude en rgime forc : x(0)
0 et F' = F (utilisation de G1).
%
0 et on considre que la dynamique du systme est parfaitement identifie c'est-On laisse x(0)
dire F' = F. Appliquer un chelon l'instant 40 secondes. Observer les rsultats obtenus et conclure.
TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------

12

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

6) Etude en rgime forc : erreur sur le gain statique.


On conserve les mmes conditions de fonctionnement mais on considre qu'il y a une erreur de 30%
sur la dtermination du gain statique du systme (on ne change pas l'observateur). Construire une
nouvelle fonction de transfert note G1s. Introduire G1s dans le schma Simulink et tudier le
comportement des observateurs. Rcuprer les donnes sous Matlab, les reprsenter graphiquement
et conclure. Sauvegarder la figure.

7) Observateur en boucle ferme sur le procd rel.


a) Effectuer le cblage du systme du troisime ordre en mettant en cascade sur le botier
lectrique le premier ordre et le second ordre. A noter que les paramtres utiliss pour la
synthse de l'observateur peuvent tre diffrents de ceux du procd rel (erreur de
modlisation). Les procds lectriques sont par construction linaires dans toute la gamme
d'utilisation. Les commandes et la gamme d'acquisition de la sortie sont limites [-10 V ,
+10 V]. Le point de fonctionnement est donc indiffrent, la valeur uf = 0, yf = 0 permet la
plus large excursion de sortie. Il n'y a donc pas de possibilit de prciser le point de
fonctionnement dans l'environnement graphique ddi aux systmes lectriques.
b) Connecter le procd lectrique sur le botier d'extension de la carte d'acquisition. La sortie
du systme complet doit tre relie l'entre analogique "n" et celle du systme du 1er ordre
l'entre "n+1". Choisir galement la sortie analogique pour appliquer la commande sur le
systme. Faire contrler le montage par l'enseignant avant la mise sous tension.
c) Avec LabWindows CVI, crer un fichier Project (extension .prj) dans lequel doit tre insr
les fichiers suivants : Observateur.c, Observateur.uir et e_s.obj. Le fichier e_s.obj
contient les fonctions compiles permettant de grer la carte d'acquisition. Observateur.uir
contient l'interface graphique ddi aux procds lectriques et Observateur.c est le
programme principal qui doit tre complt afin de faire fonctionner l'observateur en temps
rel et le retour d'tat. Ouvrir le fichier source et insrer les paramtres du modle discret (F,
G, H) ainsi que ceux du gain d'observation M. Les valeurs numriques sont prises en
compte via les #define.
d) Ecrire les quations de l'observateur au niveau de la fonction Callback "Temps".
e) Excuter le programme et tudier le comportement de l'observateur en temps rel.
Remarque: si vous souhaitez tester le fonctionnement de l'observateur en boucle ouverte, il
suffit de poser M = 0 (lobservateur boucle ouverte ntant quun cas particulier).
f) Il est possible de sauvegarder dans un fichier texte les donnes exprimentales en cliquant
sur le bouton "Lancer Enregistrement" et de les rcuprer sous Matlab en excutant le
fichier Traitement.m. Toutes les donnes sont contenues dans le fichier "observation.txt".
Sauvegarder la figure.

8) Commande avec retour dtat estim.


a) Calculer le gain de retour d'tat K sachant que les ples du systme en boucle ferme sont
placs en [0,8 0,75 0,7]. Utiliser les fonctions Matlab place ou acker. Le choix de ces
ples vous parat-il judicieux ? Calculer ensuite le prcompensateur.
TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------ 13

TP Espace d'tat

Universit de Caen, M1 EEOA

Ph. Dorlans, F. Giri

b) Observer la position des ples du systme en boucle ferme (retour d'tat et observateur).
Est-ce conforme la thorie des systmes linaires ?
c) Sous Simulink, reprendre le fichier observateur.mdl et faire un "save as"
observateur_2.mdl. Ne conserver que l'observateur en boucle ferme et modifier le schma
bloc de manire intgrer le retour d'tat. Tester les performances du systme "retour d'tat
estim" d'abord en simulation puis complter le fichier source afin d'asservir le systme en
temps rel. Conclure sur les performances.
Pour terminer, diter un rapport avec la commande PULISH de Matlab.
Les figures Matlab sauvegardes peuvent tre introduites dans le fichier .html gnr. Il es conseill
de les commenter.

TP n2 : Synthse d'observateurs et retour d'tat estim ------------------------------------------------------------------------

14