Vous êtes sur la page 1sur 41

2011-06-22

Commande en espace dtat

Guy Gauthier ing. Ph.D.


SYS-823 - Juillet 2011

Reprsentation en boucle ouverte

 quation :
x (t ) = A(t ) x (t ) + B(t )u(t )
y (t ) = C(t ) x (t )
 m entres, p sorties, n quations
dtat linaires.

1
2011-06-22

Commande par retour dtat


linaire

 Structure : x(t0 )

yd ( t ) u( t ) y(t )
N (t ) x(t ) = A(t ) x (t ) + B(t )u(t ) C (t )

K (t )

u (t ) = K (t ) x(t ) + N (t ) yd (t )

Reprsentation en boucle ferme


(retour dtat linaire)

 quation en boucle ferme :


x (t ) = [ A(t ) + B(t ) K (t )] x(t ) + B(t ) N (t ) yd (t )
y (t ) = C (t ) x(t )

2
2011-06-22

Contrlabilit

 Au pralable, il faut vrifier si le


systme est contrlable.
 Rang(M)=n

 Matrice de contrlabilit M :

M= B [ AB  An 1 B ]

Design par placement de ples

 Valeurs propres dsires pour


(A-BK) :
1 , 2 , , n

 Parties relles ngatives;


 Choix des gains de la matrice de gains
K.

3
2011-06-22

Exemple de design

 Soit le systme suivant :

0 1 0 0

A= 0 0 1 B = 0
1 5 6 1

tape 1
 Vrifier si le systme est
contrlable:
 Matrice de contrlabilit
0 0 1

M= B [ AB ]
A2 B = 0 1 6
1 6 31
 Rang(M) = 3 = n  contrlable.

4
2011-06-22

tape 2
(si compltement contrlable)

 Du polynme caractristique de la
matrice A, dterminer les
coefficients a1, a2, ..., an :

 Polynme caractristique :

det ( sI A) = sn + a1sn 1 +  + an 1s + an

tape 2
(si compltement contrlable)

 Ainsi, pour lexemple :


det( sI A) = s3 + 6s2 + 5s + 1
 Donc :
a1 = 6
a2 = 5
a3 = 1

5
2011-06-22

tape 3

 Construire la matrice de
transformation T = MW.
 Matrice W :
an 1  a1 1
 a1 1 0
W=
a1 1 0 0

1 0 0 0

tape 3
(exemple)

 Construire la matrice W :

a2 a1 1 5 6 1

W = a1 1 0 = 6 1 0
1 0 0 1 0 0

6
2011-06-22

tape 3
(fin exemple)

 Obtenir la matrice de
transformation T :
T = MW
 Ici :
1 0 0

T = 0 1 0
0 0 1

tape 4

 Choisir les valeurs propres dsires:


 Ples en boucle ferme.
 crire le polynme caractristique
correspondant.

(s )(s ) (s ) = s
1 2 n
n
+ 1 s n 1 +  + n 1s + n
 Ce qui mne au coefficients :
1 2  n

7
2011-06-22

tape 4
(exemple)

 Donc, si on choisi les ples


suivants:
s = 2 4 j
s = 10

 Cela mne :
(s + 2 4 j )(s + 2 + 4 j )( s + 10) = s 3
+ 14 s2 + 60s + 200
1 2 3

tape 5

 Calcul de la matrice de gains K :


 Taille : 1 ligne et n colonnes.

 Donc :
K = ( n an ) ( n1 an1 )  (1 a1 ) T 1

8
2011-06-22

tape 5
(exemple)

 Dans lexemple :
1 0 0
K = ( 200 1) ( 60 5) (14 6 ) 0 1 0
0 0 1
= [199 55 8]

Exemple sur MATLAB


% Entre des matrices A et B
A=[0 1 0; 0 0 1; -1 -5 -6];
B = [0;0;1];

% Dterminer la matrice de contrlabilit


M=ctrb(A,B);

% Dterminer le rang de M
r=rank(M)
r=
3
% Puisque le rang est de 3, le placement des
ples est possible

9
2011-06-22

Exemple sur MATLAB


(suite)

% Calcul du polynme caractristique


