82
Commande en espace d’état Guy Gauthier ing. Ph.D. SYS-823 - Juillet 2011

Commande en espace d’état

  • Upload
    dmitri

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Commande en espace d’état. Guy Gauthier ing . Ph.D . SYS-823 - Juillet 2011. Représentation en boucle ouverte. Équation : m entrées, p sorties, n équations d’état linéaires. Commande par retour d’état linéaire. Structure :. Représentation en boucle fermée (retour d’état linéaire). - PowerPoint PPT Presentation

Citation preview

Page 1: Commande en espace d’état

Commande en espace d’état

Guy Gauthier ing. Ph.D.SYS-823 - Juillet 2011

Page 2: Commande en espace d’état

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 ty t C t x t

Page 3: Commande en espace d’état

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

Page 4: Commande en espace d’état

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

Page 5: Commande en espace d’état

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

Page 6: Commande en espace d’état

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

Page 7: Commande en espace d’état

Exemple de design

Soit le système suivant :

A

0 1 00 0 11 5 6

B

001

Page 8: Commande en espace d’état

É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 10 1 61 6 31

Page 9: Commande en espace d’état

É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 n

n n 1

11

Page 10: Commande en espace d’état

Étape 2 (si complètement contrôlable)

Ainsi, pour l’exemple :

Donc :

det sI A s s s 3 26 5 1

aaa

1

2

3

651

Page 11: Commande en espace d’état

Étape 3

Construire la matrice de transformation T = MW.

Matrice W :

W

a aa

a

n

1 1

1

1

11 0

1 0 01 0 0 0

Page 12: Commande en espace d’état

Étape 3 (exemple)

Construire la matrice W :

Wa aa

2 1

1

11 0

1 0 0

5 6 16 1 01 0 0

Page 13: Commande en espace d’état

Étape 3 (fin exemple)

Obtenir la matrice de transformation T :

Ici :

T MW

T

1 0 00 1 00 0 1

Page 14: Commande en espace d’état

É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

Page 15: Commande en espace d’état

Étape 4(exemple)

Donc, si on choisi les pôles suivants:

Cela mène à :

s js

2 410

s j s j s s s s 2 4 2 4 10 14 60 2003 2

1 2 3

Page 16: Commande en espace d’état

Étape 5

Calcul de la matrice de gains K : Taille : 1 ligne et n colonnes.

Donc : 1

1 1 1 1n n n nK a a a T

Page 17: Commande en espace d’état

Étape 5(exemple)

Dans l’exemple :

1 0 0200 1 60 5 14 6 0 1 0

0 0 1

199 55 8

K

Page 18: Commande en espace d’état

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

Page 19: Commande en espace d’état

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;

Page 20: Commande en espace d’état

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

Page 21: Commande en espace d’état

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

Page 22: Commande en espace d’état

Exemple sur SIMULINK®

(schéma bloc)

Page 23: Commande en espace d’état

Exemple sur SIMULINK®

(résultats)

x1x2

x3

Temps (min)

Ampl

itude

Page 24: Commande en espace d’état

Exemple #2

Soit un système représenté par les matrices suivantes :

A

0 1 0 020 0 0 00 0 0 1

0 0 012

B

01012

C

1 0 0 00 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®

Page 25: Commande en espace d’état

Solution – Est-ce contrôlable ?

Vérifions : M B AB A B A B 2 3

M

0 1 0 201 0 20 00 0

0 0

12

12

12

12

» M = ctrb(A,B);» r = rank(M)r = 4 % Oui

MATLAB®

Page 26: Commande en espace d’état

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

Page 27: Commande en espace d’état

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 40 5 2

4

.

Page 28: Commande en espace d’état

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

Page 29: Commande en espace d’état

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

Page 30: Commande en espace d’état

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 00 0 0 19 5 0 00 9 5 0

12

12

..

Page 31: Commande en espace d’état

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.7895

MATLAB®

14 4 3 3 2 2 1 1

300.21 61.89 168.42 75.79

K a a a a T

Page 32: Commande en espace d’état

Simulation (pendule inversé)

Schéma SIMULINK® :

y1 = x1 = angle du pendule (radians)y2 = x3 = position du chariot (mètres)

Page 33: Commande en espace d’état

Simulation (pendule inversé)

y1

Temps (min)

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

Page 34: Commande en espace d’état

Simulation (pendule inversé)

x1

Temps (min)

x2

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

x3

x4

Page 35: Commande en espace d’état

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

Page 36: Commande en espace d’état

Modèle du réservoir de mélange

Équations :

BA A

T TA h

T TA h

C C

H s

C s

C s

C s

1 1

A

KA h

KA h

c s

c s

20

0

C

1 00 1

Page 37: Commande en espace d’état

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

Page 38: Commande en espace d’état

Matrices du modèle

Donc :

B

12

12

3 75 2 5. .A

18

14

00

C

1 00 1

» A = [-1/8 0 ; 0 -1/4]; » B = [1/2 1/2 ; 3.75 -2.5];» C = [1 0 ; 0 1];

MATLAB®

Page 39: Commande en espace d’état

Contrôlabilité

