Vous êtes sur la page 1sur 72

Optimisation quadratique en automatique

Version provisoire

Gérard Blanchet

29 Novembre 2007
2
Table des matières

Notations 5

Contexte 7

1 Notion de système dynamique 9


1.1 Notion de système dynamique linéaire invariant . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Bouclage du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 Retour d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Définition de la dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Problèmes posés par la commande par retour d’état . . . . . . . . . . . . . . . . . 13
1.3 L’accès aux variables d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Observateur asymptotique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Observateur de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Critère quadratique, introduction 17


2.1 Critère quadratique sur l’état seul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Critère quadratique sur l’état et la commande . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Systèmes linéaires, quelques problèmes 21


3.1 Temps minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Commande en boucle ouverte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Commande en boucle fermée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Calcul variationnel et C. Opt. 23


4.1 Extrema d’une fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Problème de base et équations d’Euler-Lagrange . . . . . . . . . . . . . . . . . . . . . . . 24
4.3 Extrema sous conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.1 Extrema d’une fonction sous conditions . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.2 Extrema d’une fonctionnelle sous conditions . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Variations et commande optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.1 Le problème de Bolza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4.2 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4.3 Approche utilisant l’hamiltonien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5 Commande LQR 35
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Problème de régulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.1 Construction de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.2 Cas invariant, horizon infini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2.3 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Problème de poursuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.1 Construction de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 Poursuite à horizon infini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.3 Poursuite à horizon fini et état final fixé . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 Cas invariant et horizon infini, performances . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4.1 Degré de stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3
4

5.4.2 Interprétation fréquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6 Principe de Pontryagin 45
6.1 Principe de Pontryagin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.2.1 Principe d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.2.2 Commande optimale et programmation dynamique . . . . . . . . . . . . . . . . . . 47
6.2.3 Cas du temps discret invariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2.4 Cas du temps continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Recherche de la commande en boucle fermée . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.4 Application à la commande LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7 Commande LQG 51
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8 Remarques sur les équations de Riccati 53


8.1 Quelques systèmes d’équations matricielles . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.2 Lien avec le contrôle optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.2.1 Contrôle optimal, Kalman déterministe . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3 Résolution de l’ARE générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3.1 Equation de Sylvester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.3.2 ARE générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

9 Indications et corrigés 59

Bibliographie 68

Index 71
Notations

N Entiers naturels. L Espace des fonctions admettant une


transformée de Laplace.
R Réels. L1 Espace des fonctions de module sommable.
C Complexes. L2 Espace des fonctions de carré sommable.
Z Entiers relatifs.

− F fréquence ;

− Fe fréquence d’échantillonnage ;

− f = F/Fe fréquence normalisée ;

− T = 1/Fe période d’échantillonnage.

Signaux temps discret

− Impulsion unité {δ(n)} : δ(0) = 1 et δ(n) = 0 pour n 6= 0 ;

− Echelon unité {u(n)} : u(n) = 0 pour n < 0, u(n) = 1 pour n ≥ 0 ;

− Exponentielle complexe : x(n) = e2πjnf , n ∈ Z ;

− Signal causal : x(n) = 0 pour n < 0 ;

− Signal anticausal : x(n) = 0 pour n ≥ 0.

Transformées

− Transformée de Laplace (TL) :


Z +∞
x(t) ∈ (L) → Xs (s) = x(t)e−st dt
0

− Transformée de Fourier à temps discret (TFTD) :


+∞
X
{x(n)}, n ∈ (Z) → X(f ) = x(n)e−2πjf n
n=−∞

− Transformée en z (TZ) :
+∞
X
{x(n)}, n ∈ (Z) → Xz (z) = x(n)z −n , z ∈ (DC)
n=−∞

5
6

− Transformée en z monolatérale :
+∞
X
{x(n)}, n ∈ (Z) → Xz (z) = x(n)z −n , z ∈ (DC)
n=0

− Transformée en z modifiée (TZM) :


Z C+j∞
1 Xs (u)emT u
{x(n)}, n ∈ (Z) → X(z, m) = z −1 du
2πj C−j∞ 1 − eT u z −1

où 0 < C < Re(s).

Notations

Les matrices seront généralement représentées par des lettres majuscules grasses et les vecteurs
par des lettres soulignées ou des lettres minuscules grasses.
x ou x Vecteur colonne.
A et AT Matrice A et sa transposée.
AH Transposée-conjuguée de A.
Tr(A) Trace de A.
adj(A) Adjoint de A.
det(A) Déterminant de A.
Re(x) Partie réelle de x.
Im(x) Partie imaginaire de x.
arg(x) Argument de x.
x⋆ Conjugué de x.
Res Résidu.

Définitions
" #
∂f /∂x1 ∂f /∂x2
Matrice jacobienne J
∂g/∂x1 ∂g/∂x2
Jacobien de J det(J)  
∂Q/∂x1
 .. 
Gradient de Q ∇(Q) = 
 .


∂Q/∂xn
Contexte

Un système de commande automatique consiste à “faire calculer” les entrées d’un système par un organe
de commande en vue de satisfaire une tâche donnée. On peut le schématiser de la façon suivante :

(b) w(t)

c(t) Organe de u(t) Système à y(t)


commande commander

(a)

Figure 1: Système de commande : (a) indique le cas de la boucle fermée

La mise en œuvre peut être effectuée en boucle ouverte ou fermée, cette dernière situation (schéma
1) s’avérant indispensable dans la très grande majorité des cas, ne serait-ce qu’à cause des perturbations
w(t) qui peuvent affecter le système à commander. On distingue aussi deux types de problèmes : le suivi
de consignes et la régulation. Dans le premier cas le système doit répondre avec précision et rapidité à
toute variation des signaux d’entrée tandis que dans le second les sorties doivent conserver leurs valeurs
en dépit des perturbations qui affectent le système.
Un certain nombre d’éléments sont causes d’écarts entre les consignes et les sorties :

− les perturbations affectant le système ;

− les limites sur les commandes (saturations) ;

− l’utilisation incorrecte et/ou retardée par l’organe de commande des signaux qu’il reçoit.

Lorsque les caractéristiques du système varient, le problème de la commande s’avère délicat et il peut
être utile de prendre en compte les caractéristiques des perturbations dans l’algorithme de commande.

Lorsqu’on veut prendre en compte un critère dans l’algorithme de commande, on parle alors de
commande optimale, un certain nombre d’éléments doivent être pris en compte :

− le critère d’optimalité de type min (Q) ou max (Q) qui peut constituer le but de la commande ou
un ensemble de contraintes sur les commandes et/ou l’état du système ;

− les informations sur les consignes et l’état du système ;

− les caractéristiques du système à commander y(t) = F (u(t), w(t)), des connaissances sur w(t) et
sur les domaines de fonctionnement et de variation des diverses variables et fonctionnelles utilisées ;
− et la part des informations sur le système qui sont prises en compte dans l’organe de commande.

Normalement l’information détenue, en particulier sur l’état du système et les caractéristqiues des
perturbations, est incomplète ou entâchée d’erreurs (dans le cas contraire il n’y aurait pas vraiment
de problème. . . ) et l’optimalité dépend de ce que l’on connaı̂t. Il faut remarquer qu’en dépit du nom
“commande optimale”, ce que l’on cherche est une stratégie optimale (l’algorithme mis en œuvre dans
l’organe de commande) et non une commande optimale satisfaisant un critère donné, par exemple une
commande assurant une réponse en temps minimal.

7
8
Chapitre 1

Notion de système dynamique

D’un point de vue général, on ne considèrera que les systèmes dynamiques (voir polycopié [8]) de
dimension finie gouvernés par un ensemble d’équations de la forme :

ẋ(t) = F(x(t), u(t))
(1.1)
y(t) = H(x(t), u(t))

où x(t)(n × 1) est le vecteur d’état (ensemble de variables d’état), u(t)(m × 1) le vecteur des entrées et
y(t)(r × 1) le vecteur des sorties.
Les systèmes linéaires, ou linéarisés autour d’un point de fonctionnement (théorème de Hartman-
Grobman), peuvent être décrits par un système différentiel vectoriel du premier ordre de la forme :

ẋ(t) = A(t)x(t) + B(t)u(t)
(1.2)
y(t) = C(t)x(t) + D(t)u(t)

où A(t)(n × n) est la matrice d’état du système et B(t), C(t) et B(t) sont de dimensions respectives
(n × m), (r × n), (r × m) (figure 1.1).

Système
D(t)
u(t) (n) + y(t)
B(t) + C(t)
(m) + + (r)
A(t)

Figure 1.1: Représentation d’état d’un système linéaire

Nous allons nous limiter dans ce qui suit au cas des systèmes linéaires invariants, ou aux systèmes
qui peuvent se ramener à ce cas.

1.1 Notion de système dynamique linéaire invariant


Dans le cas des systèmes dynamiques linéaires invariants, les paramètres du système ne dépendent pas
du temps. On a alors :

ẋ(t) = Ax(t) + Bu(t)
(1.3)
y(t) = Cx(t) + Du(t)

Deux notions particulièrement importantes apparaissent dans l’étude de tels systèmes : la


commandabilité et l’observabilité.
Dans le premier cas on se demande s’il est possible de trouver une commande qui amène l’état d’un
point à un autre de l’espace d’état en un temps fini. Dans le second on s’interroge sur la possibilité de

9
10 Chapitre 1 - Notion de système dynamique

connaı̂tre l’état par observation des sorties et des entrées pendant un temps fini. De nombreux critères
d’observabilité et gouvernabilité peuvent être utilisés pour en vérifier l’existence [6, 10].
Un résultat important indique qu’il est toujours possible de trouver une représentation d’état qui
mette le système sous la forme dite forme canonique de Kalman suivante :
       

 xcno (t) A11 A12 A13 A14 xcno (t) B1

        

 d  xco (t) = 0 A 22 0 A 24   cox (t)  + B2  u(t)

       


dt xncno (t) 0 0 A33 A34 xncno (t) 0

xnco (t) 0 0 0  A44 xnco (t) 0
(1.4)

 x cno (t)

    xco (t) 


 y(t) = 0 C2 0 C4 
 xncno (t)




xnco (t)

où on a noté par l’indice “co” ce qui correspond au sous-espace commandable et observable, par l’indice
“nco” ce qui correspond au sous-espace non commandable et observable, etc.

A13
A11 A33
+
+ +
R1
+ Xcno Xncno

Uk A12 A14 A34

Yk
A22 A44 B4
+ +
+ + + Xnco
R2
Xco
B2
A22

Figure 1.2: Forme caconique de Kalman

Dans le cas particulier d’un système à une seule entrée (m = 1) le comportement de celui-ci est décrit
par l’évolution du vecteur d’état à partir d’un état initial x0 de la façon suivante :
Z t
x(t) = eA(t−t0 ) x0 + eA(t−τ ) Bu(τ )dτ (1.5)
t0

où B est un vecteur de dimension (n × 1). On reconnait là la solution causale d’un système différentiel
linéaire comportant un terme d’évolution “autonome” (solution de l’équation sans second membre) à
partir d’un état initial et un terme convolutif d’évolution “forcée” (solution particulière).

1.2 Bouclage du système


Dans le domaine de la commande des systèmes la notion de “bouclage” est essentielle. Tous les efforts se
concentrent en effet sur la façon d’effectuer cette opération. Les avantages que l’on en retire concernent
à la fois la maı̂trise des perturbations qui affectent le système, la qualité du suivi de consigne et/ou de la
régulation, l’ergonomie de la commande. . .
Le simple “retour de sortie” accompagné de la présence d’un compensateur, ou correcteur, dans
une forme connue (le compensateur PID est le plus commun) comme organe de commande du procédé
constitue dans beaucoup de cas une solution satisfaisante (figure 1.3).
Cette solution ne tient cependant pas compte de toutes les “variables” que l’on pourrait utiliser pour
décrire le fonctionnement du système. On peut donc facilement imaginer améliorer le comportement du
système bouclé en prenant en compte toutes ces informations. C’est ce qui est fait dans le bouclage d’état
en ramenant vers l’entrée un vecteur obtenu par pondération des variables d’état.
MDI224 / 2007-2008 / GB 11

Système
D
Compensateur
u(t) (n) + y(t)
B + C
(m) + + (r)
A

Retour "de sortie"

Figure 1.3: Système avec bouclage des sorties

1.2.1 Retour d’état


Si donc on a accès au vecteur d’état, ce qui est loin d’être sûr, le retour d’état consiste à ramener en
entrée un vecteur Kx (figure 1.4).

Système
D
r(t) u(t) (n) + y(t)
+ B + C
(m) − (m) + + (r)
A

(m) (n)
K

Figure 1.4: Système avec bouclage de l’état

Les équations du système bouclé deviennent alors :



ẋ(t) = (A − BK)x(t) + Br(t)
(1.6)
y(t) = (C − DK)x(t) + Dr(t)

Le problème est celui du calcul de la matrice K en vue d’obtenir un comportement donné.

1.2.2 Définition de la dynamique


Considérons en exemple le cas d’un système à une seule entrée, m = 1, et une sortie, r = 1) invariant.
La fonction de transfert G(s) du système (quantité scalaire) obtenu est alors donnée par :

G(s) = (C − dK) (sI − A + BK)−1 B + d


= det(G(s)) = det((C − dK) (sI − A + BK)−1 B + d)
 
sI − A + BK −B
det
C − dK d
=
det(sI − A + BK)
où l’on a utilisé la propriété :
 
A B
det = det(A) × det(D − CA−1 B)
C D

On ajoute à la première colonne “K fois” la deuxième colonne et on obtient :


 
sI − A −B
det
C d
G(s) = (1.7)
det(sI − A + BK)
12 Chapitre 1 - Notion de système dynamique

Les pôles de la fonction de transfert sont donnés par det(sI − A + BK). On peut remarquer que les
zéros n’ont pas été modifiés dans le retour d’état.
Il suffit donc de se donner les pôles de la fonction de transfert en boucle fermée et d’en déduire K
(ici K est un vecteur). Il y a deux méthodes principales pour choisir les pôles : la méthode des pôles
dominants et la méthode des fonctions prototypes.

Remarque : la commande par retour d’état suppose que l’on peut positionner
MDI224 tous les pôles. Or ceci n’est possible que si le système est commandable. Lorsque
ce n’est pas le cas il faut que les “modes non commandables” soient stables (on
dit que le système est stabilisable).

Pôles dominants
On peut définir le comportement du système en faisant référence à celui d’un système du second ordre. On
donne un ou deux pôles dominants (ceux du second ordre) et autant de pôles non dominants (n’intervenant
que de façon secondaire dans la dynamique) que nécessaire.
Lorsqu’on choisit des pôles complexes P et P∗ , on rappelle que l’amortissement est donné par ξ = sin ψ
et la pulsation propre par la longueur OP (figure 1.5).

ωn ψ
O

P*

Figure 1.5: Position des pôles et paramètres du second ordre

Le vecteur de retour d’état K est alors obtenu par identification entre le polynôme choisi précédemment
à partir des pôles et det(sI − A + BK) (expression 1.7).

Fonctions “prototypes”
Les fonctions “prototypes” sont de la forme 1/A(p) où A(p) est un polynôme calculé pour minimiser un
critère de performance donné. Les critères les plus usuels sont :
1. L’énergie du signal d’erreur ou ISE (Integral of the Square of the Error) :
Z T
J= ε2 (t)dt (1.8)
0

2. L’intégrale de la valeur absolue du signal d’erreur ou IAE (Integral of the Absolute magnitude of
the Error) :
Z T
J= |ε(t)|dt (1.9)
0

3. La durée moyenne vis-à-vis du signal d’erreur ou ITAE (Integral of Time multipied by the Absolute
Error) :
Z T
J= t|ε(t)|dt (1.10)
0

Le critère ITAE est la plus souvent choisi pour peu que l’on accepte un dépassement, de faible
valeur toutefois.
MDI224 / 2007-2008 / GB 13

4. La durée quadratique moyenne vis-à-vis du signal d’erreur ou ITSE (Integral of Time multipied by
the Square Error) :
Z T
J= tε2 (t)dt (1.11)
0

On peut rajouter aux fonctions prototypes les polynômes de Bessel qui ne donnent aucun dépassement
dans la réponse indicielle.

Degré Polynôme modèle


1 p + 1√
2 p2 + 2p + 1
3 (p + 0,7081)(p2 + 1,042p + 1,4121) (1.12)
4 (p2 + 0,848p + 1,7749)(p2 + 1,252p + 0,5634)
5 (p + 0,8955)(p2 + 0,7528p + 1,8109)(p2 + 1,1516p + 0,6166)
6 (p2 + 0,6198p + 1,6922)(p2 + 1,161p + 0,9498)(p2 + 1,4692p + 0,6222)