JA = poly(A)
JA =
1.0000 6.0000 5.0000 1.0000

% Extraction des coefficients


a1 = JA(2); a2 = JA(3); a3 = JA(4);

% Dfinition des matrices W et T


W = [a2 a1 1; a1 1 0 ; 1 0 0];
T = M*W;

Exemple sur MATLAB


(suite)

% Calcul du polynme caractristique dsir en


dfinissant la matrice diagonale J
J=[-2-4*j 0 0 ; 0 -2+4*j 0; 0 0 -10];
JJ=poly(J)
JJ =
1 14 60 200

% Extraction des coefficients dsirs


aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4);

10
2011-06-22

Exemple sur MATLAB


(suite)
% Calcul de la matrice de gains K
K=-[aa3-a3 aa2-a2 aa1-a1]*inv(T)
K=
-199.0000 -55.0000 -8.0000
% Donc les gains k1, k2 et k3 sont:
k1 = K(1)
k1 =
-199
k2 = K(2)
k2 =
-55.0000
k3 = K(3)
k3 =
-8.0000

Exemple sur SIMULINK


(schma bloc)

11
2011-06-22

Exemple sur SIMULINK


(rsultats)

Amplitude
x3

x2
x1

Temps (min)

Exemple #2

 Soit un systme reprsent par les


matrices suivantes :
0 1 0 0 0
20 0 0 0 1 1 0 0 0
A= B= C=
0 0 0 1 0 0 0 1 0
1 1
2 0 0 0 2

A = [0 1 0 0 ; 20 0 0 0 ; 0 0 0 1 ; -0.5 0 0 0 ];

MATLAB B = [0 ; -1 ; 0 ; 0.5];
C = [1 0 0 0 ; 0 0 1 0];

12
2011-06-22

Solution Est-ce contrlable ?

 Vrifions : M= B [ AB A2 B A3 B ]
0 1 0 20
1 0 20 0
M=
0 1
2 0 1
2
1 1
2 0 2 0

M = ctrb(A,B);

MATLAB r = rank(M)
r = 4 % Oui

Solution quation caractristique


de A

 det(sI-A) donne ce polynme de A :


det ( sI A) = s4 20s2
= s4 + a1s3 + a2 s2 + a3 s + a4

 Conclusion :
a1 = 0 a2 = 20 a3 = 0 a4 = 0

JA = poly(A);

MATLAB a1 = JA(2); a2 = JA(3); a3 = JA(4); a4 = JA(5);

13
2011-06-22

Solution quation caractristique


dsire

 En choisissant les ples pour obtenir


une dynamique ayant un temps de
rponse 2% de 2 secondes et un
amortissement de 0.5.
 2ime ordre.

4 4
 Puisque : t s = n = = 4 rd s
n 0.5 2 s

Solution quation caractristique


dsire

 Le dpassement maximal tant :





2
1
Mp = e 100% = 16.3%

 Les ples dsirs sont donc :


1,2 = 2 j 2 3 3,4 = 10

14
2011-06-22

Solution quation caractristique


dsire

 Lquation caractristique est


finalement :
( s 1 )( s 2 )( s 3 )( s 4 ) =
s4 + 24 s3 + 196s2 + 720s + 1600

 Les coefficients dsirs :


1 = 24 2 = 196 3 = 720 4 = 1600

J = [-2-2*sqrt(3)*j 0 0 0; 0 -2+2*sqrt(3)*j 0 0; 0 0 -10 0; 0 0 0 -10];

MATLAB JJ = poly(J);
aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4); aa4 = JJ(5);

Solution Matrice de
transformation T

 La matrice W tant dduite des


coefficients de A, on peut obtenir la
matrice T comme suit :
0 0 1 0
0 0 0 1
T = MW =
9.5 0 1
2 0

0 9.5 0 1 2

W = [a3 a2 a1 1; a2 a1 1 0 ; a1 1 0 0 ; 1 0 0 0];

MATLAB T=M*W;

15
2011-06-22

Solution Matrice des gains K

 La matrice K est calcule comme


suit :
K = ( 4 a4 ) ( 3 a3 ) ( 2 a2 ) (1 a1 ) T 1
= [ 300.21 61.89 168.42 75.79]

