ˆX - Femto-ST

Transcription

ˆX - Femto-ST
P OLYCOPI É DE T RAVAUX
P RATIQUES
———————————————-
Master - Mécatronique - 1ère Année (S7)
Université de Franche-Comté à Besançon
C OMMANDE DES S YST ÈMES M ULTIVARIABLES (CSM)
Micky R AKOTONDRABE
tél : 03 81 40 28 03
mail : [email protected]
document téléchargeable sur
http://www.femto-st.fr/˜micky.rakotondrabe/teaching.php
1
Table des matières
1
P OUTRE
PI ÉZO ÉLECTRIQUE À
2 DDL :
COMMANDE PAR PLACEMENT DE P ÔLES
ET COMMANDE LIN ÉAIRE QUADRATIQUE
1.1
1.2
1.3
2
Le système . . . . . . . . . . . . . . . . . . . . .
1.1.1 Création du système . . . . . . . . . . . .
1.1.2 Pôles et valeurs propres . . . . . . . . . .
1.1.3 Simulation du système . . . . . . . . . . .
Commande par retour d’état par placement de pôles
1.2.1 Commandabilité . . . . . . . . . . . . . .
1.2.2 Mise en équation du système bouclé . . . .
1.2.3 Calcul de la matrice de retour Kc . . . . .
1.2.4 Calcul du préfiltre L . . . . . . . . . . . .
1.2.5 Simulation du système bouclé . . . . . . .
Commande optimale Linéaire Quadratique (LQ) . .
1.3.1 Satisfaction des conditions . . . . . . . . .
1.3.2 Calcul de la matrice de retour Kc . . . . .
1.3.3 Simulation du système bouclé . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
7
7
7
7
8
8
8
8
9
9
10
10
10
S YST ÈME HYDRAULIQUE À TROIS BACS : COMMANDE PAR PLACEMENT DE P ÔLES
L UENBERGER
11
2.1 Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Création du système . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.3 Simulation du système . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Commande par retour d’état par placement de pôles . . . . . . . . . . . . . . . 13
2.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Mise en équation du système bouclé . . . . . . . . . . . . . . . . . . . 14
2.2.3 Calcul de la matrice de retour Kc . . . . . . . . . . . . . . . . . . . . 14
2.2.4 Calcul du préfiltre L . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.5 Simulation du système bouclé . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Observateur complet ou observateur de Luenberger . . . . . . . . . . . . . . . 14
2.3.1 Observabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Mise en équation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 Calcul du gain de l’observateur Ko . . . . . . . . . . . . . . . . . . . 17
ET OBSERVATEUR DE
2
2.4
3
2.3.4 Simulation du système avec observateur . . . . . . . . . . . . . . . . .
Observateur et commande par placement de pôles . . . . . . . . . . . . . . . .
H ÉLICOPT ÈRE :
RETOUR D ’ ÉTAT AVEC ACTION INT ÉGRALE ET OBSERVATEUR
Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Création du système . . . . . . . . . . . . . . . . . . . .
3.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . .
3.1.3 Simulation du système . . . . . . . . . . . . . . . . . . .
Commande par retour d’état avec action intégrale . . . . . . . . .
3.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Calcul de la matrice de retour K par placement de pôles .
3.2.3 Simulation du système bouclé . . . . . . . . . . . . . . .
Observateur réduit . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Création des sous-systèmes . . . . . . . . . . . . . . . . .
3.3.2 Observabilité . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Calcul du gain de l’observateur Ko . . . . . . . . . . . .
3.3.4 Implémentation de l’observateur réduit et de la commande
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
19
19
20
20
22
22
23
23
25
25
26
26
AVION : COMMANDE MODALE ET ESTIMATEUR DE L UENBERGER
4.1 Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Création du système . . . . . . . . . . . . . . . . . . . .
4.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . .
4.1.3 Simulation du système . . . . . . . . . . . . . . . . . . .
4.2 Commande modale . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Calcul de la matrice de retour Kc et du préfiltre L . . . . .
4.2.3 Simulation du système bouclé . . . . . . . . . . . . . . .
4.3 Observateur complet ou observateur de Luenberger . . . . . . . .
4.3.1 Observabilité . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Calcul du gain de l’observateur Ko . . . . . . . . . . . .
4.4 Observateur et commande modale . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
28
28
29
29
32
32
32
33
33
33
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
36
36
36
37
37
38
38
39
R ÉDUIT
3.1
3.2
3.3
4
17
17
A Algèbre linéaire
A.1 Taille d’une matrice . . . . . . . .
A.2 Rang d’une matrice . . . . . . . .
A.3 Opérateurs transposée et adjoint .
A.4 Matrices particulières . . . . . . .
A.4.1 Matrice identité . . . . . .
A.4.2 Matrice nulle . . . . . . .
A.5 Valeurs propres et vecteurs propres
A.6 Spectre et rayon spectral . . . . .
A.7 Comatrice . . . . . . . . . . . . .
A.8 Inverse d’une matrice . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A.9 Pseudo-inverse d’une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . .
B Outils de base pour les modèles d’état
B.1 Ordre du système . . . . . . . . .
B.2 Stabilité . . . . . . . . . . . . . .
B.3 Commandabilité . . . . . . . . . .
B.4 Observabilité . . . . . . . . . . .
40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
42
42
C Quelques fonctions de M ATLAB
C.1 Calcul de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C.2 Calcul matriciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C.3 Quelques fonctions de base utilisées en Automatique . . . . . . . . .
C.4 Quelques fonctions d’analyse et de synthèse utilisées en Automatique
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
46
48
.
.
.
.
.
.
.
.
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapitre 1
P OUTRE PI ÉZO ÉLECTRIQUE À 2 DDL :
COMMANDE PAR PLACEMENT DE
P ÔLES ET COMMANDE LIN ÉAIRE
QUADRATIQUE
1.1
Le système
Une poutre piézoélectrique est une poutre qui, lorsqu’on applique une tension électrique sur
ses électrodes, fléchit. Une poutre à deux degrés de libertés (2ddl) fléchit dans les deux axes x ou
y selon que la tension soit appliquée sur les électrodes dans l’un ou dans l’autre axe (Fig. 1.1).
poutre piézoélectrique
δy
δx
F IG . 1.1 – Photo d’une poutre piézoélectrique.
Le modèle d’état linéaire d’une poutre piézoélectrique est :
dX
dt = AX + BU
Y = CX + DU
5
(1.1.1)
La première équation s’appelle équation d’état tandis que la deuxième équation de sortie.
On a :
–
–
–
–
–
–
–
X est le vecteur d’état,
Y est le vecteur de sortie,
U est le vecteur de commande,
A s’appelle matrice d’état,
B s’appelle matrice de commande,
C s’appelle matrice de sortie,
et D s’appelle matrice de liaison directe. D est une matrice nulle dans toute la suite.
On a :

Y =
δx
δy
U=
Ux
Uy

δx
 vx 

X=
 δy 
vy
(1.1.2)
et :


0
1
0
0
 −3.949 × 107 −251.4

0
0

A=


0
0
0
1
7
0
0
−2.744 × 10 −314.3
C=
1 0 0 0
0 0 1 0


0
0
 31595372 9479408 

B=