Degré Polynôme de Bessel


1 p + 1√
2 p2 + 3p + 1
3 (p + 0,9420)(p2 + 1,491p + 1,0616) (1.13)
4 (p2 + 1,3146p + 1,1213)(p2 + 1,8094p + 0,892)
5 (p + 0,9264)(p2 + 1,1812p + 1,1718)(p2 + 1,7032p + 0,9212)
6 (p2 + 1,077p + 1,2148)(p2 + 1,5996p + 0,9557)(p2 + 1,8186p + 0,8613)

On effectue ensuite le même type d’identification que pour les pôles dominants.

1.2.3 Problèmes posés par la commande par retour d’état


La méthode consistant à définir le comportement du système en ne définissant que les pôles sans toucher
aux zéros n’est pas toujours satisfaisante. Parmi les problèmes généralement soulevés :

1. l’erreur de position est modifiée ;

2. on ne contrôle en aucune façon la dynamique des signaux autres que la sortie. On peut alors très
bien avoir des phénomènes de saturation sur les variables d’état.

Contrôle des zéros


Le choix des zéros peut être fait en introduisant des termes de pondération bu et bx (n × 1) sur l’entrée
comme illustré sur la figure 1.6 (système invariant à une entrée et une sortie). La matrice de retour d’état
est un vecteur que l’on note maintenant k. De la même façon on note b pour B, cT pour C et d pour D.

Système
d
r(t) u(t) (n) + y(t)
bu + b + cT
− + + (r)
A

+
kT
(n) −
bx

Figure 1.6: Pondération des signaux d’entrée


14 Chapitre 1 - Notion de système dynamique

Le système est décrit par :



ẋ(t) = (A − bk T )x(t) + b(bu + k T bx )r(t)
(1.14)
y(t) = (cT − dk T )x(t) + d(bu + k T bx )r(t)
Si l’on veut par exemple que l’erreur de position soit maintenue à sa valeur originale u0 , cela se traduit
par le fait que la commande du système et l’état à l’équilibre (ẋ = 0) conservent leurs valeurs u0 et x0
avec :

0 = Ax0 + bu0
y0 = cT x0 + du0
Avec y0 = r0 , on détermine bx et bu tels que x0 = bx r0 ⇒ u0 = bu r0 . On obtient :
     
0 = Abx r0 + bbu r0 A b bx 0
⇒ =
r0 = cT bx r0 + dbu r0 cT d bu 1

Remarque : en posant α = bu + k T bx , le numérateur de la nouvelle fonction de transfert est donné


par (voir 1.7) :
   
sI − A −αb sI − A −b
det = α × det
cT αd cT d
Au α près on obtient le même numérateur que le système non bouclé.

1.3 L’accès aux variables d’état


L’accès aux variables d’état n’est pas garanti, soit parce qu’on ne sait pas les atteindre, soit parce que la
mise en œuvre de leur mesure n’est pas économiquement acceptable.

1.3.1 Observateur asymptotique


Si l’on ne peut pas accéder aux variables d’état il faut pouvoir les reconstituer à partir de ce que l’on
connaı̂t du système, c’est-à-dire les entrées et les sorties. L’observateur asymptotique fournit une solution
simple à ce problème pour peu que le système soit observable (figure 1.7).

Système
D
u(t) (n) + y(t)
+ B + C
− + + (r)
A x(t)
+
L

Modèle
D
+ (n) +
B C
+ + (r)
A x(t)

K
(n)

Figure 1.7: Observateur asymptotique

Le principe de l’observateur asymptotique repose sur la connaissance du modèle {A, B, C, D}.


ẋ(t) = Ax(t) + Bu(t)
(1.15)
y(t) = Cx(t) + Du(t)
MDI224 / 2007-2008 / GB 15

˙
x̂(t) = Ax̂(t) + Bu(t) + L(y(t) − Cx̂(t))
= (A − LC)x̂(t) + Bu(t) + Ly(t) (1.16)
On peut remarquer que cet observateur travaille en boucle fermée en faisant intervenir les termes de
sortie (L(y(t) − Cx̂(t))).
En posant ε(t) = x(t) − x̂(t), on arrive à :
ε̇(t) = d(x(t) − x̂(t))/dt
= Ax(t) + Bu(t) − (A − LC)x̂(t) − Bu(t) − Ly(t)
= Ax(t) − (A − LC)x̂(t) − L(Cx(t) + Du(t))
= (A − LC)ε(t) − LDu(t) (1.17)
Le réglage de la vitesse d’observation dépend donc de (A − LC).

MDI224 Remarque : la dynamique de l’observateur est définie par (L) et peut être
réglée indépendamment de celle du système (K).

En général les constantes de temps de l’observateur sont choisies de 2 à 6 fois plus petites que celles
du contrôleur.
La condition sur l’observabilité est imposée par le fait qu’il faille construire un état initial pour le
modèle. Si des modes sont non observables il faut qu’ils soient stables (on dit qu’ils sont détectables). On
est alors sûr que l’effet des conditions initiales devient négligeable “au bout d’un certain temps” (dont
on espère qu’il sera relativement court).

1.3.2 Observateur de Kalman


Le but de l’observateur est de construire l’état à partir des entrées et des sorties. L’observateur
asymptotique fournit une solution qui suppose que le modèle d’état est parfaitement connu et que la
sortie est mesurée sans bruit. D’un point de vue pratique on est rarement dans ce cas de figure.
On va se placer ici dans le cas du temps discret en supposant que le modèle de comportement est
décrit par le système 1.18 :

x(k) = A(k)x(k − 1) + B(k)u(k) + w(k − 1)
(1.18)
y(k) = C(k)x(k) + v(k)
w(k) et v(k) sont des variables aléatoires représentant respectivement un bruit de modèle (incertitude
et variabilité du modèle) et un bruit de mesure [7]. w(k) et v(k)
 sont supposées
 indépendantes
 l’une de
l’autre et gaussiennes centrées. On note Qw = E w(k)wH (k) et Qv = E v(k)v H (k) les matrices de
covariance.
L’algorithme imaginé par Kalman peut être vu comme un algorithme en deux temps :
1. A partir d’une estimation (il s’agit d’une espérance conditionnelle) x̂(k − 1) à l’instant k − 1, on
construit une estimation a priori de l’état à l’instant k, estimation notée traditionnellement x̂− (k).
Celle-ci consiste à dire que le nouvel état est obtenu à partir de l’équation d’évolution 1.18 comme
s’il n’y avait aucune erreur de modèle :
x̂− (k) = A(k − 1)x̂(k − 1) + B(k)u(k − 1) (1.19)
Cette étape est désignée par “étape de propagation” ou de prédiction (Time Update).
2. La deuxième phase consiste à construire l’estimation à l’instant k en corrigeant l’estimation a priori
par un terme faisant intervenir la mesure y(k).

x̂(k) = x̂− (k) + K(k) y(k) − C(k)x̂− (k) (1.20)

Cette étape est désignée par “étape de recalage” ou de filtrage (Measurement Update).
Le terme K(k) de gain est calculé de telle sorte qu’il minimise la quantité :
 
E (x(k) − x̂(k))(x(k) − x̂(k))H
Il existe plusieurs façons de présenter l’algorithme. Prenons quelques exemples :
16 Chapitre 1 - Notion de système dynamique

− En supposant que B = 0 et pour des signaux réels, en combinant les diverses expressions on peut
arriver à [4] [5] :

Valeurs initiales :
 
x̂(0) = E [x(0)] et K(0) = E x(0)xT (0) (1.21)

Répéter :
−1
G(k) = K(k − 1)CT (k) × C(k)K(k − 1)CT (k) + Qv (k) (1.22)

x̂(k) = A(k)x̂(k − 1) + G(k) y(k) − C(k)x̂(k − 1) (1.23)

K(k) = A(k) (I − G(k)C(k))K(k − 1)(I − G(k)C(k))T AT (k)
+ A(k)G(k)Qv (k)GT (k)AT (k) + Qw (k) (1.24)

− Si on suppose le système invariant et les signaux réels on peut arriver à :

Valeurs initiales :
 
x̂(0) = E [x(0)] et K(0) = E x(0)xT (0) (1.25)

Répéter :
−1
G(k) = K(k − 1)CT × CK(k − 1)CT + Qv (k) (1.26)
x̂(k) = Ax̂(k − 1) + (B − G(k)CB) u(k − 1)

+ G(k) y(k) − CAx̂(k − 1) (1.27)
T T T
−1
K(k) = AK(k − 1)A − AK(k − 1)C Qv (k) + C(k)K(k − 1)C (k)
AT (k)CK(k − 1)AT + Qw (k) (1.28)
Chapitre 2

Critère quadratique, introduction

Dans les approches traditionnelles les critères conduisant à la synthèse de compensateurs simples portent
essentiellement sur la dynamique des signaux de sortie et, éventuellement, des signaux de commande du
système. Pour aller plus loin dans le processus de synthèse, on peut introduire de nouvelles contraintes
à travers ce que l’on désigne par marges de robustesse. Cette approche conduit aux synthèses dites H∞
et à des compensateurs d’ordre bien supérieur à ce que l’on obtenait avec les synthèses classiques.
Entre ces deux façons de faire les automaticiens se sont penchés sur des méthodes de minimisation
de critères quadratiques très souvent liées à des considérations d’ordre économique.

On considère un système linéaire invariant donné par sa représentation d’état {A, B, C, D} :

ẋ(t) = Ax(t) + Bu(t) (2.1)


y(t) = Cx(t) + Du(t)

et on cherche à construire un retour d’état qui, tout en assurant ou préservant la stabilité, tente de rendre
minimal un critère de la forme (2.2).
Z tf
J = g(x(t), u(t), t)dt (2.2)
0

On va supposer que le tf = +∞ et que l’équilibre est en 0. En absence d’entrée, l’application du


retour d’état donne :

ẋ(t) = (A − BK)x(t) = ∆x(t)

On a ici un problème de régulation en temps infini ; en absence de consigne on amène l’état en 0 tout
en minimisant le critère.
Nous allons traiter deux exemples appliqués à des systèmes à une entrée et une sortie (SISO : Single
Input Single Output). Dans ce cas précis, B = b, C = cT , K = k T et le retour d’état donne une équation
de la forme :

ẋ(t) = (A − bk T )x(t) = ∆x(t) (2.3)

2.1 Critère quadratique sur l’état seul


Considérons le cas particulier d’un critère “énergétique” sur l’état avec tf = +∞ :
Z +∞
J = xT (t)x(t)dt
0

La recherche d’une solution passe par la recherche d’une matrice P satisfaisant :

d T
(x Px) = −xT x (2.4)
dt

17
18 Chapitre 2 - Critère quadratique, introduction

Si on arrive à trouver une telle matrice, alors le critère s’écrit ;


Z +∞
+∞
J = xT xdt = − xT Px 0 = xT (0)Px(0)
0

En reportant dans 2.4 :


d T
(x Px) = xT (∆T P + P∆)x = −xT x
dt
Pour trouver P on résoud :
MDI224 ∆T P + P∆ = −I (2.5)
T
avec ∆ = A − bk

Exemple 2.1 On considère un système décrit par ses équations d’état :


     
0 1 0 1
ẋ(t) = x(t) + u(t) avec x(0) =
0 0 1 1
correspondant à un double intégrateur.
1. Dans le cas général, le retour d’état est de la forme [k1 k2 ] et :
 
T 0 1
∆ = A − bk =
−k1 −k2

On a à résoudre :
       
0 −k1 p11 p12 p p12 0 1 1 0
+ 11 =−
1 −k2 p21 p22 p21 p22 −k1 −k2 0 1

On obtient :
1 1 1 k1 1 k2
⇒ p12 = p21 = , p22 = + , p11 = + +
2k1 2k2 2k2 k1 2k2 2k2 2k1
Avec l’état initial donné, le critère s’écrit :
k12 + k22 + 2k1 + 2k2 + 1
J = xT (0)Px(0) =
2k1 k2
Le programme dintcrit.m donne la figure 2.1.
%===== DINTCRIT.M
[k1,k2] = meshgrid(.2:.2:4, .2:.2:6);
J=(k1.^2+k2.^2+2*k1+2*k2+1)./k1./k2/2;
mesh(k1,k2,J)
view(55,20)

2. On cherche un retour d’état de la forme [1 k].


Le critère s’écrit alors :
k 2 + 2k + 4
J = xT (0)Px(0) =
2k
La stabilité exige que k > 0. Le critère passe par un minimum (figure 2.3).
3. Avec le même système, un retour d’état [k k] et un état initial [1 0]T , on obtient un critère égal à
p11 :
2k + 1
J =
2k
L’optimum n’est obtenu que pour k → +∞. Comme le retour est de la forme −k(x1 + x2 ), on peut
se trouver en situation de saturation à cause d’une entrée de trop grande amplitude sur le système.
On doit se donner une limite sur la commande |u(t)| pour obtenir la limite sur k.
MDI224 / 2007-2008 / GB 19

20

15

10 [1 k ]

5
[k k]
0
0 k2
1 6
2 4 5
3 2 3
40 1
k1

Figure 2.1: Allure du critère

Système
r(t) + u(t) 1 y(t)
− s2
x(t)

1 k (2)

Figure 2.2: Double intégrateur bouclé

2.2 Critère quadratique sur l’état et la commande


On se pose enore un problème de régulation. Le retour d’état u = −Kx donne pour le critère :
Z +∞ Z +∞ Z +∞
T T T T
J = (x x + λu u)dt = x (I + λK K)xdt = xT Qxdt
0 0 0

11
J
10
9
8
7
6
5
4
3
0 0.5 1 1.5 2 2.5 3 3.5 k

Figure 2.3: Allure du critère pour un retour d’état [1 k]


20 Chapitre 2 - Critère quadratique, introduction

Comme précédemment, on cherche alors une matrice P telle que :


d T
(x (t)Px(t)) = −xT (t)Qx(t)
dt
Si cette matrice existe, on a encore :

J = xT (0)Px(0)

Pour trouver P on résoud :


MDI224 ∆T P + P∆ = −Q (2.6)
avec Q = I + λKT K

Exemple 2.2 On considère le système avec la même matrice  A et deux entrées. On suppose que la
matrice de retour d’état k T (1 × 2) est de la forme k T = k k , k > 0.
 
T 0 1
⇒ A − bk =
−k −k
       
0 −k p11 p12 p p12 0 1 1 + λk 2 k2
+ 11 = −Q = −
1 −k p21 p22 p21 p22 −k −k k2 1 + λk 2

Exercice 2.1 (Intégrateur double, calcul direct du retour d’état)


On reprend le système précédent.

1. Calculer le critère J (λ, k), λ > 0, dans le cas où l’état initial est [1 1]T .

2. Donner l’allure de J (λ, k). Donner la valeur approximative kmin pour le minimum de J pour λ = 1.

3. Etudier la stabilité du système bouclé en fonction de k (on tracera le ”lieu des pôles”).

4. Tracer la trajectoire de phase et x1 (t) pour le cas optimal.


Chapitre 3

Systèmes linéaires, quelques


problèmes

3.1 Temps minimal


3.2 Commande en boucle ouverte
3.3 Commande en boucle fermée

21
22 Chapitre 3 - Systèmes linéaires, quelques problèmes
Chapitre 4

Calcul variationnel et C. Opt.

Le calcul de variations est une des façons d’aborder le problème de la commande optimale. Ce dernier
consiste à rechercher une commande u(t) appliquée au système qui minimise un critère J scalaire donné.
Le système étant supposé posséder une équation de comportement ẋ(t) = f (x(t), u(t), t), on a donc un
problème d’optimisation sous cette contrainte [1][9].

4.1 Extrema d’une fonctionnelle


Soit J(x(t)) une fonctionnelle de x(t) (supposé scalaire pour simplifier les expressions). La variation de
J due à une variation δx (t) de x(t) peut s’écrire :

∆J(x(t), δx (t)) = J(x(t) + δx (t)) − J(x(t))


∂J 1 ∂2J 2
= δx (t) + δ (t) + · · ·
∂x 2 ∂x2 x
= δJ + δ 2 J + · · ·

où δJ et δ 2 J sont dites première et seconde variations de J :

