Modélisation d'un Système par État
Modélisation d'un Système par État
1 Introduction
La fonction de transfert classique reliant une entrée à une sortie s’avère souvent limitée
pour décrire avec précision le comportement dynamique d’un système complexe. Ceci est
d’autant plus vrai pour des systèmes multivariables (multi-entrées ou/et multi-sorties).
La fonction de transfert considère le système comme une boite noire et ne traduit que
l’évolution de la sortie en fonction de l’entrée sans se préoccuper des variables internes
qui sont parfois à l’origine de comportements imprévus du système tel qu’il est modélisé
par ladite fonction de transfert.
u(t) y(t)
u(p) y(p) ẋ = f (x, u, t)
H(p) å y = g(x, u, t)
f et g sont des fonctions continues du vecteur d’état x(t) et vecteur de commande (ou
d’entrée) u(t).
Dans le cas des systèmes linéaires ou linéarisables autour de points de fonctionnement, les
fonctions f et g sont des combinaisons linéaires de x(t) et u(t) et on représente le système
comme suit :
u(t) y(t)
ẋ = Ax + Bu
y = Cx + Du
1
x : Vecteur d’état de dimension (nx1)
A : Matrice d’état ou Matrice d’évolution(ou Matrice Dynamique) de dimension (nxn)
B : Matrice de commande (ou d’entrée) de dimension (nxm)
u : Vecteur de commande (ou d’entrée) de dimension (mx1)
où
y : Vecteur de sortie (ou d’observation) de dimension (px1)
C : Matrice de sortie ou de mesure (ou d’observation) de dimension (pxn)
D : Matrice Directe (ou Matrice d’Influences des entrées) de dimension (pxm)
Le shéma synoptique est le suivant :
u ẋ R x + y
B +
+
C +
On définit également l’Espace d’Etat comme étant l’Espace Vectoriel dans lequel le vec-
teur d’état x est susceptible d’évoluer (souvent Rn ).
Remarques :
— Les variables d’état sont choisies pour leur significations physiques et pour leur
simplicité d’exploitation.
— La représentation d’état est valable pour des système Linéaires. Toutefois, les sys-
tèmes Non Linéaires peuvent être linéarisés autour de points de fonctionnement et
les étudier de la même manière à l’aide de représentation d’état.
= 2x1 − 3x3 + u1
ẋ1
= −2x2 + x4 − u2 y1 = x1 + u2
(
ẋ2
ẋ3 = −x1 + x3 y2 = −2x4 + 2u3
= x2 + x3 + x4 + u 3
ẋ4
2
x˙1 2 0 −3 0 1 0 0
x1
u1
x˙ 0 −2 0 1 x 0 −1 0
= . +
2 2
. u2
x˙3 −1 0 1 0 0 0 0
x3
u3
x˙4 0 1 1 1 0 0 1
x
⇔ 4
x 1
u1
1 0 0 0 0 1 0
! " # " #
y1 x
= . +
2
. u2
0 0 0 −2 0 0 2
y2 x3
u3
x4
Exemple 2 : (2 entrées, 2 sorties et 3 variables d’état)
ẋ1 = 2x1 − 3x3 + u1 (
y1 = 2x1 + x3 + u2
ẋ2 = x2 + u2
y2 = −x2
ẋ3 = −x1 + x3
x˙1 2 0 −3 1 0
x1 !
u1
x˙2 = 0 1 0 . x2 + 0 1
.
u2
x˙ 0 1 0 0
−1 x
3 3
⇔
x
2 0 1 1
0 1
! " # " # !
y1 u1
= . x2 +
.
0 −1 0 0 0
y2 u2
x3
2 Fonction de transfert
En se plaçant dans les conditions de Heaviside (càd conditions initiales nulles), on peut
écrire :
ẋ = Ax + Bu ⇒ sX(s) = AX(s) + BU (s)
⇒ (sI − A)X(s) = BU (s)
⇒ X(s) = (sI − A)−1 BU (s)
⇒ Y (s) = [C(sI − A)−1 B + D]U (s)
On déduit alors la fonction de transfert du système :
Y(s)
H(s) = = C(sI − A)−1 B + D
U(s)
x̂˙ = T AT −1 x̂ + T Bu
(
⇒
y = CT −1 x̂ + Du
avec  = T AT −1 ; B̂ = T B et Ĉ = CT −1
3
4 Unicité de la fonction de transfert
Malgré la non unicité de la représentation d’un système, la fonction de transfert corres-
pondante ainsi que les modes propres (valeurs propres de A) restent inchangés par toute
transformation inversible.
Ĥ(s) = Ĉ(sI − Â)−1 B̂ + D̂
−1
= CT −1 (sI − T A T −1 ) T B + D
−1
= CT −1 (T sI T −1 − T A T −1 ) T B + D
= C T −1 T (sI − A)−1 T −1 T B + D
= C (sI − A)−1 B + D
= H(s)
R L
i
vc di
e C v e = vc + Ri + L
dt
dvc
i = C
dt
En posant x1 = i et x2 = vc , il vient :
x˙1
! ! ! !
−R − L1 x1 1
x˙1 = −R 1
+ 1
= +
x − x e
L L e
x˙2 0 0
L 1 L 2 L 1
x2 !
x˙2 = 1
x
C 1
⇔ C
x1
y = vc = x2 = 0 1
y
x2
Soit aussi :
ẋ = Ax + Bu
( ! !
−R − L1 1
avec A = L ; B = C1 0 ; C = L ;D = 0
y = Cx + Du 1
C
0 0
e(t) 1
ẋ1 R x1 1
ẋ2 R x2 y
+
L - C
+
R
+ L
1
L
4
Exemple2 : Ressort + Amortisseur
fext = mγ = mẍ = −bẋ − kx + f (t)
X
b k f (t)
D’où : ẍ = − ẋ − x +
m m m
En posant : x1 = x et x2 = ẋ ; il vient :
x˙1 0 1 0
! ! ! !
x1
= +
f
x˙2
k 1
−m − mb x2 !
m
x1
= 1 0
y
x2
f 1
ẋ2 R x2 ẋ1 R x1 y
+
m -
+
b
+ m
k
m
u : tension d’alimentation
E : force contre-électromotrice du Moteur
R : résistance des enroulement statorique du Moteur
L : inductance des enroulements statorique du Moteur
ω : vitesse de rotation du moteur
θ : position angulaire du rotor du Moteur
C : couple du Moteur
J : moment d’inertie des parties tournantes
f : coefficient de frottement visqueux
km : constante mécanique (constante de couple)
ke : constante électrique (constante de vitesse)
5
Et on suppose que km =ke =k.
AN. : R = 1W ; L = 10mH ; k = 1N m/A = 1V s ; J = 1Kg.m2 ; f = 1N.m.s
y (n) (t)+an−1 y (n−1) (t)+...+a1 y 0 (t)+a0 y(t) = bm u(m) (t)+bm−1 u(m−1) (t)++...+b1 u0 (t)+b0 u(t)
1ère Méthode
Y (s) bm sm + bm−1 sm−1 + ... + b1 s + b0
H(s) = =
U (s) sn + an−1 sn−1 + ... + a1 s + a0
Y (s) G(s)
H(s) = .
G(s) U (s)
D’où :
Si on pose X1 = G(s) :
=
X1 G(s)
= x2
ẋ1
X2 = sG(s) = sX1 (s)
ẋ2 = x3
X3 = s2 G(s) = sX2 (s)
→ ..
..
..
..
ẋn−1 = xn
Xn = sn−1 G(s) = sXn−1
sXn = sn G(s)
et d’après U (s) = (sn + an−1 sn−1 + ... + a1 s + a0 )G(s)
6
on déduit : sn G(s) = U − (an−1 sn−1 + ... + a1 s + a0 )G(s)
Soit : sXn = U − (an−1 Xn + ... + a1 X2 + a0 X1 )
On en déduit donc : ẋn = −a0 x1 − a1 x2 − ... − an−1 xn + u(t)
On aboutit alors à la représentation suivante :
ẋ1 = x2
ẋ2 = x3
..
..
ẋn−1 = xn
ẋn = −a0 x1 − a1 x2 − ... − an−1 xn + u(t)
D’autre part :
D’où
0 1 0 0
··· ···
.. 0
0 0 1 0 ··· .
.
.
.. .. .. ..
.
. . . . 0
A= ;B = 0
.. .. . .
. . . 1 0 0
0 0 ··· 0 1
1
−a0 −a1 · · · −an−2 −an−1
C = b0 b1 b2 · · · bm 0 · · · 0 ; et D = 0
Cette matrice est une matrice CAMPAGNON. Elle est aussi appelée Matrice de forme
commandable car en agissant sur u, on fait évoluer les xn et par effet de cascade on agit
sur les autres variables d’état. Il en existe également une forme observable.
+ + + + +
+ + + + +
bm bm−1 b1 b0
+ + + y(t)
+ + +
7
Si on pose Xn = G(s) :
=
Xn G(s)
ẋ2 = x1
Xn−1 = sG(s) = sXn (s)
ẋ3 = x2
Xn−2 = s2 G(s) = sXn−1 (s)
→ ..
..
..
..
ẋn = xn−1
X1 = sn−1 G(s) = sX2
sX1 = sn G(s)
et d’après U (s) = (sn + an−1 sn−1 + ... + a1 s + a0 )G(s)
on déduit : sn G(s) = sX1 = U − (an−1 sn−1 + ... + a1 s + a0 )G(s)
Soit : sX1 = U − (an−1 X1 + an−2 X2 ... + a1 Xn−1 + a0 Xn )
On en déduit donc : ẋ1 = −an−1 x1 − an−2 x2 ... − a1 xn−1 − a0 xn ) + u(t)
−an−1 −an−2 · · · −a1 −a0
1
1 0 ··· ··· 0 0
0
. .. .. .. .. ..
0 . . . . .
.
A= .. .. .. .. .. .. ;B = .
. . . . . .
..
. ... ... .. .. . .
.. . . .
.
0
0 0 ··· 0 1 0
C = 0 · · · 0 bm bm−1 · · · b1 b0 ; et D = 0.
2ème Méthode
En factorisant par sn , il vient :
Y (s) G(s)
H(s) = .
G(s) U (s)
8
D’où :
x˙1 = x2
x˙2 = x3
..
..
ẋn−1 = xn
ẋn = −a0 x1 − a1 x2 − ... − an−1 xn + u(t)
D’autre part :
0 1 0 0
··· ···
.. 0
0 0 1 0 ··· .
.
.
.. ... ... ...
.
. 0
A= ;B = 0
.. .. . .
. . . 1 0 0
0 0 ··· 0 1
1
−a0 −a1 · · · −an−2 −an−1
C = b0 b1 b2 · · · bm 0 · · · 0 ; et D = 0
Exemples :
Déterminer les représentations d’état correspondant aux fonctions de transfert suivantes :
9
8s3 + s + 2
H(s) =
s4 − 2s3 + 5s + 3
s2 − 2s + 4
H(s) = 3
2s + s2 − 6
Corrigé :
8s3 + s + 2
H(s) = 4
s − 2s3 + 5s + 3
D’où:
0 1 0 0 0
0 0 1 0 0
A=
; B = ; C = 2 1 0 8 ;D=0
0 0 0 1 0
−3 −5 0 2 1
- Application de la méthodologie (approche directe) :
D’où :
Y = (8s3 + S + 2)G
U = (s4 − 2s3 + 5s + 3)G
On pose :
X1 = G
X = sG = sX1
2
X3 = s2 G = sX2
X4 = s3 G = sX3
D’où :
ẋ1 = x2
ẋ2 = x3
ẋ3 = x4
Reste à déterminer ẋ4 .
sX4 = s4 G = U − (−2s3 + 5s + 3)G = U − (−2X4 + 5X2 + 3X1 )
Soit : ẋ4 = −3x1 − 5x2 + 2x4 + u
On obtient donc :
ẋ1 = x2
ẋ2 = x3
ẋ3 = x4
ẋ4 = −3x1 − 5x2 + 2x4 + u
10
Et de Y = (8s3 + s + 2)G, il vient : Y = 8X4 + X2 + 2X1
On en déduit :
y = 2x1 + x2 + 8x4
On retrouve bien le résultat
attendu
:
0 1 0 0 0
0 0 1 0 0
A=
; B =
; C =
2 1 0 8 ;D=0
0 0 0 1 0
−3 −5 0 2 1
Vérification Matlab
s2 − 2s + 4 s −s+2
1 2
H(s) = = 2
2s + s − 6
3 2 s + 12 s2 − 3
3
D’où:
0 1 0 0
A= 0 0 1 ; B = 0
; C = 2 −1 1
;D=0
2
3 0 −1
2
1
Vérification Matlab
* Solution particulière :
La solution particulière est de la forme : z(t) = eAt .K(t), avec K(t) cette fois-ci est un
vecteur variable.
11
Cette solution z(t) doit vérifier l’équation ẋ = Ax + Bu :
Or ż = eAt .K̇(t) + AeAt .K(t)
D’où : ż = Az + Bu = AeAt .K(t) + Bu
⇒ eAt .K̇(t) + AeAt .K(t) = AeAt .K(t) + Bu ⇒ eAt .K̇(t) = Bu
⇒ K̇(t) = Ze−At Bu(t)
t Z t
⇒ K(t) = e−Aτ Bu(τ ) dτ ⇒ z(t) = eA(t−τ ) Bu(τ ) dτ
t0 t0
D’où : Z t
x(t) = eA(t−t0 ) x(t0 ) + eA(t−τ ) Bu(τ ) dτ
t0
et : Z t
y(t) = CeA(t−t0 ) x(t0 ) + CeA(t−τ ) Bu(τ ) dτ + Du(t)
t0
ẋ = ax + b
(
=> appliquer à l’éq diff du 1er ordre classique
y = x
Remarque
Diagonalisation ou Jordanisation
Cayley Hamilton
Exemple :
12
0 1 0
! ! ! !
ẋ1 x1
= . + . u
4 1
ẋ2 −3 x2 !
x1
y = 0 1 .
x2
On a :
Y (s) = C(sI − A)−1 Bu(s)
1 t
(sI − A)−1 = COM (SI − A)
det(sI − A)
s −1
det(sI − A) = = s(s − 4) + 3 = (s − 1)(s − 3)
3 s − 4 #
s−4 −3 s−4 1
" " #
COM (sI − A) = et COM (sI − A) =
t
1 s −3 s
D’où : :
i s−4 1 0
" #" #
h
0 1
−3 s 1 1
Y(s)= × ; car U (s) = 1s (échelon Unitaire)
(s − 1)(s − 3) s
D’où :
1
y(s) =
(s − 1)(s − 3)
a b
On va décomposer y(s) en fractions élémentaires : y(s) = +
s−1 s−3
−1 1
Par identification, on trouve : a = et b =
2 2
1 −1 1
!
Soit : y(s) = +
2 s−1 s−3
D’où :
1
y(t) = (−et + e3t )
2
13
avec : A = P DP −1
Calcul de P −1 :
1 t 1 t 3 −1
!
P =
−1
COM P =
det(P ) 3 − 1 −1 1
1 3 −1
!
D’où : P −1
=
2 −1 1
Soit :
D’où :
1Z t
!
= −e(t−τ ) + 3e3(t−τ ) dτ
2 0
" #t
= 1
2
e (t−τ )
−e 3(t−τ )
0
On obtient :
1
y(t) = (−et + e3t )
2
Vérification MATLAB :
ou bien
14
7 Stabilité du Système
Un système est stable si pour une entrée bornée, la sortie correspondante est également
bornée (BIBO : Bounded Input-Bounded Output).
Dans la représentation d’état, un système est stable si les valeurs propres de A sont à
parties réelles négatives (situées dans le demi-plan de gauche).
En effet,
t
COM (sI − A)
H(s) = [C(sI − A)−1 B + D] = C × ×B+D
det(sI − A
Exemple : !
1 −2
A= a pour valeur propres -1 et 5 (x2 − 4x − 5 = 0)⇒ Le système correspon-
−4 3
dant est instable.
** On aurait pu juste remarquer que tr(A)= 4 >0 donc au moins une valeur propre po-
sitive et donc le système est instable.
Exercice
Dire, sans calculer les valeurs propres, si les systèmes dont les matrices d’évolutions sui-
vantes sont stables ou pas :
−1 0 2
1 −2 1 −2
! !
A= ; A= ; A= 0 4 3
−4 −3 4 −3
0 0 −5
15
2
Commandabilité et Observabilité
1 Commandabilité
Un système est commandable en un instant t0 s’il existe une commande (ou loi de
commande) u(t) qui ferait évoluer le système de x(t0 ) à x(t) en un temps fini (t − t0 ).
Un système est commandable (càd complètement commandable) s’il est commandable en
tout instant t0 .
Autre définition :
Un système est commandable ⇐⇒ ∃ une commande d’énergie finie qui le mène d’un état
à un autre.
17
∞
(At)k
D’autre part, d’après le théorème de TAYLOR : eAt =
X
k=0 k!
(At)k X ∞
(At)k
n−1
Soit aussi : eAt = +
X
k=0 k! k=n k!
Et comme ∀k ≥ n, les A s’expriment en fonction des Aj avec j ≤ (n − 1), on peut écrire :
k
n−1
eAt = αk (At)k
X
k=0
Z t Z t n−1
D’où x(0) = − e−Aτ Bu(τ ) dτ = − αk (−Aτ )k Bu(τ ) dτ
X
0 0 k=0
n−1 Z t n−1 Z t
=− Ak B αk (−τ )k u(τ ) dτ = Ak BVk avec Vk = − αk (−τ )k u(τ ) dτ
X X
k=0 0 k=0 0
Vn−1
Donc, l’obtention
h des Vi et donc desi ui à partir de x0 est conditionné par le rang de la
matrice B AB A2 B · · · An−1 B .
2 Observabilité
2.1 Définition
Un système est observable à un instant t0 si à partir de l’observation de sa sortie y entre
t0 et t, on peut déduire l’état du système en t0 càd x(t0 )
Si ceci est valable ∀t0 alors on dit que le système est observable (càd complètement ob-
servable).
Autre définition :
Un système est observable si et seulement si l’information fournie par ses sorties et entrées
permettent de reconstituer en tout temps son état (toutes ses variables d’état).
18
y = Cx
ẏ = C ẋ = C(Ax + Bu) = CAx + CBu
ÿ = CAẋ + CB u̇ = CA2 x + CABu + CB u̇
y (3) = CA2 ẋ + CAB u̇ + CAB ü = CA3 x + CA2 Bu + CAB u̇ + CB ü
..
.
y (n−1) = CA(n−1) x + CA(n−2) Bu + CA(n−3) B u̇ + · · · + CBu(n−2)
Soit :
0 0 ··· 0
y C
···
u
ẏ CA CB 0 ··· ··· 0 u̇
.. = .x+.. . ..
0 ··· 0
. .
CAB CB .
(n−2) (n−3)
y (n−1)
CA(n−1) CA B CA B · ·· · · · CB u(n−1)
Donc,
l’extraction
de x de cette équation dépend uniquement du rang de la matrice
C
CA
..
.
CA(n−1)
ẋ = Ax + Bu 0 k2 0
0
b2
avec A = ; B = et C = 0 c2 0 c4
y = Cx 0 0 k3 0 0
0 0 0 k4 0
u(t) ẋ1 R x1
b1 +
+
k1
ẋ2 x2
c2
R
b2 +
+
k2
ẋ3 R x3 +
y(t)
+
+ +
k3
ẋ4 x4
c4
R
+
+
k4
19
1
0 0 0
s − k1
1
0 0 0
s − k2
(sI − A)−1 = 1
0 0 0
s − k3
1
0 0 0
s − k4
c2 c4
D’où : C(sI − A) ) = 0−1 0
p − k2 p − k4
b2 c 2
Et par suite : C(sI − A)−1 )B =
p − k2
Cette fonction de transfert ne fait intervenir que les paramètres concernant les variables
commandables et observables. C’est le cas en général. On parle alors de modes cachés que
la fonction de transfert ne peut révéler. D’où l’intérêt d’une représentation d’état.
Exercice1 :
Etudier la commandabilité et l’observabilité du système représenté dans l’espace d’états
par :
x˙1 2 0 1
" # " # " # " #
x1
= . + . u
x˙2 3 −5 0
x2
" #
h i x1
= 1 −1
y .
x2
Solution :
La matrice de commandabilité est :
1 −2
" #
h i
M = B AB =
0 3
det(M ) = 3 6= 0 donc le système est commandable.
La matrice#d’observabilité
# est :
1 −1
" "
C
Ob = =
CA −1 5
det(Ob) = 4 6= 0 donc le système est observable.
Exercice2 :
Etudier la commandabilité et l’observabilité du système représenté dans l’espace d’états
par :
x˙1 2 1 1
" # " # " # " #
x1
= . + . u
x˙2 1
k −4 x2
" #
h i x1
= 1 0
y .
x2
1 3
" #
h i
La matrice de commandabilité est :Co = B AB =
1 k−4
⇒ det(Co) = k − 7
Donc, le système est commandable ⇔ k 6= 7
20
1 0
" # " #
C
La matrice d’observabilité est :Ob = =
CA 2 1
⇒ det(Ob) = 1 6= 0 donc Système observable ∀k
Exercice3 :
Etudier la commandabilité et l’observabilité du système représenté dans l’espace d’états
par :
x˙1 1 0 1 1 0
x1 " #
u1
x˙2 −1 −1 0
= x2 + 0 0 .
.
u2
x˙3 0 0 1 0 1
x3
x1
1 0 0
" # " #
y1
= . x2
0 1
y2 −1
x3
21
3
Commande par Retour d’état
Le but de l’étude d’un système est d’examiner ses performances en termes de stabilité,
de rapidité et de précision afin de les corriger ou les améliorer, dans la mesure du possible,
en imaginant une certaine loi de commande. Mais encore faut-il qu’il soit commandable !
D’où l’intérêt primordial de la notion de commandabilité.
Le type de commande à envisager dépend de la disponibilité des varaibles d’états, ce qui
fait ressortir l’importance également de la notion d’observabilité.
Dans le cas d’indisponibilité de certaines variables d’état, on sera amené à les estimer
pour les "rendre observables" pour pouvoir implémenter une loi de commande : il s’agit
de la commande par observateur d’états.
Dispositif
de Retour
Le système en boucle ouverte est représenté par des équations d’états telles que :
ẋ = Ax + Bu
(
y = Cx + Du
23
On prendra D=0 pour simplifier les calculs.
La loi de commande par retour d’état est de la forme : u = −Kx + e, avec e est le vecteur
des signaux de consigne à distinguer des signaux de commande u .
ẋ = Ax + Bu = Ax + B(−Kx + e) = (A − BK)x + Be
(
y = Cx
e(t)
+
u(t) ẋ = Ax + Bu y(t)
- y = Cx + Du
x(t)
Si u est de dimention mx1 et donc B est de dimension nxm, alors K est une matrice de
mxn.
Le gain de retour est formé de m ligne de n colonnes de gains à dimensionner en fonction
de la dynamique désirée.
Dans la suite nous considérons que u et e sont des monovariables pour simplifier le rai-
sonnement.
La matrice d’état est devenue A − BK alors que celles de l’entrée et de la sortie, respec-
tivement B et C restent inchangées.
La matrice K pourra être choisie de telle sorte à imposer les valeurs propres et donc les
pôles de la fonction de transfert (Dénominateur=Polynôme caractéristique), en vue de
corriger ou d’améliorer la stabilité ainsi que pour accélérer le système (améliorer la rapi-
dité).
Exemple :
0 1 0 0
h i
A= 0 0 1 et B = 0 On se propose de déterminer K = k1 k2 k3 de telle
−1 −5 −6 1
sorte que le système corrigé par retour d’état ait des pôles p = −2 ± 5j et −5.
Le polynôme caractéristique désiré est :
Soit
Or
0 1 0
A − BK =
0 0 1
−1 − k1 −5 − k2 −6 − k3
Le polynôme caractéristique correspondant est donné par :
24
D’où, on déduit par identification :
k3 + 6 = 9 k3 = 3
h i
k2 + 5 = 49 ⇒ k2 = 44 ⇒ K = 144 44 3
k1 + 1 = 145 k1 = 144
0 1 0 0 1
! ! !
Or A − BK = − . k1 k2 =
−2 −3 1 −2 − k1 −3 − k2
Le polynôme caractéristique de A − BK est donc : s2 + (3 + k2 )s + 2 + k1
3 + k2 = 4 k1 = 6
( (
On en déduit : ⇒
2 + k1 = 8 k2 = 1
2 Formule d’Ackermann
Pour un système commandable, Ackermann a établit une formule pour déterminer direc-
tement le vecteur Gain du Retour :
K = [k1 , k2 , ..., kn ] = [0, 0, ..., 1] × [B, AB, A2 B, ..., An−1 B]−1 × P (A)
avec P(A) est le Polynôme caractéristique désiré (valeurs propres à imposer au système)
appliqué à la matrice A.
Exemple :
6 1
!
On va reprendre l’exercice précédent : P (A) = A + 4A + 8I =
2
−2 3
0 1
!
[B, AB]=
1 −3
3 1
!
[B, AB] =
−1
1 0
3 1 6 1 16 6
! ! !
D’où : [k1 , k2 ]= 0 1 = 0 1 = 6 1
1 0 −2 3 6 1
25
3 Réglage du régime permanent
Intéressons nous dans cette section au gain statique (càd en régime permanent). Et
pour simplifier le raisonnement, supposons que notre système est du type SISO (Single
Input Single Output) et prenons D=0.
La fonction de transfert du système est donnée par :
Y (s)
H(s) = = C[(sI − (A − BK))−1 B]
U (s)
Ainsi, pour une entrée Echelon e(s) = E/s,
E
y∞ = lim y(t) = lim sY (s) = lim s.H(s). = lim H(s).E = C(−A + BK)−1 B.E
t→+∞ s→0 s→0 s s→0
x(t)
Exemple : !
0 2 x1 0
! ! ! !
ẋ1 x
= + u et y = 1 0 1
ẋ2 −3 4 x2 1 x2
√
Les valeurs propres de A sont 2 ± i 2. On désire les placer à −4 et −5.
-
+ 4
u + ẋ2 x2 ẋ1 x1 y
2
R R
+
14 26
!
P (A) = (A + 4I)(A + 5I) =
−39 66
0 2
!
La matrice de commandabilité est : Co = B AB =
1 4
et
−2 1
Co−1 = 1
0
2
26
La formule d’Ackermann nous donne :K = 0 1 Co−1 P (A) = 7 13
1
Le gain de précommande pour avoir un gain statique unitaire est : F =
C(−A + BK)−1 B
0 −2 0.45 0.1
! !
Avec −A + BK = et (−A + BK)−1 =
10 9 −0.5 0
D’où : F = 10.
-
+ 4
e u + ẋ2 x2 ẋ1 x1 y
2
R R
10 +
-
+
+
+ 13
e ẋi R xi u ẋ R x y
-
+ ki -
+ B +
+ C
ẋ = Ax + Bu
(
y = Cx
27
Un bouclage intégral fait rajouter une nouvelle variable d’état que l’on notera xi . La nou-
velle entrée du système sera notée e.
Ainsi, on a : ẋi = e − y = e − Cx
et la commande u devient : u = ki xi − Kx
0
!
ṙ = (Â − B̂ K̂)r + e
1
y = Ĉr
! !
A 0 B h i
avec : Â = ; B̂ = ; Ĉ = C 0 ; K̂ = K −ki
−C 0 0
On peut alors imposer une dynamique au système en choisissant convenablement le
vecteur K̂ contenant les n composantes du Retour d’état classique et la composante ki
correspondant au Retour Intégral, de telle sorte à ce que la matrice  − B̂ K̂ puisse avoir
les valeurs propres désirées.
Cette matrice a une forme similaire à celle vue lors du dimensionnement de la commande
par Retour d’état classique, et on peut lui appliquer la formule d’ACKERMANN pour
déterminer K̂
Exemple :
0 1 x1 0
! ! ! !
ẋ1
= +
u
5 −4 ! x2 1
ẋ2
x
= 1 0 1
y
x2
On a :
0 1 0 0
! !
A 0 B
 = = 5 −4 0 ; B̂ = = 1 ; Ĉ = C 0 = 1 0 0 ;
−C 0 0
h i
−1 0 0 0
K̂ = k1 k2 −ki
0 1 −4
h i
La matrice de commandabilité est : Co = B̂ ÂB̂ Â B̂ = 1 −4 21
2
0 0 −1
4 1 5
et Co −1
= 1 0 −4
0 0 −1
Le Polynôme caractéristique est : P = (s +1)(s + 2)(s + 3)
16 8 0
D’où : P (Â) = (Â + I)(Â + 2I)(Â + 3I) = 40 −16 0
−16 −2 6
28
Enfin on applique la formule d’Ackermann
:
4 1 5 16 8 0
k1 k2 −ki = 0 0 1 1 0 −4 40 −16
= 16 2 −6
0
0 0 −1 −16 −2 6
càd aussi : k1 = 16 ; k2 = 2 et ki = 6.
Remarque :
On peut faire le calcul direct sans passer par la formule d’Ackermann :
Le polynôme caractéristique désiré est : (s + 1)(s + 2)(s + 3) = s3 + 8s2 + 17s + 10
D’autre part : det[sI − (Â − B̂ K̂)] = s3 + (k2 + 4)s2 + (k1 − 5)s − ki
29
4
Obserateur d’état
u(t) y(t)
Système
x̂(t)
Observateur
31
L’observateur est régi par une représentation d’état de la sorte :
ŷ = C x̂ + Du
}
Système
u ẋ R x y
B +
+ C
{z
A
|
+
}
L -
Observateur
x̂˙ ŷ
{z
+ R x̂
B +
C
|
x̂˙ = Ax̂ + Bu + L[(Cx + Du) − (C x̂ + Du)] = Ax̂ + Bu + LC(x − x̂)
(
ẋ = Ax + Bu
⇒ ẋ − x̂˙ = (A − LC)(x − x̂)
L’erreur d’estimation que l’on notera x̃ obéit donc à la loi : x̃˙ = (A − LC)x̃
L peut être alors choisie de telle sorte que les valeurs propres de A − LC soient à parties
réelles négatives et suffisamment grandes en valeurs absolues pour converger le plus rapi-
dement possible.
32
}
e(t) u(t) y
Système
ẋ R x
F +
- B +
+ C
{z
A
|
+
}
L -
Observateur
x̂˙ ŷ
{z
+ R x̂
B +
C
|
K
x̃˙ = (A − LC)x̃
Soit aussi : ! ! ! !
ẋ A − BK BK x B
= +
e
x̃˙
0 0
A − LC x̃
!
x
= C 0 . + Du
y
x̃
Toutefois, la dynamique de l’observateur doit être plus rapide que le système, en gé-
néral 3 à 5 fois plus élevée. Par conséquent, la matrice L doit être choisie de telle sorte
que les valeurs propres de A − LC aient des parties réelles plus élevées en valeurs absolues
que celles de A − BK.
Exemple1 :
0 2 x1 0
! ! ! ! !
ẋ1 x
On reprend l’exemple précédent : = + u et y = 1 0 1
ẋ2 −3 4 x2 1 x2
Et on se propose d’introduire un Observateur pour estimer les états x1 et x2 afin d’im-
plémenter la correction par retour d’état désirée.
Les pôles du retour d’état désirés sont toujours : -4 et -5.
De ce fait on peut prendre comme pôles de l’observateur un pôle double -30 (au moins 5
fois la valeur de ceux du retour d’état).
Le Polynôme caractéristique désiré est donc : (s + 30)2 = s2 + 60s + 900
Le polynôme caractéristique de A-LC est : det(sI-(A-LC))=s2 + (l1 − 4)s − 4l1 + 6 + 2l2
33
!
l
avec L= 1
l2
On déduit : l1 = 64 et l2 = 575
2 Observateur Réduit
Dans la section précédente, nous avons estimé tous les états en supposant indirecte-
ment qu’ils sont tous inaccessibles ! Mais en réalité, certains états peuvent êtres accessibles
(mesurables) , d’autres non. Ainsi, il n’est pas nécessaire d’estimer tous les états, mais
seulement ceux qui ne sont pas directement accessibles (absence de capteur, capteur trop
cher, capteur imprécis, encombrement...). D’où la notion d’observateur réduit, simple à
réaliser, moins coûteux en terme de mémoire et temps de calcul et moins encombrant.
! ! ! !
ẋ1 A11 A12 x1 B1
= +
u
ẋ2 A21 A22 ! x2 B2
x
= I 0 1
y
x2
34
Construisons alors l’observateur pour x2 :
x̂˙ 2 = A22 x̂2 + v + L(w − ŵ)
On définit l’erreur d’estimation x̃2 = x2 − x̂2
D’où : x̃˙ 2 = x˙2 − x̂˙ 2 = A22 (x2 − x̂2 ) − L(w − ŵ)
Et comme w − ŵ = A12 x2 − A12 x̂2 = A12 (x2 − x̂2 ) = A12 x̃2 ,
On déduit :
x̃˙ 2 = (A22 − LA12 )x̃2
Implémentation La nouvelle variable W introduite fait appel à la dérivée de x1 , qui
pourrait être source d’ennuis en termes particulièrement de génération de bruit.
Nous allons utiliser un artifice pour contourner ce problème :
x̂˙ 2 = A22 x̂2 + v + L(w − ŵ)
= A22 x̂2 + v + LA12 (x2 − x̂2 )
= (A22 − LA12 )x̂2 + v + LA12 x2
Or v = A21 x1 + B2 u et A12 x2 = ẋ1 − A11 x1 − B1 u
x̂˙ 2 − Lẋ1 = (A22 − LA12 )(x̂2 − Lx1 ) + (A22 − LA12 )Lx1 + A21 x1 + B2 u − LA11 x1 − LB1 u
⇒
x̂˙ 2 − Lẋ1 = (A22 − LA12 )(x̂2 − Lx1 ) + (A22 L − LA12 L + A21 − LA11 )x1 + (B2 − LB1 )u
En posant ẑ2 = x̂2 − Lx1 , il vient :
ẑ˙2 = (A22 − LA12 )ẑ2 + (A22 L − LA12 L + A21 − LA11 )x1 + (B2 − LB1 )u
x̂2 = ẑ2 + Lx1
L’erreur d’estimation converge vers 0 en choisissant L de telle sorte que les valeurs propres
de A22 − LA12 soient à parties réelles strictement négatives.
35
!
x
Et en prenant comme vecteur d’état , on aboutit à :
x̃2
! ! ! !
ẋ A − BK BK2 x B
= + e
x̃˙ 2 0 A22 − LA12 x̃2 0
e u ẋ = Ax + Bu y = x1
+
- y = (I, 0)x
K = [k1 , k2 ] x1
ẑ2 ẑ˙ = Āẑ + B̄ x + B̄ u
x̂2 = ẑ2 + Lx1 2 2 1 1 2
x̂2
MUX
exemple
0 1 0
! !
ẋ = x+
u
0 −1 1
h i
y = 1 0 x
0 1 0 h
" ! ! #
i
det (sI − (A − BK)) = sI − − k1 k2
0 −1! 1
0 1 0 0
" !#
= sI − −
0 −1 k1 k2
s −1
=
k1 s + 1 + k1
h i
= s2 + (1 + k2 )s + k1
D’où : K = 4 3
36
e u ẋ = Ax + Bu y = x1
+
- y = (I, 0)x
90 9
10
+ 4
+
37
5
Systèmes complexes
Comme x2 atteint son régime permanent plus rapidement que x1 , on peut écrire :
ẋ2 ≈ 0 ;
x2 ≈ x2f (valeur finale de x2 ) ;
Et l’équation devient :
! ! ! !
ẋ1 A11 A12 x1 B1
= +
u
0 A21 A22 x!2f B2
x1
=
y C1 C2
x2f
On en déduit :
A21 x1 + A22 x2f + B2 u = 0
D’où : A22 x2f = −A21 x1 − B2 u
Soit x2f = −A−1 −1
22 A21 x1 − A22 B2 u
Remarque : On suppose que la matrice A22 est inversible, sinon on utilisera sa matrice
pseudo-inverse.
Pour x1 ,on peut alors écrire : ẋ1 = A11 x1 + A12 (−A
22 A21 x1 − A22 B2 u) + B1 u
−1 −1
De même pour
y:
y = C1 x1 + C2 −A−1
22 A21 x 1 − A−1
22 B2 u = C 1 − C 2 A −1
22 A21 x1 − C2 A−1
22 B2 u
39
Il vient alors :
Exemple
0 1
! !
−2
A= ;B= ; C = 3 −0.1
0 −15 50
On remarque que x2 a une dynamique beaucoup plus rapide que x1 , on peut donc
l’assimiler à sa valeur finale x2f = −A−1
22 A21 x1 − A22 B2 u = −50u
−1
ẋ1 = −2x1 + u
et 1
y = 3x1 − u
3
40
6
Systèmes complexes : Commande Op-
timale
1 Introduction
La commande par retour d’état, appelée aussi commande modale, est relativement
simple à mettre en oeuvre, mais sur des systèmes complexes on arrive rapidement à des
limites dès que l’ordre devient élevé.
Exemple : Un système à 2 entrées et ayant3 variables
d’état nécessite la fixation de six
! x1
k k k
pôles. En effet : u = −Kx = 1 2 3 x2
k4 k5 k6
x3
donc 6 valeurs composantes du gain K à déterminer.
Idem pour l’observateur correspondant !.
Comment choisir d’une manière automatique les valeurs optimales des gains ki ?
2 Critères d’optimisation
Le but de la commande est une convergence rapide tout en minimisant l’énergie de la
commande. Z ∞
Or l’énergie d’un signal est proportionnelle à x2 dt pour le cas de monovariable et
Z ∞ 0
t
xx dt pour le cas multivariables.
0
x
En se reférant à la figure ci-contre, on
constate que l’énergie fournie par le dis-
positif de commande "u1 " est plus impor-
tante que celle de "u2 ". Et on constate
également que la convergence Z ∞ est d’au- −3e−0.5x
tant plus rapide que Jx = t
xx dt est −3e−x
0
faible.
t
41
Ceci nous amène à fixer comme premier objectif :
Z ∞
Minimiser Jx = t
xx dt
0
Z ∞
De la même manière, l’énergie de la commande est proportionnelle à Ju = t
uu dt.
0
Ce qui nous amène à fixer comme deuxième objectif :
Z ∞
Minimiser Ju = t
uu dt
0
Exemple : −1
2 −1
0 −1 2
1er mineur : 2
2 −1
2ème mineur : =3>0
−1 2
2 −1 0
3ème mineur : −1 2 −1 =4>0
0 −1 2
A noter que toute matrice diagonale à élément >0 est symétrique définie positive.
Z ∞ Z ∞
On définit alors un critère de compromis : J = Jx + Ju = t
xQx dt + t
uRu dt
0 0
Z ∞
J= t
xQx +t uRu dt
0
42
- fixer une matrice à l’Identité et faire varier l’autre,
- ...
Mais, dans le cas général des systèmes complexes d’ordre important, on se retrouve dans
la même situation que celle pour le placement des pôles (commande modale).
Une solution pour le choix de Q et R a été proposée par Philippe de Larminat (Mathé-
maticien Français, toujours vivant), appelée La Méthode des Grammiens :
" Z Tc #−1
t
R=I et Q = Tc eAt B eAt B dt
0
1
Ce choix permet d’avoir également des pôles à gauche de la verticale − .
Tc
3 Equation de RICCATI
Une fois les matrices Q et R choisies, la solution de la problématique du Kopt permet-
tant d’optimier le critère Z ∞
J= t
xQx +t uRu dt
0
est donnée par :
Kopt = R−1t BP où P est définie symétrique positive, solution de l’équation de Riccati :
t
AP + P A + Q = P BR−1t BP
et min
u
J(u) =t x0 P x0 = J(uopt )
Exemple 1
0 1 0
! !
A= ;B=
0 0 1
1 0
!
Q= et R = 16
0 0
0 1
!
h i
Co = B AB = , det(Co) = −1 6= 0.
1 0
Le Système est
! donc commandable.
P1 P2
P = solution de l’équation de Riccati : t AP + P A + Q = P BR−1 .t BP = 0
P2 P3
Donc :
0 0 0 1 1 0 1 P1 P2 0
! ! ! ! ! ! ! !
P1 P2 P P2 P P
+ 1 + − 0 1 1 2
=0
1 0 P2 P3 P2 P3 0 0 0 0 16 P2 P3 1 P2 P3
√ √
On en déduit :P1 = 2 √2 ; P2 = !4 et P3 = 8 2
2 2 √4
Et par suite : P =
4 8 2
√ √ #
1 2 2 4 1 √
! "
et Kopt = R BP =
−1t
0 1 √ = 4 8 2 = 1 2
16 4 8 2 16 4 2
Remarque :
Instruction Matlab : [K,P,E]=lrq(A,B,Q,R)
43
Exemple 2
q 0
! !
x
x= 1 ;Q= 1 ;R=r
x2 0 q2
Si on privillégie la dynamique ⇒ x1 et x2 plus faibles
La recherche du gain de retour d’état optimum à l’aide de l’équation de Riccati, donne les
deux composantes k1 et k2 exprimées en fonction de q1 , q2 et r.
Et pour pousser l’optimisation aux extrêmes, on pourra optimiser ces expressions obtenues à
l’aide d’algorithmes d’optimisation tels que l’Algoritme Génétique ou autres Algorithmes inspi-
rés de la nature, en vogue actuellement, tels que PSO (Particle Swarm Optimization, BCO (Bee
Colony Algorithm),ACO (Ant Colony Algorithm), GWO (Grey Wolf Algorithm), CSA (Cuckoo
Search Algorithm)...
44