Vous êtes sur la page 1sur 82

Commande en espace dtat

Juillet 2010
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.
Commande par retour dtat
linaire

Structure : x (t 0 )

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 )
Contrlabilit

Au pralable, il faut vrifier si le


systme est contrlable.
Rang(M)=n

Matrice de contrlabilit M :

M B AB A B n 1

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.
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
A B 0 1 6
2

1 6 31
Rang(M) = 3 = n contrlable.
tape 2
(si compltement contrlable)

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

Polynme caractristique :

det sI A s a1s
n n 1
an1s an
tape 2
(si compltement contrlable)

Ainsi, pour lexemple :


det sI A s 6s 5s 1
3 2

Donc :
a1 6
a2 5
a3 1
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
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
1s n 1
n1s n
Ce qui mne au coefficients :
1 2 n
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 s 2
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
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
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);
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)
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];
Solution Est-ce contrlable ?

Vrifions :
M B AB 2
AB 3
AB
0 1 0 20
1 0 20 0
M
0 12 0 1
2
1
2 0 0
1
2

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 s 20s
4 2

s a1s a2 s a3s a4
4 3 2

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);


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 : s
t 4 rd
n 0.5 2 s
n s
Solution quation caractristique
dsire

Le dpassement maximal tant :





1
2

Mp e 100% 16.3%

Les ples dsirs sont donc :


1,2 2 j 2 3 3,4 10
Solution quation caractristique
dsire

Lquation caractristique est


finalement :
s 1 s 2 s 3 s 4
s4 24s3 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
1
0 9.5 0 2

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

MATLAB T=M*W;
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)
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)
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 c s
B C

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

1 0
C
0 1
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 1
B C
0 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];
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 k 22
21

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

15
4 k11 5
2 k21 14 15 4 k12 5 2 k22

% En symbolique

MATLAB syms k11 k12 k21 k22


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

Il suffit que A+BK soit diagonal,


donc :
2 k12 2 k 22 0
1 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]
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 125 k21 9 20
1
Calcul de la matrice N

Il faut que BN soit une matrice


diagonale.
Dfinissant N :
n11 n12
N
21 22
n n
Alors :
12 n11 12 n21 1
n
2 12
1
n22
2
BN 15
4 n11 5
2 n21
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 4 n22
25
22 25
Calcul de la matrice N

Donc la matrice N sera : N 4


5
4
25
6 4
5 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)
Simulation
C ou m

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

Temps (min)
Simulation

u2 = dbit chelons unitaires


m3/min

deau froide sur temprature 1 min;


sur niveau 10 min.

u1 = dbit
deau chaude

Temps (min)
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 )
Observateur dtat
(prambule)

Considrons le systme suivant :


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

e x Be u Ke y Ce x
x A ~
~ ~
Observateur dtat

Lapproximation est lobservateur


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

x Beu Ke y Ce ~
x Ae ~
~ x
Schma bloc dun observateur
dtat
~
x (t0 )
u( t )
~
x Be u Ke y Ce ~
x
x (t )
y (t ) x Ae ~
~

Terme de
correction
Observateur dtat complet

Schma bloc :
x (t 0 )

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

K (t ) ~
x (t0 )
~
x Be u Ke y Ce ~
x
x (t )
y (t ) x Ae ~
~
Observateur dtat complet
(Erreur)

Lerreur est value comme suit :



~ ~
x x Ax Ae x Bu Beu
K Cx C x
e 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 KeC x ~
x ~ x
e A Ke Ce

La dynamique du vecteur derreur


e est dfinie par les valeurs
propres de la matrice A-KeC.
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 Ce
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 * *
AC *
A
* n 1
C *

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 * *
AC *

* 2 *
A C 0 1 0
0 0 1

Rang(N) = 3 = n observable.
tape 2
(si compltement observable)

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

Polynme caractristique :

det sI A s a1s
n n 1
an1s an
tape 2
(si compltement contrlable)

Ainsi, pour lexemple :


det sI A s 6s 5s 1
3 2

Donc :
a1 6
a2 5
a3 1
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
tape 3
(fin exemple)

Q WN
Obtenir la matrice de * 1
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
1s n 1
n1s n
Ce qui mne au coefficients :
1 2 n
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
18s 2
160s 800
1 2 3
tape 5

Calcul de la matrice de gains Ke :

n an

n 1 an 1
Ke Q


1 a1
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
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);
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)
Exemple sur SIMULINK
(schma bloc)

Sous-systme : Observateur
Exemple sur SIMULINK
(schma bloc)

[B Ke]

Sous-systme : Observateur
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
Exemple sur SIMULINK
(schma bloc)
Exemple sur SIMULINK
(rsultats)

Temps (min)

Vous aimerez peut-être aussi