Vous êtes sur la page 1sur 9

Chapitre 3 : Régulateur Linéaire Quadratique (LQR)

1- Régulateur d’état continu :


- Commande LQ à Horizon Fini (tf fixe) :

Position du Probléme :

On se donne un système dynamique linéaire déterministe :

𝑥 . (t) = A. 𝑥(t) + B. u(t), 𝑥 ∈ 𝑅𝑛 , 𝑢 ∈ 𝑅𝑚 (1)

Le Probleme de la commande optimale est de trouver la commande u(t) et la


trajectoire optimale 𝑥 ∗ (𝑡) sur l’intervalle de temps [t0 , tf] de sorte à minimiser
la mesure de performance (fonction cout, fonctionnel, fonction objective] de
forme quadratique :
𝑡 1
𝐽 = 𝑥 𝑇 (𝑡𝑓 ). 𝑆. 𝑥(𝑡𝑓 ) + ∫𝑡 𝑓 [𝑥 𝑇 (𝑡). 𝑄. 𝑥(𝑡) + 𝑢𝑇 (𝑡). 𝑅. 𝑢(𝑡)] 𝑑𝑡
20

(2)

Les matrices S, Q et R dites matrices de Pondération étant symétriques, avec :

𝑆, 𝑄 ≥ 0 𝑒𝑡 𝑅 > 0, dim(Q)=dim(A)=n×n, dim(R)=n×m

En outre le système (1) est supposé entierement commandable :

𝑅𝑎𝑛𝑔 [𝐵, 𝐵𝐴, 𝐵𝐴2 , … … … , 𝐵𝐴(𝑛−1) ] = 𝑛

Le Hamiltonien s’écrit alors :


1
𝐻(𝑥, 𝑢, , 𝑡) = 𝑇 (𝑡). 𝐴. 𝑥(𝑡) + 𝑇 (𝑡). 𝐵. 𝑢(𝑡) + [𝑥 𝑇 (𝑡). 𝑄. 𝑥(𝑡) +
2
𝑇 (𝑡).
𝑢 𝑅. 𝑢(𝑡)] (3)

Les équations canonique d’optimalité produisent :


−𝜕𝐻
. (𝑡) = 𝜕𝑥
= −𝐴𝑇 . (𝑡) − 𝑄. 𝑥 (𝑡) (4)

(𝑡𝑓 ) = 𝑆. 𝑥(𝑡𝑓 )
𝜕𝐻
= 𝐵𝑇 . (𝑡) + 𝑅. 𝑢(𝑡) = 0 (5)
𝜕𝑢

De l’équation (5), une forme implicite de la commande s’écrit :


𝑢(𝑡) = −𝑅−1 . 𝐵𝑇 . (𝑡) (6)

Sous forme matriciel, le système hamiltonien s’écrit :

𝑑 𝑥(𝑡) 𝐴 − 𝐵. 𝑅−1 . 𝐵𝑇 𝑥(𝑡)


[ =
] [ ][ ] (7)
𝑑𝑡 (𝑡) −𝑄 − 𝐴𝑇 (𝑡)
Ricatti propose une relation linéaire entre l’état 𝑥(𝑡) et le vecteur adjoint (𝑡)
via une matrice définie positive P(t) (P(t)>0), dite : matrice de Ricatti
dynamique, de dimension n×n, et P(tf)=S:

(𝑡) = 𝑃(𝑡). 𝑥(𝑡) (8)

Le gradient du co-état s’écrit :

. (𝑡) = 𝑃. 𝑥(𝑡) + 𝑃𝑥 . (𝑡) (9)

D’autre part, l’équation (4) s’écrit :

. (𝑡) = −(𝐴𝑇 . 𝑃 + 𝑄)𝑥(𝑡) (10)

Par égalisation de (9) et (10), l’équation dynamique de la matrice de Ricatti


s’écrit :

𝑃. (𝑡) + 𝑃(𝑡). 𝐴 + 𝐴𝑇 . 𝑃(𝑡) − 𝑃(𝑡). 𝐵. 𝑅 −1 . 𝐵𝑇 . 𝑃(𝑡) + 𝑄 = 0


{ } (11)
𝑃(𝑡𝑓 ) = 𝑆

La commande optimale obtenue est alors exprimée comme retour d’état :

𝑢(𝑡) = −𝐾(𝑡). 𝑥(𝑡) (12)

Avec K(t), dit : gain de Ricatti, exprimé comme :