K=-[aa4-a4 aa3-a3 aa2-a2 aa1-a1]*inv(T)

MATLAB K=
300.2105 61.8947 168.4211 75.7895

Simulation (pendule invers)

 Schma SIMULINK :

y1 = x1 = angle du pendule (radians)


y2 = x3 = position du chariot (mtres)

16
2011-06-22

Simulation (pendule invers)

Conditions initiales :
y2 x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0

y1

Temps (min)

Simulation (pendule invers)

Conditions initiales :
x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0
x2
x3
x1
x4

Temps (min)

17
2011-06-22

Rservoir de mlange

Eau froide contrler:


FC,TC
Temprature T

Eau chaude
Hauteur h
FH,TH T

Commande:

h
Dbit eau froide FC
Dbit eau chaude FH Sortie
F(h),T

Modle du rservoir de mlange

quations :


K 1 1

2A h 0 A AC
A= B=
c s C

0
K (TH Ts ) (TC Ts )
Ac hs Ah AC hs
C s

1 0
C=
0 1

18
2011-06-22

Paramtres du systme

 Voici les paramtres du systme :


 K = 1 m2.5/min
 hs = 4 m
 Ac = 2 m2
 TH = 65 C
 TC = 15 C
 TS = 35 C

Matrices du modle

 Donc :
18 0 12 1
2 1 0
A= B= C=
0 1 4 3.75 2.5

0 1

A = [-1/8 0 ; 0 -1/4];

MATLAB B = [1/2 1/2 ; 3.75 -2.5];


C = [1 0 ; 0 1];

19
2011-06-22

Contrlabilit

 Calcul de M :
0.5 0.5 0.0625 0.0625
[
M = B AB = ] 0.9375 0.625
3.75 2.5

 Rang de M = 2.

M = ctrb(A,B);

MATLAB r = rank(M);
r=2

quation en boucle ferme

 Posant K : K = k11 k12


k k22
21

 Alors :
1
8 + 1
2 k11 + 1
2 k21 1
2 k12 + 1
2 k22
A + BK =

15
4 k11 5
2 k 21 1 4 + 15 4 k12 5 2 k22

% En symbolique

MATLAB syms k11 k12 k21 k22


S = A+B*[k11 k12; k21 k22];

20
2011-06-22

limination de linteraction

 Il suffit que A+BK soit diagonal,


donc : 1
2 k12 + 2 k 22 = 0
1

15
4 k11 5
2 k21 = 0

 Il faut donc que :


k12 = k22
k21 = 3
2 k11

limination de linteraction

 En remplaant, on trouve que :


1
8 + 5 4 k11 0
A + BK =
0 14 25 4 k22

S = A+B*[k11 -k22; 3/2*k11 k22]


S=
MATLAB [ -1/8+5/4*k11, 0]
[ 0, -1/4-25/4*k22]

21
2011-06-22

Placement des ples

 En ajustant les gains k11 et k22, on


modifie la dynamique du systme.

 Indpendance de lajustement des 2


gains.

 On dsire un constante de temps de 2


min pour le niveau et de 5 min pour la
temprature.

quation caractristique

 Lquation caractristique de A+BK


est :
det( sI [ A + BK ]) = ( s + 18 5 4 k11 )( s + 1 4 + 25 4 k22 )
= (s + 1
2 )( s + 15 )

 Do :
k11 = 310 k12 = 1125

k22 = 1125 k21 = 9 20

22
2011-06-22

Calcul de la matrice N

 Il faut que BN soit une matrice


diagonale.
 Dfinissant N :
n11 n12
N=
n21 n22
 Alors :
1 2 n11 + 1 2 n21 1
2 n12 +n22
1
2
BN = 15
4 n11 2 n21
5 15
4 n12 2 n22
5

Calcul de la matrice N

 Pour BN diagonale, il faut :


1
2 n12 + 2 n22 = 0
1
n12 = n22

15
4 n11 2 n21 = 0
5
n21 = 3 2 n11

 Ce qui mne :
5 4 n11 0 1 0 n11 = 4 5
BN = 0 1 n = 4
0 25 4 n22 22 25

23
2011-06-22