Calcul de M :

Rang de M = 2.

M B AB

0 5 0 53 75 2 5

0 0625 0 06250 9375 0 625

. .. .

. .

. .

» M = ctrb(A,B);» r = rank(M);r = 2

MATLAB®

Page 40: Commande en espace d’état

É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 kk k

11 12

21 22

Page 41: Commande en espace d’état

Élimination de l’interaction

Il suffit que A+BK soit diagonal, donc :

Il faut donc que :

12 12

12 22

154 11

52 21

00

k kk k

k kk k12 22

2132 11

Page 42: Commande en espace d’état

É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

00

Page 43: Commande en espace d’état

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.

Page 44: Commande en espace d’état

É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

kk

kk

11310

221125

121125

21920

Page 45: Commande en espace d’état

Calcul de la matrice N

Il faut que BN soit une matrice diagonale.

Définissant N :

Alors :BN

n n n nn n n n

12 11

12 21

12 12

12 22

154 11

52 21

154 12

52 22

Nn nn n

11 12

21 22

Page 46: Commande en espace d’état

Calcul de la matrice N

Pour BN diagonale, il faut :

Ce qui mène à :

BNn

nnn

54 11

254 22

1145

22425

00

1 00 1

12 12

12 22

154 11

52 21

12 22

2132 11

00

n nn n

n nn n

Page 47: Commande en espace d’état

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®

Page 48: Commande en espace d’état

Simulation

Schéma SIMULINK® :

y1 = x1 = Δ niveau (mètres)y2 = x2 = Δ température (°C)

Page 49: Commande en espace d’état

Simulation

y1 = Δh

Temps (min)

Échelons unitaires sur température à 1 min;sur niveau à 10 min.

y2 = ΔT

°C o

u m

Page 50: Commande en espace d’état

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 /min

Page 51: Commande en espace d’état

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

Page 52: Commande en espace d’état

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 tB t N t y t

y t C t x td

Page 53: Commande en espace d’état

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 Buy C x

~ ~ ~x A x B u K y C xe e e e

Page 54: Commande en espace d’état

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

Page 55: Commande en espace d’état

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

Page 56: Commande en espace d’état

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

Page 57: Commande en espace d’état

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 xe e

e e

Page 58: Commande en espace d’état

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 ee

e

Page 59: Commande en espace d’état

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

Page 60: Commande en espace d’état

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

Page 61: Commande en espace d’état

Exemple de conception d’un observateur d’état complet

Soit le système suivant :

A

0 1 00 0 11 5 6

B

001

C 1 0 0

Page 62: Commande en espace d’état

Étape 1

Vérifier si le système est observable: Matrice d’observabilité

Rang(N) = 3 = n observable.

N C A C A C

* * * * *21 0 00 1 00 0 1

Page 63: Commande en espace d’état

É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 n

n n 1

11

Page 64: Commande en espace d’état

Étape 2 (si complètement contrôlable)

Ainsi, pour l’exemple :

Donc :

det sI A s s s 3 26 5 1

aaa

1

2

3

651

Page 65: Commande en espace d’état

Étape 3

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

Rappel - Matrice W :

W

a aa

a

n

1 1

1

1

11 0

1 0 01 0 0 0

Page 66: Commande en espace d’état

Étape 3 (exemple)

Construire la matrice W :

Wa aa

2 1

1

11 0

1 0 0

5 6 16 1 01 0 0

Page 67: Commande en espace d’état

Étape 3 (fin exemple)

Obtenir la matrice de transformation Q :

Ici :

Q WN* 1

Q

0 0 10 1 61 6 31

Page 68: Commande en espace d’état

É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

Page 69: Commande en espace d’état

Étape 4(exemple)

Donc, si on choisi les pôles suivants:

Cela mène à :

s js

4 810

s j s j s s s s 4 8 4 8 10 18 160 8003 2

1 2 3

Page 70: Commande en espace d’état

Étape 5

Calcul de la matrice de gains Ke :

K Q

aa

a

e

n n

n n

1 1

1 1

Page 71: Commande en espace d’état

Étape 5(exemple)

Dans l’exemple :

0 0 1 800 1 120 1 6 160 5 831 6 31 18 6 241

eK

Page 72: Commande en espace d’état

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

Page 73: Commande en espace d’état

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

Page 74: Commande en espace d’état

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

Page 75: Commande en espace d’état

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

Page 76: Commande en espace d’état

Exemple sur SIMULINK®

(schéma bloc)

Page 77: Commande en espace d’état

Exemple sur SIMULINK®

(schéma bloc)

Sous-système : Observateur

Page 78: Commande en espace d’état

Exemple sur SIMULINK®

(schéma bloc)

Sous-système : Observateur

[B Ke]

Page 79: Commande en espace d’état

Exemple sur SIMULINK®

(résultats)

y =x1

x2

x3 Temps (min)

Ampl

itude

erreur sur y

Page 80: Commande en espace d’état

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

Page 81: Commande en espace d’état

Exemple sur SIMULINK®

(schéma bloc)

Page 82: Commande en espace d’état

Exemple sur SIMULINK®

(résultats)

Temps (min)

y