Vous êtes sur la page 1sur 13

Faculté de Technologie

Master 2 Automatique et Informatique


Industrielle

COMPTE RENDU TP N°4 COMMANDE OPTIMALE


Commande Optimale

Préparé par :

A S S E F Yanis
L A S L A Rayane

Année Universitaire : 2022/2023

Groupe : AII.1

Chargé du module : Mr. LEHOUCHE


Introduction

La Commande Optimale
On parle de commande linéaire quadratique : LQ ou LQR pour linear
Quadratic regulator, le système est linéaire et la commande est quadratique, la
commande optimale est un retour d’état sous la forme : 𝑢(𝑡) = −𝑘 𝑥(𝑡)

Le problème de la commande optimale est de trouver la commande 𝑢(𝑡) et la


trajectoire optimale 𝑥(𝑡) de sorte à minimiser la mesure de performance de forme
quadratique.

𝐽 = ∫ 𝑥 𝑇 (𝑡). 𝑄. 𝑥(𝑡) + 𝑢𝑇 (𝑡). 𝑅. 𝑢(𝑡)
𝑡0

Avec : 𝑥 𝑇 (𝑡). 𝑄. 𝑥(𝑡) > 0 𝑅>0


Pour le calcul d’un régulateur LQR minimisant un critère quadratique sur la
sortie 𝑦(𝑡) on utilisera alors :

Pour une commande à Horizon infini :



𝐽 = ∫ [𝑦 𝑇 (𝑡). 𝑄𝑦 . 𝑦(𝑡) + 𝑢𝑇 (𝑡). 𝑅. 𝑢(𝑡)] 𝑑𝑡
𝑡0

Dans le cas où notre 𝑢 est un scalaire on écrit directement



𝐽 = ∫ [𝑦 𝑇 (𝑡). 𝑄𝑦 . 𝑦(𝑡) + 𝑅. 𝑢2 (𝑡)] 𝑑𝑡
𝑡0

L’équation Algébrique de Ricatti est donnée par :

𝑃𝐴 + 𝐴𝑇 𝑃 − 𝑃𝐵𝑅−1 𝐵𝑇 𝑃 + 𝑄 = 0
Les matrices Q et R dites matrices de Pondération étant symétriques.

1
Introduction
Commande Optimale

Probleme n°1 :
Nous avons un moteur à courant continu représenté par la figure :

𝑈 𝐾𝑚 𝑋2 1 𝑋1 = 𝑌
1 + 𝜏𝑚 𝑝 𝑝
Avec : 𝐾𝑚 = 10, 𝜏𝑚 = 2.0𝑠
𝜉 = 0.707, et un temps de réponse à l’échelon de 300ms.

Nous allons étudier le choix des gains du régulateur par retour d’état en
appliquant la théorie du LQR.
Avec :

𝑄𝑦 = 1 , 𝐽 = ∫𝑡 [𝑦 𝑇 (𝑡). 𝑄𝑦 . 𝑦(𝑡) + . 𝑅. 𝑢2 (𝑡)] 𝑑𝑡
0

Par le biais de notre schéma nous avons :


1
𝑋1 = 𝑋2 𝑋2 (1 + 𝜏𝑚 𝑝) = 𝐾𝑚 𝑈
𝑝
𝑋1̇ = 𝑋2 1 𝐾𝑚
𝑋2 + 𝑋2 𝜏𝑚 𝑝 = 𝐾𝑚 𝑈 𝑋2̇ = − 𝑋2 + 𝑈
𝐾𝑚 𝜏𝑚 𝜏𝑚
𝑋2 = 𝑈 𝑋2 𝜏𝑚 𝑝 = −𝑋2 + 𝐾𝑚 𝑈
1 + 𝜏𝑚 𝑝

0 1 0
𝑋1̇ = 𝑋2 1 𝐾
𝑋̇ = [0 − ] 𝑥 + [ 𝑚 ] 𝑢
1 𝐾𝑚 𝜏𝑚 𝜏𝑚
𝑋2̇ = − 𝑋2 + 𝑈
𝜏𝑚 𝜏𝑚 𝑦 = [1 0 ]
0 1 0
𝐴 = [0 − 1 ] 𝐵 = [𝐾𝑚 ]
𝜏𝑚 𝜏𝑚
𝐶 = [1 0 ]