𝐾(𝑡) = 𝑅−1 . 𝐵𝑇 . 𝑃(𝑡) (13)

Remarques :

1- La matrice de Ricatti P(t) est choisie symétrique, ce qui permet la


𝑛+1
réduction du clacul de ses composants Pii de n×n à 𝑛. ( ).
2
2- Dans l’équation (11), la matrice P(t) est calculée en rétrograde
(backward), en remplaçant : P(t) par P(g), et 𝑃. (𝑡) 𝑝𝑎𝑟 − 𝑃. (𝑔)
Avec g une nouvelle variable : si t=0, g=tf.
3- Pour le calcul d’un régulateur LQR minimisant un critere quadratique sur
la sortie y(t) :
𝑡𝑓
𝑇
1 𝑇
𝐽 = 𝑦 (𝑡𝑓 ). 𝑆. 𝑦(𝑡𝑓 ) + ∫ [𝑦 (𝑡). 𝑄. 𝑦(𝑡) + 𝑢𝑇 (𝑡). 𝑅. 𝑢(𝑡)] 𝑑𝑡
𝑡0 2
L’équation dynamique de Riacatti donnée dans (11) reste la meme sauf
le dernier terme Q qui sera replacé par : 𝐶 𝑇 𝑄𝐶

- Commande LQ à Horizon infini :


Soit le critere à minimiser avec un horizon infini (tf tends vers l’infini) :
∞1
𝐽 = ∫𝑡 [𝑥 𝑇 (𝑡). 𝑄. 𝑥(𝑡) + 𝑢𝑇 (𝑡). 𝑅. 𝑢(𝑡)] 𝑑𝑡 (14)
0 2

Dans le cas d’un système LTI (Linear Time Invariant), la commande optimale est
un retour détat statique : 𝑢(𝑡) = −𝐾𝑠𝑡 . 𝑥(𝑡) ,

Avec le gain de Ricatti statique exprimé par l’équation (13), et l’équation de


Ricatti statique P vérifie l’équation algébrique suivante :
𝑃. 𝐴 + 𝐴𝑇 . 𝑃 − 𝑃. 𝐵. 𝑅−1 . 𝐵𝑇 . 𝑃 + 𝑄 = 0 (15)
Remarque :
La synthese du régulateur LQR en utilisant le logiciel Matlab, s’obtient en
tapant l’instruction :

[K,S,e]=lqr(A,B,Q,R).

Choix des Matrices de Pondération :


1- Au départ, on choisit generalement des ponderations_egales aux matrices
identité.
2- Dans une seconde étape, onaccélere ou on décélere le système en multipliant
la matrice Q par un scalaire 𝛾 : accélération ( 𝛾 > 0, 𝑑é𝑐é𝑙é𝑟𝑎𝑡𝑖𝑜𝑛 𝛾 < 0),
jusqu’à obtenir une dynamique adaptée.
3- Dans le cas ou certains actionneurs sont sollicités par rapport à d’autres, on
peut choisir d’augmenter la ponsération R leur correspondant.
2- Régulateur d’état discret:

Soit le système dynamique à temps discret, défini par l’équation :

𝑥(𝑘 + 1) = 𝐴𝑑 . 𝑥(𝑘) + 𝐵𝑑 . 𝑢(𝑘), 𝑥(0) = 𝑥0 (16)

Avec : 𝐴𝑑 = 𝐴. 𝑇𝑠 + 𝐼, 𝐵𝑑 = 𝐵. 𝑇𝑠

Soit à déterminer les séquences de commande u(k), minimisant le :


1
𝐽= ∑𝑁 𝑇 𝑇
𝑘=1 𝑥 (𝑘). 𝑄. 𝑥(𝑘) + 𝑢 (𝑘). 𝑅. 𝑢(𝑘) (17)
2

L’équation de la commande s’écrit :

𝑢(𝑘) = −𝑅−1 . 𝐵𝑑𝑇 . 𝑃(𝑘 + 1)𝑥(𝑘) (18)

Avec l’équation récurente de la matrice de Ricatti :

𝑃(𝑘) = 𝑄 + 𝐴𝑇𝑑 . 𝑃(𝑘 + 1)(𝐴𝑑 − 𝐵𝑑 . 𝐾(𝑘)) (19)

- Critère à Horizon infini :

Cherchons les séquences de commande u(k) minimisant le critere :