0
0
23324224 6860066
(1.1.3)
La Fig. 1.2-a montre le schéma fonctionnel de la poutre tandis que la Fig. 1.2-b donne le
schéma-bloc détaillé.
6
U
Ux
Uy
Y
 dX
 = AX + BU
 dt
Y = CX + DU
 dX
 = AX + BU
 dt
Y = CX + DU
δx
δy
(a)
U B
++
X&
∫
X
C Y
A
(b)
F IG . 1.2 – Schéma fonctionnel et schéma-bloc.
1.1.1
Création du système
Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink.
1.1.2
Pôles et valeurs propres
En utilisant Matlab :
– calculer les pôles du système G,
– calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de
A et les pôles du système,
– à partir de ces valeurs, que peut-on dire sur la stabilité du système.
1.1.3
Simulation du système
– Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de
Bode du système,
– dans Simulink, simuler la réponse indicielle du système.
1.2
Commande par retour d’état par placement de pôles
Dans le but d’améliorer les performances et de rejeter les effets des perturbations éventuelles,
on souhaite commander le système d’état G. Pour cela, on utilise le schéma-bloc de la Fig. 1.3.
Dans cette figure, on a :
– la consigne (ou référence) notée Yc ,
– la matrice de retour (ou matrice de retour d’état) notée Kc ,
– et le préfiltre (ou la matrice de préfiltre) noté L.
7
système
Yc L
+-
U B
++
X&
∫
X
C Y
A
Kc
F IG . 1.3 – Schéma-bloc du système bouclé.
1.2.1
Commandabilité
Avant de synthétiser un système de commande, il est important de savoir si le système est
commandable ou pas. Définir la commandabilité d’un système.
En utilisant Matlab :
– calculer la matrice de commandabilité notée Co ,
– déterminer le rang de la matrice Co ,
– en déduire si le système est commandable ou pas.
1.2.2
Mise en équation du système bouclé
A partir de la Fig. 1.3, donner le nouveau modèle d’état, c’est-à-dire, le modèle d’état du
système bouclé.
1.2.3
Calcul de la matrice de retour Kc
– d’après le nouveau modèle d’état, déterminer l’utilité de la matrice de retour Kc ?
– choisir des valeurs propres pour la nouvelle matrice d’état (A − BKc ). Pour cela, vous
partez des valeurs propres de A. Pourquoi ce choix ?
– calculer Kc avec Matlab.
1.2.4
Calcul du préfiltre L
– Lorsque le régime est permanent (p = 0 ou t → ∞ ou encore dX
dt = 0), donner l’expression de la sortie Y en fonction de la consigne Yc ,
– afin d’annuler l’erreur statique, c’est-à-dire Y = Yc , que doit être la matrice L ? calculer
L avec Matlab.
8
1.2.5
Simulation du système bouclé
– En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé,
– de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé,
– commenter sur les performances du système bouclé par rapport au système G.
Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas
à modifier les valeurs propres de (A − BKc ) puis à recalculer Kc et L.
1.3
Commande optimale Linéaire Quadratique (LQ)
Dans la section précédente, nous avons choisi nous-mêmes les pôles (ou valeurs propres)
du système bouclé afin de pouvoir calculer la matrice de retour Kc , d’où le nom de placement
de pôles. Dans cette section, un algorithme détermine automatiquement les pôles du système
bouclé selon un critère, le correcteur Kc s’en déduira par la suite. Ce critère s’appuie sur la
minimisation de l’énergie de sortie Y ainsi que l’énergie de l’entrée U . L’énergie étant une
forme quadratique des variables concernées, la fonction de coût à minimiser est donc :
Z ∞
J=
Y T Qy Y + U T RU dt
(1.3.1)
0
où Qy est une matrice symétrique définie positive et R une matrice symétrique définie positive. Les éléments du diagonal de Qy (resp. R) permettent de mettre en avant les sorties yi de
Y (resp ui de U ).
Puisqu’on s’intèresse à une commande par retour d’état, il est intéressant de mettre le coût
J définie par l’équa. 1.3 en fonction de l’état X. En utilisant Y = CX et Y T = X T C T , on
obtient :
Z ∞
J=
X T QX + U T RU dt
(1.3.2)
0
avec Q =
C T Qy C.
Si les éléments de Q (resp. de R) permettent de pondérer les éléments de X (resp. de U )
entre eux, on poura introduire un coefficient supplémentaire ρ qui pondère l’énergie de sortie
(ou de l’état) par rapport à l’énergie de l’entrée. L’énergie totale à minimiser devient donc :
Z ∞
J=
ρX T QX + U T RU dt
(1.3.3)
0
Si la paire (A, B) est commandable et la paire (A, C) observable, il existe une solution
unique P , matrice symétrique définie positive, solution de l’Equation Algébrique de Riccati
suivante :
AT P + P A + ρQ − P BR−1 B T P = [0]
9
(1.3.4)
Ainsi, la matrice de retour d’état qui minimise J est donnée par :
Kc = R−1 B T P
1.3.1
(1.3.5)
Satisfaction des conditions
Dans les questions précédentes, on a vu que (A, B) est commandable. Vérifier que (A, C)
est observable.
1.3.2
Calcul de la matrice de retour Kc
– Choisir les matrices Q et R ainsi que le coefficient ρ,
– calculer la matrice de retour Kc ,
– calculer également le préfiltre L.
1.3.3
Simulation du système bouclé
– En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé,
– de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé,
– commenter sur les performances du système bouclé par rapport au système G.
Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas
à modifier les matrices Q et R ainsi que le coefficient ρ puis à recalculer Kc et L.
10
Chapitre 2
S YST ÈME HYDRAULIQUE À TROIS
BACS : COMMANDE PAR PLACEMENT
DE P ÔLES ET OBSERVATEUR DE
L UENBERGER
2.1
Le système
On considère le système hydraulique à 3 bacs de la Fig. 2.1. Le modèle d’état de ce système
est :
dX
dt = AX + BU
(2.1.1)
Y = CX + DU
On a :
Y =
x1
x3
U=
U1
U2


x1
X =  x2 
x3
(2.1.2)
et :


−0.332 0.332
0
A =  0.332 −0.664 0.332 
0
0.332 −0.524


0.764
0
0 
B= 0
0
0.764
(2.1.3)
C=
1 0 0
0 0 1
dans lesquelles :
11
– les niveaux d’eau x1 , x2 et x3 constituent le vecteur d’états du système,
– et les débits U1 et U2 constotuent le vecteur d’engtrée.
U1
x1
x2
U2
x3
F IG . 2.1 – Un système hydraulique à 3 bacs.
Les Fig. 2.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système.
U
 dX
 = AX + BU
 dt
Y = CX + DU
U1
U2
Y
 dX
 = AX + BU
 dt