2
Commande Optimale
0 1 0
𝐴 = [0 − ]
1 𝐵=[ ] 𝐶 = [1 0 ]
2 5

Système en Boucle
ouverte
Maintenant que nous avons nos Matrices d’état il nous reste plus qu’à utiliser la
méthode LQR :
𝑈 ∗ = −𝑅−1 𝐵𝑇 𝑃𝑥 ∗

𝐽 = ∫ [𝑦 𝑇 (𝑡). 𝑄𝑦 . 𝑦(𝑡) + . 𝑅. 𝑢2 (𝑡)] 𝑑𝑡
𝑡0

𝐽 = ∫ [(𝐶𝑥)𝑇 . 𝑄𝑦 . 𝐶𝑥 + . 𝑅. 𝑢2 (𝑡)] 𝑑𝑡
𝑡0

𝐽 = ∫ [𝑥 𝑇 𝐶 𝑇 . 𝑄𝑦 . 𝐶𝑥 + . 𝑅. 𝑢2 (𝑡)] 𝑑𝑡 1
𝑡0 𝑄 = [ ] . 1. [1 0]
0
𝑄 = 𝐶 𝑇 𝑄𝑦 𝐶
1 0
𝑄=[ ]
𝑃𝐴 + 𝐴𝑇 𝑃 − 𝑃𝐵𝑅−1 𝐵𝑇 𝑃 + 𝑄 = 0 0 0