1
𝐽= ∑∞ 𝑇 𝑇
𝑘=1 𝑥 (𝑘). 𝑄. 𝑥(𝑘) + 𝑢 (𝑘). 𝑄. 𝑢(𝑘) (20)
2

On démontre que pour le système LTI, le gain statique de retour s’écrit :


−1
𝐾 = (𝑅 + 𝐵𝑑 𝑇 . 𝑃. 𝐵𝑑 ) 𝐵𝑑 𝑇 . 𝑃. 𝐴 (21)

Et la matrice de Ricatti discrete s’écrit :

𝑃 = 𝑄 + 𝐴𝑇𝑑 . (𝑃 − 𝑃. 𝐵𝑑 (𝑅 + 𝐵𝑑𝑇 . 𝑃. 𝐵𝑑 )−1 . 𝐵𝑑𝑇 𝑃 )𝐴𝑑 (22)

Remarque :

Une instruction dlqr est disponible dans le logiciel Matlab pour la synthese
du controleur :

[K,S,e]=dlqr(Ad,Bd,Q,R).
-Suivi de Consigne :
On supoose que la consigne r(t) est connue à l’avance , et on cherche la
commande optimale u(t) minimisant le critère :
1
𝐽= ∑𝑁 𝑇 𝑇
𝑘=1(𝑥(𝑘) − 𝑟(𝑘)) (𝑘). 𝑄. (𝑥(𝑘) − 𝑟(𝑘)) + 𝑢 (𝑘). 𝑅𝑄. 𝑢(𝑘) (22)
2

du système linéaire discret :


𝑥(𝑘 + 1) = 𝐴𝑑 . 𝑥(𝑘) + 𝐵𝑑 . 𝑢(𝑘) (23)

Pour l’annulation de l’erreur de poursuite, on ajoute l’intégrale de


l’erreur :
𝑉(𝑘 + 1) = ∑𝑘+1 𝑘=1(𝑟(𝑘) − 𝑥(𝑘)) = 𝑉(𝑘) + 𝑟(𝑘 + 1) − 𝑥(𝑘 + 1) (24)

Formons alors le système augmenté :

𝑥(𝑘 + 1) 𝐴𝑑 0(𝑛 × 𝑛) 𝑥(𝑘) 𝐵


[ ]=[ ][ ] + [ 𝑑 ] 𝑢(𝑘) +
𝑉(𝑘 + 1) −𝐴𝑑 𝐼(𝑛 × 𝑛) 𝑉(𝑘) −𝐵𝑑
0
[ ] . 𝑟(𝑘 + 1) (25)
1

On distingue alors le vecteur d’état et la matrice augmentés :


𝑥(𝑘) 𝐴𝑑 0(𝑛 × 𝑛) 𝐵
𝜑(𝑘) = [ ], 𝐴𝑎𝑢𝑔= [ ] , 𝐵𝑎𝑢𝑔= [ 𝑑 ]
𝑉(𝑘) −𝐴𝑑 𝐼(𝑛 × 𝑛) −𝐵𝑑
0
𝜑(𝑘 + 1) = 𝐴𝑎𝑢𝑔 . 𝜑(𝑘) + 𝐵𝑎𝑢𝑔 . 𝑢(𝑘) + [ ] . 𝑟(𝑘 + 1) (26)
1
Et la séquence de commande u(k) s’écrit :
𝑢(𝑘) = −𝑅−1 . 𝐵𝑎𝑢𝑔 . 𝑃(𝑘). 𝜑(𝑘) (27)
Sous l’environnement, on applique l’instruction ‘dlqr’ au système
augmenté (26) :

[K,S,e]=dlqr(Aaug,Baug,Qaug,R).
Commande Linéaire quadratique Gaussienne (LQG)

Par rapport à la commande LQR, la commande LQG présente l'interet de


s'appliquer à des systèmes dont l'état n'est pas mesuré, developpée au début
de la seconde moitié du 20eme siècle.

Formulation du probleme :

Soit le système dynamique stochastique suivant :

𝑥 . (𝑡) = 𝐴. 𝑥(𝑡) + 𝐵. 𝑢(𝑡) + 𝑣

𝑦(𝑡) = 𝐶. 𝑥(𝑡) + 𝑤

Où le bruit du système v et de mesure w sont des bruits blancs centrés de


Variance 𝐸{𝑣𝑣 𝑇 } = 𝑉 ≥ 0 𝑒𝑡 𝐸{𝑤𝑤 𝑇 } = 𝑊 > 0