Calcul de la matrice N


4
Donc la matrice N sera : N = 5
4
25
6
5 4 25

syms n11 n12 n21 n22


U = B*[n11 n12; n21 n22]
U=
[ 1/2*n11+1/2*n21, 1/2*n12+1/2*n22]
[ 15/4*n11-5/2*n21, 15/4*n12-5/2*n22]
U = B*[n11 -n22; 3/2*n11 n22]
U=
MATLAB [ 5/4*n11, 0]
[ 0, -25/4*n22]

Simulation

 Schma SIMULINK :

y1 = x1 = niveau (mtres)
y2 = x2 = temprature (C)

24
2011-06-22

Simulation

C ou m

y1 = h
y2 = T
chelons unitaires
sur temprature 1 min;
sur niveau 10 min.

Temps (min)

Simulation
m3/min

u2 = dbit chelons unitaires

deau froide sur temprature 1 min;


sur niveau 10 min.

u1 = dbit
deau chaude

Temps (min)

25
2011-06-22

Commande par retour de la sortie

 Structure :
x ( t0 )

yd ( t ) + u(t ) y(t )
N (t ) x (t ) = A( t ) x ( t ) + B (t ) u( t ) C (t )
+

L(t )

u ( t ) = L ( t ) y ( t ) + N ( t ) yd ( t )

Reprsentation en boucle ferme


(retour de sortie)

 quation en boucle ferme :


x (t ) = [ A(t ) + B(t ) L(t )C(t )]x (t )
+ B ( t ) N ( t ) yd ( t )
y ( t ) = C (t ) x ( t )

26
2011-06-22

Observateur dtat
(prambule)

 Considrons le systme suivant :


x = Ax + Bu
y = Cx
 On peut faire lapproximation de
ltat du systme comme suit :

x = Ae x~ + Be u + Ke ( y Ce ~
~ x)

Observateur dtat

 Lapproximation est lobservateur


dtat. En utilisant u et y comme
entre, il dduit la valeur du vecteur
dtat.

x + Be u + Ke ( y Ce ~
x = Ae ~
~ x)

27
2011-06-22

Schma bloc dun observateur


dtat
~
x (t 0 )
u( t )
~
x (t )
y (t ) ~
x = Ae ~
x + Beu + Ke ( y Ce ~
x)

Terme de
correction

Observateur dtat complet

 Schma bloc :
x (t0 )

yd ( t ) + u(t ) y(t )
P(t ) x ( t ) = A( t ) x ( t ) + B ( t ) u( t ) C(t )
+

K (t )
~
x (t 0 )
~
x (t )
y(t ) ~
x = Ae x~ + Be u + Ke ( y Ce x~ )

28
2011-06-22

Observateur dtat complet


(Erreur)

 Lerreur est value comme suit :


x = Ax Ae ~
x ~ x + Bu Be u
K (Cx C ~
e x)
e

 Si les paramtres de lobservateur


sont identiques aux paramtres rels,
cela simplifie lquation.

Observateur dtat complet


(Erreur suite)

 Donc, comme Ae = A, Be = B et Ce =
C:
x = ( A Ke C)( x ~
x ~ x)
e = ( A Ke C )e

 La dynamique du vecteur derreur


e est dfinie par les valeurs
propres de la matrice A-KeC.

29
2011-06-22

Observateur dtat complet


(Dynamique de lerreur)

 Les valeurs propres de la matrice A-


KeC sont ajusts pour que la
dynamique soit beaucoup plus rapide
que la dynamique du systme rel.

e = ( A Ke C )e

Observateur dtat complet


(Condition essentielle)

 Pour pouvoir raliser un observateur


dtat, il faut que le systme soit
observable.
 Rang(N) = n

 Matrice dobservabilit N :

[
N = C* A*C *  ( A* ) n 1 C * ]

30
2011-06-22

Exemple de conception dun


observateur dtat complet

 Soit le systme suivant :

0 1 0 0

A= 0 0 1 B = 0
1 5 6 1

[
C= 1 0 0 ]

tape 1
 Vrifier si le systme est
observable:
 Matrice dobservabilit
