Commande en espace d’état

Preview:

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

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.

( ) ( ) ( ) ( ) ( )( ) ( ) ( )x t A t x t B t u ty 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 00 0 11 5 6

B

001

É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

É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

É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

É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

Étape 3 (exemple)

Construire la matrice W :

Wa aa

2 1

1

11 0

1 0 0

5 6 16 1 01 0 0

Étape 3 (fin exemple)

Obtenir la matrice de transformation T :

Ici :

T MW

T

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

2 410

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 : 1

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

Étape 5(exemple)

Dans l’exemple :

1 0 0200 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)

x1x2

x3

Temps (min)

Ampl

itude

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®

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®

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

4

.

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

MATLAB®

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)

y2Conditions 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 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

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

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®

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®

É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

É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

É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

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

kk

kk

11310

221125

121125

21920

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

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

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

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 tB 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 Buy 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 xe 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 ee

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 00 0 11 5 6

B

001

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

* * * * *21 0 00 1 00 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 n

n 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

aaa

1

2

3

651

É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

Étape 3 (exemple)

Construire la matrice W :

Wa aa

2 1

1

11 0

1 0 0

5 6 16 1 01 0 0

Étape 3 (fin exemple)

Obtenir la matrice de transformation Q :

Ici :

Q WN* 1

Q

0 0 10 1 61 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 js

4 810

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

aa

a

e

n n

n n

1 1

1 1

Étape 5(exemple)

Dans l’exemple :

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

eK

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)

Ampl

itude

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

Recommended