Observateur d`état ()

Transcription

Observateur d`état ()
Introduction
Observateur d’état
Système dual
Exemple complet
Observateur d’état
Guy Gauthier
École de technologie supérieure
Département de génie de la production automatisée
25 juin 2014
1 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Introduction
Nous assumerons que l’on n’a pas accès à tous les états du
système, mais seulement qu’à quelques uns.
Le système est représenté par l’équation d’état :
ẋ(t) = Ax(t) + Bu(t)
(1)
y(t) = Cx(t)
(2)
et :
A ∈ Rn×n .
B ∈ Rn×m .
C ∈ Rp×n .
2 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Observateur d’état
Approximation du système
Supposons que le système (1) peut être approximé comme suit :
˙
x̃(t)
= Ãx̃(t) + B̃u(t) + L y(t) − C̃x̃(t)
(3)
avec ˜•, l’approximation de • et L ∈ Rn×p une matrice de gains.
Cette approximation est nommée "observateur d’états".
L’observateur d’état utilise les valeurs du vecteur d’entrée
u(t) et du vecteur de sortie y(t).
3 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Observateur d’état
En posant :
e(t) = x(t) − x̃(t)
(4)
l’erreur de l’observateur d’état, alors on peut calculer :
ė(t) = Ax(t) + Bu(t) − Ãx̃(t) + B̃u(t) + L y(t) − C̃x̃(t)
Que l’on peut réécrire :
ė(t) = Ax(t) − Ãx̃(t) + B − B̃ u(t) + L Cx(t) − C̃x̃(t)
4 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Observateur d’état
Si les paramètres de l’observateur sont identiques aux
paramètres du système alors ˜
• = •, alors :
ė(t) = Ae(t) − LCe(t) = (A − LC) e(t)
La dynamique du vecteur d’erreurs de l’observateur d’état
convergera à 0, si on fait un choix judicieux pour la matrice de
gains L.
Puisque l’observateur d’état est utilisé avec une commande
par retour d’état, on choisi pour l’observateur d’état une
dynamique beaucoup plus rapide que la dynamique du
système réel (ou celle prévue en boucle fermée, si il y a
commande par retour d’état).
5 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Observateur d’état
Évidemment, pour pouvoir utiliser un observateur d’état, le
système doit être ... observable.
La matrice d’observabilité est :



O=


C
CA
..
.
CAn−1






(5)
Le système est observable si le rang de la matrice
d’observabilité est égal à n. Si c’est le cas, on peut réaliser
l’observateur d’état. Sinon,...
Nous utiliserons l’approche présentée pour faire une
commande par retour d’état pour concevoir l’observateur
d’état. Pour cela il faut travailler avec le dual de notre
système.
6 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Notion de système dual
Soit un système représenté par :
ẋ(t) = Ax(t) + Bu(t)
et :
y(t) = Cx(t)
Le dual de ce système est :
ż(t) = AT z(t) + CT γ(t)
(6)
ν(t) = BT z(t)
(7)
et :
On constate que les matrices du système dual sont les
transposées de celles du système réel.
7 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Système dual
La matrice d’observabilité du système réel est représenté par :



O=


C
CA
..
.
CAn−1






(8)
et la matrice de commandabilité du système dual est :
Cdual = CT
A T CT
...
AT
n−1
CT
(9)
On remarquera que :
T
O = Cdual
(10)
Ainsi, concevoir un observateur d’état d’un système équivaut
à construire un contrôleur par retour d’état pour son dual.
8 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Exemple système à une sortie
Soit un système définit par :


3
1
2


A = −1 −4 0 
0
3 −2
et
h
C= 0 1 1
(11)
i
(12)
La matrice de commandabilité du dual de ce système est :

Cdual

0 −1 −2


= 1 −1 −3
1 −2 2
(13)
La dernière ligne de l’inverse de cette matrice est :
h
qC = −1/7 −1/7 1/7
i
(14)
9 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Exemple système à une sortie
La matrice de transformation T est :


−1/7 −1/7
1/7


5/7
−5/7
T =  −2/7
−11/7 −18/7 25/7
(15)
Cela mène à la forme canonique commandable du dual. Ainsi :


0 1 0


AC =  0 0 1 
16 9 −3
et :
h
BT
C = 0 0 1
i
(16)
(17)
La dernière ligne de la matrice AC est :
h
Am = 16 9 −3
i
(18)
10 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Exemple système à une sortie
Si on positionne les trois pôles à −0.1, le polynôme
caractéristique désiré est :
p(s) = s 3 + 0.3s 2 + 0.03s + 0.001
(19)
ce qui fait que la dernière ligne désirée est :
h
i
Ad = −0.001 −0.03 −0.3
(20)
La matrice de gain est :
h
i
(21)
i
(22)
KC = Am − Ad = 16.001 9.03 −2.7
que l’on transforme en :
h
K = KC T = −0.623 11.107 −13.807
11 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Exemple système à une sortie
La matrice de gains de l’observateur d’état est simplement la
transposée de K.
Pour ce système :


−0.623


L = KT =  11.107 
−13.807
(23)
12 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Exemple complet - Pendule inversé
Soit un système modélisé par :

0
 20

ẋ(t) = 
 0
−1/2
et :
1
0
0
0
"
0
0
0
0



0
0



0
 −1 
 x(t) + 
 u(t)
 0 