Le probleme LQG consiste à la minimisation du critere :

1 𝑡𝑓 𝑇
𝐽 = lim 𝐸 { ∫ (𝑥 𝑄𝑥 + 𝑢𝑇 𝑅𝑢) 𝑑𝑡}
𝑡𝑓 𝑡0

Avec 𝑄 ≥ 0 𝑒𝑡 𝑅 > 0

Théorème de Sépaeration :[1]

Ce théorème énonce que la solution du problème est composée de deux parties :


- un observateur de Kalman permettant de donner l'estimee x ^ (t) de x(t) .

- la commande par retour d'état u = −K. x ^ (t) à appliquer à x ^ (t). K est


calculé en considerant le probleme LQ correspondant (en enlevant v et
w de l'_equation d'état et E dans le critère).

Structure de la commande LQG :

L’estimation du vecteur d’état x ^ (t) est donnée par l’équation d’état suivante :

𝑥 ^. (𝑡) = 𝐴. x ^ (t) + 𝐵. 𝑢(𝑡) + 𝐿(𝑦 − 𝐶. x ^ (t))


Avec L : le gain de Kalman, donné par l’équation suivante :
𝐿 = 𝑆. 𝐶 𝑇 . 𝑊 −1
S est la solution de l’équation algébrique de Ricatti :
𝑆. 𝐴 + 𝐴𝑇 . 𝑆 − 𝑆. 𝐵. 𝑊 −1 . 𝐵𝑇 . 𝑆 + 𝑉 = 0
On peut alors réecrire les équations suivantes :

𝑥 ^. (𝑡) = (𝐴 − 𝐵. 𝐾 − 𝐿. 𝐶)x ^ (t) + 𝐿𝑦

𝑢 = −𝐾. x ^ (t)
Remarques :
Le vecteur C doit etre choisi de telle sorte que le système soit entierement
observable.
- Les poles en boucle fermé du système avec observateurs (poles de
(𝐴 − 𝐵. 𝐾 − 𝐿. 𝐶)) doivent etre plus rapides que le système sans

observation (poles de ((𝐴 − 𝐵. 𝐾)).


- L’instruction sous Matalb pour synthetiser le gain de l’observateur L est la
suivante :
[L,Sigma,Poles_Kalman] = lqr(A',C',V,W).
Exemple : Soit un moteur à courant continu à excitation indépendante, qui présente
les caractériqtiques suivantes :

Puissance nominale 3500 W


- Vitesse nominale 1750 rpm
- Nominale 240V
- Courant nominal d'induit = 16 A
- Résistance de l'induit Ra= 2,581 Ohms
- Inductance de l'induit La= 0.028 henry
- Résistance de l'inducteur 281,3 Ohms
- Inductance mutuelle M= 0.9483 henry
- Inertie du rotor J=0,02215 kg.m²
- Coefficient de frottement 0.002953 Nm .s
- Coefficient du coupkle Ka= 1.0113
La mise sous équations d’état permet de synthétiser :
−𝑅𝑎 −𝑅𝑎
0 1
𝐿𝑎 𝐿𝑎 0
𝑇
𝑥 = [𝐼𝑎 𝜃 𝜔] , 𝐴 = 0 0 1 𝐿
, 𝐵 = [ ] , 𝐶 = [ 1]
𝑎
𝑘𝑎 −𝑓 0 0
0 0
[ 𝐽 𝐽 ]
Les Matrices de Pondération sont ainsi
0.1 0 0 0 0 0
𝑄 = [ 0 350 0 ] , 𝑅 = 0.1, 𝑉 = [ 0 0 0 ] , 𝑊 = 0.02
0 0 0.1 0 0 203822.7

Le calcul sous matlab avec la commande


[K,P,Poles_BF] = lqr(A,B,Q,r);
Donne le vecteur gain de retour:
K=[0.9727 59.1608 2.3340].
Les valeurs propres en boucle fermée:
pole_des =
-66.7030
-30.1746 + 23.1457i
-30.1746 - 23.1457
De meme, l’instruction suivante permet de synthetiser le gain de Kalman :
[L,Sigma,Poles_Kalman] = lqr(A',C',V,W);
L =[-2864.4 152.8115 11675.7]'
Et les valeurs propres du filtre de Kalman:
Poles_Kalman =
-87.4998
-78.8118 + 85.0936i
-78.8118 - 85.0936i

Pr Achour Betka

Université de BIiskra

Vous aimerez peut-être aussi