Commande en espace détat Juillet 2010. Représentation en boucle ouverte Équation : m entrées, p...

Preview:

Citation preview

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

Recommended