1
0
1/2
(24)
#
1 0 0 0
y(t) =
x(t)
0 0 1 0
(25)
Les états sont : x1 – position angulaire, x2 – vitesse angulaire,
x3 – position du chariot et x4 – vitesse du chariot.
√
Les valeurs propres de la Jacobienne sont : 0, 0 et ±2 5, ce
qui implique que le système est instable.
13 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
Il faut vérifier la commandabilité du système. La matrice de
commandabilité est :


0
−1
0
−20
 −1
0
−20
0 


C=

 0
1/2
0
1/2 
1/2 0
1/2
0
(26)
et elle est de plein rang (rang = n = 4). Le système est par
conséquent commandable.
14 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
L’inverse de la matrice de commandabilité est :

C −1

0
1
0 40
1 
1
0
40
0


=


19  0 −1 0 −2
−1 0 −2 0
(27)
et si l’on extrait la dernière ligne on obtient :
qC =
i
1 h
−1 0 −2 0
19
(28)
15 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La matrice de transformation est :


−1/19
0
−2/19
0

1  0
−1/19
0
−2/19

T=


0
0
0 
19  −1
0
−1
0
0
(29)
La forme canonique commandable du système est alors :

0
0

AC = 
0
0
et :
h
1 0
0 1
0 0
0 20

0
0


1
0
i
BT
C = 0 0 0 1
(30)
(31)
16 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La dernière ligne de la matrice AC est :
h
i
Am = 0 0 20 0
(32)
On désire placer les pôles en −2 ± j2 et les deux autres à −10
(temps de réponse 2 secondes et amortissement de 0.707).
Cela donne le polynôme cible suivant :
p(s) = s 4 + 24s 3 + 188s 2 + 560s + 800
(33)
et la dernière ligne que l’on désire pour la matrice ABF en
boucle fermée est :
h
i
Ades = −800 −560 −188 −24
(34)
17 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La matrice de gains qui permettra de fixer les pôles en boucle
fermée aux valeurs désirée est :
h
i
KC = Am − Ades = 800 560 208 24
(35)
Celle que l’on implantera sur le système réel est :
h
i
K = KC T = −250.105 −53.474 −84.211 −58.947
(36)
Cette commande par retour d’état assume que nous avons
accès au 4 états du système.
Supposons que nous n’avons accès qu’aux états x1 et x3 . Il
faudra alors construire un observateur d’état.
18 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
Il faut vérifier l’observabilité du système.
est :

1
0
 0
0


 0
1

 0
0
O=
 20
0


0
−1/2

 0
20
0
−1/2
La matrice d’observabilité
0
1
0
0
0
0
0
0

0
0


0

1

0

0


0
0
(37)
et elle est de plein rang (rang = n = 4). Le système est observable.
19 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
Le système dual sera le suivant :
ż(t) = AT z + CT γ(t) = Adual z + Bdual γ(t)
(38)
et sa matrice de commandabilité sera la transposée de la matrice
d’observabilité que l’on vient tout juste de calculer.
Cdual = OT
(39)
20 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
Le système dual comportant deux entrées il nous faut les
indices de commandabilités ρ1 et ρ2 .
Puisque les 4 premières colonnes de Cdual sont indépendantes,
alors ρ1 = ρ2 = 2.
Définissons la matrice W à partir de ces 4 colonnes comme
suit

h
W = b1 Adual b1 b2
1
i 0

Adual b2 = 
0
0
0
1
0
0
0
0
1
0

0
0


0
1
Puisque W est la matrice identité, son inverse est aussi la
matrice identité.
21 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La ρ1 -ème ligne (2e) de W−1 est :
h
i
qC 1 = 0 1 0 0
(40)
et la (ρ1 + ρ2 )-ème (la dernière) ligne est :
h
i
qC 2 = 0 0 0 1
(41)
La matrice de transformation résultante est :



qC 1
0
q A
 1

 
Td =  C 1 dual  = 
 qC 2  0
qC 2 Adual
0
1
0
0
0
0
0
0
1

0
0


1
0
(42)
22 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La forme canonique commandable du système dual est :




AO = Td Adual T−1
d =
et :
0
20
0
0




BO = Td Bdual = 
0
0
1
0 −1/2 0
0
0
1
0
0
0
0
1
0
0
0
0
0
1





(43)





(44)
23 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
La matrice Am est obtenue en extrayant les 2e et dernière lignes de
AO (lignes ρ1 et ρ1 + ρ2 ) :
"
20 0 −1/2 0
Am =
0 0
0
0
#
(45)
De même, on obtient Bm à partir de BO :
"
1 0
Bm =
0 1
#
(46)
24 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
Si on désire une dynamique 10 fois plus rapide pour
l’observateur d’état que pour la commande par retour d’état,
il faut que les pôles soient en : −20 ± j20 et les deux autres à
−100.
Cela donne le polynôme cible suivant :
p(s) = s 4 + 240s 3 + 18800s 2 + 560000s + 8000000
(47)
et :
"
Ades
0
0
1
0
=
−8000000 −560000 −18800 −240
#
(48)
On obtient :
"
KCO =
B−1
m (Am
#
20
0
−3/2
0
− Ades ) =
8000000 560000 18800 240
25 / 26
Introduction
Observateur d’état
Système dual
Exemple complet
Commande par retour d’état
On revient à notre système dual original :
"
KOdual
#
0
20
0
−3/2
= KO Td =
560000 8000000 240 18800
(49)
La matrice de gains de l’observateur d’état sera la transposée de ce
résultat :


0
560000
 20
8000000


L = KT
=
(50)


Odual
 0
240 
−3/2 18800
26 / 26