ISAE-N6K 3eme année
Commande optimale des systèmes dynamiques
BE4
Le régulateur linéaire quadratique
Exercice 1 :
On considère le circuit électrique de la figure 1 où x est le courant dans
l’inductance L et u est la tension appliquée. A t = 0, le courant vaut x0 et
le but est de déterminer u minimisant le courant tout en ne dépensant pas
trop d’énergie dans la conductance R sur un horizon de T secondes. De plus,
une valeur finale non nulle du courant doit être pénalisée.
+
x
u R L
1- Modéliser le problème comme un problème de commande optimale Linéaire
Quadratique (LQ).
2- Calculer le gain optimal de ce problème LQ. On utilisera deux méthodes
différentes.
3- Montrer que la commande optimale admet un régime permanent station-
naire quand T → ∞ et il n’y a pas de coût terminal.
Exercice 2 :
Soit le modèle du double intégrateur :
0 1 0
ẋ(t) = x(t) + u(t)
0 0 1
On définit le critère de performance :
Z T
J(T ) = (x′ x + u2 )dt + x′ (T )x(T )
0
1- Ecrire la commande optimale minimisant J(T ) pour le double intégrateur.
2- Calculer la commande optimale pour J(∞).
1
Exercice 3 :
Soit le modèle linéarisé d’un hélicoptère CH-47 en déplacement horizontal :
ẋ = Ax + Bu
y = Cx
avec :
−0.02 0.005 2.4 −32 0.14 −0.12
−0.14 0.44 −1.3 −30
B = 0.36 −8.6
A=
0 0.018 −1.6 1.2 0.35 0.009
0 0 1 0 0 0
0 1 0 0
C=
0 0 0 57.3
1- On suppose que le vecteur d’état complet est disponible à la mesure,
calculer le régulateur LQ minimisant le critère :
Z +∞
JLQ = y ′ y + u′ u dt
0
2- Calculer la dynamique en boucle fermée et tracer la réponse fréquentielle
du gain de boucle obtenu.
2
ISAE-N6K 3eme année
Commande optimale des systèmes dynamiques
BE4
Le régulateur linéaire quadratique
Exercice 1 :
1- Le problème de commande optimale peut se mettre sous la forme du
problème Linéaire Quadratique (LQ) :
T
1 u2 1
Z
min (x2 + )dt + σx2 (T )
u 2 0 R 2
u(t)
sous ẋ(t) = x(0) = x0
L
2- Méthode directe :
Le problème LQ est un problème à horizon fini dont la commande optimale
Rp(t) ∗
est donnée par u∗ (t) = −K(t)x∗ (t) = − x (t) où p(t) est la solution
L
positive de l’équation de Riccati différentielle :
Rp2
−ṗ(t) = − + 1 p(T ) = σ
L2
√ 1
On pose τ = L/ R et le changement de variables p(t) = p1 + où p1
z(t)
est une solution particulière de l’équation différentielle complète. Ici, on
choisit p1 = τ . On obtient ainsi l’équation différentielle :
1 z(t)
ż(t) = − − 2
τ2 τ
L’intégration de cette équation conduit à écrire :
σ+τ (T −t) 1
z(t) = e2 τ −
2τ (σ − τ ) 2τ
d’où : 2(t−T )
σ + τ − (τ − σ)e τ
p(t) = τ 2(t−T )
σ + τ + (τ − σ)e τ
On en déduit le gain du problème LQ :
√ σ + τ − (τ − σ)e 2(t−T
τ
)
K(t) = − R 2(t−T )
σ + τ + (τ − σ)e τ
3
Méthode par la matrice Hamiltonienne :
On définit la matrice Hamiltonnienne par :
0 −1/τ 2
H=
−1 0
Les valeurs propres de H sont 1/τ et −1/τ avec la matrice des vecteurs
propres donnée par :
1/τ −1/τ
U=
1 1
τ −σ
On obtient alors G = pour enfin obtenir :
τ +σ
2(t−T )
σ + τ − (τ − σ)e τ
p(t) = τ 2(t−T )
σ + τ + (τ − σ)e τ
3- Quand l’horizon d’optimisation tend vers l’infini T → ∞, on obtient
facilement que : √
p(t) = p = τ = L/ R
Ce résultat est à comparer avec la solution de l’équation de Riccati algébrique :
p2
+1=0
−
τ2
qui conduit au même résultat puisque le système est commandable. Fina-
lement, le gain de Kalman est donné par :
√
K=− R
Exercice 2 :
Soit le modèle du double intégrateur :
0 1 0
ẋ(t) = x(t) + u(t)
0 0 1
On définit le critère de performance :
Z T
J(T ) = (x′ x + u2 )dt + x′ (T )x(T )
0
1- Le régulateur LQ en horizon fini est donné par :
p1 (t) p2 (t)
u (t) = Kx (t) = −B P (t)x (t) = − 0 1
∗ ∗ ′ ∗
x∗ (t)
p2 (t) p3 (t)
= − p2 p3 x∗ (t)
où P (t) 0 est solution de l’équation de Riccati différentielle :
−Ṗ (t) = A′ P (t) + P (t)A − P (t)BB ′ P (t) + 1
L’équation de Riccati différentielle conduit au système d’équations différentielles
du premier ordre non linéaires :
−ṗ1 = −p22 + 1 p1 (T ) = 1
−ṗ2 = −p3 p2 + p1 p2 (T ) = 0
2
−ṗ3 = −p3 + 2p2 + 1 p3 (T ) = 1
4
2- Pour le nouveau critère de performance en horizon infini et sans terme de
pénalisation terminal, on doit résoudre le système algébrique d’équations de
Riccati puisque (A, B) est commandable (régime permanent) et choisir la
solution définie positive.
0 = −p22 + 1
0 = −p3 p2 + p1
0 = −p23 + 2p2 + 1
On obtient alors : √
p1 = 3
p2 = √
1
p3 = 3
et le gain de Kalman devient alors :
√
K = −1 − 3
Exercice 3 :
1- Le gain optimal résolvant le problème LQ est donné par :
K = −R−1 B ′ P
où P est la solution définie positive de l’équation de Riccati :
A′ P + P A − P BR−1 B ′ P + C ′ C = 0
>> A=[-0.02 0.005 2.4 -32;-0.14 0.44 -1.3 -30;0 0.018 -1.6 1.2;0 0 1 0];
>> B=[0.14 -0.12;0.36 -8.6;0.35 0.009;0 0];
>> C=[0 1 0 0;0 0 0 57.3];D=zeros(2,2);
>> Q=C’*C;R=eye(2);
>> [Klq,Plq,Ebflq]=lqr(A,B,C’*C,eye(2))
Klq =
-0.0033 0.0472 14.6421 60.8894
0.0171 -1.0515 0.2927 3.2469
Plq =
.70974e-2, -.20998e-2, -.10214e-1, -.78779e-1
-.20998e-2, .12231, .98776e-2, -.19414
-.10214e-1, .98776e-2, 41.828, 174.20
-.78779e-1, -.19414, 174.20, 1120.9
Ebflq =
-8.6168
5
-3.3643 + 2.9742i
-3.3643 - 2.9742i
-0.0196
2- Calcul de la dynamique en boucle fermée et tracé :
>> Abolq=A;
>> Bbolq=B;
>> Cbolq=-Klq;
>> Dbolq=zeros(2,2);
>> Lbolq=ss(Abolq,Bbolq,Cbolq,Dbolq);
>> figure(1)
>> sigma(Lbolq);
>> grid
Singular Values
30
Lbolq
20
10
Singular Values (dB)
−10
−20
−30
−40
−50
−4 −3 −2 −1 0 1 2 3
10 10 10 10 10 10 10 10
Frequency (rad/sec)