∂J(x) 1 ∂ 2 J(x) 2
δJ(x(t), δx (t)) = δx (t) et δ 2 J(x(t), δx (t)) = δ (t) (4.1)
∂x 2 ∂x2 x
On dira que la fonctionnelle J possède un extrémum relatif pour la fonction x∗ (t) si, pour toute fonction
x “assez proche” de x∗ , l’incrément de J conserve le même signe. Si ∆J = J(x(t)) − J(x(t)∗ ) ≥ 0 alors
on a un minimum relatif. Si ∆J = J(x(t)) − J(x(t)∗ ) ≤ 0 alors on a un maximum relatif.

Théorème 4.1
Une condition nécessaire pour que x∗ (t) satisfasse l’extrémalité de la fonctionnelle J est
δJ(x∗ (t), (δx)(t)) = 0 pour tout δx (t) admissible. Une condition suffisante pour avoir un minimum
ou un maximum est donnée par le signe de δ 2 J. Si δ 2 J < 0 on a un maximum, si δ 2 J > 0 on a un
minimum.

Dans le cas vectoriel :

∆J(x(t), δx (t)) = J(x(t) + δx (t)) − J(x(t)) (4.2)


1
= ∇T (J)δx (t) + δxT (t)H(J))δx (t) + · · · (4.3)
2
où H(J) est la matrice hessienne :
 2 
∂ J/∂x21 ∂ 2 J/∂x1 ∂x2 ...
  2
∂ 2 J/∂x2 . . .
H(J) = ∇ ∇T (J) = ∂ J/∂x1 ∂x2 
.. .. ..
. . .

Dans le théorème 4.1 le signe de δ 2 J est alors lié à la positivité de la matrice H(J).

23
24 Chapitre 4 - Calcul variationnel et C. Opt.

4.2 Problème de base et équations d’Euler-Lagrange


Pour introduire les équations d’Euler-Lagrange, on part d’un critère à temps fixé (instant initial et instant
final) et à états fixés (état initial et état final).

x0
t0 x*(t)

x(t) x1
t1

Figure 4.1: Problème de base : x∗ (t) représente une trajectoire optimale, en


supposant qu’elle existe, vis-à-vis du critère choisi

La fonctionnelle envisagée est de la forme :


Z t1
J= V (x(t), ẋ(t), t)dt
t0

où on suppose que x(t) est une fonction scalaire, avec x(t0 ) = x0 , x(t1 ) = x1 et où x(t) est à dérivée
continue.

Leonhard Euler (1707-1783) entra à l’université de Bâle en 1720 où


Johann Bernoulli découvrit en lui de grandes capacités mathématiques.
Ses études terminées il se vit offrir un poste à St Petersbourg en Juillet
1726, poste qu’il rejoignit en Mai 1727. Il remplaça Daniel Bernoulli
dans sa chaire de mathématiques en 1733. Il entreprit de nombreux
travaux dans les domaines de la théorie des nombres, le calcul de
variations, les équations différentielles, la mécanique. . . Il remporta à
deux reprises, en 1738 et 1740, le grand prix de l’académie de Paris.
Revenu de St Peterbourg en 1741, il dirigea avec Maupertuis l’académie
de mathématiques de Berlin. Durant ses 35 ans de présence à Berlin il
publia quelque 380 articles. De retour à St Petersbourg en 1766 il devint
aveugle presque aussitôt. Ceci ne l’empêcha pas de rédiger la moitié de
ses écrits malgré ce handicap.

Joseph-Louis Lagrange (1736-1813), né à Turin en 1763, commença à


s’intéresser aux mathématiques grâce aux travaux de Halley dans le
domaine de l’optique. Parmi ses travaux les plus importants sont ceux
portant sur le calcul de variations entre 1754 et 1756. Lagrange succéda à
Euler comme Directeur du département de mathématiques de l’académie
de Berlin en novembre 1766. Un grand nombre de ses travaux dans le
domaine de la mécanique céleste, de la mécanique des fluides, de la
théorie des nombres. . . date de cette époque. Il vint ensuite à l’académie
des sciences de Paris en 1787 et fut le premier professeur d’analyse de
l’école polytechnique à partir de 1794.

1. Si on suppose que x∗ (t) est optimale pour J, posons x(t) = x∗ (t) + δx (t) et ẋ(t) = ẋ∗ (t) + δ˙x (t) =
ẋ∗ (t) + δẋ (t) avec δx (t0 ) = δx (t1 ) = 0.

2. On peut alors écrire :

Z t1

∆J(x (t) + δx (t)) = [V (x∗ (t) + δx (t), ẋ∗ (t) + δẋ (t), t) − V (x∗ (t), ẋ∗ (t), t)] dt
t0
MDI224 / 2007-2008 / GB 25

En se limitant au premier ordre dans le développement de J avec intégration par parties :


Z t1
 
∂V ∂V
δJ(x∗ (t), δx (t)) = δ (t) + δ (t) dt
∂x ∗ ∂ ẋ ∗
x ẋ
t0
Z t1 Z t1
∂V d ∂V
= δx (t)dt − δx (t) dt
t0 ∂x ∗ t0 dt ∂ ẋ ∗
Z t1  
∂V d ∂V
= − δx (t)dt (4.4)
t0 ∂x ∗ dt ∂ ẋ ∗

3. En vertu du théorème 4.1 et de la continuı̈té de l’expression entre crochets dans 4.4, on obtient
l’équation d’Euler-Lagrange 4.5 (obtenue par Euler en 1741 et redémontrée en 1755 par Lagrange
en utilisant le calcul de variations) :

Condition nécessaire d’Euler-Lagrange :



MDI224 ∂V d ∂V
− =0 (4.5)
∂x ∗ dt ∂ ẋ ∗

Comme V est une fonction de x, ẋ et t, la relation 4.5 peut être écrite sous la forme :

∂V ∂ 2 V dx ∂ 2 V d2 x ∂ 2 V
− − − =0 (4.6)
∂x ∗ ∂ ẋ∂x ∗ dt ∗ ∂ ẋ2 ∗ dt2 ∗ ∂ ẋ∂t ∗

Examinons ensuite la seconde variation δ 2 J (on ne rappelle pas le ∗ indiquant


 que les
 expressions sont
écrites pour l’optimum). La première expression vient de 4.2 en posant δxT = δx δẋ :
Z t1 
1 ∂2V 2 ∂2V ∂2V 2
δ2 J = δ (t) + 2 δ x (t)δ ẋ (t) + δ (t) dt
t0 2 ∂x2 x ∂x∂ ẋ ∂ ẋ2 ẋ
Z  2  
1 t1 ∂ V d ∂2V 2 ∂2V 2
= − δ (t) + δ (t) dt
2 t0 ∂x2 dt ∂x∂ ẋ x ∂ ẋ2 ẋ

en utilisant le fait que (intégration par parties) :


Z t1 Z t1
∂2V 1 d ∂2V 2
δx (t)δẋ (t)dt = − δ (t)dt
t0 ∂x∂ ẋ 2 t0 dt ∂x∂ ẋ x

Cette variation devant conserver son signe quels que soient δx et δẋ :

∂2V d ∂2V ∂2V ∂2V d ∂2V ∂2V


− > 0 et >0 ou − < 0 et <0
∂x2 dt ∂x∂ ẋ ∂ ẋ2 ∂x2 dt ∂x∂ ẋ ∂ ẋ2
On peut aussi écrire que la matrice :
" 2 2
#
∂ V d ∂ V
∂x2 dt ∂x∂ ẋ définie > 0 ou < 0
d ∂2V ∂2V
dt ∂x∂ ẋ ∂ ẋ2

Comme δx est arbitrairement petit, on réduit ces deux conditions à la seule condition dite de Legendre-
Jacobi :

Condition de Legendre-Jacobi :
MDI224 ∂2V ∂2V
> 0 (minimisation) ou < 0 (maximisation) (4.7)
∂ ẋ2 ∂ ẋ2
26 Chapitre 4 - Calcul variationnel et C. Opt.

4.3 Extrema sous conditions


4.3.1 Extrema d’une fonction sous conditions
Cas scalaire
Considérons f (x1 , x2 ), fonction de deux variables x1 et x2 , dont on cherche un extremum avec une
contrainte exprimée par g(x1 , x2 ) = 0.
La méthode des multiplicateurs de Lagrange consiste à construire le lagrangien augmenté ou fonction
de Lagrange augmentée L(x1 , x2 ) :
L(x1 , x2 ) = f (x1 , x2 ) + λg(x1 , x2 ) (4.8)
et à exprimer les conditions d’extrémalité pour L :
dL(x1 , x2 ) = df (x1 , x2 ) + λdg(x1 , x2 ) = 0
   
∂f ∂g ∂f ∂g
+λ dx1 + +λ dx2 = 0
∂x1 ∂x1 ∂x2 ∂x2
∂f ∂g ∂f ∂g
Considérons la valeur λ∗ de λ qui annule ∂x 2
+ λ ∂x2
. On doit alors aussi avoir ∂x1 + λ∗ ∂x1
= 0. On
en est réduit à résoudre le système d’équations :
 ∂f
 ∗ ∂g
 ∂x2 + λ ∂x2 = 0
∂f ∗ ∂g
 ∂x + λ ∂x1 = 0
 ∂L1 ∗ ∗
∂λ = g(x1 , x2 ) = 0

Cette façon de faire permet de considérer les variables x1 et x2 comme si elles étaient indépendantes.
∂f ∂f ∂g ∂g
Une résolution directe aurait donné df = ∂x1
dx1 + ∂x 2
dx2 = 0 avec dg = ∂x1
dx1 + ∂x 2
dx2 = 0, dont on
en déduit dx2 = − ∂g/∂x
∂g/∂x2 dx1 .
1

 
∂f ∂f ∂g/∂x1
⇒ df = − dx1 = 0
∂x1 ∂x2 ∂g/∂x2

" #
∂f ∂f
∂f ∂g ∂f ∂g ∂x1 ∂x2
⇒ − = det ∂g ∂g =0 (4.9)
∂x1 ∂x2 ∂x2 ∂x1 ∂x1 ∂x2

Le jacobien de f et g par rapport à x1 et x2 doit donc être nul.

Cas vectoriel
Théorème 4.2  T
Soit f (x) une fonction du vecteur x = x1 x2 ... xn dont on recherche les extrema sous un ensemble
de m < n conditions gk (x) :


 g1 (x) = g1 (x1 , x2 , . . . xn ) = 0

 g2 (x) = g2 (x1 , x2 , . . . xn ) = 0
..

 .


gm (x) = gm (x1 , x2 , . . . xn ) = 0
La fonction f et le vecteur g des conditions sont supposés à dérivées partielles continues. Soit λ =
 T