Y = CX + DU
(a)
U B
++
X&
∫
X
C Y
A
(b)
F IG . 2.2 – Schéma fonctionnel et schéma-bloc détaillé.
12
x1
x3
2.1.1
Création du système
Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink.
2.1.2
Pôles et valeurs propres
En utilisant Matlab :
– calculer les pôles du système G,
– calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de
A et les pôles du système,
– à partir de ces valeurs, que peut-on dire sur la stabilité du système.
2.1.3
Simulation du système
– Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de
Bode du système,
– dans Simulink, simuler la réponse indicielle du système.
2.2
Commande par retour d’état par placement de pôles
Dans le but d’améliorer les performances et de rejeter les effets des perturbations éventuelles,
on souhaite commander le système d’état G. Pour cela, on utilise le schéma-bloc de la Fig. 2.3.
Dans cette figure, on a :
– la consigne (ou référence) notée Yc ,
– la matrice de retour (ou matrice de retoure d’état) notée Kc ,
– et le préfiltre (ou la matrice de préfiltre) noté L.
système
Yc L
+-
U B
++
X&
∫
X
A
Kc
F IG . 2.3 – Schéma-bloc du système bouclé.
13
C Y
2.2.1
Commandabilité
Avant de synthétiser un système de commande, il est intéressant de connaı̂tre si le système
est commandable ou pas.
En utilisant Matlab :
– calculer la matrice de commandabilité notée Co ,
– déterminer le rang de la matrice Co ,
– en déduire si le système est commandable ou pas.
2.2.2
Mise en équation du système bouclé
A partir de la Fig. 2.3, donner le nouveau modèle d’état, c’est-à-dire, le modèle d’état du
système bouclé.
2.2.3
Calcul de la matrice de retour Kc
– d’après le nouveau modèle d’état, déterminer l’utilité de la matrice de retour Kc ?
– choisir des valeurs propres pour la nouvelle matrice d’état (A − BKc ). Pour cela, vous
partez des valeurs propres de A. Pourquoi ce choix ?
– calculer Kc avec Matlab.
2.2.4
Calcul du préfiltre L
– Lorsque le régime est permanent (p = 0 ou t → ∞ ou encore dX
dt = 0), donner l’expression de la sortie Y en fonction de la consigne Yc ,
– afin d’annuler l’erreur statique, c’est-à-dire Y = Yc , que doit être la matrice L ? calculer
L avec Matlab.
2.2.5
Simulation du système bouclé
– En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé,
– de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé,
– commenter sur les performances du système bouclé par rapport au système G.
Remarque : si les performances du régime transitoire ne vous convient pas, n’hésiter pas à
modifier les valeurs propres de (A − BKc ) puis à recalculer Kc et L.
2.3
Observateur complet ou observateur de Luenberger
Dans la section précédente, afin de pouvoir utiliser la commande par retour d’état, nous
avons supposé que l’ensemble des états (les éléments de X) était accessible à la mesure. Cependant, ce n’est pas toujours le cas. Entre autres, ici, nous considérons que seule la sortie Y est
14
mesurable. Ainsi, x2 n’est pas mesurable.
On souhaite donc reconstruire le vecteur d’état X à partir des éléments disponibles. La
première idée qui vient à l’esprit pour reconstruire X est de simuler le modèle. Si dX̂ est l’état
estimé (observé, ou reconstruit), le simulateur aura pour équation :
(
dX̂
dt = AX̂ + BU
(2.3.1)
Ŷ = C X̂
Or, une telle simulation n’est pas convenable si l’on veut avoir une bonne estimation de X :
– le procédé réel et le simulateurs n’ont pas les mêmes conditions initiales, cela décalerait
dX̂ par rapport à X,
– les paramètres A, B et C du modèle sont toujours soumis à incertitudes, cela donnerait
de faux résultats sur dX̂,
– si le système est instable 1 , il est impossible de simuler dX̂.
Pour éviter ces problèmes, on introduit donc un terme correcteur dans le modèle l’équa. 2.3.1.
Ainsi, le modèle de l’observateur est défini par :
(
dX̂
=
A
X̂
+
BU
+
Ko
Y
−
Ŷ
dt
(2.3.2)
Ŷ = C X̂
dans laquelle :
– dX̂ est (le vecteur d’) l’état estimé,
– dŶ est la sortie estimée,
– Ko est le (la matrice de) gain de l’observateur.
L’observateur utilise comme entrée les éléments disponibles Y et U (Fig. 2.4). Comme on
reconstruira l’ensemble des éléments du vecteur d’état, cet observateur s’appelle observateur
complet ou observateur de Luenberger 2 .
1
Le modèle d’état de réalisation (A, B, C, D) est instable si une au moins des valeurs propres de A est à partie
réelle positive.
2
Dû à David G. Luenberger, 1966.
15
système
U B
++
X&
∫
X
C Y
A
observateur
X̂
F IG . 2.4 – Utilisation d’un observateur pour reconstruire l’état X.
La Fig. 2.5 représente le schéma-bloc détaillé de l’observateur ainsi que du système.
système
U
B
+
+
X&
∫
X
C Y
X̂
C Ŷ
A
B
X̂
+
+
∫
-+
+
A
Ko
observateur
X̂
F IG . 2.5 – Schéma-bloc détaillé de l’observateur et du système.
16
2.3.1
Observabilité
Afin de synthétiser un observateur pour un système, il est important de connaı̂tre si le
système est observable ou pas. Définir l’observabilité d’un système.
– En utilisant Matlab, calculer la matrice d’observabilité notée Ob ,
– puis, déterminer le rang de la matrice Ob ,
– en déduire si le système est observable ou pas.
2.3.2
Mise en équation
A partir du modèle du système définie par l’équa. 2.1.1 (avec D = [0]) et du modèle de
x
l’observateur définie par l’équa. 2.3.2, donner l’expression de dε
dt telle que l’erreur d’estimation
εx est définie par :
εx = X − X̂
2.3.3
(2.3.3)
Calcul du gain de l’observateur Ko
– d’après l’équation de l’erreur obtenue précédemment, à quoi sert exactement le gain de
l’observateur Ko ?
– choisir des valeurs propres pour la matrice (A − Ko C). Pour cela, vous partez des valeurs
propres de (A − BKc ) choisies dans les questions précédentes. Pourquoi ce choix ?
– calculer Ko avec Matlab.
2.3.4
Simulation du système avec observateur
En utilisant Simulink, appliquer un échelon à l’entrée du système et comparer le vecteur
d’état X ainsi que l’état estimé dX̂. Pour cela, mettre des conditions initiales différentes de
zéro dans le système. Essayer également de mettre des valeurs différentes pour les paramètres
A, B et C dans le système réelle (non pas dans l’observateur) afin de simuler l’incertitude, par
exemple on pourra utiliser :




−0.335 0.33
0.01
0.76
0
0 
A =  0.331 −0.66 0.331 
B= 0
0
0.33 −0.52
0
0.77
(2.3.4)
0.998 0
0
C=
0
0 1.02
2.4
Observateur et commande par placement de pôles
Combiner maintenant l’observateur précédemment calculé ainsi que la commande par placement de pôles synthétisée auparavant dans Simulink puis simuler le système bouclé.
17
Chapitre 3
H ÉLICOPT ÈRE : RETOUR D ’ ÉTAT
AVEC ACTION INT ÉGRALE ET
OBSERVATEUR R ÉDUIT
3.1
Le système
On considère l’hélicoptère de la Fig. 3.1, où α désigne l’angle de lacet (angle autour de l’axe
z) et θ désigne l’angle de tangage (angle autour de l’axe y).
(a)
rotor de queue
(pour le lacet α)
rotor principal
(pour le tangage θ)
z
(b)
y
F IG . 3.1 – Un hélicoptère
Ce système est non-linéaire. Toutefois, autour d’un point de fonctionnement, l’hélicoptère
peut être modélisé par un système linéaire de modèle d’état :
18
dX
dt
= AX + BU
Y = CX
(3.1.1)
On a :

Y =
α
θ
U=
U1
U2



X=



vα
γα
vθ
γθ
α
θ



1.1 0.8
18 2 

0.7 1.2 

3 21 

0
0 
0
0







(3.1.2)
et :




A=



C=
0
−1.347
0
−0.21
1
0

1
0
0
0
0
0 −0.12 0 −2.32 −1.1 

0
0
1
0
0 

0 −1.87 0 −0.23 −3 

0
0
0
0
0 
0
1
0
0
0
0 0 0 0 1 0
0 0 0 0 0 1



B=



(3.1.3)
dans lesquelles :
– les états vi et γi indiquent respectivement la vitesse et l’accélération angulaires associées
à l’angle i ( i ∈ {α, θ} ),
– et les entrées élémentaires U1 et U2 désignent des signaux de commande.
Les Fig. 3.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système.
3.1.1
Création du système
Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink.
3.1.2
Pôles et valeurs propres
En utilisant Matlab :
– calculer les pôles du système G,
– calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de
A et les pôles du système,
– à partir de ces valeurs, que peut-on dire sur la stabilité du système.
19
U
 dX
 = AX + BU
 dt
Y = CX + DU
U1
U2
Y
 dX
 = AX + BU
 dt
Y = CX + DU
α
θ
(a)
U B
+
+
X&
∫
X
C Y
A
(b)
F IG . 3.2 – Schéma fonctionnel et schéma-bloc détaillé.
3.1.3
Simulation du système
– Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de
Bode du système,
– dans Simulink, simuler la réponse indicielle du système.
3.2
Commande par retour d’état avec action intégrale
On s’intéresse dans cette section à la commande de l’hélicoptère pour différentes raisons :
– le stabiliser,
– obtenir de meilleures performances de suivi de consigne : erreur statique nulle, dynamique
sans oscillation, etc.
– rejeter les effets des perturbations éventuelles.
On a vu que la matrice de retour Kc permet d’améliorer la dynamique du système bouclé.
Pour annuler l’erreur statique, nous avons utilisé le préfiltre L. Dans ce sujet, nous remplacerons
ce préfiltre par une action intégrale. En effet, l’utilisation d’un préfiltre n’assure pas toujours l’erreur statique nulle si le modèle n’est pas parfaitement connu. Le schéma-bloc du système bouclé
utilisé est représenté par la Fig. 3.3, dans lequel Ki désigne la matrice de gain de l’intégrateur.
20
système
Yc
Z&
+-
∫
Z Ki
U B
--
++
X&
X
∫
C Y
A
Kc
F IG . 3.3 – Schéma-bloc du système bouclé.
D’après la Fig. 3.3, on a :


dX
dt
= AX + BU
Y = CX
(3.2.1)
 dZ
=
Y
−
CX
c
dt
X
, on obtient le nouveau modèle d’état,
En prenant comme nouveau vecteur d’état
Z
appelé système augmenté, suivant :




d
dt
X
Z
=
A [0]
−C [0]
Y =



X
Z
C [0]
+
X
Z
B
[0]
U+
[0]
I
Yc
(3.2.2)
Par ailleurs, toujours d’après la Fig. 3.3, on a :
U = − (Kc X + Ki Z)
(3.2.3)
c’est-à-dire :
U =−
K c Ki
X
Z
(3.2.4)
Ainsi, on
a un modèle d’état défini par l’équa. 3.2.2 et bouclé par un gain de retour K =
Kc Ki . Les matrices du système augmenté sont :
Aaug =
A [0]
−C [0]
Baug =
Le système bouclé aura pour représentation :
21
B
[0]
Caug =
C [0]
(3.2.5)




d
dt
X
Z
=
A [0]
−C [0]
X
Z
Y =



ou encore :




X
Z
X
[0]
B
K c Ki
+
Yc
−
Z
I
[0] X
C [0]
Z
(3.2.6)
A − BKc −BKi
X
[0]
=
+
Yc
−C
[0] I
Z
(3.2.7)
X


Y = C [0]

Z
Le but est donc de chercher le gain de retour K = Kc Ki pour obtenir de valeurs
propres convenables pour la nouvelle matrice d’état notée A, telle que :
A − BKc −BKi
A=
(3.2.8)
−C
[0]
X
d
En ce qui concerne l’erreur statique, on peut la calculer lorsque dt
= [0]. AppliZ
quant cette condition au système d’équa. 3.2.2, on obtient :

 (A − BKc ) X = BKi Z
CX = Yc
(3.2.9)

Y = CX
d
dt
Les deux dernières équations du système d’équa. 3.2.9 affirme que Y = Yc , c’est-à-dire
l’erreur statique est automatiquement nulle.
3.2.1
Commandabilité
En utilisant Matlab :
– calculer la matrice de commandabilité notée Co du système,
– déterminer le rang de la matrice Co ,
– en déduire si le système est commandable ou pas.
3.2.2
–
–
–
–
–
Calcul de la matrice de retour K par placement de pôles
Créer les matrices du système augmenté Aaug , Baug et Caug avec Matlab,
quelle est la dimension de la matrice d’état A ?
proposer des valeurs propres pour la matrice d’état A,
en utilisant la fonction place de Matlab, en déduire la matrice de retour K,
en déduire la matrice de retour Kc et le gain de l’intégrateur Ki .
22
3.2.3
Simulation du système bouclé
En utilisant Simulink,
simuler
du système bouclé
la réponse
pour une consigne de type
αc
30◦
10s
échelon égale à Yc =
=
appliquée à l’instant
.
◦
θc
50
30s
Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas
à modifier les valeurs propres et recalculer la matrice K.
3.3
Observateur réduit
Dans la section 2.3, nous avons utilisé un observateur pour estimer le vecteur d’état. Cet
observateur, appelé observateur de Luenberger ou observateur complet, estime l’ensemble du
vecteur X. Toutefois, si une partie de ce vecteur est déjà mesurée par le biais de la sortie Y , il
n’est pas nécessaire d’utiliser un obsrevateur complet. Dans cette partie, on s’intéresse à estimer
un observateur réduit pour estimer la partie non-mesurée de X.
Soit le système décrit par :
dX
dt
= AX + BU
Y = CX
(3.3.1)
dans lequel la matrice de sortie est du type :
C=
[0] I
(3.3.2)
Alors, on peut partitionner le vecteur d’état X en 2 : la partie non-mesurée notée V et la
partie mesurée notée Y . On peut ré-écrire le système défini par l’équa. 3.3.1 comme suit :

A
A
B
V
V

11
12
1
dX
d

=
+
U

dt = dt
Y
A21 A22 Y
B2
(3.3.3)
V


Y = [0] I

Y
D’après le modèle précédent, on a :
 dV
 dt = A11 V + A12 Y + B1 U

dY
dt
(3.3.4)
= A21 V + A22 Y + B2 U
c’est-à-dire :



dV
dt
= A11 V + (A12 Y + B1 U )
(3.3.5)
dY
dt
− A22 Y − B2 U = A21 V
cette dernière est équivalente à un modèle d’état (réduit par rapport au système d’équa. 3.3.1),
de vecteur d’état V , de sortie dY
dt − A22 Y − B2 U et d’entrée (A12 Y + B1 U ) :
23



dV
dt
= A11 V + entree
(3.3.6)
sortie = A21 V
Ainsi, on peut estimer l’état V en utilisant l’observateur de Luenberger (voir section 2.3).
Comme V est une partie de X, on parle d’observateur réduit. La Fig. 3.5 présente le schéma
fonctionnel.
système
U B
++
X&
X
∫
C Y
A
 Vˆ 
X̂=  Y 
 
V̂
observateur
réduit
F IG . 3.4 – Schéma fonctionnel du ystème avec observateur réduit.
L’observateur a pour modèle :

Λ

dV̂


 dt = A11 V̂ + entree + Ko sortie − sortie




(3.3.7)
Λ
sortie = A21 V̂
c’est-à-dire :
dV̂
= A11 V̂ + (A12 Y + B1 U ) + Ko
dt
dY
− A22 Y − B2 U
dt
− A21 V̂
(3.3.8)
ou encore :
dV̂
= (A11 − Ko A21 ) V̂ + (A12 Y + B1 U ) + Ko
dt
dY
− A22 Y − B2 U
dt
(3.3.9)
Le gain Ko est le gain de l’observateur réduit. Cette équation nécessite la dérivation de Y ,
ce qui est un inconvénient. On se propose donc de réaliser le changement de variable suivant :
24
Z = V̂ − Ko Y
⇔
dZ
dt
=
dV̂
dt
− Ko dY
dt
(3.3.10)
En appliquant ce changement de variable dans l’équa. 3.3.9, on a :
dY
dY
dZ
+Ko
= (A11 − Ko A21 ) (Z + Ko Y )+(A12 Y + B1 U )+Ko
+Ko (−A22 Y − B2 U )
dt
dt
dt
(3.3.11)
Après simplification et mise en forme, on obtient le modèle suivant pour notre observateur :


dZ
dt
= (A11 − Ko A21 ) Z + ((A11 − Ko A21 ) Ko + A12 − Ko A22 ) Y + (B1 − Ko B2 ) U
V̂ = Z + Ko Y

(3.3.12)
La Fig. 3.5 donne le schéma-bloc détaillé du système avec l’observateur réduit.
système
U
B
+
+
X&
∫
X
Y
C
A
 Vˆ 
X̂=  Y 
 
(A11-KoA21)Ko+A12-KoA22
Ko
B1-KoB2
+
++
∫
++
A11-KoA21
V̂
observateur
réduit
F IG . 3.5 – Système avec observateur réduit.
3.3.1
Création des sous-systèmes
Avec Matlab, créer les sous-matrices A11 , A12 , A21 , A22 , B1 et B2 .
3.3.2
Observabilité
Le système réduit a pour modèle le système d’équa. 3.3.6. Afin de pouvoir observer sont
état V , il est important de connaı̂tre si ce système est observable ou non.
25
En utilisant Matlab :
– calculer la matrice d’observabilité notée Ob ,
– puis, déterminer le rang de la matrice Ob ,
– en déduire si le système est observable ou pas.
3.3.3
Calcul du gain de l’observateur Ko
– Choisir des valeurs propres pour la matrice (A11 − Ko A21 ). Pour cela, vous partez des
valeurs propres de (A − BKc ) choisies dans la synthèse de la commande dans la section
précédente. Pourquoi ce choix ?
– calculer Ko avec Matlab.
3.3.4
Implémentation de l’observateur réduit et de la commande
– Implémenter sous Simulink l’observateur réduit,
– le système n’étant pas stable, implémenter également dans le même fichier la commande
synthétisée dans la section précédente,
– simuler le système avec observateur et commande. Pour cela, mettre des conditions initiales non-nulles dans le système. Essayer également de mettre des valeurs différentes
pour les paramètres A, B et C dans le système réelle (non pas dans l’observateur) afin de
simuler l’incertitude, par exemple on pourra utiliser :




A=



C=

0
1.1
0
0
0
0.02
−1.35
0
−0.2 0 −2.3 −1 

0
0
0
1
0
0 

−0.2
0
−1.89 0 −0.21 −3 

1.1
0.05
0
0
0
0 
0
0
1
0
0
0
0 0 0 0 1 0
0 0 0 0 0 1
26




B=




1.2 0.8
18.1 2 

0.71 1.2 

3.1 20 

0
0 
0
0
(3.3.13)
Chapitre 4
AVION : COMMANDE MODALE ET
ESTIMATEUR DE L UENBERGER
4.1
Le système
On considère l’avion de la Fig. 4.1, où α désigne l’angle de lacet (angle autour de l’axe z), θ
désigne l’angle de tangage (angle autour de l’axe y) et v désigne la vitesse longitudinale (suivant
l’axe x de l’avion).
z
α
θ
y
x
v
F IG . 4.1 – Un avion.
Le modèle de l’avion peut être approximé par un système linéaire de modèle d’état :
dX
dt = AX + BU
(4.1.1)
Y = CX
On a :



θ

α 
Y =
v


U1

U2 
U=
U3
27


X=


θ
vθ
α
vα
v






(4.1.2)
et :



A=


0
1
0
0
0
−3 −1.2 −1.1 1.3 −24
0
0
0
1
0
2.1 1.8
−9 −5.5 −2
0 −0.8
0
−0.4 −3.3









B=



0
0
0
1.1
0.1 0.2 

0
0
0 

0.2
1.3
0 
−0.05 −0.1 3
(4.1.3)


1 0 0 0 0
C= 0 0 1 0 0 
0 0 0 0 1
dans lesquelles :
– les états vi indiquent la vitesse angulaire associée à l’angle i ( i ∈ {α, θ} ),
– et les entrées élémentaires U1 , U2 U3 désignent des signaux de commande.
Les Fig. 4.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système.
U
U1
U2
U3
Y
 dX
 = AX + BU
 dt
Y = CX + DU
(a)
U B
+
+
X&
∫
X
 dX
 = AX + BU
 dt
Y = CX + DU
α
θ
v
C Y
A
(b)
F IG . 4.2 – Schéma fonctionnel et schéma-bloc détaillé.
4.1.1
Création du système
Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink.
4.1.2
Pôles et valeurs propres
En utilisant Matlab :
– calculer les pôles du système G,
28
– calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de
A et les pôles du système,
– à partir de ces valeurs, que peut-on dire sur la stabilité du système.
4.1.3
Simulation du système
– Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de
Bode du système,
– dans Simulink, simuler la réponse indicielle du système.
4.2
Commande modale
La commande modale consiste à calculer une commande dans la base modale (base des
valeurs propres). Reprenons le système d’état :
dX
dt = AX + BU
(4.2.1)
Y = CX + DU
Soit T la matrice de transformation modale
diagonale notée Λ. On a :

λ1 0 · · ·

 0 λ2 0
Λ=
 ..
..
 .
.
0 0 ···
qui transforme la matrice A en une matrice

0
.. 
. 
 = T −1 AT


λn
(4.2.2)
où λi sont les valeurs propres de A.
En appliquant le changement de variable X = T Z sur le modèle défini par le système
d’équa. 4.2.1, on obtient :
dZ
−1 AT Z + T −1 BU
dt = T
(4.2.3)
Y = CT Z + DU
c’est-à-dire, on obtient le modèle d’état dans la base modale :
dZ
dt = ΛZ + βU
Y = ΣZ + DU
(4.2.4)
Dans cette nouvelle base, on a :
– Z qui est le vecteur d’état correspondant, dont les éléments sont appelés coordonnées
modales,
– Λ = T −1 AT qui est la matrice d’état,
– β = T −1 B qui est la matrice d’entrée,
– Σ = CT qui est la matrice de sortie,
29
– et D qui est la matrice de liaison directe.
Appelons q le nombre d’entrée, égal au nombre de sortie, du système :
q = dim (U ) = dim (Y )
(4.2.5)
Naturellement, l’ordre du système noté n (telle que n = dim (X) = dim (Z)) est supérieur
ou égal au nombre d’entrées :
n>q
(4.2.6)
L’objectif de la commande modale considérée ici consiste à imposer une valeur propre (ou
un pôle) entrée élémentaire entreei et état élémentaire etati . Pour cela, il a fallu découpler le
système, d’où l’analyse et la synthèse dans la base modale. Comme n > q, on partitionne l’état
Z en deux parties :
Zq
Z=
(4.2.7)
Zn−q
où Zq est le vecteur composé des q états élémentaires dont on souhaite améliorer les performances par placement de pôles et Zn−q les n − q états restant.
L’équation d’état du système d’équa. 4.2.4 devient donc :
d
Zq
Λq
[0]
Zq
βq
=
+
U
[0] Λn−q
Zn−q
βn−q
dt Zn−q
(4.2.8)
c’est-à-dire :
(
dZq
dt
dZn−q
dt
= Λq Zq + βq U
= Λn−q Zn−q + βn−q U
(4.2.9)
On souhaite placer les pôles de la première équation d’état du système d’équations précédent.
Le placement se fera plus facilement, par identification, vu que l’équation est dans la base modale. Proposons les pôles suivant :


λc1 0 · · · 0
 0 λc2
0 


Pcq =  .
(4.2.10)
.. 
..
 ..
.
. 
0
0
· · · λcq
alors on peut écrire :
dZq
= Λq Zq + βq U = Pcq Zq
dt
(4.2.11)
βq U = − (Λq − Pcq ) Zq
(4.2.12)
c’est-à-dire :
30
On peut donc dire que la commande U à appliquer, pour obtenir les valeurs propres définies
dans Pcq , doit être :
U = −βq−1 (Λq − Pcq ) Zq
(4.2.13)
Or, le vecteur d’état disponible n’est pas Z mais le vecteur X. A partir du changement de
variable Z = T −1 X, on a :
Zq = Tq−1 X
(4.2.14)
U = −βq−1 (Λq − Pcq ) Tq−1 X
(4.2.15)
On obtient finalement :
La Fig. 4.3 représente le schéma-bloc du système bouclé et la matrice de retour est donc
donnée par :
Kc = βq−1 (Λq − Pcq ) Tq−1
(4.2.16)
Considérant D = [0] 1 Le préfiltre L est calculée à partir de la relation suivante :
−1
L = C (BKc − A)−1 B
(4.2.17)
système
Yc L
+-
U B
++
X&
∫
X
C Y
A
Kc
F IG . 4.3 – Schéma-bloc du système bouclé.
Remarques. Dans la commande modale, nous avons placé les q premières valeurs propres du
système bouclé. On démontre ici que cela n’influence pas sur les n − q valeurs propres restantes
et que ces dernières sont égales aux n − q valeurs propres du système à commander.
En introduisant U = −βq−1 (Λq − Pcq ) Zq dans les deux équa. 4.2.9, on a :
1
Il est toujours possible de se ramener au cas où D = [0] en faisant un changement de variable sur Y .
31
(
dZn−q
dt
dZq
dt
= Pcq Zq
= Λn−q Zn−q + βn−q βq−1 (Λq − Pcq ) Zq
(4.2.18)
ou encore :
d
dt
Zq
Zn−q
=
Pcq
[0]
−βn−q βq−1 (Λq − Pcq ) Λn−q
Zq
Zn−q
= Λbf
Zq
Zn−q
(4.2.19)
Les valeurs propres du système en boucle fermée sont les solutions du polynômes caractéristique donné par :
det (λbf I − Λbf ) = det (Pcq ) det (Λn−q )
(4.2.20)
Il apparaı̂t donc que les q premières valeurs propres (ou pôles) du système en boucle fermée
sont les valeurs propres définies dans Pcq tandis que les n − q restantes sont celles données par
Λn−q , ces dernières étant celles du système à commander.
4.2.1
Commandabilité
En utilisant Matlab :
– calculer la matrice de commandabilité notée Co de l’avion,
– déterminer le rang de la matrice Co ,
– en déduire si le système est commandable ou pas.
4.2.2
Calcul de la matrice de retour Kc et du préfiltre L
– quelle est la valeur de q pour le cas de l’avion ?
– calculer la matrice des valeurs propres Λ et la matrice de transformation modale T de
l’avion,
– calculer T −1 et en déduire β,
– déduire des calculs précédents les matrices Λq , βq et Tq−1 ,
– proposer la matrice Pcq des q premières valeurs propres pour le système bouclé,
– calculer la matrice de retour Kc ,
– calculer le préfiltre L.
4.2.3
Simulation du système bouclé
– Implémenter sous Simulink le correcteur puis simuler la réponse indicielle du système
bouclé,
– commenter sur les performances du système bouclé.
Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas
à modifier les valeurs propres de dans Pcq puis à recalculer Kc et L, ou changer complètement
les q états à commander.
32
4.3
Observateur complet ou observateur de Luenberger
Le vecteur d’état X, ou du moins une partie de ses éléments, n’est pas directement mesurable. Il est donc nécessaire de l’estimer. Pour cela, on utilise l’observateur complet ou observateur de Luenberger vu dans la section 2.3. La Fig. 4.4 présente le schéma-bloc de l’avion et de
l’observateur.
système
U
B
+
+
X&
∫
X
C Y
X̂
C Ŷ
A
B
X̂
+
+
∫
-+
+
A
Ko
observateur
X̂
F IG . 4.4 – Schéma-bloc détaillé de l’observateur et du système.
4.3.1
Observabilité
Afin de synthétiser un observateur pour un système, il est important de savoir si le système
est observable ou pas. Définir l’observabilité d’un système.
– En utilisant Matlab, calculer la matrice d’observabilité notée Ob ,
– puis, déterminer le rang de la matrice Ob ,
– en déduire si le système est observable ou pas.
4.3.2
Calcul du gain de l’observateur Ko
– Choisir des valeurs propres pour la matrice (A − Ko C). Pour cela, vous partez des valeurs
propres du système en boucle fermée données dans les questions précédentes, ces valeurs
propres étant données par Pcq et Λn−q . Pourquoi ce choix ?
– calculer Ko avec Matlab.
33
4.4
Observateur et commande modale
Combiner maintenant l’observateur précédemment calculé ainsi que la commande modale
synthétisée auparavant dans Simulink. Appliquer un échelon à l’entrée du système et comparer
le vecteur d’état X ainsi que l’état estimé X̂. Pour cela, mettre des conditions initiales différentes
de zéro dans le système.
34
Annexe A
Algèbre linéaire
A.1
Taille d’une matrice
La taille (dimension) d’une matrice est notée (n, m) (ou dim (A) = (n, m)), n étant le
nombre de lignes et m le nombre de colonnes :


a11 a12 · · · a1m

.. 
 a21 a22 · · ·
. 


A= .
(A.1.1)

..
 ..

.
an1 · · ·
anm
Si la matrice est carrée, c’est-à-dire m = n, on parle d’une matrice carrée de taille ou d’ordre
n. La matrice A est rectangulaire si elle n’est pas carrée.
A.2
Rang d’une matrice
Soit une matrice de taille (n, m). Le rang de la matrice A noté rang (A) est la taille maximale des sous-matrices carrées inversibles extraites de A. On a les propriétés suivantes :
rang (A) 6 min (n, m)
rang (A + B) 6 rang (A) + rang (B)
(A.2.1)
rang (AB) 6 min (rang (A) , rang (B))
Si A est une matrice carrée d’ordre n et inversible, alors :
rang (A) = n
35
(A.2.2)
A.3
Opérateurs transposée et adjoint
Soit A ∈ Cn.m une matrice complexe de taille (n, m).
La transposée, notée AT et de taille (m, n), de la matrice A est obtenue en échangeant les
lignes et les colonnes de A. Exemple :


j
9
A =  −1 2 − j 
(A.3.1)
3
0
alors :
T
A =
j −1 3
9 2−j 0
(A.3.2)
L’adjoint d’une matrice complexe noté A∗ est la matrice transposée et conjuguée (transconjuguée) correspondante :
A(j)∗ = A(−j)T
(A.3.3)
exemple :
∗
A =
−j −1 3
9 2+j 0
(A.3.4)
On a :
(A − Ko C)T = AT − C T KoT
A.4
Matrices particulières
A.4.1
Matrice identité
(A.3.5)
La matrice identité, d’ordre n et notée In , est une matrice carrée diagonale dont les éléments
du diagonal sont 1 :


1 0 ··· 0


 0 1 ... 0 

In = 
(A.4.1)
 .. . . . . .. 
 .
.
. . 
0 0 ··· 1
36
A.4.2
Matrice nulle
La matrice nulle, de taille (n, m), est une matrice dont tous les éléments sont nuls.


0 0 ··· 0
 0 0
0 


[0] = 0n×m =  .
(A.4.2)

.
.
.
 .

.
0 0
A.5
0
Valeurs propres et vecteurs propres
Les valeurs propres, notées λi (i = 1 · · · n), d’une matrice carrée A d’ordre n sont les
racines du polynôme suivant :
det (λIn − A) = 0
(A.5.1)
où l’opérateur det () désigne le déterminant. Le polynôme det (λIn − A) s’appelle polynôme caractéristique de A.
On a la propriété suivante :
λi (A) = λi AT
(A.5.2)
On note Λ la matrice diagonale dont les éléments sont les valeurs propres λi de A :


λ1 0 · · · 0

.. 
 0 λ2 0
. 


Λ= .
(A.5.3)

..
 ..

.
0 0 · · · λn
A chaque valeur propre λi , on associe un vecteur propre vi telle que la matrice A se comporte
comme un scalaire :
Avi = λi vi
(A.5.4)
Par ailleurs, on peut retrouver la matrice Λ à partir de A grâce à une matrice de transformation T , appelée matrice de transformation modale :
Λ = T −1 AT
(A.5.5)
les colonnes de la matrice de transformation modale T étant les vecteurs propres vi de A :
T =
v1 v2 · · · vn
37
(A.5.6)
A.6
Spectre et rayon spectral
Le spectre indique l’ensemble des valeurs propres λi (A) de la matrice carrée A.
Le rayon spectral noté ρ(A) est le plus grand des modules des λi :
ρ (A) = max |λi (A)|
A.7
(A.6.1)
Comatrice
Soit la matrice carrée A :

a11
a12

 a21 a22
A=
 ..
..
 .
.
an1 an2
· · · a1n
..
. a2n
..
..
.
.
· · · ann






(A.7.1)
Alors la comatrice de A est :

A11
A12

 A21 A22
com (A) = 
 ..
..
 .
.
An1 An2
· · · A1n
..
. A2n
..
..
.
.
· · · Ann






(A.7.2)
où les coefficients Aij , appelés cofacteurs de A, se calculent comme suit :
Aij = (−1)i+j mij (A)
(A.7.3)
Dans l’expression précédente, mij (A) est appelé mineur de A et est égal au déterminant de
la sous-matrice obtenue en éliminant la ième ligne et la j ème colonne de A (Fig. A.1).
38
 a11

 a21
 M

A =  ai1
 M


a
 n1
a12 L a1 j L
a22
O
aij
O
an 2 L anj
L
a1n 

a2 n 
M 

ain 
M 


ann 





Aij = 
sous-matrice


















F IG . A.1 – Construction de la sous-matrice afin de calculer le mineur mij (A).
A.8
Inverse d’une matrice
Soit la matrice carrée A de taille n définie précédemment. A est inversible, ou régulière ou
encore non-singulière, si et seulement si son déterminant est non-nul :
det (A) 6= 0
(A.8.1)
Cela revient à dire que son rang est complet :
rang (A) = n
(A.8.2)
La matrice inverse, ou simplement l’inverse, de A est définie par :
A−1 =
1
(com (A))T
det (A)
(A.8.3)
On a la relation suivante :
AA−1 = A−1 A = In
39
(A.8.4)
A.9
Pseudo-inverse d’une matrice
L’inverse d’une matrice ne s’appliquant que sur les matrices carrées, on utilise la pseudoinverse pour la généralisation. La pseudo-inverse, appelée également pseudo-inverse de MoorePenrose, d’une matrice M de taille (n, m) est notée M + et a les propriétés suvantes :
M M +M = M
M +M M + = M +
∗
MM+ = MM+
∗
M +M = M +M
(A.9.1)
Décomposons la matrice M par M = BC, avec B de taille (n, k) et C de taille (k, m).
Alors, on peut calculer M + par :
M + = C ∗ (CC ∗ )−1 (B ∗ B)−1 B ∗
40
(A.9.2)
Annexe B
Outils de base pour les modèles d’état
Soit le système décrit par le modèle d’état suivant :
dX
dt = AX + BU
Y = CX + DU
(B.0.1)
La première équation s’appelle équation d’état tandis que la deuxième équation de sortie.
On a :
–
–
–
–
–
–
–
B.1
X est le vecteur d’état,
Y est le vecteur de sortie,
U est le vecteur de commande,
A s’appelle matrice d’état,
B s’appelle matrice de commande,
C s’appelle matrice de sortie,
et D s’appelle matrice de liaison directe.
Ordre du système
L’ordre du système est égal à la dimension du vecteur d’état X, ou encore à l’ordre de la
matrice carrée A. On a :
n = dim (X)
B.2
(B.1.1)
Stabilité
Le système de réalisation (A, B, C, D) est strictement stable si et seulement si toutes les
valeurs propres notées λi de la matrice d’état A sont à parties réelles strictement négatives :
Re (λi (A)) < 0
41
(B.2.1)
Les valeurs propres de A sont également les pôles du système.
B.3
Commandabilité
Soit la matrice de commandabilité définie par :
Co =
B AB A2 B · · · An−1 B
(B.3.1)
Le système de réalisation (A, B, C, D) est commandable si le rang de Co est égal à l’ordre
du système :
rang (Co ) = n
B.4
(B.3.2)
Observabilité
Soit la matrice d’observabilité définie par :




Ob = 


C
CA
CA2
..
.
CAn−1







(B.4.1)
Le système de réalisation (A, B, C, D) est observable si le rang de Ob est égal à l’ordre du
système :
rang (Ob ) = n
42
(B.4.2)
Annexe C
Quelques fonctions de M ATLAB
C.1
Calcul de base
a = cos(5)
⇒ a = 0.283662185463226
b = (3 − 1.5 ∗ exp (12)) / log (5)
⇒ b = −151685.992508581
log 10 (1e − 5)
⇒ −5
sin(pi/2)
⇒ 1
tan(pi)
⇒ −1 .22464679914735e − 016
(Normalement zéro, mais il y a la précision numérique de M ATLAB)
atan(− inf)
⇒ −1 .5707963267949
= − π2
C.2
A=
Calcul matriciel
3 2 −5 8; 1 5 6 2; 4 −58
−100 1e5
43


3
2
−5
8
5
6
2 
⇒ A= 1
4 −58 −100 105
c = A (3, 2)
⇒ c = −58
V = A (:, 2)


2
⇒V = 5 
−58
U = A (3, :)
⇒U =
4 −58 −100 105
M = (2 : 3, 2 : 4)
5
6
2
⇒M =
−58 −100 105
A∗B
⇒ multiplication de deux matrices
A. ∗ B
⇒ multiplication élément par élément
A+B
⇒ addition
A−B
⇒ soustraction
Aˆn
⇒ A ∗ A ∗ A... ∗ A (n fois), A doit être carrée
A0
⇒ adjoint (transposée conjuguée) de A
transpose (A)
44
⇒ transposée de A. Cette fonction ne fait pas la conjuguée, contrairement à la fonction précédente
inv(A)
⇒ inverse de A (si A carrée)
pinv(A)
⇒ pseudo-inverse de A (si A rectangulaire)
A/B
⇒ division à gauche de A par B
A\B
⇒ division à droite de A par B
A./B
⇒ division élément par élément de A par B, division à gauche
A.\B
⇒ division élément par élément de A par B, division à droite
A/c
⇒ division des éléments de A par un scalaire c
A∗c
⇒ multiplication des éléments de A par un scalaire c
A+c
⇒ addition des éléments de A par un scalaire c
A−c
⇒ soustraction des éléments de A par un scalaire c
ones(n, m)
⇒ matrice de taille n · m d’éléments 1
zeros(n, m)
45
⇒ matrice de taille n · m d’éléments 0
eye(n, m)
⇒ matrice de taille n · m et dont la première diagonale est 1, le reste des éléments sont 0
rank(A)
⇒ rang de la matrice A
det(A)
⇒ déterminant de la matrice A
size(A)
⇒ taille (dimension) de la matrice A
length(V )
⇒ taille (dimension) d’un vecteur V . Si V est une matrice, la fonction renvoye max (size (V ))
[T, Λ] = eig (A)
⇒ donne la matrice de transformation modale T et la matrice des valeurs propres Λ de A
A = diag (V )
⇒ création d’une matrice diagonale A dont les éléments du diagonal sont fournis par le vecteur
V
C.3
Quelques fonctions de base utilisées en Automatique
G = tf ([num], [den])
⇒ création d’une fonction de transfert. Les paramètres [num] et [den] sont des vecteurs contenant les coefficients du numérateur et du dénominateur
G = tf ([ 3 2 ], [ 0.1 1.2 1 ])
⇒G=
3p+2
0.1p2 +1.2p+1
G = ss(A, B, C, D)
46
⇒ création d’un modèle d’état de réalisation (A, B, C, D). Si D est une matrice nulle, on peut
écrire G = ss(A, B, C, 0)
eig (A)
⇒ calcul des valeurs propres de la matrice d’état A
pole (G)
⇒ calcul des pôles du système G. Le système G peut être une fonction de transfert ou également
un modèle d’état
zero (G)
⇒ calcul des zéros du système G. Le système G peut être une fonction de transfert ou également
un modèle d’état
Getat = ss(Gtransf ert )
⇒ création d’un modèle d’état à partir de la fonction de transfert Gtransf ert
Gtransf ert = tf (Getat )
⇒ création d’une fonction de transfert à partir du modèle d’état Getat
impulse(G)
⇒ traçage de la réponse impulsionnelle de G
step(G)
⇒ traçage de la réponse indicielle de G
bode(G)
⇒ traçage du diagramme de B ODE de G
nyquist(G)
⇒ traçage du diagramme de N YQUIST de G
nichols(G)
⇒ traçage du diagramme de B LACK -N ICHOLS de G
bodemag(G)
47
⇒ traçage de la magnitude (diagramme de B ODE en amplitude) de B ODE de G
plot(t, y)
⇒ traçage d’une courbe dont l’abscisse est donnée par le vecteur t et l’ordonnée par y
grid
⇒ mise en place d’une grille sur la courbe
hold on
⇒ garder la dernière figure afin de tracer sur celle-ci une autre courbe
plot(t, y,0 r0 )
⇒ traçage d’une courbe y en fonction de t avec une couleur rouge. la fonction help plot permet
d’afficher la liste des couleurs ainsi que d’autres options
xlabel(0 t(s)0 )
⇒ mise en place de titre t(s) sur l’axe des abscisses
ylabel(0 y(mètre)0 )
⇒ mise en place de titre y(mètre) sur l’axe des ordonnées
title(0 Courbe de réponse0 )
⇒ mise en place de titre Courbe de réponse sur la figure
legend(00 ,00 ,00 , etc)
⇒ mise en place de légendes des différentes courbes sur la figure
C.4
Quelques fonctions d’analyse et de synthèse utilisées en Automatique
Co = ctrb (A, B)
⇒ calcul de la matrice de commandabilité Co =
B AB A2 B · · · An B
Ob = obsv (A, C)
⇒ calcul de la matrice d’observabilité Ob =
C CA CA2 · · · CAn
48
T
Kc = place (A, B, Pc )
⇒ calcul de la matrice de retour d’état Kc par placement de pôles, les pôles étant définis dans
le vecteur Pc et sont les valeurs propres de la matrice (A − BKc )
[Kc, P, Pc ] = lqr (A, B, Q, R)
⇒ calcul de la matrice de retour d’état Kc optimale par la synthèse Linéaire Quadratique (LQ).
La fonction donne également la matrice P solution de l’équation algébrique de Riccati ainsi que
les valeurs propres de (A − BKc ) dans le vecteur Pc
49