0 1 0 0 1
𝑃 𝑃2 1] [𝑃1 𝑃2 ] − [𝑃1 𝑃2 ] [0 5] [𝑃1 𝑃2 ] + [1 0] = 0
[ 1 ][ 1] + [
𝑃2 𝑃3 0 − 1 − 𝑃2 𝑃3 𝑅 𝑃2 𝑃3 𝑃2 𝑃3 0 0
2 2
1
0 𝑃1 − 𝑃2 0 0 1
[ 2 ]+[ 1 1 ] − [5𝑃2 ] [5𝑃2 5𝑃3 ] + [1 0] = 0
1 𝑃1 − 𝑃2 𝑃2 − 𝑃3 𝑅 5𝑃3 0 0
0 𝑃2 − 𝑃3 2 2
2

3
Commande Optimale
25 2 𝑅 √𝑅
− 𝑃2 + 1 = 0 => 𝑃2 2 = => 𝑃2 = … (1)
𝑅 25 5
1 25 1 25
𝑃1 − 𝑃2 − 𝑃2 𝑃3 = 0 => 𝑃1 = 𝑃2 + 𝑃2 𝑃3 … (2)
2 𝑅 2 𝑅
1 25
2 (𝑃2 − 𝑃3 ) − 𝑃3 2 = 0
2 𝑅
Nous allons calculer Δ pour avoir les valeurs de P3 :
𝑅 2𝑅√𝑅 𝑅 𝑅
Δ= + 45 ( )= ( + 8√𝑅)
25 125 125 5
𝑅
(− ) ± √Δ 1 𝑅
𝑃3 = 25 => 𝑃3 = ( + √Δ) … (3)
2 2 25

Maintenant en utilisant les données de notre exercice on aura pour notre système
en Boucle fermée :

En appliquant la méthode par retour d’état nous aurons :

4
Commande Optimale
𝐾𝑚
𝐺=
1 + 𝜏𝑚 𝑝
𝐾𝑚
𝐾
1 + 𝜏𝑚 𝑝 1 1 𝐾𝑚 𝐾1
𝐹𝑇𝐵𝑂 = . =
𝐾𝑚 𝐾2 2
+ 1 𝑝 (𝐾𝑚 𝐾2 + 1)𝑝 + 𝜏𝑚 𝑝
(1 + 𝜏𝑚 𝑝)
𝐾𝑚 𝐾1
(𝐾𝑚 𝐾2 + 1)𝑝 + 𝜏𝑚 𝑝2 𝐾𝑚 𝐾1
𝐹𝑇𝐵𝐹 = =
𝐾𝑚 𝐾1 (𝐾𝑚 𝐾2 + 1)𝑝 + 𝜏𝑚 𝑝2 + 𝐾𝑚 𝐾1
1+
(𝐾𝑚 𝐾2 + 1)𝑝 + 𝜏𝑚 𝑝2
𝐾𝑚 𝐾1
𝜏𝑚 𝐾. 𝑤𝑛 2
𝐹𝑇𝐵𝐹 = = 2
2 (𝐾𝑚 𝐾2 + 1) 𝐾𝑚 𝐾1 𝑝 + 2𝜉𝑤𝑛 𝑝 + 𝑤𝑛 2
𝑝 + 𝑝+
𝜏𝑚 𝜏𝑚
3
𝑤𝑛 = = 14.14427157
𝜉. 𝑇5%
Par superposition nous avons :
𝐾𝑚 𝐾1 2
𝑤𝑛 2 𝜏𝑚
= 𝑤𝑛 => 𝐾1 = = 40.01208 , 𝐾 = 1
𝜏𝑚 𝐾𝑚
(𝐾𝑚 𝐾2 + 1) 2𝜉𝑤𝑛 𝜏𝑚 − 1
= 2𝜉𝑤𝑛 => 2𝜉𝑤𝑛 𝜏𝑚 = (𝐾𝑚 𝐾2 + 1) => 𝐾2 =
𝜏𝑚 𝐾𝑚
2𝜉𝑤𝑛 𝜏𝑚 − 1
𝐾2 = = 3.9
𝐾𝑚
Remarque : On peut trouver directement le 𝐾1 & 𝐾2 A=[0 1;0 -1/2];
B=[0 5]';
sur MATLAB en utilisant la fonction LQR (voir C=[1 0];
après cet exemple) ou on lui donnant directement les D=0;
pole_retour=[-10+10*i;-10-
pôles désirés en Boucle fermée avec la fonction place 10*i] %c’est les poles en BF
L=place(A,B,pole_retour)

On remarque que ça correspond aussi aux valeurs


calcule précédemment.

5
Commande Optimale
Il nous reste maintenant plus qu’à calculer la valeur de 𝑅 & de la Matrice de
pondération P à partir des équations étudier précédemment :
Nous savons que : 𝐾 = 𝑅−1 𝐵𝑇 𝑃
𝑃 𝑃2
𝐾 = 𝑅−1 [0 5] [ 1 ]
𝑃2 𝑃3
𝐾 = 𝑅−1 [5𝑃2 5𝑃3 ]
[𝐾1 𝐾2 ] = 𝑅−1 [5𝑃2 5𝑃3 ]
𝑅. 𝐾1 = 5. 𝑃2 … (4)
𝑅. 𝐾2 = 5. 𝑃3 … (5)
𝑃2 𝑃3
𝑅 = 5. ; 𝑅 = 5.
𝐾1 𝐾2
A Partir de l’équation (1) et (4) :
𝑃 𝑃2
𝑅 √5. 2 5.
√ 𝐾1 𝐾1
𝑃2 = = => (𝑃2 )2 =
5 5 25
𝑃2 𝑃2
25(𝑃2 )2 = 5. => (𝑃2 )2 − = 0 => (𝑃2 )2 − 0.005𝑃2 = 0
𝐾1 5𝐾1
𝑃2 = 0 & 𝑃2 = 0.005
On peut alors facilement déduire 𝑅 qui est :

√𝑅
𝑃2 = => 𝑅 = (5𝑃2 )2 => 𝑅 = 0.000625
5
A Partir de l’équation (3) :

1 𝑅 𝑅 𝑅
𝑃3 = ( +√ ( + 8√𝑅)) => 𝑃3 = 0.0005126
2 25 125 5

6
Commande Optimale
Et Finalement nous avons à partir de l’équation (2) :
1 25
𝑃1 = 𝑃2 + 𝑃2 𝑃3 => 𝑃1 = 0.10502
2 𝑅

Nous avons toutes les valeurs :

0.10502 0.005
𝑃1 = 0.10502 , 𝑃2 = 0.005 , 𝑃3 = 0.0005126 , => 𝑃 = [ ]
0.005 0.0005126
1 0
Pour : 𝑅 = 0.00625 & 𝑄 = [ ]
0 0
On peut vérifier ses résultats sur MATLAB :

PROGRAMME SOUS MATLAB RESULTATS


%%%%%%%%%%%%%%%%%%%%%%%%% Q = P = 𝑃1 𝑃2
%%% Commande Optimale %%% [ ]
𝑃2 𝑃3
%%%%%%%%%%%%%%%%%%%%%%%%%
tho=2; 1 0 0.1000 0.0050
Km=10;
A=[0 1;0 -1/2]; 0 0 0.0050 0.0005
B=[0 5]';
C=[1 0]; R = K =
D=0;
Qy=1;
Q=C'*Qy*C 6.2500e-04 40.0000 3.9012
R=0.000625
[K, P, E]=lqr(A, B, Q, R) E =
K1=K(1); %%%%% Pour le simulink %%%%%
K2=K(2); %%%%% Pour le simulink %%%%% Gain
Pôles
%%%%%%%Suite en bas%%%%%% -10.0044 + 9.9969i

-10.0044 - 9.9969i

Alors nous aurons pour notre 𝑅 = 0.000625 la fonction LQR nous donne :
Les pôles sont de : 𝑃1 = 0.1000 , 𝑃2 = 0.0050 , 𝑃3 = 0.0050
Qui sont à peu près égales à ceux calculer précédemment.

7
Commande Optimale

Et nous avons aussi le gain K calculer par la fonction LQR est égale à celle
calculer via la méthode de retour d’état :
𝐾 = [40 3.9012]
On peut vérifier l’efficacité de ce dernier en calculant la réponse à un échelon :

PROGRAMME SOUS MATLAB RESULTATS


%%%%% Suite programme 1 %%%% Ac =
t=[0:0.001:2] ;
sys1=ss(A, B, C, D);
step(sys1,t)
Ac=A-B*K 0 1.0000
%%%% un par un %%%% -200.0000 -20.0062
sys2=ss(Ac, B*K1, C, D);
step(sys2,t)

Réponse au système sans gain du Réponse au système en boucle fermée


régulateur (Boucle ouverte) avec 𝑅 = 0.000625

8
Commande Optimale

On remarque que la courbe du système avec retour d’état suit parfaitement le


graphe désirée (celui d’un échelon unitaire dans ce cas si).

On peut ainsi voir que les performances exigées pour notre système que l’on a
simuler en rouge pour 1 ± 0.05 sont vérifiées e :
𝑇05% = 300𝑚𝑠

9
Commande Optimale

On peut aussi le représenter via Simulink :

Réponse au système en boucle fermée vu sur Simulink

Pour les pôles en boucle fermée nous avons notre fonction de transfert :
𝐾. 𝑤𝑛 2 200
𝐹𝑇𝐵𝐹 = 2 =
𝑝 + 2𝜉𝑤𝑛 𝑝 + 𝑤𝑛 2 𝑝2 + 20𝑝 + 200
𝑃1 = −10 + 10𝑖 , 𝑃2 = −10 − 10𝑖

10
Commande Optimale

On va prendre notre système et lui calculer sa réponse indicielle pour des valeurs
de R différente à savoir pour : 𝑅 = 0.1 et 𝑅 = 1

Voici alors les 2 graphes résultants :

RÉPONSE DU SYSTÈME EN BOUCLE FERMÉE POUR R=0.1 RÉPONSE DU SYSTÈME EN BOUCLE FERMÉE POUR R=1

ANALYSE

On remarque aussi que plus le r est petit plus le système atteindra sa valeur
finale plus rapidement mais de manière plus brusque.
Du coup il faut savoir choisir le r de manière à ce qu’elle soit la plus optimale
possible pour notre fonctionnalité (dans notre cas nous avons 𝑇05% = 300𝑚𝑠).

FIN ANALYSE

11
Conclusion

CONCLUSION
Durant ce TP nous avons étudier le
choix des gains du régulateur en ayant utilisé la
méthode (LQR) et de ce fait nous en savons un
peu plus sur comment fonctionne la méthode
LQR par rapport à la méthode du gain par retour
d’état. Nous avons ainsi pu vérifier l’influence et
le choix du R sur notre système.

12

Vous aimerez peut-être aussi