commande en espace détat juillet 2010. représentation en boucle ouverte Équation : m entrées, p...
TRANSCRIPT
Commande en espace d’état
Juillet 2010
Représentation en boucle ouverte
Équation :
m entrées, p sorties, n équations d’état linéaires.
( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
x t A t x t B t u t
y t C t x t
Commande par retour d’état linéaire
Structure :
N t( )y td ( ) + ( ) ( ) ( ) ( ) ( )x t A t x t B t u t
u t( )C t( )
y t( )
K t( )
+
x t( )0
( ) ( ) ( ) ( ) ( )du t K t x t N t y t
Représentation en boucle fermée (retour d’état linéaire)
Équation en boucle fermée :
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )dx t A t B t K t x t B t N t y t
y t C t x t
Contrôlabilité
Au préalable, il faut vérifier si le système est contrôlable. Rang(M)=n
Matrice de contrôlabilité M :
M B AB A Bn 1
Design par placement de pôles
Valeurs propres désirées pour (A-BK) :
Parties réelles négatives; Choix des gains de la matrice de gains
K.
1 2, , , n
Exemple de design
Soit le système suivant :
A
0 1 0
0 0 1
1 5 6
B
0
0
1
Étape 1
Vérifier si le système est contrôlable: Matrice de contrôlabilité
Rang(M) = 3 = n contrôlable.
M B AB A B
2
0 0 1
0 1 6
1 6 31
Étape 2 (si complètement contrôlable)
Du polynôme caractéristique de la matrice A, déterminer les coefficients a1, a2, ..., an :
Polynôme caractéristique :
det sI A s a s a s an nn n 1
11
Étape 2 (si complètement contrôlable)
Ainsi, pour l’exemple :
Donc :
det sI A s s s 3 26 5 1
a
a
a
1
2
3
6
5
1
Étape 3
Construire la matrice de transformation T = MW.
Matrice W :
W
a a
a
a
n
1 1
1
1
1
1 0
1 0 0
1 0 0 0
Étape 3 (exemple)
Construire la matrice W :
W
a a
a
2 1
1
1
1 0
1 0 0
5 6 1
6 1 0
1 0 0
Étape 3 (fin exemple)
Obtenir la matrice de transformation T :
Ici :
T MW
T
1 0 0
0 1 0
0 0 1
Étape 4
Choisir les valeurs propres désirées: Pôles en boucle fermée. Écrire le polynôme caractéristique
correspondant.
Ce qui mène au coefficients :
s s s s s snn n
n n 1 2 1
11
1 2 n
Étape 4(exemple)
Donc, si on choisi les pôles suivants:
Cela mène à :
s j
s
2 4
10
s j s j s s s s 2 4 2 4 10 14 60 2003 2
1 2 3
Étape 5
Calcul de la matrice de gains K : Taille : 1 ligne et n colonnes.
Donc :
11 1 1 1n n n nK a a a T
Étape 5(exemple)
Dans l’exemple :
1 0 0
200 1 60 5 14 6 0 1 0
0 0 1
199 55 8
K
Exemple sur MATLAB®
% Entrée des matrices A et B
» A=[0 1 0; 0 0 1; -1 -5 -6];
» B = [0;0;1];
% Déterminer la matrice de contrôlabilité
» M=ctrb(A,B);
% Déterminer le rang de M
» r=rank(M)
r =
3
% Puisque le rang est de 3, le placement des pôles est possible
Exemple sur MATLAB®
(suite)
% Calcul du polynôme caractéristique
» JA = poly(A)
JA =
1.0000 6.0000 5.0000 1.0000
% Extraction des coefficients
» a1 = JA(2); a2 = JA(3); a3 = JA(4);
% Définition des matrices W et T
» W = [a2 a1 1; a1 1 0 ; 1 0 0];
» T = M*W;
Exemple sur MATLAB®
(suite)
% Calcul du polynôme caractéristique désiré en définissant 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 désirés
» 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®
(schéma bloc)
Exemple sur SIMULINK®
(résultats)
x1
x2
x3
Temps (min)
Am
plit
ud
e
Exemple #2
Soit un système représenté par les matrices suivantes :
A
0 1 0 0
20 0 0 0
0 0 0 1
0 0 012
B
0
1
012
C
1 0 0 0
0 0 1 0
» A = [0 1 0 0 ; 20 0 0 0 ; 0 0 0 1 ; -0.5 0 0 0 ];
» B = [0 ; -1 ; 0 ; 0.5];
» C = [1 0 0 0 ; 0 0 1 0];MATLAB®
Solution – Est-ce contrôlable ?
Vérifions : M B AB A B A B 2 3
M
0 1 0 20
1 0 20 0
0 0
0 0
12
12
12
12
» M = ctrb(A,B);
» r = rank(M)
r = 4 % OuiMATLAB®
Solution – Équation caractéristique de A
det(sI-A) donne ce polynôme de A :
Conclusion :
det sI A s s
s a s a s a s a
4 2
41
32
23 4
20
» JA = poly(A);
» a1 = JA(2); a2 = JA(3); a3 = JA(4); a4 = JA(5);MATLAB®
a a a a1 2 3 40 20 0 0
Solution – Équation caractéristique désirée
En choisissant les pôles pour obtenir une dynamique ayant un temps de réponse à 2% de 2 secondes et un amortissement de 0.5. 2ième ordre.
Puisque : tss
nn
rds
4 4
0 5 24
.
Solution – Équation caractéristique désirée
Le dépassement maximal étant :
Les pôles désirés sont donc :
M ep
1 2
100% 16 3%.
1 2 3 42 2 3 10, , j
Solution – Équation caractéristique désirée
L’équation caractéristique est finalement :
Les coefficients désirés :
» 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];
» JJ = poly(J);
» aa1 = JJ(2); aa2 = JJ(3); aa3 = JJ(4); aa4 = JJ(5);
MATLAB®
s s s s
s s s s
1 2 3 4
4 3 224 196 720 1600
1 2 3 424 196 720 1600
Solution – Matrice de transformation T
La matrice W étant déduite des coefficients de A, on peut obtenir la matrice T comme suit :
» W = [a3 a2 a1 1; a2 a1 1 0 ; a1 1 0 0 ; 1 0 0 0];
» T=M*W;MATLAB®
T MW
0 0 1 0
0 0 0 1
9 5 0 0
0 9 5 0
12
12
.
.
Solution – Matrice des gains K
La matrice K est calculée comme suit :
» K=-[aa4-a4 aa3-a3 aa2-a2 aa1-a1]*inv(T)
K =
300.2105 61.8947 168.4211 75.7895MATLAB®
14 4 3 3 2 2 1 1
300.21 61.89 168.42 75.79
K a a a a T
Simulation (pendule inversé)
Schéma SIMULINK® :
y1 = x1 = angle du pendule (radians)
y2 = x3 = position du chariot (mètres)
Simulation (pendule inversé)
y1
Temps (min)
y2
Conditions initiales :
x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0
Simulation (pendule inversé)
x1
Temps (min)
x2
Conditions initiales :
x1 = 0.1; x2 = 0 ; x3 = 0 ; x4 = 0
x3
x4
Réservoir de mélange
Eau froideFC,TC
Eau chaudeFH,TH
hT
SortieF(h),T
À contrôler:
• Température T
• Hauteur h
Commande:
• Débit eau froide FC
• Débit eau chaude FH
Modèle du réservoir de mélange
Équations :
BA A
T T
A h
T T
A h
C C
H s
C s
C s
C s
1 1
A
K
A hK
A h
c s
c s
20
0
C
1 0
0 1
Paramètres du système
Voici les paramètres du système : K = 1 m2.5/min hs = 4 m Ac = 2 m2
TH = 65 °C TC = 15 °C TS = 35 °C
Matrices du modèle
Donc :
B
12
12
3 75 2 5. .A
18
14
0
0C
1 0
0 1
» A = [-1/8 0 ; 0 -1/4];
» B = [1/2 1/2 ; 3.75 -2.5];
» C = [1 0 ; 0 1];MATLAB®
Contrôlabilité
Calcul de M :
Rang de M = 2.
M B AB
0 5 0 5
3 75 2 5
0 0625 0 0625
0 9375 0 625
. .
. .
. .
. .
» M = ctrb(A,B);
» r = rank(M);
r = 2MATLAB®
Équation en boucle fermée
Posant K :
Alors :
A BKk k k k
k k k k
18
12 11
12 21
12 12
12 22
154 11
52 21
14
154 12
52 22
% En symbolique
» syms k11 k12 k21 k22
» S = A+B*[k11 k12; k21 k22];MATLAB®
Kk k
k k
11 12
21 22
Élimination de l’interaction
Il suffit que A+BK soit diagonal, donc :
Il faut donc que :
12 12
12 22
154 11
52 21
0
0
k k
k k
k k
k k12 22
2132 11
Élimination de l’interaction
En remplaçant, on trouve que :
» S = A+B*[k11 -k22; 3/2*k11 k22]
S =
[ -1/8+5/4*k11, 0]
[ 0, -1/4-25/4*k22]MATLAB®
A BKk
k
18
54 11
14
254 22
0
0
Placement des pôles
En ajustant les gains k11 et k22, on modifie la dynamique du système.
Indépendance de l’ajustement des 2 gains.
On désire un constante de temps de 2 min pour le niveau et de 5 min pour la température.
Équation caractéristique
L’équation caractéristique de A+BK est :
D’où :
det sI A BK s k s k
s s
18
54 11
14
254 22
12
15
k
k
k
k11
310
221125
121125
21920
Calcul de la matrice N
Il faut que BN soit une matrice diagonale.
Définissant N :
Alors :
BNn n n n
n n n n
12 11
12 21
12 12
12 22
154 11
52 21
154 12
52 22
Nn n
n n
11 12
21 22
Calcul de la matrice N
Pour BN diagonale, il faut :
Ce qui mène à :
BNn
n
n
n
54 11
254 22
1145
22425
0
0
1 0
0 1
12 12
12 22
154 11
52 21
12 22
2132 11
0
0
n n
n n
n n
n n
Calcul de la matrice N
Donc la matrice N sera : N
45
425
65
425
» 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 =
[ 5/4*n11, 0]
[ 0, -25/4*n22]MATLAB®
Simulation
Schéma SIMULINK® :
y1 = x1 = Δ niveau (mètres)
y2 = x2 = Δ température (°C)
Simulation
y1 = Δh
Temps (min)
Échelons unitaires
sur température à 1 min;
sur niveau à 10 min.
y2 = ΔT
°C o
u
m
Simulation
u1 = débitd’eau chaude
Temps (min)
Échelons unitaires
sur température à 1 min;
sur niveau à 10 min.
u2 = débit d’eau froidem
3/m
in
Commande par retour de la sortie
Structure :
u t L t y t N t y td( ) ( ) ( ) ( ) ( )
N t( )y td ( ) + ( ) ( ) ( ) ( ) ( )x t A t x t B t u t
u t( )C t( )
y t( )
L t( )
+
x t( )0
Représentation en boucle fermée (retour de sortie)
Équation en boucle fermée :
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
x t A t B t L t C t x t
B t N t y t
y t C t x td
Observateur d’état(préambule)
Considérons le système suivant :
On peut faire l’approximation de l’état du système comme suit :
x Ax Bu
y C x
~ ~ ~x A x B u K y C xe e e e
Observateur d’état
L’approximation est l’observateur d’état. En utilisant u et y comme entrée, il déduit la valeur du vecteur d’état.
~ ~ ~x A x B u K y C xe e e e
Schéma bloc d’un observateur d’état
~ ~ ~x A x B u K y C xe e e e y t( )
u t( )~ ( )x t
~ ( )x t 0
Terme de correctio
n
Observateur d’état complet
Schéma bloc :
P t( )y td ( ) ( ) ( ) ( ) ( ) ( )x t A t x t B t u t
u t( )C t( )
y t( )
x t( )0
~ ~ ~x A x B u K y C xe e e e y t( )~ ( )x t
~ ( )x t 0
+
+
K t( )
Observateur d’état complet(Erreur)
L’erreur est évaluée comme suit :
Si les paramètres de l’observateur sont identiques aux paramètres réels, cela simplifie l’équation.
~ ~
~
x x Ax A x Bu B u
K Cx C x
e e
e e
Observateur d’état complet(Erreur – suite)
Donc, comme Ae = A, Be = B et Ce = C:
La dynamique du vecteur d’erreur « e » est définie par les valeurs propres de la matrice A-KeC.
~ ~
x x A K C x x
e A K C e
e
e
Observateur d’état complet(Dynamique de l’erreur)
Les valeurs propres de la matrice A-KeC sont ajustés pour que la dynamique soit beaucoup plus rapide que la dynamique du système réel.
e A K C ee
Observateur d’état complet(Condition essentielle)
Pour pouvoir réaliser un observateur d’état, il faut que le système soit observable. Rang(N) = n
Matrice d’observabilité N :
N C A C A Cn
* * * * *1
Exemple de conception d’un observateur d’état complet
Soit le système suivant :
A
0 1 0
0 0 1
1 5 6
B
0
0
1
C 1 0 0
Étape 1
Vérifier si le système est observable: Matrice d’observabilité
Rang(N) = 3 = n observable.
N C A C A C
* * * * *2
1 0 0
0 1 0
0 0 1
Étape 2 (si complètement observable)
Du polynôme caractéristique de la matrice A, déterminer les coefficients a1, a2, ..., an :
Polynôme caractéristique :
det sI A s a s a s an nn n 1
11
Étape 2 (si complètement contrôlable)
Ainsi, pour l’exemple :
Donc :
det sI A s s s 3 26 5 1
a
a
a
1
2
3
6
5
1
Étape 3
Construire la matrice de transformation Q = (WN*)-1.
Rappel - Matrice W :
W
a a
a
a
n
1 1
1
1
1
1 0
1 0 0
1 0 0 0
Étape 3 (exemple)
Construire la matrice W :
W
a a
a
2 1
1
1
1 0
1 0 0
5 6 1
6 1 0
1 0 0
Étape 3 (fin exemple)
Obtenir la matrice de transformation Q :
Ici :
Q WN* 1
Q
0 0 1
0 1 6
1 6 31
Étape 4
Choisir les valeurs propres désirées: Pôles en boucle fermée. Écrire le polynôme caractéristique
correspondant.
Ce qui mène au coefficients :
s s s s s snn n
n n 1 2 1
11
1 2 n
Étape 4(exemple)
Donc, si on choisi les pôles suivants:
Cela mène à :
s j
s
4 8
10
s j s j s s s s 4 8 4 8 10 18 160 8003 2
1 2 3
Étape 5
Calcul de la matrice de gains Ke :
K Q
a
a
a
e
n n
n n
1 1
1 1
Étape 5(exemple)
Dans l’exemple :
0 0 1 800 1 12
0 1 6 160 5 83
1 6 31 18 6 241eK
Exemple sur MATLAB®
% Entrée des matrices A et B
» A=[0 1 0; 0 0 1; -1 -5 -6];
» B = [0;0;1];
» C = [0 0 1];
% Déterminer la matrice d’observabilité
» N=obsv(A,C)’;
% Déterminer le rang de N
» r=rank(N)
r =
3
% Puisque le rang est de 3, le placement des pôles est possible
Exemple sur MATLAB®
(suite)
% Calcul du polynôme caractéristique
» JA = poly(A)
JA =
1.0000 6.0000 5.0000 1.0000
% Extraction des coefficients
» a1 = JA(2); a2 = JA(3); a3 = JA(4);
% Définition 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 polynôme caractéristique désiré en définissant 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 désirés
» 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®
(schéma bloc)
Exemple sur SIMULINK®
(schéma bloc)
Sous-système : Observateur
Exemple sur SIMULINK®
(schéma bloc)
Sous-système : Observateur
[B Ke]
Exemple sur SIMULINK®
(résultats)
y =x1
x2
x3 Temps (min)
Am
plit
ud
e
erreur sur y
Si on ajoute l’aspect contrôle
Le contrôle par retour d’état sera le même que celui décrit au début de la présentation.
On avait obtenu la matrice de gain K :
199 55 8K
Exemple sur SIMULINK®
(schéma bloc)
Exemple sur SIMULINK®
(résultats)
Temps (min)
y