1 0 0
[
N = C* A* C * ( A* )2 C* = 0 1 0
]
0 0 1

 Rang(N) = 3 = n  observable.

31
2011-06-22

tape 2
(si compltement observable)

 Du polynme caractristique de la
matrice A, dterminer les
coefficients a1, a2, ..., an :

 Polynme caractristique :

det( sI A) = sn + a1sn 1 +  + an 1s + an

tape 2
(si compltement contrlable)

 Ainsi, pour lexemple :


det( sI A) = s3 + 6s2 + 5s + 1
 Donc :
a1 = 6
a2 = 5
a3 = 1

32
2011-06-22

tape 3

 Construire la matrice de
transformation Q = (WN*)-1.

 Rappel - Matrice W :
an 1  a1 1
 a1 1 0
W=
a1 1 0 0

1 0 0 0

tape 3
(exemple)

 Construire la matrice W :

a2 a1 1 5 6 1

W = a1 1 0 = 6 1 0
1 0 0 1 0 0

33
2011-06-22

tape 3
(fin exemple)

Obtenir la matrice de * 1
Q = (WN )

transformation Q :

 Ici : 0 0 1

Q = 0 1 6
1 6 31

tape 4

 Choisir les valeurs propres dsires:


 Ples en boucle ferme.
 crire le polynme caractristique
correspondant.

(s )(s ) (s ) = s
1 2 n
n
+ 1 s n 1 +  + n 1s + n
 Ce qui mne au coefficients :
1 2  n

34
2011-06-22

tape 4
(exemple)

 Donc, si on choisi les ples


suivants:
s = 4 8 j
s = 10

 Cela mne :
(s + 4 8 j )(s + 4 + 8 j )( s + 10) = s 3
+ 18s2 + 160s + 800
1 2 3

tape 5

 Calcul de la matrice de gains Ke :

( n an )

( a
Ke = Q n 1 n 1
)


( 1 a1 )

35
2011-06-22

tape 5
(exemple)

 Dans lexemple :
0 0 1 ( 800 1) 12

K e = 0 1 6 (160 5 ) = 83
1 6 31 (18 6 ) 241

Exemple sur MATLAB


% Entre des matrices A et B
A=[0 1 0; 0 0 1; -1 -5 -6];
B = [0;0;1];
C = [0 0 1];

% Dterminer la matrice dobservabilit


N=obsv(A,C);

% Dterminer le rang de N
r=rank(N)
r=
3
% Puisque le rang est de 3, le placement des
ples est possible

36
2011-06-22

Exemple sur MATLAB


(suite)

% Calcul du polynme caractristique


JA = poly(A)
JA =
1.0000 6.0000 5.0000 1.0000

% Extraction des coefficients


a1 = JA(2); a2 = JA(3); a3 = JA(4);

% Dfinition des matrices W et Q


W = [a2 a1 1; a1 1 0 ; 1 0 0];
Q = inv(W*N);

Exemple sur MATLAB


(suite)

% Calcul du polynme caractristique dsir en


dfinissant la matrice diagonale J
J=[-4-8*j 0 0 ; 0 -4+8*j 0; 0 0 -10];
JJ=poly(J)
JJ =
1 18 160 800

% Extraction des coefficients dsirs


aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4);

37
2011-06-22

Exemple sur MATLAB


(suite)

% Calcul de la matrice de gains Ke


Ke=Q*[aa3-a3;aa2-a2;aa1-a1]
Ke =
12.0000
83.0000
241.0000

Exemple sur SIMULINK


(schma bloc)

38
2011-06-22

Exemple sur SIMULINK


(schma bloc)

Sous-systme : Observateur

Exemple sur SIMULINK


(schma bloc)

[B Ke]

Sous-systme : Observateur

39
2011-06-22

Exemple sur SIMULINK


(rsultats)

Amplitude
y =x1

erreur sur y
x2

x3 Temps (min)

Si on ajoute laspect contrle

 Le contrle par retour dtat sera le


mme que celui dcrit au dbut de
la prsentation.

 On avait obtenu la matrice de gain


K:
K = [199 55 8]

40
2011-06-22

Exemple sur SIMULINK


(schma bloc)

Exemple sur SIMULINK


(rsultats)

Temps (min)

41