λ1 λ2 . . . λm le vecteur des multiplicateurs de Lagrange. La fonction de Lagrange augmentée
est :
L(x, λ) = f (x) + λT g(x)
Les valeurs optimales x∗ et λ∗ sont données par le système de n + m équations :
(
∂L ∂f T ∂g
∂x = ∂x + λ ∂x = 0
∂L
∂λ = g(x) = 0
MDI224 / 2007-2008 / GB 27

4.3.2 Extrema d’une fonctionnelle sous conditions


Pour introduire la méthode considérons comme auparavant le cas de deux variables x1 et x2 et d’un
critère intégral avec temps et états fixés :
Z t1
J(x1 , x2 , t) = V (x1 , x2 , ẋ1 , ẋ2 , t)dt
t0

On forme la fonctionnelle augmentée :


L = L(x1 , x2 , ẋ1 , ẋ2 , λ(t), t)
= V (x1 , x2 , ẋ1 , ẋ2 , t) + λ(t)g(x1 , x2 , ẋ1 , ẋ2 )
Z t1  
∂L ∂L ∂L ∂L
δJa = δx1 (t) + δx2 (t) + δ ẋ1 (t) + δ ẋ2 (t) dt
t0 ∂x1 ∗ ∂x2 ∗ ∂ ẋ1 ∗ ∂ ẋ2 ∗
Z t1    t1  t1
∂L ∂L ∂L
= δx (t) dt + δx (t) + δx (t)
∂x1 ∗ ∂ ẋ1 ∗ ∂ ẋ2 ∗
1 1 2
t0 t0 t0
Z t1 Z t1
d ∂L d ∂L
− δx1 (t)dt − δx2 (t)dt
t0 dt ∂ ẋ1 ∗ t0 dt ∂ ẋ2 ∗
Z t1    
∂L d ∂L ∂L d ∂L
= − δx (t)dt + − δx2 (t)dt
∂x1 dt ∂ ẋ1 ∂x2 dt ∂ ẋ2
1
t0 ∗ ∗ ∗ ∗

On raisonne de la même façon que précédemment. On choisit δx2 (t) comme “variable indépendante”
et on cherche λ∗ tel que :

∂L d ∂L
− =0
∂x1 ∗ dt ∂ ẋ1 ∗
Avec ce choix, on a nécessairement :

∂L d ∂L
− =0
∂x2 ∗ dt ∂ ẋ2 ∗

Sachant que ∂L
∂λ ∗ = 0, on peut aussi écrire la relation :

∂L d ∂L
− =0
∂λ ∗ dt ∂ λ̇ ∗
On peut généraliser ce qui vient d’être vu au cas de n fonctions xk (t). On considère la fonctionnelle
J:
Z t1
J= V (x(t), ẋ(t), t)dt
t0

et m contraintes :
gk (x(t), ẋ(t), t) = 0 pour k = 1 . . . m
On forme le critère augmenté :
Z t1
Ja = L(x(t), ẋ(t), t)dt
t0

avec L(x(t), ẋ(t), t) :


L(x(t), ẋ(t), t) = V (x(t), ẋ(t), t) + λT g(x(t), ẋ(t), t)
et on peut écrire :

∂L d ∂L ∂L d ∂L
− = 0 et − =0 (4.10)
∂x ∗ dt ∂ ẋ ∗ ∂λ ∗ dt ∂ λ̇ ∗
sachant que la deuxième relation se réduit à ∂L/ ∂λ|∗ = 0
28 Chapitre 4 - Calcul variationnel et C. Opt.

Exemple 4.1 Etant donné le système décrit par l’équation différentielle :

ẋ(t) + x(t) = u(t)

on veut minimiser le critère quadratique J :


Z 1
 2 
J= x (t) + u2 (t) dt
0

La contrainte peut s’écrire g = ẋ(t) − x(t) − u(t) et on forme :

L(x(t), ẋ(t), u(t), λ(t)) = x2 (t) + u2 (t) + λ(t)(ẋ(t) + x(t) − u(t))

Les relations 4.10 donnent :



∂L d ∂L
− = 2x∗ (t) + λ∗ (t) − λ̇∗ (t) = 0 (4.11)
∂x ∗ dt ∂ ẋ ∗


∂L d ∂L
− = 2u∗ (t) − λ∗ (t) = 0 (4.12)
∂u ∗ dt ∂ u̇ ∗
La dernière relation revient à écrire l’équation différentielle pour les fonctions optimales :

ẋ∗ (t) + x∗ (t) = u∗ (t) (4.13)

La résolution de ce système donne :


d(4.11)/dt ⇒ 2ẋ∗ + λ̇∗ − λ̈∗ = 0
4.13 ⇒ 2u∗ − 2x∗ + λ̇∗ − λ̈∗ = 0
4.11 et 4.12 ⇒√λ∗ + λ∗√− λ̇∗ + λ̇∗ − λ̈∗ = 0 ⇒ λ̈∗ + 2λ∗ = 0
⇒ λ∗ (t) = ae− 2t + be 2t .
√ √
⇒ x∗ (t) = α1 e− 2t + α2 e 2t
√ √ √ √
u∗ (t) = α1 (1 − 2)e− 2t + α2 (1 + 2)e 2t

4.4 Variations et commande optimale


4.4.1 Le problème de Bolza
Par rapport au problème de Lagrange on introduit l’état final dans le critère.
Oskar Bolza (1857-1942) né à Bergzabern (palatinat rhénan) émigra en
Allemagne aux environs de 1873. Il commença à étudier les mathématiques à
Berlin en 1878. Il suivit en 1879 les cours de Karl Theodor Wilhelm Weierstrass
sur le calcul de variations. Il passa un doctorat en 1886 à l’université de
Göttingen, puis émigra aux Etats-Unis en 1888 où il resta jusqu’en 1910 pour
revenir à Friburg. Le problème de Bolza présenté dans ce paragraphe ci-après
a été décrit dans un article datant de 1913.

Etant donné un système décrit par :

ẋ(t) = f (x(t), u(t), t) avec x(t)(n × 1) et u(t)(r × 1) (4.14)

on se donne un critère J(u(t)) (Bolza, 1913) de la forme :


Z tf
J(u(t)) = S(x(tf ), tf ) + V (x(t), u(t), t)dt (4.15)
t0
x(t0 ) = x0 (4.16)
x(tf ) et tf libres (4.17)
MDI224 / 2007-2008 / GB 29

Le problème d’optimisation consiste à chercher une trajectoire de commande u(t) qui minimise, ou
maximise, le critère J.
On pourrait aussi considèrer le critère J2 (u(t)) :
Z tf
J2 (u(t)) = V (x(t), u(t), t)dt + S(x(tf ), tf ) − S(x(t0 ), t0 ) (4.18)
t0
Z tf  
dS(x(t), t)
= V (x(t), u(t), t) + dt (4.19)
t0 dt
pour lequel le problème d’optimisation est identique puisque S(x(t0 ), t0 ) est une quantité fixe.
Supposons que l’on connaisse les commandes et trajectoires optimales x∗ (t) et u∗ (t). On peut écrire :
ẋ∗ (t) + δ ẋ(t) = f (x∗ (t) + δx(t), u∗ (t) + δu(t), t)
Z tf +δtf  
∗ ∗ dS
J2 (u(t)) = V (x (t) + δx(t), u (t) + δu(t), t) + dt
t0 dt
On introduit des multiplicateurs de Lagrange λ(t). On désigne λ(t) par vecteur d’état adjoint. Pour
la commande optimale on a :
Z tf "  T
∂S

Ja (u (t)) = ∗ ∗
V (x (t), u (t), t) + ẋ∗ (t)
t0 ∂x ∗
  
∂S  
+ + λT f (x∗ (t), u∗ (t), t) − ẋ∗ (t) dt
∂t ∗
Pour une commande non optimale :
Z tf +δtf
Ja (u(t)) = [V (x∗ (t) + δx(t), u∗ (t) + δu(t), t)
t0
 T  
∂S ∂S
+ (ẋ∗ (t) + δ ẋ(t)) +
∂x ∗ ∂t ∗
 i
+ λT f (x∗ (t) + δx(t), u∗ (t) + δu(t), t) − (ẋ∗ (t) + δ ẋ(t)) dt

Le Lagrangien pour la commande optimale est défini par :


 T
∂S
L = V (x∗ (t), u∗ (t), t) + ẋ∗ (t)
∂x ∗
 
∂S  
+ + λT f (x∗ (t), u∗ (t), t) − ẋ∗ (t) (4.20)
∂t ∗
Pour une commande non optimale :
Lδ = V (x∗ (t) + δx(t), u∗ (t) + δu(t), t)
 T  
∂S ∗ ∂S
+ (ẋ (t) + δ ẋ(t)) +
∂x ∗ ∂t ∗
T
 
+ λ f (x (t) + δx(t), u (t) + δu(t), t) − (ẋ∗ (t) + δ ẋ(t))
∗ ∗

On peut écrire :
Z tf +δtf Z tf Z tf +δtf
Ja (u(t)) = Lδ dt = Lδ dt + Lδ dt
t0 t0 tf

Z tf +δtf
Lδ dt ≈ Lδ t δtf
f
tf
"  T  T  T #
∂L ∂L ∂L
≈ L+ δx(t) + δ ẋ(t) + δu(t)
∂x ∗ ∂ ẋ ∗ ∂u ∗ tf
≈ L|tf δtf
30 Chapitre 4 - Calcul variationnel et C. Opt.

On s’intéresse ensuite à la variation ∆J = Ja (u(t)) − Ja (u∗ (t)) :


Z tf
∆J = (Lδ − L)dt + L|tf δtf
t0

En retenant les termes du premier ordre :


Z tf " T  T  T #
∂L ∂L ∂L
δJ = δx(t) + δ ẋ(t) + δu(t) dt + L|tf δtf
t0 ∂x ∗ ∂ ẋ ∗ ∂u ∗

Par intégration par parties, on obtient :


Z tf  T " T #tf Z    T
tf
∂L ∂L d ∂L
δ ẋ(t) = δx(t) − δx(t)dt
t0 ∂ ẋ ∗ ∂ ẋ ∗ t0 dt ∂ ẋ ∗
t0

Comme δx(t0 ) = 0, on obtient :


Z tf     T
∂L d ∂L
δJ = − δx(t)dt
t0 ∂x ∗ dt ∂ ẋ ∗
Z   " T #
tf
∂L ∂L
+ δu(t)dt + L|tf δtf + δx(t)
t0 ∂u ∗ ∂ ẋ ∗
tf

Comme précédemment on choisit un vecteur λ∗ qui assure que :


   
∂L d ∂L
− =0
∂x ∗ dt ∂ ẋ ∗

Comme u(t) est “indépendante”, alors :


  " T #
∂L ∂L
= 0 ⇒ L|tf δtf + δx(t) =0 (4.21)
∂u ∗ ∂ ẋ ∗
tf

Rappelons que l’équation d’état est la contrainte qui s’exprime aussi sous la forme ∂L/∂λ|∗ = 0.
On peut écrire (voir figure 4.2) :

δxf − δx(tf )
ẋ∗ (tf ) + δ ẋ(tf ) ≈ ⇒ δx(tf ) ≈ δxf − ẋ∗ (tf )δtf
δtf

x*(t)+ δ x(t) δ x(tf) δ xf


xf
x*(t)
x0
t
t0 tf tf + δ tf

Figure 4.2: Notations

La condition aux bornes 4.21 devient alors :


"  T #  T
∗ ∂L ∂L
L − ẋ(t) δtf + δxf = 0
∂ ẋ ∗ ∂ ẋ ∗
tf tf
MDI224 / 2007-2008 / GB 31

4.4.2 Récapitulatif

Système :

ẋ(t) = f (x(t), u(t), t) (4.22)


Critère :
Z tf
J(u(t)) = S(x(tf ), tf ) + V (x(t), u(t), t)dt (4.23)
t0

Lagrangien :
 T
∂S
L = V (x∗ (t), u∗ (t), t) + ẋ∗ (t)
∂x ∗
 
∂S  
+ + λT f (x∗ (t), u∗ (t), t) − ẋ∗ (t) (4.24)
∂t ∗

Equations de Lagrange :
   
∂L∂L d
− = 0 (4.25)
∗ ∂x ∂ ẋ ∗ dt
 
∂L
= 0 (4.26)
∂u ∗

∂L
= 0 (4.27)
∂λ ∗
"  T #  T
∂L ∂L
L∗ − ẋ(t) δtf + δxf = 0 (4.28)
∂ ẋ ∗ ∂ ẋ ∗
tf tf

4.4.3 Approche utilisant l’hamiltonien

Définition 4.1 (Hamiltonien)


On définit H, l’hamiltonien (ou fonction de Pontryagin) par :

H(x(t), u(t), t) = V (x(t), u(t), t) + λT (t)f (x(t), u(t), t)

et H∗ , Hamiltonien à l’optimum par :

H∗ = V (x∗ (t), u∗ (t), t) + λ∗T (t)f (x∗ (t), u∗ (t), t)

Le Lagrangien pour la commande optimale 4.20 peut alors s’écrire :

 T  
∂S ∂S
L = H∗ + ẋ∗ (t) + − λ∗T ẋ∗ (t) (4.29)
∂x ∗ ∂t ∗
32 Chapitre 4 - Calcul variationnel et C. Opt.

En reportant cette expression dans les conditions d’optimalité on obtient :


 
∂H
=0 (4.30)
∂u ∗
 
∂H ∗
= −λ̇ (t) (4.31)
∂x ∗
∂H
= ẋ∗ (t) (4.32)
∂λ
La condition aux bornes 4.21 devient :
    T
∂S ∂S
H∗ + δtf + − λ∗ (t) δxf = 0 (4.33)
∂t ∂x ∗ tf

en rappelant que tf et x(tf ) sont libres.

Différents cas

1. Si tf et x(tf ) sont fixés alors δtf et δxf sont nuls et 4.33 est satisfaite.

2. Si on fixe l’état final et que tf reste libre de choix, la condition 4.33 s’écrit :
 
∂S
H+ =0
∂t ∗tf

3. Si on fixe tf et que l’état final reste libre de choix, la condition 4.33 s’écrit :
 
∂S
λ∗ (tf ) =
∂x ∗tf

4. Si tf et x(tf ) sont non corrélés, on a simultanément :


   
∗ ∂S ∂S
λ (tf ) = et H + =0
∂x ∗tf ∂t ∗tf

5. Si x(tf ) se trouve sur une trajectoire donnée θ(t), on a :

δxf ≈ θ̇(tf )δtf )


"   T #
∂S ∂S ∗
H+ + − λ (t) θ̇(t) =0
∂t ∗ ∂x ∗ tf

Conditions suffisantes

Il nous faut δ 2 J pour connaı̂tre le sens de variation :


Z " # 
tf  T  δ2 H δ2 H
2 δx2 δxδu δx(t)
δ J= δx (t) δuT (t) δ2 H δ2 H
t0 δu(t)
δxδu δu2

La matrice :
" 2 2 #
δ H δ H
δx2 δxδu
δ2 H δ2 H
δxδu δu2 ∗
MDI224 / 2007-2008 / GB 33

doit être définie positive ou négative selon que l’on a un minimum ou un maximum respectivement. En
fait la condition porte simplement sur le signe de :
 2 
δ H
δu2 ∗

Exercices
Exercice 4.1 (Intégrateur double, utilisation de l’hamiltonien)
On considère un système (intégrateur double) et un critère J définis par :
 Z
ẋ1 (t) = x2 (t) 1 tf 2
et J = u (t)dt
ẋ2 (t) = u(t) 2 t0

Calculer les trajectoires de phase pour les cas suivants :


1. Intégrateur double avec tf et x(tf ) fixés (cas 1) et avec :
   
1 1
x(0) = et x(tf = 2) =
2 0

Tracer la trajectoire de phase optimale et x1 (t) optimal.

2. Intégrateur double avec tf fixé et x(tf ) libre (cas 3) : on suppose que x(0) = [1 2]T , x1 (2) = 0 et
xtf =2 (2) libre.
3. Intégrateur double avec tf et x(tf ) libres (cas 4) : on suppose que x(0) = [1 2]T , x1 (tf ) = 3 et
x2 (tf ) libre.
34 Chapitre 4 - Calcul variationnel et C. Opt.
Chapitre 5

Commande LQR

Nous allons appliquer aux systèmes linéaires invariants ce que nous avons vu chapitre 4. Par rapport au
chapitre 2, on introduit une “condition limite” sur le temps.

5.1 Introduction
On considère les systèmes linéaires décrits par 5.1 :

ẋ(t) = A(t)x(t) + B(t)u(t)
(5.1)
y(t) = C(t)x(t)

De façon très générale on se donne un critère de la forme 5.2 :

1
J(u(t)) = [z(tf ) − y(tf )]T F(tf )[z(tf ) − y(tf )]
2
Z
1 tf  
+ (z(t) − y(t))T Q(t)(z(t) − y(t)) + uT (t)R(t)u(t) dt (5.2)
2 t0

z(t) est la “trajectoirede sortie” désirée. F est désignée par matrice de pénalisation. On aurait pu
aussi utiliser un critère basé sur une “trajectoire d’état” désirée avec un terme de la forme [z(t) − x(t)]
si l’état est directement accessible (système complètement observable).
On peut distinguer trois types de problèmes :

1. Régulation si on cherche à maintenir l’état en 0.

2. Régulation de la sortie si on cherche à maintenir la sortie en 0 (comme le système est linéaire c’est
équivalent à dire que l’on veut maintenir la sortie à un valeur constante).

3. Poursuite si on cherche à maintenir x(t) ou y(t) au voisinage d’une trajectoire donnée.

On fait un certain nombre d’hypothèses :

1. Q(t) symétrique semi-définie positive.

2. R(t) symétrique définie positive.

3. Pas de contrainte sur u(t).

4. F(tf ) symétrique semi-définie positive.

Cette approche basée sur un critère quadratique conduit naturellement à une commande type “retour
d’état”.

35
36 Chapitre 5 - Commande LQR

5.2 Problème de régulation


Nous allons utiliser une forme un peu plus simple du critère 5.2 :
1 T
J(u(t)) = x (tf )F(tf )x(tf )
2
Z   
1 tf  T  Q(t) 0 x(t)
+ x (t) uT (t) dt (5.3)
2 t0 0 R(t) u(t)
et nous allons construire une commande minimisant J sur l’horizon (t0 , tf ).

5.2.1 Construction de la solution


1. L’Hamiltonien s’écrit :
1 T 1
H= x (t)Q(t)x(t) + uT (t)R(t)u(t) + λT (Ax(t) + B(t)u(t)) (5.4)
2 2

2. Calcul de ∂H/∂u (relation 4.30) :


∂H
= 0 ⇒ R(t)u∗ (t) + BT (t)λ∗ (t) = 0 ⇒ u∗ (t) = −R−1 (t)BT (t)λ∗ (t) (5.5)
∂u

3. (∂H/∂x)∗ = −λ̇ (t) (relation 4.31) :

ẋ∗ (t) = A(t)x∗ (t) + B(t)u∗ (t) (5.6)

(∂H/∂λ)∗ = ẋ∗ (t) (relation 4.32) :



λ̇ (t) = −Q(t)x∗ (t) − AT (t)λ∗ (t) (5.7)

Les relations 5.6 et 5.7 peuvent aussi s’écrire sous la forme suivante 5.8 dite de système hamiltonien
faisant intervenir l’état x(t) et l’état adjoint λ(t) :
 ∗    
ẋ (t) A(t) −B(t)R−1 (t)BT (t) x∗ (t)
∗ = (5.8)
λ̇ (t) −Q(t) −AT (t) λ∗ (t)

Dans notre cas, tf est fixé. La condition aux bornes (relation 4.33) est réduite à :
 
∂S
λ∗ (tf ) = ⇒ λ∗ (tf ) = F(tf )x∗ (tf ) (5.9)
∂x ∗tf

4. Admettons qu’il existe P(t) telle que l’on puisse écrire λ∗ (t) = P(t)x∗ (t). Les relations 5.6 et 5.7
deviennent :
ẋ∗ (t) = A(t)x∗ (t) − B(t)R−1 (t)BT (t)P(t)x∗ (t)

λ̇ (t) = −Q(t)x∗ (t) − AT (t)P(t)x∗ (t)


Comme λ∗ (t) = P(t)x∗ (t), on a aussi λ̇ (t) = Ṗ(t)x∗ (t) + P(t)ẋ∗ (t). En reportant dans cette
expression les deux relations précedentes, on obtient :
h i
Ṗ(t) + P(t)A(t) + AT (t)P(t) + Q(t) − P(t)B(t)R−1 (t)BT (t)P(t) x∗ (t) = 0 (5.10)

5. L’équation 5.10 doit être satisfaite ∀t indépendamment de x∗ (t0 ). De plus P(t) ne dépend pas de
l’état initial et 5.10 doit être satisfaite pour tout x∗ (t). On obtient ainsi une équation différentielle
matricielle dite de Riccati (DRE, Differential Riccati Equation).

dP(t)
+ P(t)A(t) + AT (t)P(t) + Q(t) − P(t)B(t)R−1 (t)BT (t)P(t) = 0 (5.11)
dt
MDI224 / 2007-2008 / GB 37

Jésuite italien, Vincenzo Riccati vécut de 1707 à 1775. Après ses études
théologiques, il va à Bologne enseigner les mathématiques au collège
San Francesco Saverio de 1739 à 1769. Il y continue les études qu’avait
commencé son père sur l’intégration et les équations différentielles. Ses
études sur les fonctions hyperboliques le conduisirent à la résolution des
équations du troisième degré bien avant Lambert.
Son expertise dans le domaine de l’hydraulique le fit participer à des
projets de contrôle des flots qui participèrent sauvetage de la région de
Venise et de Bologne.

Etant donnée la relation 5.9, on a une condition finale sur P(t) :

P(tf ) = F(tf ) (5.12)

L’équation de Riccati doit donc être résolue en partant de cette condition finale (Backward solution).

On peut remarquer que la matrice associée aux variations du deuxième ordre s’écrit :
" 2 #  
δ H δ2 H
δx 2 δxδu Q(t) 0
δ2 H δ2 H
=
2
0 R(t)
δxδu δu ∗

Cette matrice est seulement semi-définie positive. Cependant la condition “R(t) définie positive”
suffit à garantir que l’on a un minimum.

Théorème 5.1
La valeur optimale du critère est donnée par :

1 ∗T
J∗ = x (t)P(t)x∗ (t) (5.13)
2
où P(t) est solution de

dP(t)
+ P(t)A(t) + AT (t)P(t) + Q(t) − P(t)B(t)R−1 (t)BT (t)P(t) = 0
dt
D’après 5.5, la commande est donnée par :

u∗ (t) = −R−1 (t)BT (t)P(t)x∗ (t) = −K(t)x∗ (t) (5.14)

La matrice K(t) est appelée matrice de gain de Kalman.

La résolution de la DRE est parfois simplifiée :

− en faisant dP/dt = 0 et on parle alors de méthode de Pearson,

− en résolvant l’équation sur de petits intervalles de temps en approchant la dérivée par dP/dt ≈
(P (t + δ) − P (t))/δ. On parle de méthode de Sage-Eisenberg.

5.2.2 Cas invariant, horizon infini


On note Q = GT G, x0 l’état initial à l’instant t0 = 0.

ẋ(t) = Ax(t) + Bu(t)


Z Z
1 +∞ T 1 +∞ T
J(x0 , u(t)) = x (t)GT Gx(t)dt + u (t)udt
2 0 2 0
38 Chapitre 5 - Commande LQR

On suppose que la paire (A, B) est commandable et que la matrice symétrique P est solution de
l’ARE (Algebraic Riccati Equation) 5.15 :

PA + AT P + GT G − PBBT P = 0 (5.15)

et que cette solution laisse le système asymptotiquement stable.


On développe l’expression suivante :
d T 
x (t)Px(t) = ẋT (t)Px(t) + xT (t)Pẋ(t)
dt 
= xT (t)AT + uT (t)BT Px(t) + xT (t)P(Ax(t) + Bu(t))

= xT (t) AT P + PA x(t) + uT (t)BT Px(t) + xT (t)PBu(t)
A cause de 5.15, on peut écrire :
d T  
x (t)Px(t) = xT (t) PBBT P − GT G x(t) + uT (t)BT Px(t) + xT (t)PBu(t)
dt  
= xT (t)PB + uT (t) BT Px(t) + u(t) − xT (t)GT Gx(t) − ||u(t)||2
On en déduit la relation 5.16 :
d T 
xT (t)GT Gx(t) + ||u(t)||2 = BT Px(t) + u(t) − x (t)Px(t) (5.16)
dt

Z +∞ T 
⇒ J(x0 , u(t)) = B Px(t) + u(t) dt − xT (t)Px(t) +∞ (5.17)
0
0

Si la commande amène le système à l’état 0, elle doit satisfaire :

u∗ = −BT Px(t) et J(x0 , u∗ ) = xT0 Px0 (5.18)

5.2.3 Exercice
Exercice 5.1 (Intégrateur double, régulation LQR)
On considère un double intégrateur :
     
0 1 0 1
ẋ(t) = x(t) + u(t) avec x(0) =
0 0 1 1
 
1 0
On se donne t0 = 0, tf = 8, R = 1, Q = et F = 2I.
0 0

1. Calculer le retour d’état K(t). Pour ce faire utiliser directement le système hamiltonien.
2. Effectuer une simulation et visualiser la trajectoire de phase et le lieu des pôles correspondant à la
fonction de transfert Gt (s).
3. Dans le cas d’un horizon infini, on est amené à résoudre l’équation 5.15. Comparer la trajectoire
de phase obtenue avec celle de la question précédente.

5.3 Problème de poursuite


On considère les systèmes linéaires décrits par 5.1 :

ẋ(t) = A(t)x(t) + B(t)u(t)
y(t) = C(t)x(t)

En posant e(t) = z(t) − y(t), on introduit le critère :


Z
1 T 1 tf T
J(u(t)) = e (tf )F(tf )e(tf ) + e (tf )Q(t)e(tf ) + uT (t)R(t)u(t)dt (5.19)
2 2 t0
MDI224 / 2007-2008 / GB 39

5.3.1 Construction de la solution


1. L’Hamiltonien s’écrit :
1
H = [z(t) − C(t)x(t)]T Q(t)[z(t) − C(t)x(t)]
2
+uT (t)R(t)u(t) + λT (A(t)x(t) + B(t)u(t)) (5.20)

2. Calcul de ∂H/∂u :

∂H
= 0 ⇒ u∗ (t) = R−1 (t)BT (t)λ∗ (t) (5.21)
∂u

3.
∂H
ẋ(t) = = A(t)x(t) + B(t)u(t)
∂λ

⇒ ẋ∗ (t) = A(t)x∗ (t) − B(t)R−1 (t)BT (t)λ∗ (t) (5.22)

∗ ∂H
λ̇ (t) = − = −CT (t)Q(t)C(t)x∗ (t) − AT (t)λ∗ (t) + CT (t)Q(t)z(t)
∂x

On en déduit le système hamiltonien :


 ∗      
ẋ (t) A(t) −B(t)R−1 (t)BT (t) x∗ (t) 0
∗ = ∗ + z(t) (5.23)
λ̇ (t) −CT (t)Q(t)C(t) −A(t)T λ (t) CT (t)Q(t)

Les conditions aux limites sont données par x(t0 ) = x0 et :

1 ∂  T 
λ(tf ) = e (tf )F(tf )e(tf )
2 ∂x(tf )
= CT (tf )F(tf )C(tf ) − CT (tf )F(tf )z(tf )

4. On introduit P(t) et g(t) tels que λ∗ (t) = P(t)x∗ (t) − g(t). En reportant ce changement de variable
dans le système hamiltonien, on arrive à :

λ̇ (t) = Ṗ(t)x∗ (t) + P(t)ẋ∗ (t) − ġ(t)

Ṗ(t) = −P(t)A(t) − AT (t)P(t)


+ P(t)B(t)R−1 (t)BT (t)P(t) − CT (t)Q(t)C(t) (5.24)
 
ġ(t) = P(t)B(t)R−1 (t)BT (t) − AT (t) g(t) − W(t)z(t) (5.25)

Les conditions aux limites deviennent :

P(tf ) = CT (tf )F(tf )C(tf ) (5.26)


T
g(tf ) = C (tf )F(tf )z(tf ) (5.27)

5. Le contrôle optimal est donné par :

u∗ (t) = −K(t)x∗ (t) + R−1 (t)BT (t)g(t) (5.28)


−1 T ∗ −1 T
= −R (t)B (t)P(t)x (t) + R (t)B (t)g(t) (5.29)
40 Chapitre 5 - Commande LQR

6. La trajectoire optimale est donnée par :


 
ẋ∗ (t) = A(t) − B(t)R−1 (t)BT (t)P(t) x∗ (t) + B(t)R−1 (t)BT (t)g(t) (5.30)

7. La valeur du critère à l’optimum peut être obtenue par :


1 ∗T
J ∗ (t) = x (t)P(t)x∗ (t) − x∗T (t)g(t) + h(t)
2
où h(t) satisfait :

1 1
ḣ(t) = − g T (t)B(t)R−1 (t)BT (t)g(t) − z T (t)Q(t)z(t) (5.31)
2 2
et h(tf ) = −z T (tf )Q(tf )z(tf ) (5.32)

5.3.2 Poursuite à horizon infini


Le critère est :
Z tf
1
J(u(t)) = lim eT (tf )Q(t)e(tf ) + uT (t)R(t)u(t)dt (5.33)
tf →∞ 2 t0

Lorsque tf → ∞, P(t) → P avec :

−PA − AT P + PBR−1 BT P − CT QC = 0

Lorsque tf → ∞, g(t) → g(t) avec :

ġ(t) = [PBR−1 BT − AT ]g(t) − CT Qz(t)

Le contrôle optimal est alors :

u(t) = −R−1 BT [Px(t) − g(t)]

5.3.3 Poursuite à horizon fini et état final fixé


On suppose que tf est fixé et que x(tf ) est l’état 0. Dans ce cas il y a une difficulté. Si on fait le
changement de variable λ∗ (t) = P(t)x∗ (t), comme x(tf ) = 0 on a obligatoirement P(tf ) = ∞. Il nous
faut donc résoudre l’équation de Riccati avec une valeur initiale très grande.
Reprenons le problème de base avec :
ẋ(t) = A(t)x(t) + B(t)u(t)
Z
1 tf  T 
J(u(t)) = x (t)Q(t)x(t) + uT (t)R(t)u(t) dt
2 t0

1. Hamiltonien :
1 T 
H= x (t)Q(t)x(t) + uT (t)R(t)u(t) + λT (t) [A(t)x(t) + B(t)u(t)]
2

2. Forme du contrôle optimal :


∂H
= R(t)u(t) + BT (t)λ(t) = 0 ⇒ u∗ (t) = −R−1 (t)BT (t)λ∗ (t)
∂u

3. Trajectoire d’état et trajectoire adjointe optimales :


∂H
ẋ∗ (t) = = Ax∗ (t) + B(t)u∗ (t)
∂λ
∗ ∂H
λ̇ (t) = − = −Q(t)x∗ (t) − AT (t)λ∗ (t)
∂x
MDI224 / 2007-2008 / GB 41

4. Obtention d’une commande en boucle fermée : on va supposer qu’il existe M(t) telle que x∗ (t) =
M(t)λ∗ (t). En reportant cette relation dans les équations précédentes, on obtient :

dM(t)
= A(t)M(t) + M(t)AT (t) + M(t)Q(t)M(t) − B(t)R−1 (t)BT (t) (5.34)
dt

5. Conditions aux limites :


(a) x(tf ) = 0 et x(t0 ) 6= 0 ⇒ M(tf ) = 0.
(b) x(tf ) 6= 0 et x(t0 ) = 0 ⇒ M(t0 ) = 0.
(c) x(tf ) 6= 0 et x(t0 ) 6= 0 : on introduit la transformation :

x∗ = M(t)λ∗ (t) + v(t)

Comme précédemment, on arrive au système d’équations :


Ṁ(t) = A(t)M(t) + M(t)AT (t) + M(t)Q(t)M(t) − B(t)R−1 (t)BT (t) (5.35)
v̇(t) = (M(t)Q(t) + A(t))v(t) (5.36)
On a x∗ (t0 ) = M(t)λ∗ (t0 ) + v(t0 ) et x∗ (tf ) = M(tf )λ∗ (tf ) + v(tf ). Comme λ∗ (t0 ) et λ∗ (tf )
sont arbitraires, on peut les prendre égaux à 0 et :

v(t0 ) = x(t0 ) et v(tf ) = x(tf )

et M(t0 ) = 0 et M(tf ) = 0
Une fois résolues les équations différentielles précédentes avec ces conditions initiales, la
commande optimale est donnée par :
u∗ (t) = −R−1 (t)BT (t)M−1 (t)[x∗ (t) − v(t)] (5.37)
On suppose que M(t) est inversible.

5.4 Cas invariant et horizon infini, performances


5.4.1 Degré de stabilité
Considérons le système et le critère suivants :
ẋ(t) = Ax(t) + Bu(t)
Z
1 +∞ 2αt  T 
J(u(t)) = e x (tf )Qx(tf ) + uT (t)Ru(t) dt
2 t0
où α > 0, x(t0 ) = x0 . On suppose que (A+αI, B) est complètement stabilisable. Les matrices symétriques
R et Q sont respectivement définies et semi-définies positives. On pose :

x̂(t) = eαt x(t) et û(t) = eαt u(t)

Avec ces notations, le système et le critère peuvent s’écrire :


˙
x̂(t) = (A + αI)x̂(t) + Bû(t) (5.38)
Z
ˆ 1 +∞ h T i
J(u(t)) = x̂ (tf )Qx̂(tf ) + ûT (t)Rû(t) dt (5.39)
2 t0
La commande optimale est donnée par :

û∗ (t) = −Kx̂∗ (t) = −R−1 BT Px̂∗ (t)

où P satisfait :

P(A + αI) + (AT + αI)P − PBR−1 BT P + Q = 0 (5.40)


42 Chapitre 5 - Commande LQR

L’équation de fonctionnement correspondante en boucle fermée est alors :


˙
x̂(t) = (A + αI − BR−1 BT P)x̂(t)

dont les valeurs propres ont une partie réelle inférieure à −α. On dit que le degré de stabilité est au moins
α. Le contrôle optimal est fourni par :

u(t) = e−αt û(t) = −Kx∗ (t)

qui est similaire à ce que l’on avait obtenu précédemment.


1 1
Jˆ = x̂∗T (t0 )Px̂∗ (t0 ) et J = e2αt0 x∗T (t0 )Px∗ (t0 )
2 2

5.4.2 Interprétation fréquentielle


Avec α = 0, 5.40 s’écrit :
PA + AT P + Q − PBR−1 BT P = 0 (5.41)
on a une équation du système bouclé optimal qui est :

ẋ∗ (t) = (A − BR−1 BT P)x(t)



On suppose ici que (A, B) est stabilisable et que (A, Q) est observable. Le polynôme caractéristique
en boucle fermée est donnée par :
det(sI − A + BK) = det(I + BK(sI − A)−1 )det(sI − A)
= det(I + K(sI − A)−1 B)det(sI − A)
L(s) = K(sI − A)−1 B est appelée matrice de gain de boucle. On peut reécrire 5.41 sous la forme :
P(sI − A) + (−sI − AT )P + KT RK = Q

PΦ(s) + ΦT (−s)P + KT RK = Q
On multiplie à gauche et à droite par BT Φ−T (−s) (on note Φ−T (−s) l’inverse de ΦT (−s)) respecti-
vement et Φ−1 (s)B :
BT Φ−T (−s)PB + BT PΦ−1 (s)B + BT Φ−T (−s)KT RKΦ−1 (s)B
= BT Φ−T (−s)QΦ−1 (s)B

BT Φ−T (−s)PB + BT PΦ−1 (s)B + LT (−s)RL(s) = BT Φ−T (−s)QΦ−1 (s)B


Comme RK = BT P :
BT Φ−T (−s)KT R + RKΦ−1 (s)B + LT (−s)RL(s) = BT Φ−T (−s)QΦ−1 (s)B

LT (−s)R + RL(s) + LT (−s)RL(s) + R = BT Φ−T (−s)QΦ−1 (s)B + R


On arrive à l’équation 5.42 dite Equation de Riccati Algébrique Fréquentielle :
T
BT ΦT (−s)QΦ(s)B + R = [I + L(−s)] R [I + L(s)] (5.42)
En faisant s = jω on arrive à une équation de la forme :

M(jω) = WT (−jω)W (jω)

W(jω) = R1/2 L(jω)


M(jω) = R + BT [−jωI − AT ]−1 Q[jωI − A]−1 B
En posant Q = CCT , R = DDT = I et WT (−jω)W(jω) = ||W(jω)||2 , on obtient :
||I + L(jω)||2 = I + ||CT [jωI − A]−1 B||2 (5.43)
L’équation 5.43 peut être utilisée pour obtenir le gain optimal K.
MDI224 / 2007-2008 / GB 43

Dans le cas mono-entrée/mono-sortie, 5.43 peut se reécrire :




1 + k T (jωI − A)−1 b ≥ 1 (5.44)

Ceci peut s’interpréter par le fait que le lieu de Nyquist reste hors du disque centré au point critique
et de rayon 1 (figure 5.1) ; la marge de gain est infinie et la marge de phase est au moins de 60˚.

Im

Re
60°

Figure 5.1: Marges de ain et phase pour la LQR

Exercice 5.2 (Commande d’altitude)


La fonction de transfert décrivant la dynamique de la commande d’un hélicoptère en altitude est donnée
par :
1
G(s) =
(20s + 1)(10s + 1)(0,5s + 1)

1. Donner une représentation d’état utilisant la matrice compagnon.

2. On veut optimiser la consommation pour un changement d’altitude de 10m en 5 secondes. Poser


le problème.

3.

4.
44 Chapitre 5 - Commande LQR
Chapitre 6

Principe de Pontryagin

Jusqu’ici on a considéré que les signaux n’étaient jamais bornés. Cela a permis de construire une
commande optimale. Dans les cas réels, les variables qui interviennent dans le système sont souvent
soumises à des saturations. Pour simplifier l’exposé on va se limiter ici au cas de la saturation des
variables de commande u(t).
La résolution du problème s’appuie sur le principe du maximum dû à Pontryagin (image du haut),
ou sur la programmation dynamique dûe à Bellman.

Lev Semenovich Pontryagin (3/9/1908 - 3/5/1988) est né à Moscou dans


une famille pauvre. A l’âge de quatorze ans un accident le laisse aveugle.
A partir de ce moment-là sa mère va lui servir d’auxiliaire. Elle assurera
cette tâche de façon autant remarquable que surprenante dans la mesure
où elle n’avait aucune formation mathématique particulière. Pontryagin
entre à l’université de Mocou en 1925 où il est reconnu tout de suite
comme un étudiant hors du commun. Aleksandrov et Khinchin sont ses
professeurs. A 19 ans il publie son premier travail important (théorème
de dualité d’Alexander).

Pontryagin s’intéressa à la topologie et à l’algèbre. Il prouva en 1934 le cinquième théorème de


Hilbert pour les groupes abéliens. Il abandonne le domaine des mathématiques fondamentales
pour se consacrer à partir de 1952 aux mathématiques appliquées et à la théorie du contrôle
automatique. En 1961 est publié “Théorie mathématique des processus optimaux” avec V. G.
Boltyanskii, R. V. Gamrelidze et E. F. Mishchenko. Ce livre s’est avéré un ouvrage de référence.

Richard Ernest Bellman (26 août 1920 - 19 mars 1984) est né à Brooklyn,
New York . Son goût pour les mathématiques a été remarqué dès ses
onze ans. Il fit de brillantes études secondaires au cours desquelles il
participa régulièrement à des concours de mathématiques. Il passa par
l’université John Hopkins avant de rejoindre Princeton puis participa au
projet Manhattan à Los Alamos. De retour à Princeton il fit une thèse
sous la direction de Lefschetz (stabilité des équations différentielles). En
1948 il prend un poste de professeur associé à Stanford. Sa première
publication sur la programmation dynamique date de 1952. Il est difficile
de présenter tous les travaux de R. Bellman. Auteur de 621 articles et
41 livres il s’intéressa aux problèmes de théorie des nombres, au contrôle
optimal, à la théorie des graphes. . .

6.1 Principe de Pontryagin


Nous allons ajouter une contrainte sur l’entrée :

u(t) ≤ U (6.1)

45
46 Chapitre 6 - Principe de Pontryagin

La condition nécessaire pour que u∗ (t) assure la minimalité de J est que, pour un ||δu(t)|| assez petit :

δJ(u∗ (t), δu(t) ≥ 0 (6.2)

Reprenons l’expression de la première variation en utilisant l’hamiltonien :


Z tf (   T
∗ ∂H ∂H
δJ(u (t), δu(t) = + λ̇(t) δx(t) + δu(t)
t0 ∂x ∗ ∂u ∗
 T )
∂H
+ − ẋ(t) δλ(t) dt
∂λ ∗
 T  
∂S ∂S
+ − λ(t) δxf + H + δtf (6.3)
∂x ∗tf ∂t ∗tf

Si les conditions 4.31, 4.32 et 4.33 sont satisfaites, la relation précédente devient :

Z tf  T
∂H
δJ(u∗ (t), δu(t) = δu(t)dt (6.4)
t0 ∂u

avec :
 T
∂H
δu(t) = H(x∗ (t), u∗ (t) + δu(t), λ∗ (t), t) − H(x∗ (t), u∗ (t), λ∗ (t), t) (6.5)
∂u

La condition 6.2 est alors :

H(x∗ (t), u∗ (t) + δu(t), λ∗ (t), t) ≥ H(x∗ (t), u∗ (t), λ∗ (t), t)

On peut aussi exprimer cette inégalité de la façon suivante :

min {H(x∗ (t), u(t), λ∗ (t), t)} = H(x∗ (t), u∗ (t), λ∗ (t), t) (6.6)
||u(t)||≤U

La procédure de recherche consiste donc à trouver u(t) qui satisfait 6.6, puis à résoudre 4.31, 4.32 et
4.33.
On démontre les propriétés suivantes :

1. Si tf est fixé et que H ne dépend pas de t, alors H reste constant le long de la trajectoire optimale.

2. Si tf n’est pas fixé et que H ne dépend pas de t, alors H est identiquement nul le long de la
trajectoire optimale.

6.2 Programmation dynamique


On se place ici dans le cadre du temps discret et d’états à niveaux discrets.

6.2.1 Principe d’optimalité

Si on considère une trajectoire optimale de A vers B, toute trajectoire de C ∈AB vers B est
optimale, quel que soit C.

La recherche de plus court chemin est un exemple d’application.


MDI224 / 2007-2008 / GB 47

6.2.2 Commande optimale et programmation dynamique


Considérons un système à temps discret défini par :
x(k + 1) = f (x(k), u(k), k) (6.7)
et la critère J :
kf −1
X
J(x(ki ) = S(x(kf ), kf ) + V (x(k), u(k)) (6.8)
ki

Supposons que l’on ait résolu le problème d’optimalité entre les instants k + 1 et kf . D’après le
principe d’optimalité, on peut écrire :

Jk∗ (x(k)) = min{V (x(k), u(k)) + Jk∗ (x∗ (k + 1))} (6.9)


u(k)

6.2.3 Cas du temps discret invariant


Soit le système linéaire invariant à temps :
x(k + 1) = Ax(k) + Bu(k) (6.10)
et le critère Ji :
kf −1
1 T 1 X T 
Ji = x (kf )Fx(kf ) + x (k)Qx(k) + uT (k)Ru(k) (6.11)
2 2 i
On cherche un commande optimale u∗ (k), l’état initial étant fixé et l’état final libre. On va supposer
ici qu’il n’y a pas de contrainte sur l’état x(t) et sur la commande u(t).
1. On remarque qu’à l’instant final :
1 T
Jkf = x (kf )Fx(kf )
2
2. A l’instant kf − 1, on a :
1 T 1
Jkf −1 = x (kf − 1)Qx(kf − 1) + uT (kf − 1)Ru(kf − 1) + Jkf (6.12)
2 2
On cherche une commande u∗ (kf − 1) qui minimise Jkf −1 :
1 T 1
Jkf −1 = x (kf − 1)Qx(kf − 1) + uT (kf − 1)Ru(kf − 1)
2 2
1
+ [Ax(kf − 1) + Bu(kf − 1)]T F[Ax(kf − 1) + Bu(kf − 1)] (6.13)
2
Comme on a supposé qu’il n’y avait pas de contrainte, on peut chercher le minimum à partir de la
dérivée :
∂Jkf −1
= 0 = Ru∗ (kf − 1) + BT F[Ax(kf − 1) + Bu∗ (kf − 1)]
∂u(kf − 1)

u∗ (kf − 1) = −[R + BT FB]−1 BT FAx(kf − 1)


= −L(kf − 1)x(kf − 1) (6.14)

La valeur du critère est alors :


1 T
Jkf −1 = x (kf − 1)P(kf − 1)x(kf − 1) (6.15)
2
avec
P(kf − 1) = [A − BL(kf − 1)]T F[A − BL(kf − 1)]
+ LT (kf − 1)RL(kf − 1) + Q
48 Chapitre 6 - Principe de Pontryagin

3. A l’instant kf − 2, on a :

1 T 1
Jkf −2 = x (kf − 2)Qx(kf − 2) + uT (kf − 2)Ru(kf − 2) + Jkf −1
2 2
1 T 1 T
= x (kf − 2)Qx(kf − 2) + u (kf − 2)Ru(kf − 2)
2 2
1 T
+ x (kf − 1)P(kf − 1)x(kf − 1) (6.16)
2

Comme précédemment on déduit u∗ (kf − 2) :

u∗ (kf − 2) = −[R + BT P(kf − 1)B]−1 BT P(kf − 1)Ax(kf − 2)


= −L(kf − 2)x(kf − 1) (6.17)

La valeur du critère a la forme :


1 T
Jkf −2 = x (kf − 2)P(kf − 2)x(kf − 2) (6.18)
2

4. A l’instant k la commande optimale est donnée par :

u∗ (k) = −[R + BT P(k + 1)B]−1 BT P(k + 1)Ax∗ (k) = −L(k)x∗ (k) (6.19)

où P(k + 1) est solution de l’équation de Riccati :

P(k) = [A − BL(k)]T P(k + 1)[A − BL(k)] + L(k)T RL(k) + Q (6.20)

avec P(kf ) = F.
La valeur du critère à l’instant k est :
1 ∗T
Jk∗ = x (k)P(k)x∗ (k) (6.21)
2

6.2.4 Cas du temps continu


On a intérêt à passer par des modèles discrets équivalents du système à temps continu et appliquer ce
qui vient d’être présenté [3].

6.3 Recherche de la commande en boucle fermée


Revenons au problème :
ẋ(t) = f (x(t), u(t), t) (6.22)
Z tf
J(x(t0 ), t0 ) = V (x(t), u(t), t)dt (6.23)
t0

Soit J ∗ (x∗ (t), t) la valeur optimale du critère lorsqu’on part de l’état x(t) :
Z tf
∗ ∗
J (x (t), t) = V (x∗ (v), u∗ (v), v)dv (6.24)
t

 T
dJ ∗ (x∗ (t), t) ∂J ∗ (x∗ (t), t) ∂J ∗ (x∗ (t), t)
= ẋ∗ (t) +
dt ∂x∗ ∂t
 T
∂J ∗ (x∗ (t), t) ∗ ∗ ∂J ∗ (x∗ (t), t)
= f (x (t), u (t), t) +
∂x∗ ∂t
∗ ∗
= −V (x (t), u (t), t) (6.25)
MDI224 / 2007-2008 / GB 49

On introduit l’hamiltonien :
 ∗ ∗ T
∂J (x (t), t)
H = V (x(t), u(t), t) + f (x(t), u(t), t) (6.26)
∂x∗
dans lequel l’état adjoint est donné par :
∂J ∗ (x∗ (t), t)
λ∗ (t) = (6.27)
∂x∗
A partir de 6.25 et 6.26 on déduit (équation de Hamilton-Jacobi-Bellman) :
 
∂J ∗ (x∗ (t), t) ∂J ∗ (x∗ (t), t) ∗
+ H x∗ (t), , u (t), t = 0, ∀t ∈ [t0 , tf ) (6.28)
∂t ∂x∗
avec :
J ∗ (x∗ (tf ), tf ) = 0 ou J ∗ (x∗ (tf ), tf ) = S(x∗ (tf ), tf ) (6.29)
Ayant u∗ à partir de 4.30, la relation 4.31 donne :
 
  ∗ ∗ ∂H x∗
(t), ∂J ∗ (x∗ (t),t)
, u ∗
(t), t
∗ ∂H d ∂J (x (t), t) ∂x ∗
λ̇ (t) = − = =− (6.30)
∂x ∗ dt ∂x∗ ∂x∗
Avec les notations :
∂J ∗ (x∗ (t), t) ∂J ∗ (x∗ (t), t)
: labelnotatpontryagJt∗ = et Jx∗ = (6.31)
∂t ∂x∗

Jt∗ + H(x∗ (t), Jx∗ , u∗ (t), t) = 0 (6.32)

Exemple 6.1 On considère le problème défini par :


ẋ(t) = −2x(t) + u(t) (6.33)
Z
1 1 tf 2
J = x2 (tf ) + [x (t) + u2 (t)]dt (6.34)
2 2 0
1. Hamiltonien (6.26) :
1 2 1
H= x (t) + u2 (t) + Jx × (−2x(t) + u(t))
2 2

2. Condition nécessaire pour la commande :


∂H
= 0 ⇒ u(t) + Jx = 0 ⇒ u∗ (t) = −Jx
∂u

3. Hamiltonien optimal :
1 2 1 1 1
H= x (t) + Jx2 + Jx (−2x(t) − Jx ) = x2 (t) − Jx2 − 2x(t)Jx
2 2 2 2

4. L’équation 6.32 devient :

1 1
Jt + x2 (t) − Jx2 − 2x(t)Jx = 0 (6.35)
2 2
avec pour condition à la limite :
1 2
J(x(tf ), tf ) = S(x∗ (tf ), tf ) = x (tf )
2
50 Chapitre 6 - Principe de Pontryagin

5. Pour résoudre l’équation HJB 6.35, posons J(x(t)) = 21 p(t)x2 (t). On vérifie que p(tf ) = 1, Jx =
p(t)x(t) et Jt = 12 ṗ(t)x2 (t). La commande optimale est alors u∗ (t) = −p(t)x∗ (t). L’équation HJB
devient alors :
 
1 1 2 1
ṗ(t) − p (t) − 2p(t) + x∗2 (t) = 0
2 2 2
√ √ √ √
( 5 − 2) + ( 5 + 2)αe2 5(t−tf ) 3− 5
⇒ p(t) = √ avec α = √
1 − αe2 5(t−tf ) 3+ 5

6. Si on fait tendre tf vers +∞, p(t) → p = 5 − 2 et la commande devient :

u∗ (t) = (2 − 5)x(t)

6.4 Application à la commande LQR


L’équation HJB peut être utilisée dans le cas de la commande LQR. Soit en effet le problème :

ẋ(t) = A(t)x(t) + B(t)u(t) (6.36)


Z
1 1 tf  T 
J = xT (tf )Fx(tf ) + x (t)Q(t)x(t) + uT (t)R(t)u(t) dt (6.37)
2 2 t0
1. Hamiltonien :
1 T 1
H(x(t), u(t), Jx∗ , t) = x (t)Q(t)x(t) + uT (t)R(t)u(t)
2 2
+ Jx∗T (x(t), t)[A(t)x(t) + B(t)u(t)]

2. Condition nécessaire d’optimalité :


∂H
= 0 ⇒ u∗ (t) = −R−1 (t)BT (t)Jx∗T (x(t), t)
∂u
∂2H
On remarque que ∂u2 = R(t) est définie positive, donc que l’on a un minimum.
3. Avec la commande précédente l’équation HJB devient :
1 1
Jt∗ + x∗T (t)Q(t)x∗ (t) − Jx∗T B(t)R−1 (t)BT (t)Jx∗ + Jx∗T A(t)x∗ (t) = 0
2 2
1
avec J ∗ (x(tf ), tf ) = x∗T (tf )F(tf )x∗ (tf )
2

4. Pour résoudre cette équation on pose (on ne reproduit pas le signe pour alléger l’écriture) :
1 T
J ∗ (x(t), t) = x (t)P(t)x(t)
2
où P(t) est symétrique, définie, positive. On remarque que :
∂H 1 ∂H
= Jt = xT (t)Ṗ(t)x(t) et = Jx = P(t)x(t)
∂t 2 ∂x

L’équation HJB devient :

Ṗ(t) = −P(t)A(t) − AT (t)P(t)P(t)B(t)R−1 (t)BT (t)P(t) − Q(t) (6.38)

avec P(tf ) = F(tf ).


5. La commande optimale est donnée par :

u∗ (t) = −R−1 (t)BT (t)P(t)x∗ (t) (6.39)


Chapitre 7

Commande LQG

7.1 Introduction
L’article de référence dû à R. E. Kalman [7] date de 1960. On y trouve une solution récursive au problème
de filtrage linéaire “en temps discret”. Le filtre de Kalman offre une estimation de l’état passé, présent
ou futur même si le modèle du procédé étudié est mal connu [2].

Rudolf Emil Kalman est né à Budapest en 1930. Il suit les cours du
Massachusetts Institute of Technology en 1953 et 1954 puis passe son
doctorat en 1957 au sein de l’université de Columbia. Il est successivement
chercheur en mathématiques au RIAS (Research Institute for Advanced
Study) de Baltimore puis professeur à l’université de Stanford. Depuis
1973 il détient la chaire de Théorie Mathématiques des Systèmes à Zurich
(Swiss Federal Institute of Technology). Ses travaux l’ont fait honorer par
de nombreuses distinctions.
Les développements du filtre de Kalman-Bucy en 1960-61 ont révolutionné le
domaine de l’estimation. Les contributions de R. E. Kalman à la théorie des
sytèmes ne se limitent cependant pas à cela. Les principaux résultats connus
sur les représentations d’état lui doivent en effet beaucoup (commandabilité,
observabilité. . . ).

51
52 Chapitre 7 - Commande LQG
Chapitre 8

Remarques sur les équations de


Riccati

8.1 Quelques systèmes d’équations matricielles


Un certain nombre d’équations matricielles reviennent régulièrement dans les problèmes d’optimisation
quadratique. Leur résolution, pour laquelle on trouve un grand nombre de références dans la littérature,
fait appel à des techniques communes dont nous donnons quelques éléments dans ce chapitre.

− Equation de Sylvester :

AX − XB = C (8.1)

− Equation de Lyapunov (cas particulier du précédent) :

PA + AT P + Q = 0 (8.2)

− Equation algébrique de Riccati générale (ARE générale) :

PA + AT P + PLP + Q = 0 (8.3)

avec Q et L symétriques et L de signe donné.

8.2 Lien avec le contrôle optimal


Nous avons vu précédemment comment les problèmes d’optimisation quadratique en temps infini font
apparaı̂tre une équation de Riccati algébrique. Rappelons ici deux cas importants.

Contrôle optimal, cas déterministe


On se donne un système (A, B, C) et un critère :
Z +∞ Z +∞
1 1
J(x0 , u) = yT ydt + uT udt (8.4)
2 0 2 0

Soit P solution unique et stabilisante (A − BBT P stable) de :

PA + AT P − PBBT P + CCT = 0 (8.5)

alors le contrôle optimal est donné par :

u⋆ = −BT Px (8.6)

53
54 Chapitre 8 - Remarques sur les équations de Riccati

8.2.1 Contrôle optimal, Kalman déterministe


On se donne un système : 
ẋ(t) = Ax(t) + Bu(t) + w
y(t) = Cx(t) + Du(t) + v
   
où w et v sont blancs, gaussiens, indépendants avec E wwT = Q ≥ 0 et E vvT = R > 0.
Alors l’observateur x̂(t) défini par
x̂˙ = Ax̂(t) + Bu(t) + L(y − Cx̂ − Du) (8.7)
avec L = PCT R−1 et P solution de :
PA + AT P − PCT R−1 CP + Q = 0 (8.8)
est optimal (E [||x(t) − x̂(t)||2 ] → 0 lorsque t → +∞).

8.3 Résolution de l’ARE générale


Considérons [11] A, L et Q des matrices réelles. P est appelée solution stabilisante de
PA + AT P + PLP + Q = 0 (8.9)
si elle est solution de 8.9 et que A + LP est de Hurwitz.
On appelle matrice hamiltonienne H associée à 8.9 la matrice :
 
A L
H= (8.10)
−Q −AT
Etant donné J tel que
 
0 −In
J= ⇒ HT J + JH = 0
In 0
(H est hamiltonienne ⇔ JH symétrique)

Propriété 8.1
λ valeur propre de H ⇒ −λ , λ∗ et −λ∗ sont valeurs propres de H.

(H est réelle ⇒ λ∗ est valeur propre. On a Hv = λv ⇒ JHv = λJv ⇒ HT w = −λw avec w = Jv.)

Propriété 8.2
Condition nécessaire : l’équation 8.9 admet une solution stabilisante si H n’a aucune valeur propre sur
l’axe imaginaire.
On a :
   
I I
HW = H n = n (A + LP)
P P
Le SEV engendré par les vecteurs colonnes de W est invariant par H. La restriction de H à ce
sous-espace admet A + LP comme matrice sur cette base.
On peut en effet écrire :

" # " # " #


In w∗,n+1 ··· w∗,2n In w∗,n+1 ··· w∗,2n A + LP r∗,n+1 ··· r∗,2n
H .. .. = .. .. × .. ..
P . ··· . P . ··· . 0 . ··· .
Dans la nouvelle base définie par 2n vecteurs dont les n premiers sont donnés par W, on voit, d’après
la forme prise par la matrice H, que l’ensemble des valeurs propres de H contient l’ensemble des valeurs
propres de A + LP. A cause de la propriété 8.1, H n’a aucune valeur propre sur l’axe imaginaire.

L’obtention d’une solution P passe par la recherche d’un sous-espace invariant par H tel que la
restriction de H à ce sous-espace soit stable.
MDI224 / 2007-2008 / GB 55

8.3.1 Equation de Sylvester


Propriété 8.3
L’équation de Sylvester 8.1 a une solution unique si et seulement si les spectres de A et de B sont disjoints.

Considérons le produit tensoriel C = A ⊗ B = [ai,j B] où A est n × n et B est m × m. Le spectre de


A ⊗ B est égal à l’ensemble produit des spectres de A et de B.
Si λ et µ sont valeurs propres respectives de A et B avec les vecteurs propres v et w, on a :

(A ⊗ B)(v ⊗ w) = λµ(v ⊗ w)
⇒ Spectre{A} × Spectre{B} ⊂ Spectre{A ⊗ B}

On admettra l’égalité des deux ensembles (c’est immédiat si A et B sont diagonalisables; cas non
diagonalisable par continuité ou par Jordan). De la même façon, le spectre de (A ⊗ Im + In ⊗ B) est égal
à la somme des spectres de A et de B.
Exemple :
 
λ 1 0  
  α 0
A = 0 λ 1 et B =
0 β
0 0 λ

 
λIm Im 0  
  αIn 0
A ⊗ Im + In ⊗ B = 0 λIm Im +
0 βIn
0 0 λIm
   
λ 0 1 0 0 0 α 0 0 0 0 0
0 λ 0 1 0 0  0 α 0 0 0 0
   
0 0 λ 0 1 0  0 0 α 0 0 0
=   
0 0 0 λ 0 1 +  0 0 0

   β 0 0
0 0 0 0 λ 0  0 0 0 0 β 0
0 0 0 0 0 λ 0 0 0 0 0 β

On forme, à partir de la matrice X (n × n), un vecteur colonne X̂ (n × n, 1) formé des colonnes de X.

Propriété 8.4
On a les propriétés suivantes :

d
AX = (In ⊗ A) × X̂
d
XB = (BT ⊗ Im ) × X̂
\
AXB = (BT ⊗ A) × X̂

On a les équivalences :

AX − XB = C ⇔ d − XB
AX d = Ĉ ⇔ (In ⊗ A − BT ⊗ Im ) × X̂ = Ĉ (8.11)

Exemple : on fait les associations suivantes à AX et XB :


 
      x11
a11 a12 x11 x12 A 0 x12 
AX = × → × 
x21  = (I2 ⊗ A) × X̂
a21 a22 x21 x22 0 A
x22
 
      x11
x x12 b b12 b I b21 I2 x12 
XB = 11 × 11 → 11 2 ×  T
x21  = (B ⊗ I2 ) × X̂
x21 x22 b21 b22 b12 I2 b22 I2
x22
56 Chapitre 8 - Remarques sur les équations de Riccati

Conséquence de l’équivalence 8.11 : étant donné que les valeurs propres de (In ⊗ A − BT ⊗ Im )
sont données de la formes λA − λB , l’équation de Sylvester 8.1 aura des solutions si et seulement si les
spectres de A et B n’ont aucune valeur commune, d’où la propriété 8.3.
Application : on veut trouver un changement de base qui permette d’effectuer le passage (mise sous
forme “bloc-diagonale”) :
       
A C A 0 I X Im −X
T= → = S−1 TS avec S = m et S−1 =
0 B 0 B 0 In 0 In

X est solution de l’équation de Sylvester 8.1.

8.3.2 ARE générale


On admettra le résultat suivant :

Théorème 8.1
On considère l’équation 8.3 où A, Q et L sont réelles, avec Q et L symétriques et L semi-définie de signe
donné. On considère la matrice hamiltonienne
 
A L
H=
−Q −AT

Une CNS d’existence d’une solution unique symétrique stabilisante est

1. H n’a aucune valeur propre sur l’axe imaginaire ;

2. La paire (A, L) est stabilisable.

Construction de la solution
Définition 8.1 (Décomposition de Schur)
Soit A ∈ Cn×n . Il existe une matrice unitaire Q ∈ Cn×n (QH Q = QQH = I) telle que :

QH AQ = T = D + N

où D = diag{λ1 . . . λn } et N une matrice strictement triangulaire supérieure (les éléments sur sa diagonale
sont nuls).

On considère une décomposition en blocs de la forme T :


   
T11 T12 S11 S12
HS = ST avec T = et S =
0 T22 S21 S22

où les valeurs propres de T11 sont stables. On admettra que S11 est symétrique et inversible (on peut
montrer que cette hypothèse est liée à la stabilisabilité du système, propriété que l’on suppose remplie).
On peut alors écrire :
        
S11 −1 I S11 −1 I −1 I
H S =H = T11 S11 = S T S = K
S21 11 V S21 V 11 11 11 V

En remplaçant H par sa valeur on obtient :



A + LV = K
⇒ VA + AT V + Q + VLV = 0
−AT V − Q = VK

On retrouve bien l’ARE de départ dont la solution est donnée par S21 S−1
11 .
MDI224 / 2007-2008 / GB 57

Considérons donc l’ARE :

PA + AT P − PLP + Q = 0 (8.12)

1. On construit H ;

2. On met H sous forme de Schur complexe ;

3. On vérifie qu’il n’y a pas de valeur propre sur l’axe imaginaire :

4. On prend les n vecteurs propres associés à des valeurs propres stables pour en faire une
matrice S ;
5. On extrait les blocs S11 et S21 (partition de la matrice W) et P = S21 S−1
11 .

%===== exoLQRARE.m =====


% Regulateur
A=[0 1;0 0]; B=[0;1]; C=[1 0]; Nss=size(A,1);
R=1; Q=[1 0;0 0];
% Resolution de PA+A’P+Q-PBR^(-1)B’P=0
%===== Matrice hamiltonienne
H=[A -B*inv(R)*B’; -C’*C -A’];
%===== Forme complexe de Schur
[U,T]=schur(H); [U,T]=rsf2csf(U,T);
% (H n’a pas de vp sur l’axe imaginaire)
% On se donne une tolerance epstol
vd=diag(T);
epstol=10*eps*max(abs(vd));
idx=find(abs(vd)>-epstol & abs(vd)<epstol);
if ~isempty(idx),
error(’Valeurs propres imaginaires pures’)
end
% Stabilisabilite de (A,BB’) <=> ((A,B) stabilisable):
% les modes non commandables doivent etre stables.
[Us,Ts]=reod(U,T);
%===== On prend Nss vecteurs propres stables
S=Us(:,1:Nss); S11=S(1:Nss,:); S21=S(Nss+1:2*Nss,:);
P=real(S21*inv(S11))
%===== Retour d’etat
K=-B’*P

function [Us,Ts]=reod(Ue,Te)
%!=============================================================!
%! Rearrangement pour avoir les valeurs propes stables en tete !
%!=============================================================!
vd=diag(Te);
idxn=find(real(vd)<0); idxp=find(real(vd)>0);
Lidx=length(idxp);
Ts=Te; Us=Ue;
for k=1:Lidx
ix=idxn(k);
if ix>Lidx
for n=1:Lidx
iy=idxp(n);
if iy<=Lidx,
% permutation entre ix et iy
for m=ix:-1:iy+1
id1=m-1; id2=m; % de proche en proche
g=givens(Ts(id1,id1)-Ts(id2,id2),Ts(id1,id2));
g=flipud(g);
Ts(:,[id1,id2])=Ts(:,[id1,id2])*g;
Ts([id1,id2],:)=g’*Ts([id1,id2],:);
Us(:,[id1,id2])=Us(:,[id1,id2])*g;
idxn(k)=id1; idxp(n)=id2;
58 Chapitre 8 - Remarques sur les équations de Riccati

end
n=Lidx+1; % (exit for)
end
end
end
end

On obtient pour le cas considéré :


P =
1.4142 1.0000
1.0000 1.4142
K =
-1.0000 -1.4142
Chapitre 9

Indications et corrigés

9.1 (Intégrateur double, calcul direct du retour d’état) (page 20)

1. Le calcul de la matrice P donne :


       
0 −k p11 p12 p p12 0 1 1 + λk 2 λk 2
+ 11 =−
1 −k p21 p22 p21 p22 −k −k λk 2 1 + λk 2

1 + λk 2 (1 + λk 2 )(1 + k) 1 + λk 2
p12 = p21 = , p22 = , p11 = 1 + (9.1)
2k 2k 2 2k

(4k + 1)(1 + λk 2 )
J =1+ (9.2)
2k 2
2. Allure de J(λ, k) (figure 9.1) :

%===== DINTCRITCD.M
figure(1)
debl=.2; pasl=.2; debk=.125; pask=.1;
[lambda,k] = meshgrid(debl:pasl:3,debk:pask:5);
J=1+(1+lambda.*k.*k).*(4*k+1)./k./k/2;
mesh(lambda,k,J)
xlabel(’lambda’); ylabel(’k’); grid
view(-65,20)
%===== Cas de lambda=1
k=[debk:pask:5];
figure(2); plot(k,J(:,5)); grid

Le calcul de la dérivée (numérateur en 2k 3 −2k−1 = 0) pour λ = 1 donne kmin ≈ 1,19148788395312.

format long; roots([2 0 -2 -1]), format

3. Stabilité du système bouclé : en boucle fermée on a :


 
T 0 1
A − bk =
−k −k

Le tracer du lieu des pôles calculé directement est donné figure 9.2.

%===== ETUDSTAB.M =====


k=(.1:.1:5);
% En general on utilisera eig(A-BK’)
rc1=(-k+sqrt(k.*k-4*k))/2; rc2=(-k-sqrt(k.*k-4*k))/2;
plot(rc1); hold on; plot(rc2);
plot(rc1,’x’); plot(rc2,’x’);
hold off; grid

59
60 Chapitre 9 - Indications et corrigés

60

50

40

30

20

10 3
0 2
5 4 1 lambda
3 2
k 1 0 0

Figure 9.1: Allure du critère (avec le cas particulier λ = 1)

0,75

0,5

0,25

−0,25

−0,5

−0,75

−1
−4 −3,5 −3 −2,5 −2 −1,5 −1 −0,5 0

Figure 9.2: Lieu des pôles

Le système reste stable ∀k > 0.


Dans le cas k = kmin :
 
0 1
A − bk T =
−kmin −kmin

4. Trajectoire de phase (figure 9.3 :

%===== trajphasecd.m
k=1.19148788395312;
MDI224 / 2007-2008 / GB 61

A=[0 1;-k -k]; x0=[1;1];


t=[0:.1:10]; lt=length(t);
for k=1:lt, xt(:,k)=expm(A*t(k))*x0; end
figure(1); plot(xt(1,:),xt(2,:)); grid
figure(2); plot(t,xt(1,:)); grid

0,8

0,6 1,2
1
0,4 0,8
0,6
0,2 0,4
0,2
0
0
−0,2 −0,2
0 1 2 3 4 5 6 7 8 9 10
−0,4

−0,6

−0,8
−0,2 0 0,2 0,4 0,6 0,8 1 1,2 1,4

Figure 9.3: Trajectoire de phase)

9.2 (Intégrateur double, utilisation de l’hamiltonien) (page 33)

1. (a) Ecriture de l’hamiltonien (on remarque que S = 0) :


 
1 2   x2 (t)
H = V + λT (t)f = u (t) + λ1 (t) λ2 (t)
2 u(t)
1 2
= u (t) + λ1 (t)x2 (t) + λ2 (t)u(t)
2
(b) On résoud 4.30 : ⇒ u∗ (t) = −λ∗2 (t).
(c) On obtient H∗ : ⇒ H∗ = λ∗1 (t)x∗2 (t) − 21 λ∗2
2 (t).
(d) Relations 4.31 :
   
∂H ∂H
= 0 = −λ̇∗1 (t) et = λ∗1 (t) = −λ̇∗2 (t)
∂x1 ∗ ∂x2 ∗

Relations 4.32 :
   
∂H ∂H
= ẋ∗2 (t) = −λ∗2 (t) et = ẋ∗1 (t) = x∗2 (t)
∂λ2 ∗ ∂λ1 ∗

On résoud ce système de quatre équations :


 ∗

 λ1 (t) = c3

 λ∗ (t) = −c t + c
2 3 4
 ∗ c3 2

 x2 (t) = 2 t − c4 t + c2
 ∗ c3 3 c4 2
x1 (t) = 6 t − 2 t + c2 t + c1
62 Chapitre 9 - Indications et corrigés

%===== trajphase.m =====


t0=0; tf=2; pas=.05;
t=[t0:pas:tf]; t2=t.*t; t3=t2.*t;
c1=1; c2=2; c3=3; c4=4;
x1opt=c3*t3/6-c4*t2/2+c2*t+c1;
x2opt=c3*t2/2-c4*t+c2;
figure(1); plot(x1opt,x2opt); grid
figure(2); plot(t,x1opt); grid

x2(t)

1,5 1,5
1,4
1,3 1
1,2
1,1 0,5
1
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2
0

−0,5

−1
1 1,1 1,2 1,3 1,4 1,5 x1(t)

Figure 9.4: Allure de la trajectoire de phase

(e) Comme u∗ (t) = −λ∗2 (t) :


u∗ (t) = c3 t − c4
Les conditions aux limites nous permettent de calculer les constantes :
c1 = 1, c2 = 2, c3 = 3 et c4 = 4

2. (a) Les solutions sont toujours données par :


x∗1 (t) = c63 t3 − c24 t2 + c2 t + c1
x∗2 (t) = c23 t2 − c4 t + c2
λ∗1 (t) = c3
λ∗2 (t) = −c3 t + c4
u∗ (t) = c3 t − c4
tf vaut 2, donc δtf = 0. δx2f est arbitraire. De plus S = 0. D’où :
 
∂S
λ2 (tf ) = λ2 (2) = = 0 ⇒ c4 = 2c3
∂x2 ∗tf

(b) Avec les conditions aux limites ainsi exprimées, on obtient :


c1 = 1, c2 = 2, c3 = 15/8 et c4 = 15/4

3. (a) δ étant libre, on a à prendre en compte les relations :


 
∂S 1
H+ = 0 ⇒ λ1 (tf )x2 (tf ) − λ22 (tf ) = 0 (9.3)
∂t tf 2
MDI224 / 2007-2008 / GB 63
 
∂S
et λ2 (tf ) = =0
∂x2
(b) Avec H∗ = λ∗1 (t)x∗2 (t) − 12 λ∗2
2 (t), on obtient :
x(0) = [1 2]T ⇒ c1 = 1 et c2 = 2;
λ2 (tf ) = 0 ⇒ tf = c3 /c4 ;
λ2 (tf ) = 0 et 9.3 ⇒ x2 (tf ) = 0 ⇒ c24 = 4c3 ;
x1 (tf ) = 3 ⇒ 3c34 = 16c3 .

c1 = 1, c2 = 2, c3 = 4/9, c4 = 4/3 et tf = 3

9.3 (Intégrateur double, contrôle LQR) (page 38)

1. On passe par le système hamiltonien 5.8 :


 
  0 1 0 0
A −BR−1 BT 0 0 0 −1
H= =−1 0

−Q −AT 0 0
0 0 −1 0

La solution de ce système est donnée par :


 ∗   ∗ 
x (t) H(t−tf ) x (tf )
=e
λ∗ (t) λ∗ (tf )

Or (relation 5.9), λ∗ (tf ) = F(tf )x∗ (tf ) = 2x∗ (tf ) :


 ∗   ∗   ∗    
x (t) H(t−tf ) x (tf ) x (tf ) H˜ (t) H˜12 (t) x∗ (tf )
⇒ ∗ =e = H̃ = ˜11
λ (t) 2x∗ (tf ) 2x∗ (tf ) H21 (t) H˜22 (t) F(tf )x∗ (tf )

d’où on déduit l’expression de P(t) (λ∗ (t) = P(t)x∗ (t)) :

x∗ (t) = (H̃11 + H̃12 F(tf ))x∗ (tf ) et λ∗ (t) = (H̃21 + H̃22 F(tf ))x∗ (tf )
⇒ P(t) = (H̃21 + H̃22 F(tf ))(H̃11 + H̃12 F(tf ))−1
⇒ K(t) = R−1 (t)BT P(t)

2. En horizon infini, on résoud PA + AT P + QT Q − PBBT P = 0 :


       
0 p11 0 0 1 0 p p p12 p22  √ 
+ + − 12 21 2 =0⇒K= 1 2
0 p21 p11 p12 0 0 p21 p22 p22

3. Taper :

%===== exoLQR.m =====


% Regulateur
A=[0 1;0 0]; B=[0;1]; R=1; Q=[1 0;0 0]; F=2*eye(2,2); tf=8;
%===== calcul du gain de Kalman
Kt=KalmanGain(A,B,R,Q,F,tf,N);
%===== Simulation du systeme
x0=[1;1]; xt=[x0 zeros(2,N)];
vp=zeros(2,N);
for k=2:Npts
Ao=A-B*Kt(k-1,:);
xt(:,k)=expm(Ao*dT)*xt(:,k-1);
vp(:,k-1)=eig(Ao);
end
%figure(1); plot(xt(1,:)+i*xt(2,:)); grid
figure(2); plot(vp(1,:),’x’);
64 Chapitre 9 - Indications et corrigés

hold on; plot(vp(1,:)); plot(vp(2,:),’o’);


plot(vp(2,:)); hold off; grid
%===== Resolution a horizon infini
K=[1 sqrt(2)]; Ainf=A-B*K;
for k=1:Npts
xinf(:,k)=expm(Ainf*t(k))*x0;
end
figure(1); plot(xt(1,:)+i*xt(2,:)); grid
hold on; plot(xinf(1,:)+i*xinf(2,:),’r’); hold off

1
x2(t)
1,4
0,8 x1(t)
1,2
1

0,03
0,6 0,8
(1) 0,6
0,02
0,4
0,4
0,01 0,2

(2) 0
0 0,2 −0,2
0 1 2 3 4 5 6 7 8
−0,01
(3) x1(t)
−0,02 0
−0,03

−0,04
−0,2
−0,05 −0,04 −0,03 −0,02 −0,01 0 0,01

−0,4

−0,6
−0,2 0 0,2 0,4 0,6 0,8 1 1,2 1,4

Figure 9.5: Trajectoire de phase et retour à zéro de l’état x1 (t). (1) : résolution
de la DRE avec F = 2I, résolution de l’ARE avec F = 2I, résolution de la DRE
avec F = 6I.

9.4 (Commande d’altitude) (page 43)

1. Représentation d’état :

%===== helico.m =====


%===== Building the state model
num=1;
den=conv(conv([20,1],[10,1]),[.5,1]);
A=compan(den); B=[1;0;0]; C=[1 0 0]; D=0;
nd=length(B);

      
x1 −2,15 −0,305 −0,01 x1 1
d   
dt
x 2 = 1 0 0  x2  + 0 u(t)
x3 0   1 0 x3 0
  x1
y(t) = 1 0 0 x2 
x3

2. On cherche à minimiser un critère de la forme :


Z
1 T
2 1 5 2
J= yf − c x(tf ) + u (t)dt avec x(0) = 0 avec yf = 10
2 2 0
MDI224 / 2007-2008 / GB 65

0,8

0,6

0,4

0,2

−0,2

−0,4

−0,6

−0,8

−1
−2 −1,8 −1,6 −1,4 −1,2 −1 −0,8 −0,6 −0,4 −0,2 0

Figure 9.6: Trajectoire des valeurs propres (DRE avec F = 2I)

3. Approche utilisant l’hamiltonien :

H(x(t), u(t), t) = V (x(t), u(t), t) + λT (t)f (x(t), u(t), t)


1 2
= u (t) + λT (t)(Ax(t) + bu(t))
2

On a les quatre relations suivantes (la valeur de tf est fixée et donne la quatrième) :
   
∂H ∂H ∗ ∂H ∗ ∂S
= 0, = ẋ (t), = −λ̇ (t), λ(tf ) = (9.4)
∂u ∗ ∂λ ∂x ∗ ∂x ∗tf

On obtient :

u∗ (t) = −bT λ∗ (t), (9.5)


ẋ∗ (t) = Ax∗ (t) + bu∗ (t), (9.6)

λ̇ (t) = −x∗ (t) − AT λ∗ (t) (9.7)
λ(tf ) = cT cx(tf ) − cyf (9.8)

On cherche une matrice P(t) telle que λ∗ (t) = P(t)x∗ (t) − g(t).

λ̇ (t) = Ṗ(t)x∗ (t) + P(t)ẋ∗ (t) − ġ(t)

En reportant les résultats 9.5 dans l’expression précédente, on arrive au système différentiel suivant :

( dP(t) T
dt =−AT P(t) − P(t)A
 + P(t)bb P(t) (9.9)
ġ(t) = −AT + P(t)bbT g(t)

avec P(tf ) = ccT et g(tf ) = cyf (λ∗ (t) = P(t)x∗ (t) − g(t)).
La commande optimale est alors donnée par :

u∗ (t) = −k T x∗ (t) + bbT g(t) = −bT P(t)x∗ (t) + bbT g(t) (9.10)
66 Chapitre 9 - Indications et corrigés

La trajectoire optimale est donnée par :

x∗ (t) = (A − bk T (t))x∗ (t) + bbT g(t)) (9.11)

4. Construction et résolution du système hamiltonien 9.12 :


 ∗    
ẋ (t) A −bbT x∗ (t)
∗ = (9.12)
λ̇ (t) 0 −AT λ∗ (t)

%===== helico2.m =====


%===== Solving the DRE
H=[A -B*B’;zeros(nd,nd) -A’]; % systeme hamiltonien
tf=5; yf=10;
N=159; dT=tf/N; t=[0:dT:tf]; Npts=N+1;
Ktf=B’; Kt=[zeros(N,nd);Ktf]; gt=[zeros(nd,N) C’*yf];
for k=N:-1:1
eHt=expm(H*(t(k)-tf));
H11=eHt(1:nd,1:nd); H12=eHt(1:nd,nd+1:2*nd);
H22=eHt(nd+1:2*nd,nd+1:2*nd);
Pt=H22*inv(H11+H12);
gt(:,k)=gt(:,k+1)+(Pt*B*B’-A’)*gt(:,k+1); % approximation
Kt(k,:)=B’*Pt - B’*gt(:,k); % gain de Kalman
end

%===== Simulation du systeme


x0=zeros(nd,1); xt=[zeros(nd,N) xf];
for k=Npts-1:-1:1
Ao=A-B*Kt(k,:);
xt(:,k)=expm(-Ao*dT)*xt(:,k+1);
end
plot(t,xt(1,:))

Exercice 9.1 (Commande d’altitude) (page 66)


On considère la fonction de transfert simplifiée d’un système de commande :
a
G(s) = (9.13)
(s + 1)s
1. Donner la représentation d’état dont le vecteur est constitué de la sortie et de sa dérivée.
 T
2. On effectue un retour d’état par k = k1 k2 (voir schéma 1). Donner la nouvelle représentation
d’état et la nouvelle fonction de transfert.

9.5 (Euler-Lagrange) (page 66)

1. Schéma associé au modèle :

+1
u(t) − x1(t) x2(t)
+ − a

k1
k2

Figure 9.7: Schéma avec retour d’état

En boucle ouverte on a :
1 d x1 d
x1 = − + u(t) et x2 = x1
a dt a dt
MDI224 / 2007-2008 / GB 67

D’où la représentation d’état en boucle ouverte :


   
−1 0 a  
A= , b= , cT = 0 1 (9.14)
1 0 0

2. Représentation d’état en boucle fermée :


   
T −(1 + ak1 ) −ak2 a  
Af = A − bk = , b= , cT = 0 1 (9.15)
1 0 0

et la fonction de transfert H(s) = cT (sI − A)−1 b :


a
H(s) = (9.16)
s2 + (1 + ak1 )s + ak2

3. En absence d’entrée, on a une solution de la forme (cas λ1 6= λ1 ) :

x(t) = eAt x(0)

et la résolution de l’équation sans second membre est de la forme :



x2 (t) = µ1 eλ1 t + µ2 eλ2 t
x1 (t) = λ1 µ1 eλ1 t + λ2 µ2 eλ2 t

avec les conditions aux limites :



x2 (0) = µ1 + µ2 x1 (0) − λ2 x2 (0) x1 (0) − λ1 x2 (0)
⇒ µ1 = et µ2 =
x1 (0) = λ1 µ1 + λ2 µ2 λ1 − λ2 λ2 − λ1
(
eλ1 T (x1 (0)−λ2 x2 (0))−eλ2 T (x1 (0)−λ1 x2 (0))
x2 (T ) = µ1 eλ1 T + µ2 eλ2 T = λ1 −λ2
λ1 T λ2 T
x1 (T ) = λ1 µ1 eλ1 T + λ2 µ2 eλ2 T = λ1 e (x1 (0)−λ2 x2 (0))−λ λ1 −λ2
2e (x1 (0)−λ1 x2 (0))


x2 (T )(λ1 − λ2 ) = eλ1 T (x1 (0) − λ2 x2 (0)) − eλ2 T (x1 (0) − λ1 x2 (0))
(9.17)
x1 (T )(λ1 − λ2 ) = λ1 eλ1 T (x1 (0) − λ2 x2 (0)) − λ2 eλ2 T (x1 (0) − λ1 x2 (0))

En éliminant T entre les deux expressions 9.17 on obtient une relation liant λ1 et λ2 et, par suite,
k1 et k2 .
 T  T
Exemple 9.1 x(0) = x1 (0) x2 (0) et x(T ) = 0 M :

(x1 (0) − x2 (0)λ1 ) eλ2 T = −M λ1
(x1 (0) − x2 (0)λ2 ) eλ1 T = −M λ2

d’où on déduit la relation :


 λ1  λ2
−M λ1 −M λ2
=
x1 (0) − x2 (0)λ1 x1 (0) − x2 (0)λ2

On vérifie qu’il n’y a qu’une seule solution λ1 = λ2 qui correspond à (1 + ak1 )2 − 4ak2 = 0.
68 Chapitre 9 - Indications et corrigés
Bibliographie

[1] Maı̈tine Bergounioux. Optimisation et contrôle des sytèmes linéaires. Dunod, Paris, France, 2001.

[2] G. Welsh & G. Bishop. An introduction to the kalman filter. UNC-Chapel Hill, TR95-041, May
2003.

[3] Gérard Blanchet. Commande et temps discret. Hermès, Paris, France, 2003.

[4] M. Charbit. Eléments de Théorie du Signal : Aspects Aléatoires. ellipses, 1996.

[5] Maurice Charbit Gérard Blanchet. Signaux et images sous Matlab. Hermès, Paris, France, 2001.

[6] Thomas Kailath. Linear Systems. Prentice Hall, 1980.

[7] R. E. Kalman. A new approach to linear filtering and prediction problems. Transaction of the ASME
- Journal of Basic Engineering, pages 35–45, March 1960.

[8] Denis Matignon. Commande linéaire des systèmes dynamiques. Technical report, ENST, Paris,
France, 1998.

[9] Desineni Subbaram Naidu. Optimal Control Systems. CRC Press, 2003.

[10] Vasile M. Popov. Hyperstabilité des systèmes automatiques. Dunod, 1973.

[11] Tewfik Sari. Contrôle non linéaire et applications. Hermann, 2005.

69
70 Chapitre 9 - Indications et corrigés
Index

équation Impulsion unité, 5


algébrique de Riccati, 53 Integral of the Absolute magnitude of the Error,
de Lyapunov, 53 12
de Sylvester, 53 Integral of the Square of the Error, 12
Integral of Time multipied by the Absolute
Algebraic Riccati Equation, 38 Error, 12
ARE, 38, 53 Integral of Time multipied by the Square Error,
fréquentielle, 42 13
résolution, 54 invariant
système, 9
Bellman, 45
ISE, 12
Bolza, 28
ITAE, 12
bouclage, 10
ITSE, 13
commandabilité, 9
jacobien, 6, 26
commandable, 12
compensateur, 10 Kalman, 15, 51
correcteur, 10
critère de performance, 12 Lagrange, 24
lagrangien augmenté, 26
détectable, 15 Laplace, 5
degré de stabilité, 42 Legendre-Jacobi (condition de), 25
Differential Riccati Equation, 36
méthode
Echelon unité, 5
de Pearson, 37
Equation de Hamilton-Jacobi-Bellman, 49
de Sage-Eisenberg, 37
Equation de Riccati, 36
marge
Equation de Riccati Algébrique Fréquentielle, 42
de gain, 43
Euler, 24
de phase, 43
Euler-Lagrange (condition de), 25
matrice
Exponentielle complexe, 5
d’état, 9
extrémum relatif, 23
hessienne, 23
filtrage (étape de, Kalman), 15 matrice de gain de boucle, 42
filtre matrice de pénalisation, 35
de Kalman, 15 matrice jacobienne, 6
fonction maximum relatif, 23
de Lagrange augmentée, 26 Measurement Update, 15
de Pontryagin, 31 minimum relatif, 23
fonctions multiplicateurs de Lagrange, 26
prototypes, 12
observabilité, 9
Fréquence
observateur
d’échantillonnage, 5
Kalman, 15
normalisée, 5
asymptotique, 14
Gain de Kalman, 37
Période d’échantillonnage, 5
hamiltonien, 31 pôles dominants, 12
Pearson, 37
IAE, 12 polynômes de Bessel, 13

71
72 Chapitre 9 - Indications et corrigés

Pontryagin, 45
prédiction, 15
problème de Bolza, 28
propagation, 15

régulation, 7
recalage, 15
Riccati, 36, 37

Sage-Eisenberg, 37
Signal anticausal, 5
Signal causal, 5
Single Input Single Output, 17
SISO, 17
stabilisable, 12
suivi de consignes, 7
système
gouvernable, 9
invariant, 9
observable, 9
Système hamiltonien, 36
système hamiltonien, 39

TFTD, 5
Time Update, 15
TL, 5
Transformée de Laplace, 5
Transformée de Fourier
à temps discret, 5
Transformée en z, 5
modifiée, 6
monolatérale, 6
TZ, 5
TZM, 6

variables
d’état, 9
vecteur
d’état, 9
des entrées, 9
des sorties, 9
vecteur d’état adjoint, 29

Vous aimerez peut-être aussi