Vous êtes sur la page 1sur 70

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/337305272

Commande Avancée (contrôle optimal et prédictif) Master Automatique

Preprint · November 2019


DOI: 10.13140/RG.2.2.23236.37767

CITATIONS READS

0 1,214

1 author:

Mohammed Belkheiri
Université Amar Telidji Laghouat
91 PUBLICATIONS   314 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Extremum Seeking and P&O Control Strategies for Achieving the Maximum Power for a PV Array: Artificial Intelligence in Renewable Energetic Systems View project

test insulation materials in power systems with the application of artificial intelligence like LS-SVM for more optimization View project

All content following this page was uploaded by Mohammed Belkheiri on 16 November 2019.

The user has requested enhancement of the downloaded file.


COURS COMMANDE Novembre 2019
BELKHIRI Mohammed

AVANCEE
Contrôle optimale et prédictif

0
UNIVERSITE AMAR TELIDJI LAGHOUAT
Faculté de Technologie
Département d’électronique
Laboratoire de Télécommunications, signaux et systèmes

Polycopie de Cours
Commande avancée
Contrôle optimale et prédictif

Mater 2 Automatique

Pr. BELKHIRI Mohammed

Novembre 2019

2
Chapitre 1 -I Introduction à la Commande Optimale
Introduction :
Dans ce premier chapitre, on présente les concepts de base derrière l'optimisation dynamique et la
commande optimale et on donne un bref historique sur le calcul des variations.
Le contrôle optimal est une approche de conception des régulateurs des systèmes par la recherche de
meilleures lois de commande possibles par rapport à un indice de performance donné. La théorie de la
commande optimale a commencé à se développer juste après la seconde guerre mondiale. Le résultat
principal de cette période a été la théorie de Wiener-Kolmogorov qui traite des systèmes SISO linéaires
avec bruit gaussien. Une théorie plus générale a commencé à émerger dans les années 1950 et 60. En
1957 Bellman a publié son livre sur la programmation dynamique. En 1960 Kalman a publié son
généralisation multivariée des Wiener-Kolmogorov et en 1962 Pontryagin et al publié le principe
maximale En 1965, Isaacs a publié son livre sur les jeux différentiels.

1.1 Commande Optimale :


L'objectif principal de la commande optimale consiste à déterminer les signaux de commande qui vont
entraîner un procédé (système) pour satisfaire certaines contraintes physiques et en même temps
maximiser ou minimiser un critère de performance choisi (indice de performance ou fonction coût).
Nous nous sommes intéressés à trouver une loi de commande optimale u*(t) qui va conduire le système
P d'aller de l'état initial vers un état final donné avec certaines contraintes sur les signaux de commande
(contrôle) et les états et en même temps maximisant ou minimisant l'indice de performance donnée J.
La formulation du problème de commande optimale nécessite:
1. Une description mathématique(modèle) du procédé à contrôler,
2. Une spécification de l'indice de performance et
3. Une précision des conditions aux limites et des contraintes physiques sur les états et/ou les commandes.

Figure 1.1 Configuration de commande optimale

1.1.1 Le modèle d'état:


Dans le but d'optimisation, nous décrivons un système physique par un ensemble des équations
différentielles/différence linéaire ou non linéaire. Par exemple, un système linéaire invariant dans le
temps est décrit par les relations de l'Etat et de sortie (1.1.1) et (1.1.2) et d'un système non linéaire par
(1.1.5) et (1.1.6).
𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡) ou 𝑥̇ (𝑡) = 𝑓( 𝑥(𝑡), 𝑢(𝑡))

1
𝑦(𝑡) = 𝐶 𝑥(𝑡) + 𝐷 𝑢(𝑡) 𝑦(𝑡) = 𝑔( 𝑥(𝑡), 𝑢(𝑡))

1.1.2. Indice de performance

Dans la conception des lois de commande par les méthodes classiques on s'intéresse généralement à la
réponse du système à une entrée donnée (échelon ou rampe), caractérisée par le temps de montée, le
temps d'établissement, le pic de dépassement, et la précision en régime permanent, et la réponse en
fréquence du système caractérisée par des marges de gain et de phase, et la bande passante.
En théorie de commande avancée, le problème de commande optimale consiste à trouver une commande
qui entraîne le système dynamique d'atteindre un objectif ou de suivre une variable d'état(ou trajectoire)
et en même temps d'optimiser un indice de performance qui peut prendre plusieurs formes, comme décrit
ci-dessous.

a) La commande en temps minimum :


Nous essayons de transférer un système à partir d'un état initial arbitraire x(to) à un état final déterminé
x(tf) en temps minimum rencontrée par exemple dans les problèmes de sécurité ou de fabrication. L'indice
de performance correspondant (IP) est
𝑡𝑓
𝐽 = ∫ 𝑑𝑡 = 𝑡𝑓 − 𝑡𝑂
𝑡𝑂
b) Commande à consommation minimale
Le critère correspond à l’intégrale d’un débit :
𝑡𝑓
𝐽 = ∫ |𝑢(𝑡)|𝑑𝑡
𝑡𝑂
c) Commande à énergie minimale
Le critère de performance correspond à l’intégrale d’une puissance :
𝑡𝑓
𝐽 = ∫ 𝑢2 (𝑡)𝑑𝑡
𝑡𝑂
En général pour un système multi-entrées multi-sorties ce critère peut être écrit sous forme matricielle :
𝑡𝑓
𝐽 = ∫ 𝑢𝑇 (𝑡) 𝑅 𝑢(𝑡)𝑑𝑡
𝑡𝑂
où R est une matrice de pondération définie positive.
De même, on peut penser la minimisation de l'intégrale de l'erreur quadratique d'un système de poursuite.
Nous avons donc:
𝑡𝑓
𝐽 = ∫ 𝑥 𝑇 (𝑡)𝑄 𝑥(𝑡)𝑑𝑡
𝑡𝑂

d) La Commande pour un objectif terminal :


Dans un problème d’objectif terminal, nous nous intéressons à minimiser l'erreur entre la position objectif
Xd souhaité (tf) et la position réelle Xa(tf) à la fin de la manœuvre ou au temps final tf.
𝐽 = 𝑥 𝑇 (𝑡𝑓 )𝐹𝑥(𝑡𝑓 )
En combinant les formulations ci-dessus, nous avons un indice de performance sous la forme générale :
𝑡𝑓
𝐽 = 𝑥 (𝑡𝑓 )𝐹𝑥(𝑡𝑓 ) + ∫ [𝑥 𝑇 (𝑡)𝑄𝑥(𝑡) + 𝑢𝑇 (𝑡)𝑅𝑢(𝑡)]𝑑𝑡
𝑇
𝑡𝑂

2
𝑡𝑓
𝐽 = 𝑆(𝑥(𝑡𝑓 ), 𝑡𝑓 ) + ∫ 𝑉(𝑥(𝑡), 𝑢(𝑡), 𝑡)𝑑𝑡
𝑡𝑂
où R est une matrice définie positive, et Q et F sont des matrices semi-définie positives, respectivement.
Notez que les matrices Q et R peuvent être variables dans le temps.
La forme particulière de l'indice de performance ci-dessus est appelée forme quadratique (en termes
d'états et contrôles).
Les problèmes qui se posent dans la commande optimale sont classés en fonction de la structure de
l'indice de performance J. Si l’IP contient la fonction de coût terminal S(x (t), u (t), t) seulement, il est
appelé le problème Mayer, si le IP(1.3.9) a seulement le terme de coût intégrale il est appelé le problème
de Lagrange, et le problème est de type Bolza si l'IP contient à la fois le terme de coût terminal et le terme
de coût intégrale.
Il existe de nombreuses autres formes de fonctions de coût en fonction de nos spécifications de
performance.
Toutefois, les indices de performance mentionnés ci-dessus (avec des formes quadratiques) conduisent à
des résultats très élégants dans les systèmes de contrôle optimal.

Contraintes :
Les contraintes caractérisent en général les limitations physiques sur la commande (les actionneurs) ou
sur l’état du processus, par exemple la limitation d’un débit, d’une pression ou d’une température, ou
l’obligation pour un avion de rester dans un « tube » de l’espace prédéfini (couloir).
Ce type de contraintes s’exprime par des inégalités de la forme :
𝑢− ≤ 𝑢(𝑡) ≤ 𝑢+ et𝑥 − ≤ 𝑥(𝑡) ≤ 𝑥 +

Formulation du problème de la commande optimale :


Le problème de la commande optimale consiste à trouver la commande optimale u*(t) (* indique la
valeur optimale) qui conduit le système linéaire invariant dans le temps
𝑥̇ (𝑡) = 𝐴 𝑥(𝑡) + 𝐵 𝑢(𝑡)
à suivre une trajectoire x*(t)qui optimise (maximise ou minimise) un indice de performance
𝑡
J=𝑥 𝑇 (𝑡𝑓 )𝐹𝑥(𝑡𝑓 ) + ∫𝑡 𝑓 [𝑥 𝑇 (𝑡)𝑄𝑥(𝑡) + 𝑢𝑇 (𝑡)𝑅𝑢(𝑡)]𝑑𝑡
𝑂
ou qui entraîne le système non linéaire
𝑥̇ (𝑡) = 𝑓( 𝑥(𝑡), 𝑢(𝑡))
*
à suivre la trajectoire x (t) qui optimise l'indice de performance général
𝑡
J=𝑆(𝑥(𝑡𝑓 ), 𝑡𝑓 ) + ∫𝑡 𝑓 𝑉(𝑥(𝑡), 𝑢(𝑡), 𝑡)𝑑𝑡
𝑂
avec certaines contraintes sur les variables de commande u(t) et/ou les variables d'état x(t) .
L'instant final tf peut être fixe ou libre, et l'état final (cible) peut être entièrement ou partiellement fixe ou
libre.
Il y a plusieurs méthodes et théorèmes pour résoudre le problème de la commande optimale à la base de
calcul de variations. La méthodologie de résolution adoptée dans ce cours est basée sur le calcul des
variations et sera présentée dans les chapitres suivants.

3
Chapitre 1 -II Calcul des variations et la commande optimale

2.1 Historique

Le calcul des variations est né en 1696, avec le problème de la courbe brachistochrone, posé par
Jean Bernoulli où la recherche d’une courbe brachistochrone consiste à résoudre un problème de temps
minimal (comme l’indique la racine grecque : « βραχιστος (brachistos) », « le plus court » ; « χρονος
(chronos) », « temps »). Il s'agissait de trouver la forme de la brachistochrone, c'est-à-dire la courbe
reliant deux points fixés A et B, le long de laquelle un solide tombant sous l'effet de la gravité partant de
A arrive le plus vite en B. Ce problème fut résolu par plusieurs physiciens et mathématiciens : Jean et
Jacques Bernoulli, Gottfried Wilhelm Leibniz, Isaac Newton, Guillaume François Antoine de l'Hôpital et
Ehrenfried Walther von Tschirnhaus. Le calcul des variations a connu un profond renouveau dans les
années 1950 avec le développement de la théorie de la commande optimale, sous l'impulsion de Lev
Pontriaguine et Richard Bellman. Le formalisme de Pontryagin et de Bellman est une extension et une
amélioration du formalisme hamiltonien classique, et clarifie la formulation de Carathéodory.

2.2 Introduction au Calcul des Variations


Le calcul des variations traite certains types de "problèmes externes" où des expressions
impliquant des intégrales sont optimisées (minimisées ou maximisées). De nombreux problèmes dans le
calcul des variations ont leurs origines dans la physique où il faut minimiser l'énergie associée à un
problème donné. Le calcul des variations est une branche des mathématiques portant sur l'optimisation
des quantités physiques (comme le temps, surface, ou distance). Elle trouve des applications dans
plusieurs domaines, tels que l'aéronautique (maximisant la portance d'une aile d'avion), la conception
d'équipements sportifs (en minimisant la résistance de l'air sur un casque de vélo, optimisation de la
forme d'un ski), la mécanique (maximiser la force d'un colonne, un barrage, ou un arc), la conception des
bateaux (optimisation de la forme d'une coque de bateau), physique (calcul des trajectoires et géodésiques
dans la mécanique classique et la relativité générale).
Le calcul de variation consiste à trouver l'extrémum (max ou min) d'une fonctionnelle. Il s'agit donc d'un
problème de minimisation dans un espace fonctionnel, de dimension infinie. Dans ce chapitre, on
présente quelques notions et concepts de calculs de variation qui sont nécessaires pour la résolution des
problèmes liés à la commande optimale.

2.1.1 Généralités et Définitions :


a) Fonction : Une variable x est une fonction d'une variable indépendante t, x(t)=f(t) pour chaque valeur
de t sur un intervalle il correspondant une valeur x.
Exemple : Le vecteur d'état est un exemple de fonction vectorielle.

b) Fonctionnelle : Une quantité variable dépond sur une fonction dénoté par : J = J (f (t)).
Une fonction f à valeurs réelles dont le domaine est l'ensemble des fonctions réelles {y(x)} est connue
comme une fonctionnelle (ou fonctionnelle d'une seule variable indépendante). Ainsi, le domaine de
définition de la fonction est un ensemble de fonctions admissibles. Dans les fonctions ordinaires les
valeurs des variables indépendantes sont des nombres. Tandis qu'avec des fonctionnelles, les valeurs des
variables indépendantes sont des fonctions. Le terme « fonctionnelle » désigne simplement les fonctions
qui en prennent d'autres fonctions comme argument
Exemple 2.1: Soit 𝑣(𝑡) = 2𝑡 2 + 1,
1 1 5
𝐽(𝑣(𝑡)) = ∫0 𝑣(𝑡)𝑑𝑡 = ∫0 (2𝑡 2 + 1)𝑑𝑡 = 3 (2.1)
4
Dans cet exemple v(t) est une fonction de t ; et la fonctionnelle J est une fonction de v(t)
𝑡
Si v(t) est la vitesse d'un véhicule alors 𝐽(𝑣(𝑡)) = ∫𝑡 𝑓 𝑣(𝑡)𝑑𝑡 représente le chemin parcouru par ce
0
véhicule.

2.1.2 Incrément : On considère un incrément d’une fonction et une fonctionnelle.


a) Incrément d'une fonction : l'incrément d'une fonction ∆𝑓 est défini par
∆𝑓 ≜ 𝑓(𝑡 + ∆𝑡) − 𝑓(𝑡) (2.2)
b) Incrément d'une fonctionnelle : l'incrément d'une fonctionnelle∆𝐽 est défini par
∆𝐽 ≜ 𝐽(𝑥(𝑡) + 𝛿(𝑥)) − 𝐽(𝑥(𝑡)) (2.3)
Ici𝛿(𝑥) représente la variation de fonction 𝑥(𝑡).
2.1.3 Différentiel d'une fonction et variation d'un fonctionnel :
a) Différentiel d'une fonction : Le développement en série de Taylor de 𝑓(𝑡 ∗ + ∆𝑡) autour d'un point
𝑡 ∗ donne :
𝑑𝑓 1 𝑑2 𝑓
∆𝑓 = 𝑓(𝑡 ∗ ) + ( ) ∆𝑡 + ( ) ∆𝑡 2 + ⋯ − 𝑓(𝑡 ∗ ) (2.4)
𝑑𝑡 ∗ 2! 𝑑𝑡 2 ∗
Négligeons les termes d'ordre supérieur (2, 3,..) on obtient le différentiel de 𝑓 au point 𝑡 ∗ :
𝑑𝑓
𝑑𝑓 = ( ) ∆𝑡 = 𝑓̇ (𝑡 ∗ )∆𝑡 (2.5)
𝑑𝑡 ∗
Où 𝑓̇(𝑡 ∗ ) es la dérivé de 𝑓 i.e. La tangente de f au point 𝑡 ∗

Figure 2.1 Interprétation géométrique de 𝑑𝑓 et ∆𝑓


b) Variation d'une fonctionnelle :
La variation de J due à une variation 𝛿(𝑥) de x(t) peut s’écrire
𝜕𝐽 1 𝜕2 𝐽
∆𝐽 = 𝐽(𝑥 ∗ (𝑡)) + (𝜕𝑥) 𝛿(𝑥) + 2! (𝜕𝑥 2 ) (𝛿(𝑥))2 + ⋯ − 𝐽(𝑥 ∗ (𝑡))) (2.6)
∗ ∗
𝜕𝐽 1 𝜕 2𝐽
= ( ) 𝛿(𝑥) + ( 2 ) (𝛿(𝑥))2 + ⋯
𝜕𝑥 ∗ 2! 𝜕𝑥 ∗
= 𝛿𝐽 + 𝛿 2 𝐽 + ⋯
où 𝛿𝐽 et 𝛿 2 𝐽 sont dites première et seconde variations de J :
𝜕𝐽 1 𝜕2 𝐽
𝛿𝐽=(𝜕𝑥) 𝛿(𝑥) 𝛿 2 𝐽 = 2! (𝜕𝑥 2 )
∗ ∗

5
Figure 2.2 Interprétation géométrique de 𝛿𝐽 et ∆𝐽

𝑡
Exemple 2.2 : Soit la fonctionnelle 𝐽(𝑥(𝑡)) = ∫𝑡 𝑓 (2𝑥 2 (𝑡) + 3𝑥(𝑡) + 4) 𝑑𝑡
0
La (première) variation de J est
𝑡𝑓
𝜕 ∫𝑡 (2𝑥 2 (𝑡)+3𝑥(𝑡)+4) 𝑑𝑡 𝑡
𝛿𝐽=( 0
) 𝛿(𝑥) = ∫𝑡 𝑓 (4𝑥(𝑡) + 3)𝛿(𝑥) 𝑑𝑡
𝜕𝑥 0

2.2. L’extrémum d'une fonction et l'extrémum d'une fonctionnelle :


Définition 2.2.1: Une fonction f(t) possède un extrémum (minimum ou maximum) relatif au point 𝑡 ∗ si il
existe un paramètre positif 𝜀 > 0 sachant que:(∀𝑡 ∈ 𝐷| |𝑡 − 𝑡 ∗ | < 𝜀), l'incrément de f conserve le même
signe .c.à.d.
si ∆𝑓 = 𝑓(𝑡) − 𝑓(𝑡 ∗ ) ≥ 0 alors 𝑓(𝑡 ∗ ) est un minimum relatif local ; et
si 𝑓 = 𝑓(𝑡) − 𝑓(𝑡 ∗ ) ≤ 0 alors 𝑓(𝑡 ∗ ) est un maximum relatif local.
Si ces relations sont valables pour 𝜀 arbitrairement large alors 𝑓(𝑡 ∗ ) est un extrémum global.
La condition nécessaire d'optimalité d'une fonction est que le différentiel (la dérivée) s’annule 𝑑𝑓 ∗ = 0.
La condition suffisante d'optimalité est que :
soi la 2eme dérivée est positif 𝑑2 𝑓 ∗ > 0 pour que l'optimum soit un minimum.
ou la 2eme dérivée est négative 𝑑 2 𝑓 ∗ < 0 pour que l'optimum soit un maximum.

Définition 2.2.2: La fonctionnelle J(x(t)) possède un extrémum (minimum ou maximum) relatif pour la
fonction𝑥 ∗ (𝑡)si, pour toute fonction x “assez proche” de 𝑥 ∗ (ou bien s'il existe un paramètre positif 𝜀 > 0
sachant que : (∀𝑡 ∈ Ω| |𝑥(𝑡) − 𝑥 ∗ (𝑡)| < 𝜀) , l'incrément de J conserve la même signe. c.à.d.
si ∆𝐽 = 𝐽(𝑥(𝑡)) − 𝐽(𝑥 ∗ (𝑡)) ≥ 0 alors 𝐽(𝑥 ∗ ) est un minimum relatif local ; et
si ∆𝐽 = 𝐽(𝑥(𝑡)) − 𝐽(𝑥 ∗ (𝑡)) ≤ 0 alors 𝐽(𝑥 ∗ ) est un maximum relatif local.
Si ces relations sont valables pour 𝜀 arbitrairement large alors 𝐽(𝑥 ∗ ) est un optimum global.

Théorème: Théorème fondamental de calcul de variation:


Une condition nécessaire pour que 𝑥 ∗ (𝑡) soit un extrémum est la variation de J doit être nulle à 𝑥 ∗ (𝑡)
c.à.d. 𝛿𝐽(𝑥 ∗ (𝑡), 𝛿𝑥(𝑡)) = 0 pour toutes valeurs admissibles de 𝛿𝑥(𝑡)
Une condition suffisante pour avoir un minimum ou un maximum est donnée par le signe de 𝛿 2 𝐽
𝛿 2 𝐽 > 0 pour que l'extrémum soit un minimum.
𝛿 2 𝐽 < 0 pour que l'extrémum soit un maximum.

6
2.3 Problèmes fondamentaux du calcul des variations

Système à temps terminal fixe et état terminal fixe:


Nous nous intéressons au problème de critère à temps fixe (instant initial et instant final) et état fixe.

Figure 2.3: Problème de base : 𝑥 ∗ (𝑡) représente une trajectoire optimale, en supposant qu’elle existe, vis-
à vis du critère choisi

Soit 𝑥(𝑡) une fonction scalaire avec les premières dérivées continues (le cas vectoriel peut être traité
similairement). Le problème est de trouver la fonction optimale 𝑥 ∗ (𝑡) dont la fonctionnelle,
𝑡
𝐽(𝑥(𝑡)) = ∫𝑡 𝑓 𝑉(𝑥(𝑡), 𝑥̇ (𝑡), 𝑡)𝑑𝑡 possède un optimum relatif.
𝑂
On suppose que la fonction à intégrer V possède une première et deuxième dérivées partielles continues
par rapport à tous ses arguments ; 𝑡0 et 𝑡𝑓 sont fixes (a priori) et les points extrêmes sont fixés, c.à.d.
𝑥(𝑡 = 𝑡0 ) = 𝑥0 ; 𝑥(𝑡 = 𝑡𝑓 ) = 𝑥𝑓

Figure 2.4: Problème de base : 𝑥 ∗ (𝑡) est une trajectoire optimaleet

2.4 Résolution du problème et l’Equation d'Euler :


Les différentes étapes nécessaires pour résoudre ce problème sont les suivantes:
Étape 1: Hypothèse de l'existence de l'optimum: Supposons que x*(t) est l'optimum de J. Prenez une
fonction admissible 𝑥𝑎 (𝑡) = 𝑥 ∗ (𝑡) + 𝛿𝑥(𝑡) proche à l’optimum 𝑥 ∗ (𝑡), où 𝛿𝑥(𝑡) est la variation de
𝑥 ∗ (𝑡)comme le montre la figure.
La fonction 𝑥𝑎 (𝑡) devrait également satisfaire les conditions aux limites et donc il est nécessaire que
𝛿𝑥(𝑡0 ) = 𝛿𝑥(𝑡𝑓 ) = 0
Étape 2: Variations et incréments :
Définissons d'abord l'incrément :
∆𝐽(𝑥(𝑡)) ≜ 𝐽(𝑥 ∗ (𝑡) + 𝛿𝑥(𝑡), 𝑥̇ ∗ (𝑡) + 𝛿𝑥̇ (𝑡), 𝑡) − 𝐽(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)
𝑡𝑓 𝑡𝑓
∗ (𝑡) ∗ (𝑡)
= ∫ 𝑉(𝑥 + 𝛿𝑥(𝑡), 𝑥̇ + 𝛿𝑥̇ (𝑡), 𝑡)𝑑𝑡 − ∫ 𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)𝑑𝑡
𝑡𝑂 𝑡𝑂
𝑡𝑓
= ∫ [𝑉(𝑥 ∗ (𝑡) + 𝛿𝑥(𝑡), 𝑥̇ ∗ (𝑡) + 𝛿𝑥̇ (𝑡), 𝑡) − 𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)]𝑑𝑡
𝑡𝑂
7
𝑑𝑥(𝑡) 𝑑
où 𝑥̇ (𝑡) = et 𝛿𝑥̇ (𝑡) = 𝑑𝑡 {𝛿𝑥(𝑡)}
𝑑𝑡
Le développement en série de Taylor de V autour𝑥 ∗ (𝑡)nous donne :
∆𝐽 = (𝑥 ∗ (𝑡), 𝛿𝑥(𝑡))
𝑡𝑓
𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) 𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)
=∫ [ 𝛿𝑥(𝑡) + 𝛿𝑥̇ (𝑡)
𝑡𝑂 𝜕𝑥 𝜕𝑥̇
1 𝜕 2 𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) 2 𝜕 2 𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) 2
+ { 2
(𝛿𝑥(𝑡)) + 2
(𝛿𝑥̇ (𝑡))
2! 𝜕𝑥 𝜕𝑥̇
2 ∗ (𝑡), ∗ (𝑡),
𝜕 𝑉(𝑥 𝑥̇ 𝑡)
+2 } + ⋯ ] 𝑑𝑡
𝜕𝑥𝜕𝑥̇
Étape 3: Première Variation: Maintenant, nous obtenons la variation en conservant que les termes
linéaires en fonction de 𝛿𝑥(𝑡) et 𝛿𝑥̇ (𝑡):
𝑡𝑓
∗ (𝑡),
𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) 𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)
𝛿𝐽(𝑥 𝛿𝑥(𝑡)) = ∫ [ 𝛿𝑥(𝑡) + 𝛿𝑥̇ (𝑡)] 𝑑𝑡
𝑡𝑂 𝜕𝑥 𝜕𝑥̇
Pour exprimer la relation pour la première variation entièrement en termes contenant que 𝛿𝑥(𝑡)
(puisque𝛿𝑥̇ (𝑡) dépend de 𝛿𝑥(𝑡)), nous intégrons par parties le terme impliquant 𝛿𝑥̇ (𝑡) (en omettant les
𝜕𝑉
arguments en V pour plus de simplicité: ∫ 𝑢𝑑𝑣 = 𝑢𝑣 − ∫ 𝑣𝑑𝑢 avec 𝑢 = 𝜕𝑥̇ et 𝑣 = 𝛿𝑥(𝑡).
𝑡𝑓 𝑡𝑓
𝜕𝑉 𝜕𝑉 𝑑
∫ ( ) 𝛿𝑥̇ (𝑡)𝑑𝑡) = ∫ ( ) (𝛿𝑥(𝑡))𝑑𝑡
𝑡𝑂 𝜕𝑥̇ ∗ 𝑡𝑂 𝜕𝑥̇ ∗ 𝑑𝑡
𝑡𝑓
𝜕𝑉
=∫ ( ) (𝑑𝛿𝑥(𝑡))
𝑡𝑂 𝜕𝑥̇ ∗
𝑡𝑓 𝑡𝑓
𝜕𝑉 𝑑 𝜕𝑉
= [( ) 𝛿𝑥(𝑡)] − ∫ 𝛿𝑥(𝑡) ( ) 𝑑𝑡
𝜕𝑥̇ ∗ 𝑡0 𝑡𝑂 𝑑𝑡 𝜕𝑥̇ ∗
Alors la première variation devient:
𝑡𝑓 𝑡𝑓 𝑡𝑓
𝜕𝑉 𝜕𝑉 𝑑 𝜕𝑉
𝛿𝐽(𝑥 ∗ (𝑡), 𝛿𝑥(𝑡)) = ∫ ( ) 𝛿𝑥(𝑡)𝑑𝑡 + [( ) 𝛿𝑥(𝑡)] − ∫ 𝛿𝑥(𝑡) ( ) 𝑑𝑡
𝑡𝑂 𝜕𝑥 ∗ 𝜕𝑥̇ ∗ 𝑡0 𝑡𝑂 𝑑𝑡 𝜕𝑥̇ ∗
𝑡𝑓
∗ (𝑡),
𝜕𝑉 𝑑 𝜕𝑉
𝛿𝐽(𝑥 𝛿𝑥(𝑡)) = ∫ [( ) − ( ) ] 𝛿𝑥(𝑡)𝑑𝑡
𝑡𝑂 𝜕𝑥 ∗ 𝑑𝑡 𝜕𝑥̇ ∗
Étape 4 : Théorème Fondamental : Nous appliquons maintenant le théorème fondamental du calcul
des variations, à savoir la variation de J doit s'annule pour un optimum. c.à.d., pour que l'optimum 𝑥 ∗ (𝑡)
existe, 𝛿𝐽(𝑥 ∗ (𝑡), 𝛿𝑥(𝑡)) alors
𝑡𝑓
𝜕𝑉 𝑑 𝜕𝑉
∫ [( ) − ( ) ] 𝛿𝑥(𝑡)𝑑𝑡 = 0
𝑡𝑂 𝜕𝑥 ∗ 𝑑𝑡 𝜕𝑥̇ ∗
Étape 5 : Lemme fondamental : Pour simplifier la condition obtenue dans l'équation ci-dessus, nous
exploitons le lemme suivant appelé le lemme fondamental du calcul des variations

Lemme 1 : Soit g une fonction réelle continue sur l'intervalle [𝑡𝑂 , 𝑡𝑓 ], telle que

𝑡𝑓
∫ 𝑔(𝑡)𝛿𝑥(𝑡)𝑑𝑡 = 0
𝑡𝑂

Pour toute fonction 𝛿𝑥(𝑡)de classe C1 alors la fonction𝑔(𝑡)doit être nulle partout sur l'intervalle [𝑡𝑂 , 𝑡𝑓 ].

8
Étape 6: l’Equation d'Euler-Lagrange:
En appliquant le lemme précédent, une condition nécessaire pour que 𝑥 ∗ (𝑡)soit un optimal de la
fonctionnelle J est:

𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) 𝑑 𝜕𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)


( ) − ( ) =0
𝜕𝑥 ∗
𝑑𝑡 𝜕𝑥̇ ∗
Ou en notation simplifiée en omettant les arguments dans V,
𝜕𝑉 𝑑 𝜕𝑉
( ) − ( ) =0
𝜕𝑥 ∗ 𝑑𝑡 𝜕𝑥̇ ∗
Pour tout 𝑡 ∈ [𝑡𝑂 , 𝑡𝑓 ]. Cette équation est appelée l'équation d'Euler, publié en 1741.
Exemple 2.3 Trouver une extrémale pour la fonction J
𝜋
𝐽(𝑥) = ∫02 [𝑥̇ 2 (𝑡) − 𝑥 2 (𝑡)] 𝑑𝑡
𝜋
qui satisfait les conditions aux limites 𝑥(0) = 0 et 𝑥 ( ) = 1.
2
𝑉(𝑥, , 𝑥̇ ) = 𝑥̇ 2 (𝑡) − 𝑥 2 (𝑡)
L'équation d'Euler est :
𝜕𝑉 𝑑 𝜕𝑉
( ) − ( ) =0
𝜕𝑥 ∗ 𝑑𝑡 𝜕𝑥̇ ∗
𝑑
(−2𝑥)∗ − (2 𝑥̇ )∗ = 0
𝑑𝑡
𝑥 (𝑡) + 𝑥̈ ∗ (𝑡) = 0

La solution de l'équation différentielle est donnée par :


𝑥 ∗ (𝑡) = 𝑠𝑖𝑛(𝑡)
2.5 La seconde variation :
Dans l'étude des extremums de fonctionnelles, nous avons jusqu'ici considéré que la condition nécessaire
pour qu’une fonctionnelle possède un extremum relatif ou faible, c'est à dire, à condition que la première
variation s'annule conduisant à l'équation d'Euler-Lagrange classique.
Pour établir la nature optimale (maximum ou minimum), il est nécessaire d'examiner la seconde variation.
Dans la relation de l'incrément, on considère les termes correspondants de la seconde variation
𝑡𝑓
2
1 𝜕2𝑉 2 𝜕2𝑉 2 𝜕2𝑉
𝛿 𝐽=∫ {( 2 ) (𝛿𝑥(𝑡)) + ( 2 ) (𝛿𝑥̇ (𝑡)) + 2 ( ) } 𝑑𝑡
𝑡0 2! 𝜕𝑥 ∗ 𝜕𝑥̇ ∗ 𝜕𝑥𝜕𝑥̇ ∗
Le dernier terme de l'intégral précédent peut être calculé par parties et on prend en considération
𝜕2 𝑉
𝛿𝑥(𝑡0 ) = 𝛿𝑥(𝑡0 ) = 0. (∫ 𝑢𝑑𝑣 = 𝑢𝑣 − ∫ 𝑣𝑑𝑢) avec 𝑢 = 𝜕𝑥𝜕𝑥̇ et 𝑣 = 𝛿𝑥(𝑡) et 𝛿𝑥(𝑡).

1 𝑡𝑓
2
𝜕2𝑉 𝑑 𝜕2𝑉 2 𝜕2𝑉 2
𝛿 𝐽 = ∫ {[( 2 ) − ( ) ] (𝛿𝑥(𝑡)) + ( 2 ) (𝛿𝑥̇ (𝑡)) } 𝑑𝑡
2 𝑡0 𝜕𝑥 ∗ 𝑑𝑡 𝜕𝑥𝜕𝑥̇ ∗ 𝜕𝑥̇ ∗
Selon le théorème fondamental de calcul des variations, la condition suffisante pour un minimum est que
𝛿 2 𝐽 > 0. Ceci, pour des valeurs arbitraires de 𝛿𝑥(𝑡) et 𝛿𝑥̇ (𝑡), implique que:
𝜕2 𝑉 𝑑 𝜕2 𝑉 𝜕2 𝑉
(𝜕𝑥 2 ) − 𝑑𝑡 (𝜕𝑥𝜕𝑥̇ ) > 0, (𝜕𝑥̇ 2 ) > 0
∗ ∗ ∗
Pour le max, les signes sont inversés.
2.6 Propriétés et différentes formes de l'équation d'Euler-Lagrange :
L'équation d'Euler-Lagrange peut être écrite dans de nombreuses formes :
9
𝑑𝑉𝑥̇
=0 𝑉𝑥 −
𝑑𝑡
𝜕𝑉 𝜕𝑉
avec 𝑉𝑥 = 𝜕𝑥 = 𝑉𝑥 (𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡) et 𝑉𝑥̇ = 𝜕𝑥̇ = 𝑉𝑥̇ (𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), 𝑡)
Puisque V est une fonction de trois arguments 𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), et t, et que 𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡) sont des fonctions de t,
nous obtenons
𝑑 𝜕𝑉 𝑑 𝜕𝑉(𝑥 ∗ (𝑡),𝑥̇ ∗ (𝑡),𝑡)
( ) = 𝑑𝑡 ( ),
𝑑𝑡 𝜕𝑥̇ ∗ 𝜕𝑥̇ ∗
𝑑 𝜕2 𝑉 𝜕2 𝑉 𝜕2 𝑉
= 𝑑𝑡 (𝜕𝑥𝜕𝑥̇ 𝑑𝑥 + 𝜕𝑥̇ 𝜕𝑥̇ 𝑑𝑥̇ + 𝜕𝑡𝜕𝑥̇ 𝑑𝑡 ) ,

𝜕 2𝑉 𝑑𝑥 𝜕 2𝑉 𝑑2𝑥 𝜕 2𝑉
=( ) ( ) +( ) ( 2) + ( )
𝜕𝑥𝜕𝑥̇ ∗ 𝑑𝑡 ∗ 𝜕𝑥̇ 𝜕𝑥̇ ∗ 𝑑𝑡 ∗ 𝜕𝑡𝜕𝑥̇ ∗
= 𝑉𝑥𝑥̇ 𝑥̇ ∗ (𝑡) + 𝑉𝑥̇ 𝑥̇ 𝑥̈ ∗ (𝑡) + 𝑉𝑡𝑥̇ .
En combinant les équations ci-dessus, nous obtenons une forme alternative de l'équation d’EL :
𝑉𝑥 − 𝑉𝑡𝑥̇ − 𝑉𝑥𝑥̇ 𝑥̇ ∗ (𝑡) − 𝑉𝑥̇ 𝑥̇ 𝑥̈ ∗ (𝑡) = 0.
𝑑
2- La présence de et/ou 𝑥̇ ∗ (𝑡) dans l'équation d’EL signifie que c'est une équation différentielle.
𝑑𝑡
𝜕𝑉(𝑥 ∗ (𝑡),𝑥̇ ∗ (𝑡),𝑡)
3- Dans l'équation d’EL, le terme est en général une fonction de𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡), et t. Ainsi,
𝜕𝑥̇
lorsque cette fonction est différenciée par rapport à t, le terme 𝑥̈ ∗ (𝑡) peut être présent. Cela signifie que
l'équation différentielle est en général de second ordre. Cela se manifeste également à partir de la forme
alternative de l'équation EL.
4- Il peut aussi y avoir dans l’équation d’EL des termes des produits ou des puissances de 𝑥̈ ∗ (𝑡), 𝑥̇ ∗ (𝑡) et
𝑥 ∗ (𝑡), et dans ce cas la, l'équation différentielle devient non linéaire.
5- La présence explicite de t dans les arguments indique que les coefficients peuvent être variables dans le
temps.
6- Les conditions au point initial (t=to) et au point terminal (t = tf) conduit à un problème aux limites.
Ainsi, l'équation d'Euler-Lagrange est, en général, une équation différentielle ordinaire, de second ordre
non linéaire variant dans le temps, à valeur limite à deux points. La solution de ce problème non linéaire
est tout à fait une tâche formidable et fait souvent en utilisant des techniques numériques. Ceci est le prix
que nous payons pour exiger une performance optimale !
La conformité de l'équation d'Euler-Lagrange est seulement une condition nécessaire à l'optimum.
L’optimal peut parfois donner soit un maximum ou un minimum ; tout comme les points d'inflexion où le
dérivé disparaît dans le calcul différentiel. Toutefois, si l'équation d'Euler-Lagrange n’est pas satisfaite
pour toutes fonctions, cela indique que l'optimum n’existe pas pour cette fonctionnelle.

2.7 Cas Particuliers de l’équation Euler-Lagrange :


L’équation d’Euler-Lagrange dans sa forme générale est difficile (voire souvent impossible) à résoudre.
Cependant, dans certains cas particuliers, l’équation se simplifie sous une forme qui se résoudra plus
facilement.
Nous discutons maintenant divers cas de l'équation Euler Lagrange :

Cas 1 : V dépend de 𝒙̇ ∗ (𝒕) et t. Autrement dit 𝑉 = 𝑉(𝑥̇ ∗ (𝑡), 𝑡). Alors l’équation𝑉𝑥 = 0. L’équation
𝑑𝑉𝑥̇
d’Euler-Lagrange devient = 0 . Dans ce cas l’´equation d’Euler-Lagrange se réduit à
𝑑𝑡
𝜕𝑉(𝑥̇ ∗ (𝑡), 𝑡)
𝑉𝑥̇ = =𝐶
𝜕𝑥̇
où𝐶 est une constante d'intégration.

10
Cas 2 : V dépend de 𝒙̇ ∗ (𝒕) seulement. c.à.d. 𝑉 = 𝑉(𝑥̇ ∗ (𝑡)) et 𝑉𝑥 = 0. L’équation d’Euler-Lagrange
𝑑𝑉𝑥̇
prend la forme =0
𝑑𝑡
𝑑𝑉𝑥̇
= 0 → 𝑉𝑥̇ = 𝐶
𝑑𝑡
Dont la solution est une ligne droite𝑥̇ ∗ (𝑡) = 𝐶1 → 𝑥 ∗ (𝑡) = 𝐶1 𝑡 + 𝐶2 .

Cas 3 : 𝑽 dépend de 𝒙∗ (𝒕) et 𝒙̇ ∗ (𝒕) c.à.d. 𝑉 = 𝑉(𝑥 ∗ (𝑡), 𝑥̇ ∗ (𝑡)) et 𝑉𝑡𝑥̇ = 0)et𝑉𝑥 = 0
En utilisant l’autre forme de l'équation d'Euler-Lagrange, nous obtenons
𝑉𝑥 − 𝑉𝑥𝑥̇ 𝑥̇ ∗ (𝑡) − 𝑉𝑥̇ 𝑥̇ 𝑥̈ ∗ (𝑡) = 0.
En multipliant l'équation précédente par 𝑥̇ ∗ (𝑡), on obtient 𝑥̇ ∗ (𝑡)[𝑉𝑥 − 𝑉𝑥𝑥̇ 𝑥̇ ∗ (𝑡) − 𝑉𝑥̇ 𝑥̇ 𝑥̈ ∗ (𝑡)] = 0.
Cela peut être réécrite comme :
𝑑
[𝑉 − 𝑥̇ ∗ (𝑡)𝑉𝑥̇ ] = 0 → 𝑉 − 𝑥̇ ∗ (𝑡)𝑉𝑥̇ = 𝐶
𝑑𝑡
Cette dernière équation 𝑉 − 𝑥̇ ∗ (𝑡)𝑉𝑥̇ = 𝐶 peut être résolue à l'aide de la méthode de séparation des
variables.

Cas 4 : 𝑽 dépend de 𝒙(𝒕) et 𝒕 c.à.d. 𝑉 = 𝑉(𝑥(𝑡), 𝑡) et 𝑉𝑥̇ = 0) Dans ce cas la, l'équation d'Euler
Lagrange deviendra
𝜕𝑉(𝑥 ∗ (𝑡), 𝑡)
=0
𝜕𝑥
La solution de cette équation ne contient aucune constantes arbitraires et dans ce cas elle ne satisfait pas
les conditions aux limites 𝑥(𝑡0 ) et 𝑥(𝑡𝑓 ) alors elle ne possède aucune solution en général sauf dans des
cas très rares.

2.8 Optimisation statiques sous contraintes :


Il est parfois demandé de chercher des extremums des certaines fonctions, auxquelles sont imposées un
certain nombre de contraintes. On a dans ce cas recours à la méthode des multiplicateurs de Lagrange.
à lire.. https://fr.wikipedia.org/wiki/Multiplicateur_de_Lagrange
Nous commençons cette section par un exemple de trouver les extremums d'une fonction soumis à
satisfaire une condition (ou contrainte). Nous résolvons cet exemple avec deux méthodes, d'abord par la
méthode directe et ensuite par la méthode des multiplicateurs de Lagrange.
Notons que nous considérons cet exemple simple que pour illustrer certains concepts de base liés à
l'optimisation statique sous contraintes.

2.8.1 Enoncé de problème : Un constructeur souhaite construire un réservoir cylindrique. Il cherche à


maximiser le volume de la matière stockée dans ce réservoir à condition que la matière utilisée pour la
construction du réservoir soit limitée (constante). Ainsi, pour une épaisseur constante de la matière, le
constructeur souhaite minimiser le volume du matériau utilisé et par conséquent une partie du coût de la
cuve.
Solution:
Supposons que l'épaisseur est fixe, cela implique que la surface de la section du matériau utilisé est
constante.
Soit d et h le diamètre et la hauteur du réservoir cylindrique, le volume de cuve est donné par:
𝑉(𝑑, ℎ) = 𝜋𝑑 2 ℎ/4.
La surface de la section de la cuve est

11
2𝜋𝑑 2
𝐴(𝑑, ℎ) = + 𝜋𝑑ℎ = 𝐴0
4
L'objectif est de maximiser 𝑉(𝑑, ℎ) gardant 𝐴(𝑑, ℎ) = 𝐴0 avec 𝐴0 est une constante donnée ;

a) La Méthode directe :
On élimine une variable (h) par exemple de l'équation de volume on utilisant la formule de surface,
𝐴0 𝑑
ℎ= −
𝜋𝑑 2
Le volume en fonction de d :
𝑉(𝑑, ℎ) = 𝜋𝑑 2 ℎ/4.
𝐴0 𝑑 𝜋𝑑3
𝑉(𝑑) = −
4 8
La dérivée partielle de V(d) par rapport d s'annule au point optimal :
𝐴0 3𝜋𝑑 2
− =0
4 8
2𝐴 2𝐴
𝑑∗ = √ 3𝜋0 et ℎ∗ = √ 3𝜋0
Alors le volume sera maximisé si la hauteur est choisie égale au diamètre.

b) Méthode de multiplicateur de Lagrange:


On va maximiser la fonction (volume):
𝑓(𝑑, ℎ) = 𝜋𝑑 2 ℎ/4
Sachant que la surface A vérifie une condition:
2𝜋𝑑 2
𝑔(𝑑, ℎ) = + 𝜋𝑑ℎ − 𝐴0 = 0
4
Formons le Lagrangien :
ℒ(𝑑, ℎ, 𝜆) = 𝑓(𝑑, ℎ) + 𝜆𝑔(𝑑, ℎ)
2𝜋𝑑 2
ℒ(𝑑, ℎ, 𝜆) = 𝜋𝑑 2 ℎ/4 + 𝜆 ( + 𝜋𝑑ℎ − 𝐴0 )
4
Avec 𝜆 est le multiplicateur de Lagrange.
Les dérivées partielles de Lagrangien en fonction des variables ( 𝑑, ℎ, 𝜆)
𝜕ℒ 𝜋𝑑ℎ
= + 𝜆(𝜋𝑑 + 𝜋ℎ) = 0
𝜕𝑑 2
𝜕ℒ 𝜋𝑑 2
= + 𝜆(𝜋𝑑) = 0
𝜕ℎ 4
𝜕ℒ 2𝜋𝑑 2
= + 𝜋𝑑ℎ − 𝐴0
𝜕𝜆 4
Résolvons les 3 équations :
𝑑
𝑑𝜋 ( + 𝜆) = 0 alors 𝑑 ∗ = −4𝜆∗
4
2𝐴 2𝐴 𝐴
𝑑∗ = √ 3𝜋0 et ℎ∗ = √ 3𝜋0 et 𝜆∗ = −√24𝜋
0

2.8.2 Méthode Directe:


Maintenant on généralise la méthode précédente d'élimination par calcul différentiel. Considérons
l'extremum d'une fonction f(x1,x2) soumis à la contrainte g(x1,x2)=0
Comme condition nécessaire d'optimalité on a:
12
Cependant, puisque dx1 et dx2 ne sont pas arbitraires mais ils sont reliés par la contrainte:

Pour trouver les valeurs optimales qui satisfaites les deux conditions précédentes, g(x1,x2)=0 et

On traite un des deux variables par exemple x1 comme une variable indépendante et x2 devient une
variable dépendante

Puisque dx1 a été choisi comme une variable indépendante et arbitraire


Pour vérifier

On va choisir

C’est la Jacobéenne de g et f simultanément.

2.8.2 Méthode de Lagrange :


On considère l'extremum d'une fonction f(x1, x2), soumis à des contraintes d'égalité g(x1, x2)=0
Construisons le Lagrangien augmenté:

Utilisons la contrainte g(x1,x2)=0 , on obtient

Donc la condition nécessaire d’extrémum est

13
Prenons dx1 comme différentielle indépendante et dx2 dépendante

et choisissons qui annule le coefficient de dx2

Pour dx1 arbitraire il faut que:

A partir du Lagrangien

On note que satisfait la contrainte g(x1, x2)=0

En résumé, l'optimum d'une fonction f(x1,x2) soumis à la contrainte d'égalité g(x1,x2)=0 est équivalent à
un optimum de la fonction augmentée L(x1,x2, )= f(x1,x2)+.g(x1,x2) comme si les variables x1, x2 et 
sont considérés indépendantes.

Généralisation :
On considère l'extremum d'une fonction à plusieurs variables
Min/Max
Soumis à des contraintes d'égalité :

f, g possèdent des dérivées partielles continus et m<n.


Le Lagrangien est donné par :

Les valeurs optimales x* et * sont obtenue par la solution de l'équation :

14
Chapitre 2 : L’approche Variationelle pour la résolution du problème de contrôle optimal des
systèmes dynamiques

2.1 Problème de coût final

On considère le problème de contrôle optimal de Bolza où l’indice de performance a une forme générale
contenant un terme de coût terminal (final) plus le terme intégral.

On considère le processus (système) décrit par le modèle suivant :

𝒙̇ (𝒕) = 𝒇(𝒙(𝒕), 𝒖(𝒕), 𝒕)

x(t) le vecteur d’état de dimension n et u(t) la commande de dimension r

L’indice de performance à minimiser :

𝑡𝑓
𝐽(𝑢(𝑡)) = 𝑆(𝑥(𝑡𝑓 ), 𝑡𝑓 ) + ∫ 𝑉(𝑥(𝑡), 𝑢(𝑡), 𝑡)𝑑𝑡
𝑡𝑂

avec les conditions aux limites : 𝒙(𝒕𝟎 ) = 𝒙𝟎 , 𝒙(𝒕𝐟 ) libre et/ou 𝒕𝐟 libre

Avant d’abord de présenter la procédure de Pontryagin pour résoudre ce problème, on peut écrire :

𝒕𝒇
𝒅𝑺(𝒙(𝒕), 𝒕)
∫ 𝒅𝒕 = 𝑺(𝒙(𝒕𝒇 ), 𝒕𝒇 ) − 𝑺(𝒙(𝒕𝟎 ), 𝒕𝟎 )
𝒕𝑶 𝒅𝒕

Alors, l’indice de performance devient :

𝑡𝑓
𝒅𝑆(𝒙(𝒕), 𝒕)
𝑱(𝒖(𝒕)) = 𝑱𝟐 (𝒖(𝒕)) + 𝑆(𝑥(𝑡0 ), 𝑡0 ) = ∫ [𝑉(𝑥(𝑡), 𝑢(𝑡), 𝑡) + ] 𝑑𝑡 + 𝑆(𝑥(𝑡𝟎 ), 𝑡𝟎 )
𝑡𝑂 𝒅𝒕

Puisque 𝑺(𝒙(𝒕𝟎 ), 𝒕𝟎 )est une quantité fixe alors les 2 problèmes avec les indices de performance J et J2
sont équivalents. L’essentielle est de trouver la commande optimale u*(t).

On note aussi que :

𝒅[𝑺(𝒙(𝒕), 𝒕)] 𝒅𝑺 𝐓 𝒅𝑺
= ( ) 𝒙̇ (𝒕) +
𝒅𝒕 𝒅𝒙 𝒅𝒕

15
2.2 Solution du problème : Pour résoudre ce problème on va suivre les étapes suivantes :

Etape 1 : Hypothèse de conditions d’optimalité :

On suppose l’existence des valeurs optimales x*(t) et u*(t) donc

𝒕𝒇
𝒅𝑺(𝒙∗ (𝒕), 𝒕)
𝑱(𝒖∗ (𝒕)) = ∫ [𝑽(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝒕) + ] 𝒅𝒕
𝒕𝑶 𝒅𝒕

𝒙̇ ∗ (𝒕) = 𝒇(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝒕)

Etape 2 : Variation de la commande et de vecteur d'état :

On considère des variations autour des valeurs optimales x*(t) et u*(t) exprimées par :

𝒙(𝒕) = 𝒙∗ (𝒕) + 𝜹𝒙(𝒕); 𝒖(𝒕) = 𝒖∗ (𝒕) + 𝜹𝒖(𝒕);

Alors, l’équation d’état et l’indice de performance devient :

𝒙̇ ∗ (𝒕) + 𝜹𝒙̇ (𝒕) = 𝒇(𝒙∗ (𝒕) + 𝜹𝒙(𝒕), 𝒖∗ (𝒕) + 𝜹𝒖(𝒕), 𝒕)

𝒕𝒇 +𝜹𝒕𝒇
𝒅𝑺
𝑱(𝒖(𝒕)) = ∫ [𝑽(𝒙∗ (𝒕) + 𝜹𝒙(𝒕), 𝒖∗ (𝒕) + 𝜹𝒖(𝒕), 𝒕) + ] 𝒅𝒕
𝒕𝑶 𝒅𝒕

Figure 2.2 Système à temps final (terminal) libre et état final libre

Etape 3 : Multiplicateur de Lagrange

Introduisons le Multiplicateur de Lagrange (t) (Le vecteur d’état adjoint (auxiliaire)

On calcule l’indice de performance augmenté Ja* au point optimal :

16
𝒕𝒇 𝒅𝑺 𝐓 ∗
∗ (𝒕), ∗ (𝒕),
𝒅𝑺
∗ (𝒕)) 𝑽(𝒙 𝒖 𝒕) + ( ) 𝒙̇ (𝒕) + ( )
𝑱𝒂 (𝒖 =∫ [ 𝒅𝒙 ∗ 𝒅𝒕 ∗ ] 𝒅𝒕
𝒕𝑶
+𝝀(𝒕)𝐓 (𝒇(𝒙∗ (𝒕) + 𝜹𝒙(𝒕), 𝒖∗ (𝒕) + 𝜹𝒖(𝒕), 𝒕) − 𝒙̇ ∗ (𝒕))

L’indice de performance augmenté Ja au point perturbé :

𝒕𝒇 +𝜹𝒕𝒇 ∗ (𝒕) ∗ (𝒕)


𝒅𝑺 𝐓 𝒅𝑺
𝑽(𝒙 + 𝜹𝒙(𝒕), 𝒖 + 𝜹𝒖(𝒕), 𝒕) + ( ) [𝒙̇ ∗ (𝒕) + 𝜹𝒙̇ (𝒕)] + ( )
𝑱𝒂 (𝒖(𝒕)) = ∫ [ 𝒅𝒙 ∗ 𝒅𝒕 ∗ ] 𝒅𝒕
𝒕𝑶 𝐓 (𝒇(𝒙∗ (𝒕), ∗ (𝒕), ∗ (𝒕)
+𝝀(𝒕) 𝒖 𝒕) − 𝒙̇ − 𝜹𝒙̇ (𝒕))

Etape 4 : Lagrangien

On définit le Lagrangien au point optimal :

∗ (𝒕), ∗ (𝒕), ∗ (𝒕),


𝒅𝑺 𝐓 ∗
∗ (𝒕),
𝒅𝑺
𝓛(𝒙 𝒖 𝝀(𝒕), 𝒕) = 𝑽(𝒙 𝒖 𝒕) + ( ) 𝒙̇ (𝒕) + ( )
𝒅𝒙 ∗ 𝒅𝒕 ∗
𝐓 ∗ (𝒕) ∗ (𝒕) ∗ (𝒕))
+𝝀(𝒕) (𝒇(𝒙 + 𝜹𝒙(𝒕), 𝒖 + 𝜹𝒖(𝒕), 𝒕) − 𝒙̇

Le Lagrangien au point perturbé :

𝒅𝑺 𝐓 𝒅𝑺
𝓛𝜹 = 𝑽(𝒙∗ (𝒕) + 𝜹𝒙(𝒕), 𝒖∗ (𝒕) + 𝜹𝒖(𝒕), 𝒕) + ( ) [𝒙̇ ∗ (𝒕) + 𝜹𝒙̇ (𝒕)] + ( )
𝒅𝒙 ∗ 𝒅𝒕 ∗
𝐓 (𝒇(𝒙∗ (𝒕), ∗ (𝒕), ∗ (𝒕)
+𝝀(𝒕) 𝒖 𝒕) − 𝒙̇ − 𝜹𝒙̇ (𝒕))

L’indice de performance dans les deux cas est donné par :

𝒕𝒇 +𝜹𝒕𝒇
∗ (𝒕)) [𝓛(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝝀(𝒕), 𝒕)]𝒅𝒕
𝑱𝒂 (𝒖 =∫
𝒕𝑶

𝒕𝒇 +𝜹𝒕𝒇 𝒕𝒇 𝜹𝒕𝒇
𝜹 𝜹
𝑱𝒂 (𝒖(𝒕)) = ∫ 𝓛 𝒅𝒕 = ∫ 𝓛 𝒅𝒕 + ∫ 𝓛𝜹 𝒅𝒕
𝒕𝑶 𝒕𝑶 𝒕𝒇

On utilise le théorème de la valeur moyenne et le développement limité en série de Taylor pour


approximer le dernier terme :

𝜹𝒕𝒇
∫ 𝓛𝜹 𝒅𝒕 ≅ 𝓛𝜹 |𝒕𝒇 𝜹𝒕𝒇
𝒕𝒇

𝐓 𝐓 𝐓
𝝏𝓛 𝝏𝓛 𝝏𝓛
≅ {𝓛 + ( ) 𝜹𝒙(𝒕) + ( ) 𝜹𝒙̇ (𝒕) + ( ) 𝜹𝒖(𝒕)} |𝒕𝒇 𝜹𝒕𝒇
𝝏𝒙 ∗ 𝝏𝒙̇ ∗ 𝝏𝒖 ∗

≅ 𝓛|𝒕𝒇 𝜹𝒕𝒇
17
• Etape 5 : Première Variation

On définit d’abord l’incrément ∆𝑱 = 𝑱𝒂 (𝒖(𝒕)) − 𝑱𝒂 (𝒖∗ (𝒕))

𝒕𝒇
∆𝑱 = ∫ (𝓛𝜹 − 𝓛)𝒅𝒕 + 𝓛|𝒕𝒇 𝜹𝒕𝒇
𝒕𝑶

Alors la première variation sera donnée par :

𝝏𝓛 𝐓
𝒕𝒇
𝝏𝓛 𝐓 𝝏𝓛 𝐓
𝜹𝑱 = ∫ (( ) 𝜹𝒙(𝒕) + ( ) 𝜹𝒙̇ (𝒕) + ( ) 𝜹𝒖(𝒕)) 𝒅𝒕 + 𝓛|𝒕𝒇 𝜹𝒕𝒇
𝒕𝑶 𝝏𝒙 ∗ 𝝏𝒙̇ ∗ 𝝏𝒖 ∗

On élimine le terme 𝜹𝒙̇ (𝒕) et on intègre par parties :

𝒕𝒇 𝒕𝒇
𝐓
𝝏𝓛 𝝏𝓛 𝐓 𝒅(𝜹𝒙(𝒕))
∫ ( ) 𝜹𝒙̇ (𝒕)𝒅𝒕 = ∫ ( ) 𝒅𝒕
𝝏𝒙̇ ∗ 𝝏𝒙̇ ∗ 𝒅𝒕
𝒕𝟎 𝒕𝟎

𝒕𝒇
𝐓
𝝏𝓛 𝒕𝒇 𝒅 𝝏𝓛 𝐓
= ( ) 𝜹𝒙(𝒕)|𝒕𝟎 − ∫ ( ) 𝜹𝒙(𝒕)𝒅𝒕
𝝏𝒙̇ ∗ 𝒅𝒕 𝝏𝒙̇ ∗
𝒕𝟎

Puisque 𝒙(𝒕𝟎 ) est imposé alors 𝜹𝒙(𝒕𝟎 ) d'où la première variation s’écrit :

𝒕𝒇
𝝏𝓛 𝐓 𝒅 𝝏𝓛 𝐓 𝝏𝓛 𝐓 𝝏𝓛 𝐓 𝒕
𝜹𝑱 = ∫ ([( ) − ( ) ] 𝜹𝒙(𝒕) + ( ) 𝜹𝒖(𝒕)) 𝒅𝒕 + 𝓛|𝒕𝒇 𝜹𝒕𝒇 + ( ) 𝜹𝒙(𝒕)|𝒕𝒇𝟎
𝒕𝑶 𝝏𝒙 ∗ 𝒅𝒕 𝝏𝒙̇ ∗ 𝝏𝒖 ∗ 𝝏𝒙̇ ∗

Etape 6 : Conditions d’Extremums

Selon le théorème fondamental de calcul des variations, la première variation s’annule pour avoir
un extremum. 𝜹𝑱 = 𝟎.

Premièrement, choisissons le multiplicateur de Lagrange (t)=*(t) qu’on dispose et 𝓛∗ sachant


que le coefficient de la variation dépendante x(t) s’annule.

𝝏𝓛 𝒅 𝝏𝓛
( ) − ( ) = 𝟎,
𝝏𝒙 ∗ 𝒅𝒕 𝝏𝒙̇ ∗

𝝏𝓛
( ) =𝟎,
𝝏𝒖 ∗

Et

𝝏𝓛
( ) =𝟎
𝝏𝝀 ∗
18
En plus, dans un système de contrôle typique ; u(t) est la variation de commande indépendante et x(t)
est la variation d’état dépendante.

Figure Approximation des Conditions au point final

Afin de convertir l'expression contenant x(t) dans

𝝏𝓛 𝐓 𝒕
𝓛|𝒕𝒇 𝜹𝒕𝒇 + ( ) 𝜹𝒙(𝒕)|𝒕𝒇𝟎 = 𝟎
𝝏𝒙̇ ∗

On utilise l'approximation de la pente

𝜹𝒙𝒇 − 𝜹𝒙(𝒕𝒇 )
𝒙̇ ∗ (𝒕) + 𝜹𝒙̇ (𝒕) ≈
𝜹𝒕𝒇

d'où

𝜹𝒙𝒇 = 𝜹𝒙(𝒕𝒇 ) + { 𝒙̇ ∗ (𝒕) + 𝜹𝒙̇ (𝒕)} 𝜹𝒕𝒇

Et en ne conservant que le terme linéaire nous obtenons

𝜹𝒙(𝒕𝒇 ) = 𝜹𝒙𝒇 − 𝒙̇ ∗ (𝒕𝒕𝒇 ) 𝜹𝒕𝒇

Alors
𝝏𝓛 𝐓

𝝏𝓛 𝐓
(𝓛 − ( ) 𝒙̇ (𝒕)) |𝒕𝒇 𝜹𝒕𝒇 + ( ) 𝜹𝒙(𝒕)|𝒕𝒇 = 𝟎
𝝏𝒙̇ ∗ 𝝏𝒙̇ ∗

19
Etape 7 : Hamiltonien

On introduit le Hamiltonien 𝓗∗ au point optimal pour simplifier les conditions d'optimalité :

𝓗∗ = 𝑽(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝒕) + 𝝀(𝒕)𝐓 𝒇(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝒕

Le Lagrangien en fonction de Hamiltonien est donné par :

𝒅𝑺 𝐓 ∗ 𝒅𝑺
𝓛(𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝝀(𝒕), 𝒕) = 𝓗∗ (𝒙∗ (𝒕), 𝒖∗ (𝒕), 𝝀∗ (𝒕), 𝒕) + ( ) 𝒙̇ (𝒕) + ( ) − 𝝀(𝒕)𝐓 𝒙̇ ∗ (𝒕)
𝒅𝒙 ∗ 𝒅𝒕 ∗

Les conditions d'optimalité deviennent :

pour la commande optimale (Condition C1), la condition devient :

𝝏𝓛 𝝏𝓗
( ) =𝟎
𝝏𝒖 ∗
→( 𝝏𝒖 ) =𝟎,

Et pour le vecteur d’état auxiliaire optimal (Condition C2) on aura :

𝝏𝓛 𝝏𝓗
( ) =𝟎
𝝏𝝀 ∗
→ ( 𝝏𝝀 ) = 𝒙̇ ∗ (𝒕)

Et pour le vecteur d’état optimal (Condition C3) on aura :


𝝏𝓛 𝒅 𝝏𝓛
( ) − ( ) = 𝟎, →
𝝏𝒙 ∗ 𝒅𝒕 𝝏𝒙̇ ∗

𝐓
𝝏𝓗 𝝏𝟐 𝑺 ∗ (𝒕)+
𝝏𝟐 𝑺 𝒅 𝝏𝑺 𝐓
( ) +( 𝟐 ) 𝒙̇ ( ) − {( ) − 𝝀∗ (𝒕)} = 𝟎, →
𝝏𝒙 ∗ 𝝏 𝒙 ∗
𝝏𝒙𝝏𝒕 ∗ 𝒅𝒕 𝝏𝒙 ∗

𝐓 𝐓
𝝏𝓗 𝝏𝟐 𝑺 𝝏𝟐 𝑺 𝝏𝟐 𝑺 𝝏𝟐 𝑺
( ) +( 𝟐 ) 𝒙̇ ∗ (𝒕)+
( ) − {( 𝟐 ) 𝒙̇ ∗ (𝒕)+
( ) − 𝝀̇∗ (𝒕)} = 𝟎
𝝏𝒙 ∗ 𝝏 𝒙 ∗
𝝏𝒙𝝏𝒕 ∗ 𝝏 𝒙 ∗
𝝏𝒙𝝏𝒕 ∗

Finalement on obtient la Condition C3 :

𝝏𝓗
( ) = −𝝀̇∗ (𝒕)
𝝏𝒙 ∗

Avec les conditions de transversalité :

𝐓
𝝏𝑺 𝝏𝑺
[𝑯∗ + ] 𝜹𝒕𝒇 + [( ) − 𝝀∗ (𝒕)] 𝜹𝒙𝒇 = 𝟎
𝝏𝒕 𝒕𝒇 𝝏𝒙 ∗ 𝒕𝒇

20
Pour la condition de transversalité on distingue les trois cas suivants

Type (a) Horizon fini : temps final fixe et état final fixe :

Puisque 𝒕𝒇 et 𝒙(𝒕𝒇 ) sont imposés et fixe à priori, alors (𝜹𝒕𝒇 =0 et 𝜹𝒙𝒇 =0) dans la dernière relation :

Figure système Type (a) Horizon fini

Type (b) : temps final libre et état final fixe:

Puisque 𝒕𝒇 est libre et 𝒙(𝒕𝒇 )est fixe à priori, alors (𝜹𝒕𝒇 arbitraire et 𝜹𝒙𝒇 =0) dans la dernière relation :

𝝏𝑺
[𝑯∗ + ] =𝟎
𝝏𝒕 𝒕𝒇

Type (c) : temps final fixe et état final libre:

Puisque 𝒕𝒇 est fixe à priori et 𝒙(𝒕𝒇 )est libre, alors (𝜹𝒕𝒇 =0 ) et 𝜹𝒙𝒇 est arbitraire dans la dernière relation :

21
𝝏𝑺
𝝀∗ (𝒕) = ( )
𝝏𝒙 ∗ 𝒕𝒇

2.3 Condition nécessaires :

Pour vérifier la nature de l’optimum (min ou max) on calcule la 2ème variation :

𝒕𝒇
𝟐
𝝏𝟐 𝓗 𝟐 𝝏𝟐 𝓗 𝟐 𝝏𝟐 𝓗
𝜹 𝑱 = ∫ ( 𝟐 (𝜹𝒙(𝒕)) + (𝜹𝒖(𝒕)) + 𝟐 (𝜹𝒖(𝒕)𝜹𝒙(𝒕))) 𝒅𝒕
𝒕𝑶 𝝏𝒙 𝝏𝒖𝟐 𝝏𝒖𝝏𝒙

𝝏𝟐 𝓗 𝝏𝟐 𝓗
𝒕𝒇
= ∫ [𝜹𝒙𝐓 (𝒕) 𝜹𝒖𝐓 (𝒕)] 𝝏𝒙
𝟐 𝝏𝒖𝝏𝒙 [ 𝜹𝒙(𝒕) ] 𝒅𝒕
𝒕𝑶 𝝏 𝓗 𝝏𝟐 𝓗 𝜹𝒖(𝒕)
𝟐

[𝝏𝒖𝝏𝒙 𝝏𝒖𝟐 ] ∗

Pour que 𝑱∗ soit minimum la matrice

𝝏𝟐 𝓗 𝝏𝟐 𝓗
𝝏𝒙𝟐 𝝏𝒖𝝏𝒙
𝝏𝟐 𝓗 𝝏𝟐 𝓗
[𝝏𝒖𝝏𝒙 𝝏𝒖𝟐 ]∗

doit être définie positive.

• 2.1 Exemple : Soit le système :

𝒙̇ 𝟏 = 𝒙𝟐
𝒙̇ 𝟐 = 𝒖

Trouvez 𝑢∗ (𝑡) qui minimise


1 2 2
𝐽(𝑢(𝑡)) = ∫ [𝑢 (𝑡)] 𝑑𝑡
2 0
Pour les conditions aux limites données par :
1 1
(a) 𝑥(0) = [ ] et 𝑥(2) = [ ] ou
2 0
1 0
(b) 𝑥(0) = [ ] et 𝑥(2) = [ ]
2 libre
22
Exercices :
Exercice 1 : Soit le système dynamique de premier ordre :

𝒙̇ (𝒕) = −𝟐𝒙(𝒕) + 𝒖(𝒕)

On cherche la commande optimale 𝒖∗ (𝒕) qui minimise l'indice de performance

1
𝐽(𝑢(𝑡)) = ∫ [𝑢2 (𝑡)] 𝑑𝑡
0
Avec x(0) = 1 et x(1) = 0
Démontrer que le contrôle optimal est :
4𝑒 2𝑡
𝑢∗ (𝑡) = −
𝑒4 − 1
Exercice 2 : Un système est décrit par

𝒛̈ (𝒕) + 𝒂𝒛̇ (𝒕) + 𝒃𝒛(𝒕) = 𝒖(𝒕)

où a> 0 et a2 <4b.
La variable de contrôle est soumise à la contrainte|𝑢(𝑡)| ≤ 𝑘. Elle doit être choisie pour que le système
atteigne l'état 𝒛(𝑇)=0, 𝒛̇ (𝒕) = 0 en un minimum de temps. Démontrer que le contrôle optimal est donné
par:
𝑢∗ (𝑡) = 𝑘 sign 𝑝(𝑡)
où p(·) est une fonction périodique.

Exercice 3 : Soit un système représenté par :

𝒙̇ (𝒕) = −𝟐𝒙(𝒕) + 𝟐𝒖(𝒕)

La variable de contrôle sans contrainte u (·) doit être choisie de façon à minimiser l'indice de performance
1
𝐽(𝑢(𝑡)) = ∫ [3𝑥 2 (𝑡) + 𝑢2 (𝑡)] 𝑑𝑡
0
tout en transférant le système de x(0) = 0 à x(1) = 1.
Montrer que le contrôle optimal est donnée par :
3𝑒 4𝑡 3−𝑒 −4𝑡
𝑢∗ (𝑡) = −
𝑒 4 − 𝑒 −4

Exercice 4 : Soit le système du premier ordre associé à l'indice de performance quadratique :

𝒙̇ (𝒕) = 𝒂𝒙(𝒕) − 𝒃𝒖(𝒕) avec 𝒙(𝒕𝑶 ) est donné.

1 1 𝒕𝒇
𝐽 = 𝑐[𝑥(𝑡𝑓 ]2 + ∫ 𝑢2 (𝑡) 𝑑𝑡
2 2 𝒕𝑶

où x, u; u sont des variables scalaires et a; b; et c sont des constantes. Calculez analytiquement la loi de
commande optimale u* qui minimise J.

23
Chapitre 3 Contrôle linéaire optimal quadratique
Linear Quadratic Optimal Control
Dans ce chapitre, nous présentons la commande optimale des systèmes linéaires ayant un indice de
performance quadratique. Ce qui nous amène au régulateur linéaire quadratique du système (LQR) qui
traite le problème de régulation de (l’état ou la sortie) et Poursuite (Tracking problem).

3.1 Formulation du problème :


Considérons un système linéaire invariant dans le temps (LTI) :
𝑥̇ (𝑡) = 𝑨𝑥(𝑡) + 𝑩𝑢(𝑡)
Avec l’indice de performance (IP) Quadratique :
𝑇 1 𝑡𝑓
𝐽(𝑢(𝑡)) = 𝑥(𝑡𝑓 ) 𝑭𝑥(𝑡𝑓 ) + ∫ [𝑥(𝑡)𝑇 𝑸𝑥(𝑡) + 𝑢(𝑡)𝑇 𝑹𝑢(𝑡)]𝑑𝑡
2 𝑡𝑂
Avec les matrices F,Q, R des matrices symétriques et de dimension appropriée.

3.1 Solution par l'approche variationelle :


Etape 1 : On construit l’Hamiltonien ℋ:

𝟏 𝟏
𝓗∗ = 𝒙(𝒕)𝑻 𝑸𝒙(𝒕) + 𝒖(𝒕)𝑻 𝑹𝒖(𝒕) + 𝝀(𝒕)𝐓 [𝑨𝒙(𝒕) + 𝑩𝒖(𝒕)]
𝟐 𝟐

𝝏ℋ
Etape 2 : on cherche u*(t) à l'aide de condition c1 : ( 𝝏𝒖 ) = 0

On a
𝝏 1
{ 𝑢(𝑡)𝑇 𝑹𝑢(𝑡)} = 𝑹𝑢(𝑡)
𝝏𝒖 2
Et
𝝏
{𝜆(𝑡)T 𝐵𝒖(𝒕)} = 𝐵 T 𝜆(𝑡)
𝝏𝒖
𝝏ℋ
( ) = 0 → 𝑹𝑢(𝑡) + 𝐵 T 𝜆(𝑡) = 0
𝝏𝒖 ∗
D'où
𝑢∗ (𝑡) = −𝑅 −1 𝐵 T 𝜆∗ (𝑡)

Etape 3 : Equation de l’état et l’équation d'Etat Auxiliaire :


𝜕ℋ
𝑥̇ ∗ (𝑡) = + ( ) → 𝑥̇ ∗ (𝑡) = 𝑨𝑥 ∗ (𝑡) + 𝑩𝑢∗ (𝑡)
𝜕𝜆 ∗
𝜕ℋ
𝜆̇∗ (𝑡) = − ( ) → 𝜆̇∗ (𝑡) = −𝑸𝑥 ∗ (𝑡) − 𝑨𝑻 𝜆∗ (𝑡)
𝜕𝑥 ∗
On remplace la relation de commande obtenue à l'étape 2 dans l'équation d'état pour obtenir un système
canonique d’équation (appelé système Hamiltonien)
𝑥̇ ∗ (𝑡) 𝑨 −𝑬 𝑥 ∗ (𝑡)
[ ̇∗ ] = [ ][ ]
𝜆 (𝑡) −𝑸 −𝑨𝑻 𝜆∗ (𝑡)
𝑬 = 𝑩𝑹−1 𝑩T
Pour trouver u* il faut résoudre l'équation de système Hamiltonien avec les conditions de transversalité

24
T
𝜕𝑆 𝜕𝑆
[𝐻 ∗ + ] 𝛿𝑡𝑓 + [( ) − 𝜆∗ (𝑡)] 𝛿𝑥𝑓 = 0
𝜕𝑡 𝑡𝑓 𝜕𝑥 ∗ 𝑡𝑓
Puisque tf est spécifie et xf est libre alors les conditions de transversalité prennent :
T
𝜕𝑆
[( ) − 𝜆∗ (𝑡)] = 0
𝜕𝑥 ∗ 𝑡𝑓
D'où
𝜕 𝑇
𝜆∗ (𝑡𝑓 ) ={𝑥(𝑡𝑓 ) 𝑭𝑥(𝑡𝑓 )} = 𝐹𝑥 ∗ (𝑡𝑓 )
𝜕𝑥
On peut représenter le système complet composé de l'équation d'état et l'équation d'état auxiliaire par le
schéma bloque suivant :

Figure Dynamique de vecteur d'état et de vecteur d'état adjoint

Étape 4 : Commande optimale en boucle fermée :


La représentation de l'espace d'état de la figure précédente nous amène à penser que nous pouvons obtenir
la loi de commande optimale u*(t) en fonction (de rétroaction négative) de l'état optimal x*(t).
Supposons qu’il existe une transformation :
𝜆∗ (𝑡) = 𝑃(𝑡)𝑥 ∗ (𝑡)
où, P (t) sera déterminé plus tard.
Ensuite, nous pouvons obtenir facilement, la commande optimale :
𝑢∗ (𝑡) = −𝑅 −1 𝑩T 𝑃(𝑡)𝑥 ∗ (𝑡)
Par la substitution de 𝑢∗ (𝑡) dans l'équation d'état on aura
𝑥̇ ∗ (𝑡) = 𝑨𝑥 ∗ (𝑡) + 𝑩[−𝑅 −1 𝑩T 𝑃(𝑡)]𝑥 ∗ (𝑡)
Et la substitution de 𝜆∗ (𝑡) dans l'équation d'état adjoint :
𝜆̇∗ (𝑡) = −𝑸𝑥 ∗ (𝑡) − 𝑨𝑻 𝑃(𝑡)𝑥 ∗ (𝑡)
La différenciation de 𝜆∗ (𝑡) = 𝑃(𝑡)𝑥 ∗ (𝑡)nous donne :
𝜆̇∗ (𝑡) = 𝑃̇(𝑡)𝑥 ∗ (𝑡) + 𝑃(𝑡)𝑥̇ ∗ (𝑡)
𝜆̇∗ (𝑡) = 𝑃̇ (𝑡)𝑥 ∗ (𝑡) + 𝑃(𝑡)𝑨𝑥 ∗ (𝑡) + 𝑩[−𝑅 −1 𝑩T 𝑃(𝑡)]𝑥 ∗ (𝑡)
= −𝑸𝑥 ∗ (𝑡) − 𝑨𝑻 𝑃(𝑡)𝑥 ∗ (𝑡)
Alors on obtient :
[𝑃̇(𝑡) + 𝑃(𝑡)𝑨 + 𝑨𝑻 𝑃(𝑡) + 𝑸 − 𝑩𝑅 −1 𝑩T 𝑃(𝑡)]𝑥 ∗ (𝑡) = 0
25
Étape 5 : Equation Matricielle différentielle de Riccati :
Cette relation doit être satisfaite pour tout t [t0, tf] et x*(t0).
En outre, P(t) ne dépend pas de l'état initial.
Il en résulte qu'il doit être satisfaite pour toute valeur de x*(t). Cela signifie clairement que la fonction P
(t) doit satisfaire à l'équation matricielle différentielle de Riccati .
𝑃̇ (𝑡) + 𝑃(𝑡)𝑨 + 𝑨𝑻 𝑃(𝑡) + 𝑸 − 𝑩𝑅 −1 𝑩T 𝑃(𝑡) = 𝟎𝑛×𝑛

𝑃̇(𝑡) = −𝑃(𝑡)𝑨 − 𝑨𝑻 𝑃(𝑡) − 𝑸 + 𝑩𝑅 −1 𝑩T 𝑃(𝑡)


En comparant la condition limite et la transformation de Riccati, nous obtenons la dernière condition sur
P(t)
𝜆∗ (𝑡𝑓 ) = 𝐹𝑥 ∗ (𝑡𝑓 )
= 𝑃(𝑡𝑓 )𝑥 ∗ (𝑡𝑓 )
Alors 𝑃(𝑡𝑓 ) = 𝐹
Nous pouvons démontrer que la matrice de P(t) est symétrique pour c'est-à-dire, P(t) = PT(t)
Question : Est-ce que le commande optimale u* (t) obtenu donne un IP minimal ?

𝝏𝟐 𝓗 𝝏𝟐 𝓗
𝟐
𝛑 = 𝝏𝒙 𝝏𝒖𝝏𝒙
𝝏 𝓗 𝝏𝟐 𝓗
𝟐

[𝝏𝒖𝝏𝒙 𝝏𝒖𝟐 ]∗

La matrice π est-elle définie positive ?

𝝏𝓗𝟐 𝝏𝓗𝟐 𝝏𝓗𝟐


( ) = 𝑸, ( ) = 𝑹 𝐞𝐭 ( ) =𝟎
𝝏𝒙𝟐 ∗ 𝝏𝒖𝟐 ∗ 𝝏𝒙𝝏𝒖 ∗

𝑸 𝟎
𝛑=[ ]
𝟎 𝑹

R est définie positive, et Q est semi-définie positive, alors la matrice précédente 𝛑 est seulement semi-
définie positive.

La valeur optimale de l’indice de Performance est donnée par :

𝑱∗ = 𝒙∗ (𝒕)𝑻 𝑷(𝒕)𝒙∗ (𝒕)

26
Résumé LQR : Soit un système Linéaire variant dans le temps :

𝑥̇ (𝑡) = 𝑨𝑥(𝑡) + 𝑩𝑢(𝑡)

et l’indice de performance quadratique

𝑇 1 𝑡𝑓
𝐽(𝑢(𝑡)) = 𝑥(𝑡𝑓 ) 𝑭𝑥(𝑡𝑓 ) + ∫ [𝑥(𝑡)𝑇 𝑸𝑥(𝑡) + 𝑢(𝑡)𝑇 𝑹𝑢(𝑡)]𝑑𝑡
2 𝑡𝑂

où, tf est spécifié, et x(tf) est libre,


F et Q sont des matrices symétriques semi-définies positives, et R est une matrice symétrique définie
positive.

La commande optimale est donnée par

𝑢∗ (𝑡) = −𝑅 −1 𝑩T 𝑃(𝑡)𝑥 ∗ (𝑡) = −𝑲(𝑡)𝑥 ∗ (𝑡)

où K(t) est appelé le gain de Kalman et P(t) est une matrice symétrique définie positive obtenue par la
solution de l’équation différentielle matricielle de Riccati :

𝑃̇ (𝑡) = −𝑃(𝑡)𝑨 − 𝑨𝑻 𝑃(𝑡) − 𝑸 + 𝑃(𝑡)𝑩𝑅 −1 𝑩T 𝑃(𝑡)


avec les conditions limites 𝑷(𝒕𝒇 ) = 𝑭

Commande LQR à Horizon infinie Equation Algébrique de Riccati


Si A, B sont des matrices Constantes est tf= ,alors le problème devient un problème LQR à horizon
infinie pour les système :
𝑥̇ (𝑡) = 𝑨𝑥(𝑡) + 𝑩𝑢(𝑡)

Trouvez u*(t) qui minimiser


𝑇 1 ∞
𝐽(𝑢(𝑡)) = 𝑥(𝑡𝑓 ) 𝑭𝑥(𝑡𝑓 ) + ∫ [𝑥(𝑡)𝑇 𝑸𝑥(𝑡) + 𝑢(𝑡)𝑇 𝑹𝑢(𝑡)]𝑑𝑡
2 0

Le système est supposé contrôlable alors la matrice de contrôlabilité a un rang complet.

rank ([𝐵 𝐴𝐵 𝐴2 𝐵 … … 𝐴𝑛−1 𝐵 ]) = 𝑛


Cela implique que :
lim {𝑃(𝑡𝑓 )} = 𝑃̅
𝑡𝑓 →∞
𝑑𝑃
𝑃̇(𝑡) = = 0 = −𝑃(𝑡)𝐴 − 𝐴𝑇 𝑃(𝑡) − 𝑄 + 𝑃(𝑡)𝐵𝑅 −1 𝐵 T 𝑃(𝑡)
𝑑𝑡
Finalement on obtient l'équation matricielle de Riccati Algébrique.
𝑃̅𝐴 + 𝐴𝑇 𝑃̅ + 𝑄 − 𝑃̅ 𝐵𝑅 −1 𝐵 T 𝑃 = 0

27
Exercices :
Exercice 1 :
Considérons le problème de contrôle optimal scalaire d'énergie minimale :
T
min J (0)  12  u 2 (t )dt
0

subject to: x(t )  ax(t )  bu (t ), x(0)=0, x(T)=10


Dériver les expressions pour le contrôle en boucle ouverte optimal u*(t) et la trajectoire d'état associée
x*(t). Vérifiez que la contrainte de terminal x*(T) = 10 est satisfaite.

Exercice 2. Soit le système LTI


𝑥̇ (𝑡) = 𝑥2 (𝑡), 𝑥1 (0) = 2
{ 1
𝑥̇ 2 (𝑡) = −2𝑥1 (𝑡) + 𝑥2 (𝑡) + 𝑢(𝑡), 𝑥2 (0) = −3

Trouvez la commande de rétroaction u*(t) qui minimise l'indice de performance.


1 ∞ 1
𝐽(𝑢(𝑡)) = ∫ [2𝑥1 2 (𝑡) + 6𝑥1 (𝑡)𝑥2 (𝑡) + 5𝑥2 2 (𝑡) + 𝑢(𝑡)2 ] 𝑑𝑡
2 0 4

Exercice 3. Considérez le problème de contrôle optimal :

T
J (to )   ( x12  2 x22  0.4u 2 )dt
to

subject to: x1  x2 , x1 (0)  1


x2   x1  x2  u , x2 (0)  0
Trouver les équations de Riccati et dériver une expression pour la matrice de gain de Kalman pour la mise
en œuvre du contrôle de rétroaction en boucle fermée.
Montrer que le contrôle optimal en boucle fermée est de la forme :

u(t )   k1 x1 (t )  k2 x2 (t )

et trouvez les valeurs des paramètres k1 and k2.

Exercice 4 : Pour le système à trois intégrateurs :

x1  x2
x2  x3
x3  u

où  L  u(t )  L , utiliser le principe minimum pour montrer que le signal de commande optimal qui
amène le système d'une condition initiale donnée à se reposer en un temps minimal est de la forme:
u(t )  L sgn( 21 at 2  bt  c)

Où a, b et c sont des constants.


Commentez sur la forme de l'action de contrôle optimale.

28
Exercice 5 : Soit le système de second ordre :

𝑥̇ 1 = 𝑥2
𝑥̇ 2 = 2𝑥1 − 𝑥2 + 𝑢

L'indice de performance à minimiser


𝑡𝑓
1 1
𝐽(𝑢(𝑡)) = ∫ [𝑥1 2 + 𝑥2 2 + 𝑢2 ] 𝑑𝑡
0 2 2
Trouvez la loi de commande optimale par la résolution de l'équation ODE de Riccati
Implémentez la loi de commande de condition x(0) = [-5; 5]T jusqu'au temps final tf = 20 utilisant Matlab. (Vous
pouvez intégrer P(t) analytiquement ou numériquement en arrière dans le temps utilisant par exemple le solveur
e.g. ode45). Tracez les éléments de la matrice P(t), le signal de commande u(t) et le vecteur d'état.

Exercice 6 :

Considère le système :
𝑥̇ 1 = 𝑥2
𝑥̇ 2 = −𝑎𝑥2 + 𝑢
pour a> 0 et |𝑢(𝑡)| ≤ 1
Le système doit être transféré à l'origine x(tf) = 0 tout en minimisant l'indice de performance
𝑡𝑓
𝐽(𝑢(𝑡)) = ∫ [𝛾 + |𝑢(𝑡)|] 𝑑𝑡
𝑡0

Le temps final est libre et 𝛾 > 0 est une constante.


a) Déterminer les équations adjointes et le contrôle qui minimise H
b) Quelles sont les séquences de contrôle optimales possibles ?
c) Déterminer la loi de contrôle optimale.

Exercice 7 :
Considérez le problème de la minimisation :
2
𝐽(𝑢(𝑡)) = ‖𝑥(𝑡𝑓 )‖
pour le système
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) + 𝐵𝑢(𝑡)
avec x(0) = x0 et tf fixe.
où 𝑥(𝑡) ∈ ℝ𝑛 et 𝑢(𝑡) ∈ ℝ avec les contraintes |𝑢(𝑡)| ≤ 1
Montrer que le contrôle optimal pour Jmin> 0 est de type bang-bang.
Quelles sont les trajectoires optimales pour le problème du double-intégrateur ? Dessiner ces trajectoires à
la main ou par simulateur Matlab en réglant A et B pour correspondre à la dynamique d'un double
intégrateur en 2D.

29
Chapitre 4 : Commande Linéaire Quadratique Gaussienne
Filtre de Kalman - Commande LQG

Formulation et Position de problème :


Soit le système dynamique représenté par le modèle d'état linéaire stochastique suivant :
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) + 𝐵𝑢 𝑢(𝑡) + 𝐵𝑤 𝑤(𝑡)
{
𝑦(𝑡) = 𝐶𝑥(𝑡) + 𝑣(𝑡)
𝑤(𝑡) : Perturbation liée au dynamique de système ; 𝑣(𝑡): bruit de mesure. (Processus stochastique)
𝑤(𝑡), 𝑣(𝑡) sont des bruits blancs, gaussiens, de moyenne zéro et indépendants.

30
Partie 2 : Commande prédictive (Model Predictive Control)

La stratégie de MPC a été découverte et réinventée à plusieurs reprises. Les approches à horizon fini ont
été utilisées dans les années 1960 et 1970 pour définir des méthodes de calcul pour des problèmes de
contrôle optimaux sans solution de forme fermée.
Le contrôle prédictif est réapparu dans le contexte totalement différent du contrôle des processus
industriels dans les années 1980 afin d'exploiter les améliorations constantes apportées aux ressources
informatiques pour améliorer les performances. Plus récemment, cette approche a été utilisée comme
technique générale pour dériver des contrôleurs de stabilisation pour des systèmes avec contraints. Dans
le même temps, la disponibilité d'ordinateurs plus rapides et l'amélioration de l'efficacité de calcul des
contrôleurs prédictifs (y compris les schémas MPC robustes et non linéaires) ont élargi sa gamme
d'applications pour inclure les systèmes d'échantillonnage rapide.

1. Principe de la Commande Prédictive :


Le MPC est une stratégie de contrôle basée sur l’optimisation numérique en ligne où les commandes
(entrées) et des réponses (sorties) futures de système sont prédits à base de modèle afin d’optimiser un
indice de performance sur une fenêtre d’horizon finie.

Le problème de commande MPC est résolu en 3 étapes :


1) Prédiction,
2) Optimisation
3) Implémentation sur un horizon fini.

1.1 Prédiction : La réponse future du système sera prédite par un modèle en général non-linéaire.
On simule le comportement de système sur un horizon de prédiction de fenêtre de N pas.

On utilise le vecteur uk qui représente la séquence d’entrée avec le modèle pour prédire le vecteur d'état
prédit xk / évalué à l'instant k
• Un modèle :
𝑥𝑘+1 = 𝑓(𝑥𝑘 , 𝑥𝑘 ) = 𝐴 𝑥𝑘 + 𝐵 𝑢𝑘 pour 𝑘=1, ….N-1. (eq1)
Pour une séquence prédite à l’instant k, on construit les deux vecteurs :
𝑢0/𝑘
𝑥1/𝑘
𝑢1/𝑘
𝒖𝒌 = [ ⋮ ] Modèle de l'équation 1 𝑥2/𝑘
𝒙𝒌 = [ ⋮ ]
𝑢𝑁−1/𝑘
𝑥𝑁/𝑘

𝑢𝑖/𝑘 : l’entrée à l’instant i prédite à l’instant k;


𝑥𝑖/𝑘 : le vecteur d’état du système à l’instant i prédit à l’instant k.

31
1.2 Optimisation en ligne :
Minimisez le critère :
𝑁

𝐽𝑘 = ∑ 𝑙𝑖 (𝑥𝑖/𝑘 , 𝑢𝑖/𝑘 )
𝑖=0
Résolvez numériquement le problème d’optimisation pour déterminer la séquence d'entrée optimale :
𝒖∗𝑘 = arg 𝑢𝑘 min 𝐽𝑘
1.3 Mise en œuvre :

• Applique le premier l'élément de 𝒖∗𝑘 comme commande au système alors : 𝑢𝑘 = 𝑢𝑘/𝑘
• Répétez l'optimisation (étape 1 et 2) à chaque instant d'échantillonnage k = 0, 1, ….

• L'optimisation est répétée en ligne à chaque instant d'échantillonnage k = 0; 1; :…

• Horizon fini:
𝑢0/𝑘 𝑥1/𝑘
𝑢1/𝑘 𝑥2/𝑘
A l'instant k on a 𝒖𝒌 = [ ⋮ ], 𝒙𝒌 = [ ⋮ ]
𝑢𝑁−1/𝑘 𝑥𝑁/𝑘
𝑢1/𝑘+1 𝑥2/𝑘+1
𝑢2/𝑘+1 𝑥3/𝑘+1
A l'instant k+1 on a 𝒖𝒌+𝟏 = [ ⋮ ], 𝒙𝒌+𝟏 = [ ⋮ ]
𝑢𝑁/𝑘+1 𝑥𝑁+1/𝑘+1

Cela fournit un feedback explicite qui :


• Réduit ainsi les effets de l'erreur du modèle et du bruit de mesure, et
• Compense le nombre fini de variables libres dans les prédictions qui améliore ainsi les
performances en boucle fermée.
32
Philosophie de l’horizon fini :
À l’instant t, résoudre un problème de commande optimal sur une fenêtre d’horizon fini de (N

On applique que la première valeur de commande


u*(t)
À l’instant t+1, faire la mis à jour des mesures,
Répéter l’optimisation, et ainsi de suite.

Exemple :

Minimiser :

33
Les avantages de la commande MPC :
• Modèles flexibles multi-variables, linéaire ou non linéaire, déterministe, stochastique ou floue
• Gère les contraintes sur les entrées et états de contrôle par exemple. limites de l'actionneur,
sécurité, environnementales et économiques
• Contrôle approximativement optimal.

Les Inconvénients
• Nécessite une optimisation en ligne
• Grand calcul pour les systèmes non linéaires et incertains.

Prédiction sur une fenêtre d’horizon fine N :

On utilise un modèle d’état discrétisé linéaire :


𝑥𝑖+1/𝑘 = 𝐴 𝑥𝑖/𝑘 + 𝐵 𝑢𝑖/𝑘
𝑥𝑘 est mesuré à k = 0, 1, . . .

𝑥0/𝑘 = 𝑥𝑘
𝑥1/𝑘 = 𝐴 𝑥𝑘 + 𝐵 𝑢0/𝑘
𝑥2/𝑘 = 𝐴 𝑥1/𝑘 + 𝐵 𝑢1/𝑘 = 𝐴(𝐴 𝑥𝑘 + 𝐵 𝑢0/𝑘 ) + 𝐵 𝑢1/𝑘

𝑥2/𝑘 = 𝐴2 𝑥𝑘 + 𝐴𝐵 𝑢0/𝑘 + 𝐵 𝑢1/𝑘




𝑁 𝑁−1 𝑁−2
𝑥𝑁/𝑘 = 𝐴 𝑥𝑘 + 𝐴 𝐵𝑢0|𝑘 + 𝐴 𝐵 𝑢1|𝑘 + ⋯ 𝐵 𝑢𝑁−1|𝑘
Sous forme matricielle :
 x1|k   A   B 0  0   u 0| k 
 x   2   
A AB B  0   u1|k 
Xk  
2| k 
   xk  
             
   n  n 1 n2  
 xN |k   A  A B A B  B  u N 1|k 
𝐗 𝒌 = 𝓜𝑥𝑘 + 𝑪𝐔𝒌

𝐵 0 ⋯ 0 𝐴
𝑪 = [ 𝐴𝐵 𝐵 ⋯ 0 ], 𝓜 = [ 𝐴2 ]
⋮ ⋮ ⋱ ⋮ ⋮
𝑁−1
𝐴𝑁−1 𝐵 𝐴𝑁−2
𝐵 ⋯ 𝐵 𝐴

Ou 𝑥𝑖/𝑘 = 𝐴𝑖 𝑥𝑘 + 𝑪𝒊 𝐔𝒌 ; ligne i de C

L’indice de performance prédit :


Dans la commande MPC, on utilise la version discrétisée de l'indice de performance quadratique de la
commande LQR :
𝑁−1
2 2 2
𝐽𝑘 = ∑‖𝑥𝑖/𝑘 ‖ + ‖𝑢𝑖/𝑘 ‖ + ‖𝑥𝑁/𝑘 ‖
𝑄 𝑅 𝑃
𝑖=0
𝐽𝑘 = 𝑥𝑘𝑇 𝑄𝑥𝑘 + 𝑿𝑇𝑘 𝑄𝑏 𝑿𝑘 + 𝑼𝑇𝑘 𝑅𝑏 𝑼𝑘

34
avec Q𝑏 = diag {𝑄, … . , 𝑄, 𝑃} et R 𝑏 = diag {𝑅, … . , 𝑅, 𝑅}
Q𝑏 , R 𝑏 sont des matrices blocks diagonales composées des matrices de pondérations Q,R

On peut démontrer que l'indice de performance prédit à l'instant peut être :


𝐽𝑘 = 𝐔𝑘𝑇 𝐻𝐔𝒌 + 2𝑥𝑘𝑇 𝐹 𝑇 𝐔𝑘 + 𝑥𝑘𝑇 𝐺 𝑥𝒌
𝐻 = 𝐶 𝑇 𝐐𝐶 + 𝐑  𝐔 × 𝐔 termes
𝐹 = 𝐶 𝑇 𝐐𝓜  𝐮 × 𝑥 termes
𝑇
𝐺 = 𝓜 𝐐𝓜+Q  𝑥 × 𝑥 termes .
Ces matrices sont calculées offline pour un système LTI.

Démonstration (TD) :
𝑁−1
𝑇 𝑇 𝑇
𝐽𝑘 = ∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 𝑃 𝑥𝑁/𝑘
𝑖=0
𝑄 𝑥1/𝑘
𝑇 𝑇 𝑇 ⋱ ⋮
= 𝑥0/𝑘 𝑄 𝑥0/𝑘 + [𝑥1/𝑘 ⋯ 𝑥𝑁/𝑘 ][ ][ ]
𝑄 ⋮
𝑥𝑁/𝑘
𝑃
𝑅 𝑢0/𝑘
𝑇 𝑇 ⋱ ⋮
+ [𝑢0/𝑘 ⋯ 𝑢𝑁−1/𝑘 ][ ][ ]
⋱ ⋮
𝑅 𝑢𝑁−1/𝑘
Alors
𝑱𝒌 = 𝒙𝑻𝒌 𝑸𝒙𝒌 + 𝐱 𝒌𝑻 𝑸 𝐱 𝒌 + 𝐮𝑻𝒌 𝐑𝐮𝒌
𝐐𝒃 = 𝐝𝐢𝐚𝐠 {𝑄, … . , 𝑄, 𝑃}
𝐑 𝒃 = 𝐝𝐢𝐚𝐠 {𝑅, … . , 𝑅, 𝑅}
On utilise le modèle de prédiction dans l'indice de performance :
𝐱 𝒌 = 𝓜𝑥𝑘 + 𝑪𝐮𝒌
On aura
𝐽𝑘 = 𝑥𝑘𝑇 𝑄𝑥𝑘 + (𝓜𝑥𝑘 + 𝑪𝐮𝒌 )𝑇 ⃗𝐐 ⃗ (𝓜𝑥𝑘 + 𝑪𝐮𝒌 ) + 𝐮𝑇𝑘 𝐑
⃗⃗ 𝐮𝒌
𝐽𝑘 = 𝑥𝑘𝑇 𝑄𝑥𝑘 + (𝓜𝑥𝑘 + 𝑪𝐮𝒌 )𝑇 𝐐 ⃗⃗ (𝓜𝑥𝑘 + 𝑪𝐮𝒌 ) + 𝐮𝑇𝑘 𝐑
⃗⃗ 𝐮𝒌
⃗⃗ (𝓜𝑥𝑘 + 𝑪𝐮𝒌 ) + 𝐮𝑇𝑘 𝐑
𝐽𝑘 = 𝑥𝑘𝑇 𝑄𝑥𝑘 + [𝑥𝑘𝑇 𝓜𝑇 + 𝐮𝑇𝑘 𝑪𝑇 ]𝐐 ⃗⃗ 𝐮𝒌

⃗⃗ (𝓜𝑥𝑘 + 𝑪𝐮𝒌 ) = 𝑥𝑘𝑇 𝓜𝑇 ⃗𝐐


[𝑥𝑘𝑇 𝓜𝑇 + 𝐮𝑇𝑘 𝑪𝑇 ]𝐐 ⃗ 𝓜𝑥𝑘 + 𝑥𝑘𝑇 𝓜𝑇 ⃗𝐐
⃗ 𝑪𝐮𝒌 + 𝐮𝑇𝑘 𝑪𝑇 ⃗𝐐
⃗ 𝓜𝑥𝑘 + 𝐮𝑇𝑘 𝑪𝑇 ⃗𝐐
⃗ 𝑪𝐮𝒌

⃗⃗ 𝓜𝑥𝑘 + 𝑥𝑘𝑇 𝓜𝑇 𝐐
𝐽𝑘 = 𝑥𝑘𝑇 𝑄𝑥𝑘 + 𝑥𝑘𝑇 𝓜𝑇 𝐐 ⃗⃗ 𝑪𝐮𝒌 + 𝐮𝑇𝑘 𝑪𝑇 𝐐
⃗⃗ 𝓜𝑥𝑘 + 𝐮𝑇𝑘 𝑪𝑇 𝐐
⃗⃗ 𝑪𝐮𝒌 + 𝐮𝑇𝑘 𝐑
⃗⃗ 𝐮𝒌
= 𝑥𝑘𝑇 (𝑄 + 𝓜𝑇 ⃗𝐐⃗ 𝓜)𝑥𝑘 + 𝑥𝑘𝑇 𝓜𝑇 ⃗𝐐
⃗ 𝑪𝐮𝒌 + 𝐮𝑇𝑘 𝑪𝑇 ⃗𝐐
⃗ 𝓜𝑥𝑘 + 𝐮𝑇𝑘 (𝐑
⃗⃗ + 𝑪𝑇 ⃗𝐐
⃗ 𝑪)𝐮𝒌
𝑇
⃗⃗ 𝓜)𝑥𝑘 + 𝑥𝑘𝑇 𝓜𝑇 𝐐
= 𝑥𝑘𝑇 (𝑄 + 𝓜𝑇 𝐐 ⃗⃗ 𝑪𝐮𝒌 + (𝐮𝑇𝑘 𝑪𝑇 𝐐
⃗⃗ 𝓜𝑥𝑘 ) + 𝐮𝑇𝑘 (𝐑 ⃗⃗ 𝑪)𝐮𝒌
⃗⃗ + 𝑪𝑇 𝐐

= 𝑥𝑘𝑇 (𝑄 + 𝓜𝑇 𝐐⃗⃗ 𝓜)𝑥𝑘 + 2𝑥𝑘𝑇 𝓜𝑇 𝐐 ⃗⃗ 𝑪𝐮𝒌 + 𝐮𝑇𝑘 (𝐑 ⃗⃗ 𝑪)𝐮𝒌


⃗⃗ + 𝑪𝑇 𝐐
Alors on obtient l'équation demandée
𝐽𝑘 = 𝑥𝑘𝑇 𝑮 𝑥𝑘 + 2𝑥𝑘𝑇 𝐹 𝑇 𝐮𝑘 +𝐮𝑇𝑘 𝐇 𝐮𝒌
Avec 𝐺 = 𝑄 + 𝓜𝑇 𝐐 ⃗⃗ 𝓜 , 𝑭 = 𝑪𝑇 𝐐
⃗⃗ 𝓜 𝒆𝒕 𝐇 = 𝐑 ⃗⃗ 𝑪
⃗⃗ + 𝑪𝑇 𝐐

35
Résolution de problème commande MPC :
On suppose que notre système est modélisé par un système Linéaire discret et on a aucunes contraintes
sur l'état le vecteur d’état et sur la commande :
On applique la première condition d'optimalité sur la variable manipulée (la commande u) à l'instant k
𝜕𝐽𝑘
=0
𝜕𝐔𝑘
𝐽𝑘 = 𝑥𝑘𝑇 𝑮 𝑥𝑘 + 2𝑥𝑘𝑇 𝐹 𝑇 𝐔𝑘 +𝐔𝑘𝑇 H𝐔𝒌
𝜕𝐽𝑘
= 2(𝑥𝑘𝑇 𝐹 𝑇 )𝑇 + 2𝐇 𝐮𝒌
𝜕𝐮𝑘
𝜕𝐽𝑘
= 2𝐹𝑥𝑘 + 2𝐇 𝐮𝒌 = 𝟎
𝜕𝐮𝑘
Alors
𝐮𝒌 = −(𝐇)−𝟏 𝐹𝑥𝑘 =−𝑲 𝑥𝑘
On applique la première colonne de uk
u𝑘 = −[𝑰 𝟎 … 𝟎](𝐇)−𝟏 𝐹𝑥𝑘
La condition suffisante pour que J* et u* implique que la 2ème condition doit être vérifiée :
𝜕 2 𝐽𝑘
=2𝐇 > 0
𝜕 2 𝐮𝑘
𝑅 > 0 et 𝑄, 𝑃 ≥ 0 𝑜𝑢
𝐻 = 𝐶 𝑇 𝐐𝐶 + 𝐑 > 𝟎 si{
𝑅≥0 et 𝑄, 𝑃 > 0 et 𝐶 a un rang complet ↔ (𝐴, 𝐵) 𝑐𝑜𝑛𝑡𝑟𝑜𝑙𝑎𝑏𝑙𝑒

Résolution par l’approche récursive (Principe d’optimalité de Belman )

L’approche récursive, technique de programmation dynamique de Bellman, repose


sur le principe d'optimalité suivant :

Pour que une trajectoire x0*, x1*,. . . , x N*soit optimal, la trajectoire partant de
tout point intermédiaire xj*, c'est-à-dire xj*, xj+1*,. . . , xN*, 0 ≤ j ≤ N - 1, doit être
optimale.
Supposons que l'itinéraire le plus rapide entre Tamanraset et Alger passe par Laghouat. Le principe
d'optimalité formalise le fait évident que la portion de l'itinéraire reliant Laghouat à Alger est également
l'itinéraire le plus rapide pour un trajet qui part de Laghouat et se termine à Alger.

Le système est décrit par l'équation linéaire discrète :


𝑥𝑘+1 = 𝐴𝑘 𝑥𝑘 + 𝐵𝑘 𝑢𝑘
avec la condition initiale donnée 𝑥𝑖 et état final 𝑥𝑁 libre.
Le problème est de trouver la séquence 𝑢𝑘 sur l'intervalle [𝑖, 𝑁] qui minimise l'indice de performance:
𝑁−1
1 1
𝐽𝑖 = 𝑥𝑁𝑇 𝑃𝑁 𝑥𝑁 + ∑(𝑥𝑘𝑇 𝑄𝑘 𝑥𝑘 + 𝑢𝑘𝑇 𝑅𝑘 𝑢𝑘 )
2 2
𝑘=𝑖
Où 𝑃𝑁 ≥ 0, 𝑄𝑁 ≥ 0 𝑅𝑁 ≥ 0

On met 𝑘 = 𝑁 ; donc le cout final est indépendant de la commande

36
1 𝑇
𝐽𝑁 = 𝑥𝑁 𝑃𝑁 𝑥𝑁 = 𝐽𝑁∗
2
Maintenant on met 𝑘 = 𝑁 − 1 alors
1 𝑇 𝑇
1
𝐽𝑁−1 = (𝑥𝑁−1 𝑄𝑁−1 𝑥𝑁−1 + 𝑢𝑁−1 𝑅𝑁−1 𝑢𝑁−1 ) + 𝑥𝑁𝑇 𝑆𝑁 𝑥𝑁
2 2

1 𝑇 𝑇
= (𝑥𝑁−1 𝑄𝑁−1 𝑥𝑁−1 + 𝑢𝑁−1 𝑅𝑁−1 𝑢𝑁−1 ) + 𝐽𝑁∗
2
Selon le principe d'optimalité de Bellman, on cherche 𝑢𝑁−1pour JN-1, qui peut être réécrit comme
1 𝑇 1 𝑇
𝐽𝑁−1 = 𝑥𝑁−1 𝑄𝑁−1 𝑥𝑁−1 + 𝑢𝑁−1 𝑅𝑁−1 𝑢𝑁−1
2 2
1
+ (𝐴𝑁−1 𝑥𝑁−1 + 𝐵𝑁−1 𝑢𝑁−1 )𝑇 𝑃𝑁 (𝐴𝑁−1 𝑥𝑁−1 + 𝐵𝑁−1 𝑢𝑁−1 )
2
Puisqu'il n'y a pas de contrainte sur l’entrée, le minimum est donc trouvé par:
𝜕𝐽𝑁−1
= 𝑅𝑁−1 𝑢𝑁−1 + 𝐵𝑁−1 𝑇 𝑃𝑁 (𝐴𝑁−1 𝑥𝑁−1 + 𝐵𝑁−1 𝑢𝑁−1 ) = 0
𝜕𝑢𝑁−1
−1
ce qui donne 𝑢𝑁−1 = −(𝐵𝑁−1 𝑇 𝑃𝑁 𝐵𝑁−1 + 𝑅𝑁−1 ) 𝐵𝑁−1 𝑇 𝑃𝑁 𝐴𝑁−1 𝑥𝑁−1
−1
Si on pose : 𝐾𝑁−1 = (𝐵𝑁−1 𝑇 𝑃𝑁 𝐵𝑁−1 + 𝑅𝑁−1 ) 𝐵𝑁−1 𝑇 𝑃𝑁 𝐴𝑁−1
On peut réécrire
𝑢𝑁−1 = −𝐾𝑁−1 𝑥𝑁−1
Le coût optimal pour aller de k = N-1 est trouvée par la substitution du contrôle optimal dans
l'expression de 𝐽𝑁−1 :
1 𝑇

𝐽𝑁−1 = 𝑥𝑁−1 [(𝐴𝑁−1 − 𝐵𝑁−1 𝐾𝑁−1 )𝑇 𝑃𝑁 (𝐴𝑁−1 − 𝐵𝑁−1 𝐾𝑁−1 )+𝐾𝑁−1 𝑇 𝑅𝑁−1 𝐾𝑁−1 + 𝑄𝑁−1 ]𝑥𝑁−1
2
Si on définit
𝑃𝑁−1 = (𝐴𝑁−1 − 𝐵𝑁−1 𝐾𝑁−1 )𝑇 𝑃𝑁 (𝐴𝑁−1 − 𝐵𝑁−1 𝐾𝑁−1 )+𝐾𝑁−1 𝑇 𝑅𝑁−1 𝐾𝑁−1 + 𝑄𝑁−1
Alors:

1 𝑇
𝐽𝑁−1 = 𝑥𝑁−1 𝑃𝑁−1 𝑥𝑁−1
2

1
Pour 𝑘 = 𝑁 𝐽𝑁 = 2 𝑥𝑁𝑇 𝑃𝑁 𝑥𝑁 = 𝐽𝑁∗
1
𝑇 𝑇 1
Pour 𝑘 = 𝑁 − 1 𝐽𝑁−1 = 2 (𝑥𝑁−1 𝑄𝑁−1 𝑥𝑁−1 + 𝑢𝑁−1 𝑅𝑁−1 𝑢𝑁−1 ) + 2 𝑥𝑁𝑇 𝑃𝑁 𝑥𝑁
1 𝑇 𝑇 𝑇 1
Pour 𝑘 = 𝑁 − 2 𝐽𝑁−2 = 2 (𝑥𝑁−2 𝑄𝑁−2 𝑥𝑁−2 + 𝑢𝑁−2 𝑅𝑁−2 𝑢𝑁−2 ) + 2 𝑥𝑁−1 𝑃𝑁−1 𝑥𝑁−1

La structure du problème est la même. Pour obtenir u N-2 * il faut remplacer N-1 par N-2.

Si nous continuons de décrémenter k et appliquer le principe d'optimalité, le résultat pour k = N-1, ..., 1,
0 est:
−1
𝑢𝑘 = −𝐾𝑘 𝑥𝑘 ; 𝐾𝑘 = (𝐵𝑘 𝑇 𝑃𝑘+1 𝐵𝑘 + 𝑅𝑘 ) 𝐵𝑘 𝑇 𝑃𝑘+1 𝐴𝑘 Le Gain de Kalman
𝑃𝑘 = (𝐴𝑘 − 𝐵𝑘 𝐾𝑘 )𝑇 𝑃𝑘+1 (𝐴𝑘 − 𝐵𝑘 𝐾𝑘 )+𝐾𝑘 𝑇 𝑅𝑘 𝐾𝑘 + 𝑄𝑘 Equation de différence de Ricatti
Ou 𝑃𝑘 = 𝐴𝑘 𝑇 𝑃𝑘+1 𝐴𝑘 + 𝑄𝑘 − 𝐴𝑘 𝑇 𝑃𝑘+1 𝐵𝑘 𝐾𝑘 Equation de différence de Ricatti

1
𝐽𝑘∗ = 2 𝑥𝑘𝑇 𝑃𝑘 𝑥𝑘 le coût optimal

37
L’algorithme de calcule de commande MPC :
Pour k= N-1 :-1 : 0
−1
𝐾𝑘 = (𝐵𝑘 𝑇 𝑃𝑘+1 𝐵𝑘 + 𝑅𝑘 ) 𝐵𝑘 𝑇 𝑃𝑘+1 𝐴𝑘
𝑢𝑘 = −𝐾𝑘 𝑥𝑘
𝑃𝑘 = 𝐴𝑘 𝑇 𝑃𝑘+1 𝐴𝑘 + 𝑄𝑘 − 𝐴𝑘 𝑇 𝑃𝑘+1 𝐵𝑘 𝐾𝑘
Fin
Allpiquez u0

MPC pour un problème de poursuite :


L’objectif est de chercher une loi de contrôle MPC pour que la sortie du système LTI Discret :
𝑥𝑖+1 = 𝐴 𝑥𝑖 + 𝐵 𝑢𝑖
𝑦𝑖 = 𝐶 𝑥𝑖
La sortie y suit la référence r

Définissons les vecteurs : ∆𝑥𝑖+1 = 𝑥𝑖+1 − 𝑥𝑖 et ∆𝑦𝑖+1 = 𝑦𝑖+1 − 𝑦𝑖


Le vecteur d’état augmenté :

∆𝑥𝑖+1 𝐴 0 ∆𝑥𝑖 𝐵
𝑥𝑎 (𝑖 + 1) = ( )[ 𝐼𝑝 ] ( 𝑦𝑖 ) + [𝐶𝐵 ] ∆𝑢𝑖
𝑦𝑖+1 𝐶𝐴

…..

38
Exemple :

Exemple d'application Ex MPC1: Soit le système LTI discrétisée qui sera commandé sur l'horizon N=4.
1.1 2 0
𝐴=[ ],𝐵 = [ ] , et 𝐶 = [−1 1]
0 0.95 0.079

avec les matrice de l'indice de performance :


𝑄 = 𝐶 𝑇 𝐶, 𝑅 = 0.01, et 𝑃 = 𝑄

Solution :
𝐱 𝒌 = 𝓜𝑥𝑘 + 𝑪𝐮𝒌

%% Ex MPC1: : Soit le système LTI discrétisée qui sera commandé sur


l'horizon N=4.
A=[1.1 2 ;0 0.95];
B=[0; 0.079],%et
C=[-1 1];
% avec les matrice de l'indice de performance :
Q=C'*C;
R=0.01; %et
P=Q;

%Le modèle de prediction sur un horizon N


Mp=[];
N=4
[n m]=size(A)
for i=1 :N-1
Mp=[Mp;A^i];
end

[nb,mb]=size(B)
Cp=[];
for i=1 :N
Cpi=[zeros(nb,N-i)];
for j=0:i-1
Cpi=[A^j*B Cpi]
end
Cp=[Cp;Cpi]
end

Qp=[];
Rp=[];
for i=1:N-1
Qp = blkdiag(Qp,Q);

39
Rp = blkdiag(Rp,R);
end
Qp=blkdiag(Qp,P)
Rp = blkdiag(Rp,R)
H=Cp'*Qp*Cp+Rp
% Le Gain MPC
Kp=-inv(H)*F
K=Kp(1,:)

Resultat :

1.1000 2.0000
𝐴 0 0.9500
1.2100 4.1000
𝓜 = [𝐴2 ] =
0 0.9025
𝐴3 1.3310 6.3150
[ 0 0.8574]
0.0000 0.0000 0.0000 0.0000
0.0790 0.0000 0.0000 0.0000
𝐵 0 0 0 0.1580 0.0000 0.0000 0.0000
𝐴𝐵 𝐵 0 0
𝑪=[ 2 ] 𝑪 = 0.0750 0.0790 0.0000 0.0000
𝐴 𝐵 𝐴𝐵 𝐵 0 0.3239 0.1580 0.0000 0.0000
𝐴3 𝐵 𝐴2 𝐵 𝐴𝐵 𝐵 0.0713 0.0750 0.0790 0.0000
0.4989 0.3239 0.1580 0.0000
[ 0.0677 0.0713 0.0750 0.0790]

0.2728 0.1233 0.0158 −0.0341


𝐻 = [ 0.1233 0.0869 0.0144 −0.0200 ]
0.0158 0.0144 0.0231 −0.0066
−0.0341 −0.0200 −0.0066 0.0162

0.9809 4.9440
𝐹 = [ 0.3847 2.1822 ]
0.0163 0.2197
−0.1157 −0.6199
7.5892 22.7765
𝐺=[ ]
22.7765 103.6836
𝐮𝒌 ∗ = −(𝐇)−𝟏 𝐹𝑥𝑘 =−𝑲 𝑥𝑘

Le vecteur de gain de retour d'état MPC calculé :


−4.3445 −18.6329
𝑲 = [ 1.6407 1.2562 ]
1.4126 2.9735
0.5963 1.8343

Le vecteur de gain de retour d'état MPC à implémenter :


: 𝐾 = [−4.3445 −18.6329]

40
N=1 N=2 N=3 N=4 N=10
K= [5.35 5.11] [1.23 −3.92] [−3.79 −16.92] [−4.3 −18.62] [−4.35 −18.68]

𝜆(𝐴 + 𝐵𝐾) = [0.29 2.15] [1.37 0.37] [0.36 ∓ 0.21𝑖] [0.29 ∓ 0.17𝑖] [0.29 ∓ 0.16𝑖]

Stabilité instable instable stable stable stable

Simulations:

41
Commentaire : Les réponses en boucle prédites et fermé sont différentes pour N petit

42
Exercices :

Exercice 1 :
Soit le système linéaire discrétisé :
𝑥 (𝑘 + 1) 1 0.1 𝑥1 (𝑘) 0.0
( 1 )=[ ]( ) + [ ] 𝑢(𝑘)
𝑥2 (𝑘 + 1) 0 2.0 𝑥2 (𝑘) 0.5
𝑥1 (𝑘)
𝑦(𝑘) = [1 0] ( )
𝑥2 (𝑘)
Ce système sera contrôlé par une loi de commande prédictive MPC afin de minimiser l'indice de
performance :
𝑁−1
2 2 2
𝐽(𝑘) = ∑(𝑦𝑖/𝑘 + 𝑟𝑢𝑖/𝑘 ) + 𝑦𝑁/𝑘 , 𝑟=1
𝑖=0
Montrer que le vecteur d'état prédit peut être écrit sous la forme :

𝑇
𝐱 𝒌 = 𝓜𝑥𝑘 + 𝑪𝐮𝒌 avec 𝒖(𝑘) = [𝑢0/𝑘 … 𝑢𝑁−1/𝑘 ]
et évaluer C et M pour un horizon de N = 3.
Pour N = 3, déterminer les matrices H, F et G
𝐽𝑘 = 𝐮𝑇𝑘 𝐻𝐮𝒌 + 2𝑥𝑘𝑇 𝐹 𝑇 𝐮𝑘 + 𝑥𝑘𝑇 𝐺 𝑥𝒌
Donner des expressions pour les dérivées 𝜕𝐽𝑘 /𝜕𝑢𝑖/𝑘 pour i = 0, 1, 2.
Par conséquent, vérifiez que le gradient de J est
∇𝐮𝒌 𝐽𝑘 = 2𝐻𝐮𝒌 + 2𝐹 𝑥𝑘
.

Exercice 2 :
(a). Pour le modèle et l'indice de performance donné à l'exercice 1. Montrer que la loi de contrôle
prédictive pour N = 3 est un simple retour d’Etat linéaire :
𝐮𝒌 = 𝐾 𝑥𝑘 et 𝐾 = [−0.1948 0.1168]
Par conséquent montrer que le système en boucle fermée est instable.
(b) Ecrire du code Matlab pour évaluer Ci pour i = 1,. . . , N, et pour déterminer H et F pour horizon de
prédiction donné N. Montrer que la loi de contrôle prédictive ne stabilise pas le système si N <6.

Exercice 3 : Coût de l'horizon infini et contraintes


a. Expliquer pourquoi la loi de contrôle prédictive de l'exercice 1 stabilise nécessairement le système si le
coût est minimisé sous contrainte de 𝑥𝑁/𝑘 = 0.
(Indice: quel est le coût de l'horizon infini lorsque cette contrainte est utilisée ?)
b. Comment modifieriez-vous le coût de l'exercice 1 pour obtenir une stabilité en boucle fermée sans
inclure la contrainte x(k + N | k) = 0? Pourquoi cela serait-il préférable ?

43
Quelles sont les meilleurs modèles pour la commande prédictive ?
Modèle sous forme matricielle ‘sans et avec perturbation’ :
A- Perturbation de sortie
𝒅𝑘+1 = 𝒅𝑘 + 𝒗𝑘 et 𝒚𝑘 = 𝑪𝒙𝑘 + 𝑫 𝒖𝑘 + 𝒅𝑘

𝒙𝑘+1
𝒁𝑘+1 = (𝒅 ) = 𝑨 ̃ 𝒁𝑘 + 𝑩
̃ 𝒖𝑘
𝑘+1
̃ 𝒁𝑘 + 𝑫 𝒖𝑘 + 𝒗𝑘
𝒚𝑘 = 𝑪

̃ = (𝑨
𝑨
𝟎 ̃ 𝑩 ̃ = (𝑪 𝑰)
) , 𝑩 = ( ), et 𝑪
𝟎 𝑰 𝟎

B- Perturbation de modèle (sur l’état)


En incluant la perturbation dans la dynamique du système (état), le modèle de processus devient :
𝒙𝑘+1 = 𝑨 𝒙 + 𝑩 𝒖𝑘 + 𝑭 𝒅𝑘
𝒅𝑘+1 = 𝒅𝑘 + 𝒗𝑘 et 𝒚𝑘 = 𝑪𝒙𝑘 + 𝑫 𝒖𝑘

𝒙𝑘+1
𝒁𝑘+1 = (𝒅 )
𝑘+1
̃ 𝒁𝑘 + 𝑫 𝒖𝑘 + 𝒗𝑘
𝒚𝑘 = 𝑪

̃ = (𝑨
𝑨
𝑭 ̃ 𝑩 ̃ = ( 𝑪 𝟎)
) , 𝑩 = ( ), et 𝑪
𝟎 𝑰 𝟎
̃ 𝒁𝑘 + 𝑩
𝒁𝑘+1 = 𝑨 ̃ 𝒖𝑘

C- Modèle augmenté
• Intégration systématique de l'action intégrale aux modèles d'états :
Problème :
Avec une valeur de consigne zéro, le retour d'état de stabilisation typique de la forme
uk = −K xk
Il ne donnera pas de contrôle sans de décalage en présence de perturbations non nulles.

Une forme alternative de Feedback : Le retour d'état typique n'inclut pas l'action intégrale. On montre
dans cette section une méthode par laquelle cette limitation peut être surmontée :
Considérons maintenant une forme alternative de retours d'État :
𝒖 = − 𝑲(𝒙𝑘 − 𝒙𝑠𝑠 ) + 𝒖𝑠𝑠

Où xss, uss sont des estimations des valeurs d'état stationnaire de l'état et de l'entrée donnant un
poursuite parfait (sans aucun erreur statique). Sous l'hypothèse que xss, uss sont cohérents, alors
pour dk fixes, une telle loi de contrôle entraînera nécessairement :

44
Commande MPC avec contraintes :

Le but de MPC est clairement de ne pas émuler le contrôleur LQ-optimal sans contraintes, qui
après tout est simplement une loi de rétroaction linéaire qui peut être calculée en ligne en utilisant
la connaissance du modèle de système. Le véritable avantage de MPC réside dans sa capacité à
déterminer des lois de rétroaction non linéaires qui sont optimales pour les systèmes sous
contraintes par des calculs numériques qui sont effectués en ligne (c'est-à-dire entre les
échantillons).

Traitement des contraintes


En plus des contraintes d'égalité évidentes que l'état et l'entrée doivent satisfaire à la dynamique
du modèle, des contraintes d'inégalité sur les variables d'entrée et d'état sont rencontrées dans
chaque problème de contrôle. Bien que les contraintes d’égalité soient généralement traitées de
manière implicite (c’est-à-dire que le modèle de système est utilisé pour écrire l’état prédit
trajectoires en fonction des conditions initiales et les entrées), les contraintes d'inégalité sont
imposées en tant que contraintes explicites au sein du problème d'optimisation en ligne. Ce cours
traite des contraintes d’inégalité linéaire.

Contraintes dans le contrôle


 Tous les systèmes physiques ont des contraintes.
 Contraintes physiques, par ex. limites de l'actionneur
 Contraintes de performance, par ex. dépassement
 Les contraintes de sécurité, par ex. limites de température / pression
 Les points de fonctionnement optimaux sont souvent proches des contraintes.

Méthodes classiques de contrôle :


 Aucune connaissance des contraintes
 Point de consigne suffisamment éloigné des contraintes
 Opération sous-optimale de système

Dans cette section, nous discuterons des contraintes opérationnelles fréquemment rencontrées
dans la conception des systèmes de contrôle.
Ces contraintes opérationnelles sont présentées comme des inégalités linéaires du contrôle et des
variables d'état du système

Contraintes opérationnelles fréquemment utilisées


Il existe trois principaux types de contraintes fréquemment rencontrées dans les applications
industrielles réelles.
Les deux premiers types traitent des contraintes imposées aux variables de contrôle u(k), et le
troisième type de contraintes traite des contraintes de sortie y(k) ou d'état x(k).

Les contraintes sur la commande u et variation de la commande ∆𝑢 sont spécifiées :

45
𝑢𝑚𝑖𝑛 ≤ 𝑢 ≤ 𝑢𝑚𝑎𝑥 et/ou ∆𝑢𝑚𝑖𝑛 ≤ ∆𝑢 = 𝑢𝑘 − 𝑢𝑘−1 ≤ ∆𝑢𝑚𝑎𝑥

Les contraintes d'entrée résultent généralement des limites d'actionneur, par ex. saturation en d.c.
couple moteurs et saturation du débit dans les vannes.

Les contraintes sur le vecteur d'état x sont spécifiées par :

𝑥 𝑚𝑖𝑛 ≤ 𝑥 ≤ 𝑥 𝑚𝑎𝑥

où (.)max désigne limite supérieure et (.)min dénote la limite inférieure.


Les contraintes d'état linéaires ont une forme plus générale :
𝑔𝑐𝑚𝑖𝑛 ≤ 𝐺𝑐 𝑥 ≤ 𝑔𝑐𝑚𝑎𝑥

où (.)max désigne limite supérieure et (.)min dénote la limite inférieure.

46
Idée principale :

Introduire le coût final et les contraintes pour assurer explicitement


stabilité et faisabilité :

𝑁−1 le coût final


𝑇 𝑇 𝑇
𝐽∗ (𝑥) = ∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 𝑃 𝑥𝑁/𝑘
𝑖=0
sachat que 𝑥𝑖+1/𝑘 = 𝐴 𝑥𝑖/𝑘 + 𝐵 𝑢𝑖/𝑘
𝐶 𝑥𝑖/𝑘 + 𝐷 𝑢𝑖/𝑘 ≤ 𝑏

𝑇
𝑥𝑁/𝑘 ∈ 𝝌𝒇 la contrainte finale et 𝑥0/𝑘 = 𝑥𝑘
Les valeurs de P et 𝝌𝒇 sont choisies pour simuler un horizon infini.

Comment choisir le coût terminal


Nous pouvons diviser le problème de l'horizon infini en deux sous-problèmes
1- Jusqu'à l'instant k = N, où les contraintes peuvent être actives :
𝑁−1
∗ 𝑇 𝑇 𝑇
𝐽 (𝑥) = ∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 𝑃 𝑥𝑁/𝑘
𝑖=0
sachat que 𝑥𝑖+1/𝑘 = 𝐴 𝑥𝑖/𝑘 + 𝐵 𝑢𝑖/𝑘
𝐶 𝑥𝑖/𝑘 + 𝐷 𝑢𝑖/𝑘 ≤ 𝑏
𝑥0/𝑘 = 𝑥𝑘

2- Pour k> N, où il n'y a pas de contraintes actives : LQR sans contrainte à partir de l'état xN


𝑇 𝑇
𝐽∗ (𝑥) = ∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 )
𝑖=𝑁
sachat que 𝑥𝑖+1/𝑘 = 𝐴 𝑥𝑖/𝑘 + 𝐵 𝑢𝑖/𝑘 L

Nous lions la queue de l'horizon infini coûte de N à 1 en utilisant la loi de contrôle LQR:
𝑢 = 𝐾𝑙𝑞𝑟 𝑥
𝑥𝑁𝑇 𝑃 𝑥𝑁 est le coût de l'horizon infini correspondant
P est la solution de l'équation algébrique de Riccati en temps discret
Choix de N tel que la satisfaction des contraintes soit garantie?

Comment choisir "l'ensemble terminal 𝝌𝒇 "


La contrainte de terminal fournit une condition suffisante pour la satisfaction des contraintes:

Toutes les contraintes d'entrée et d'état sont satisfaites pour le système en boucle fermée utilisant
𝑇
la loi de contrôle LQR pour 𝑥𝑁/𝑘 ∈ 𝝌𝒇
Le l'ensemble terminal 𝝌𝒇 est souvent défini par des contraintes linéaires ou quadratiques
La borne tient dans l'ensemble terminal et est utilisée comme coût terminal

47
Le l'ensemble terminal 𝝌𝒇 définit la contrainte de terminal

Programmation quadratique PQ sous contraints :


La combinaison de la fonction objective (indice de performance) quadratique et les contraintes
d'inégalités sur la variable de décision u nous mène vers un problème de programmation non-linéaire qui
peut être résolu par plusieurs méthodes disponible dans la littérature.

Trouvez 𝑧 ∗ qui minimise


1
min 𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Soumis aux contraintes
𝑀𝑧 ≤ 𝛾

où E, F, M et γ sont des matrices et des vecteurs de dimensions compatibles. Les variable de décision sont
regroupées dans le vecteur z .
Sans perte de généralité, E est supposé symétrique et positif défini.

Formulation QP de problème MPC :

A partir du problème MPC standard avec contraintes :

𝑁−1
𝑇 𝑇 𝑇
min ∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 𝑃 𝑥𝑁/𝑘
𝑢
𝑖=0
sachant que : 𝑥𝑖/𝑘 ∈ 𝕏 𝑖 ∈ {1, … , 𝑁 − 1} et 𝑥𝑁/𝑘 ∈ 𝒳𝑓
𝑢𝑖/𝑘 ∈ 𝕌 𝑖 ∈ {1, … , 𝑁 − 1}
𝑥𝑖+1/𝑘 = 𝐴𝑥𝑖/𝑘 + 𝐵𝑢𝑖/𝑘

Nous récrirons la formulation QP :


1
min 𝒛𝑻 𝑬𝒛
𝑢 2
sachant que : 𝑮𝒛 ≤ 𝒈
𝑯𝒛 = 𝒉
Les contraintes d'inégalité
𝑮𝒛 ≤ 𝒈
Supposons que 𝕏 et 𝕌 donnés par :
𝕏 ∶= {𝑥 | 𝐹𝑥 ≤ 𝑓} 𝕌 ∶= {𝑢 | 𝑀𝑢 ≤ 𝑚} 𝒳𝑓 ∶= {𝑥 | 𝐹𝑓 𝑥 ≤ 𝑓𝑓 }

48
On génère les matrices E, G et H et les vecteurs g et h à partir du problème d'optimisation :
𝑭 𝟎 𝒇
𝑭 𝟎 𝒇
⋱ ⋱ ⋮
𝑭 𝟎 𝒇
𝑭𝒇 𝟎 𝒈 ≔ 𝒇𝒇
𝑮≔ …
𝟎 𝑴 𝒎
𝟎 𝑴 𝒎
⋱ ⋱ ⋮
𝟎 𝑴 𝒎
[ 𝟎 𝑴] [𝒎]

Définir des variables:

et la fonction de coût devient 𝒛𝑻 𝑬𝒛 à partir du coût MPC


𝑁−1
𝑇 𝑇 𝑇
∑(𝑥𝑖/𝑘 𝑄𝑥𝑖/𝑘 + 𝑢𝑖/𝑘 𝑅 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 𝑃 𝑥𝑁/𝑘
𝑖=0
𝑸

𝑸
𝑬≔ 𝑷
𝑹

[ 𝑹]

Matlab hint: H = blkdiag(kron(eye(N􀀀1),Q), Qf, kron(eye(N),R))

49
Multiplicateur de Lagrange
On commence d'abord par la solution du problème avec contraintes d'égalités :
1
min 𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Soumis aux contraintes
𝐺𝑧 = 𝑔

Pour minimiser la fonction objective soumise à des contraintes d'égalité, considérons


l'expression dite de Lagrange :
1
ℒ = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹 + 𝜆T (𝐺𝑧 − 𝑔)
2
Les conditions nécessaires d'optimalité sont :
∂ℒ
= 𝐸𝑧 + 𝐹 + 𝐺 T 𝜆 = 0
∂z

∂ℒ
= 𝐺𝑧 − 𝑔 = 0
∂𝜆
La solution de ce problème est donnée par :
𝜆∗ = −(𝐺𝐸 −1 𝐺 𝑇 )−1 (𝑔 + 𝐺𝐸 −1 𝐹)
𝑧 ∗ = −𝐸 −1 (𝐺 T 𝜆 + 𝐹)

Il est intéressant de noter que (𝑧 ∗ ) peut être décomposé en deux termes

𝑧 ∗ = −𝐸 −1 𝐹 − 𝐸 −1 𝐺 T 𝜆 = 𝑧 ∗0 − 𝐸 −1 𝐺 T 𝜆

où le premier terme 𝑧 ∗0 est la solution optimale globale qui donnera un minimum de la fonction de
coût d'origine J sans contraintes, et le second terme est un terme de correction dû aux contraintes
d'égalité.

Exemple 1 : Minimisez
1
min 𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Soumis aux contraintes
𝑧1 + 𝑧2 +𝑧3 = 1
3𝑧1 − 2𝑧2 − 3𝑧3 = 1
1 0 0 −2
où 𝐸 = [0 1 0] ; 𝐹 = [−3]
0 0 1 −1

Solution :
La solution du problème sans la prise en compte des contraintes est donnée par :
1 0 0 −1 −2 2
∗0 −1
𝑧 = −𝐸 𝐹 = − [0 1 0] [−3] = [3]
0 0 1 −1 1

Réécrivons les contraintes d'égalité sous forme matricielle :

50
𝑧1
1 1 1 𝑧 1
[ ] [ 2] = [ ]
3 −2 −3 𝑧 1
3
Alors
1 1 1 1
𝐺=[ ] et 𝑔 = [ ]
3 −2 −3 1

3 −2 −6
𝐺𝐸 −1 𝐺 𝑇 = [ ] ; 𝐺𝐸 −1 𝐹 = [ ]
−2 22 3
1.6452
𝜆∗ = −(𝐺𝐸 −1 𝐺 𝑇 )−1 (𝑔 + 𝐺𝐸 −1 𝐹) = [ ]
−0.0323
2 1 3 0.4516
1.6452
𝑧 ∗ = 𝑧 ∗0 − 𝐸 −1 𝐺 T 𝜆 = [3] − [1 −2] [ ] = [ 1.2903 ]
−0.0323
1 1 −3 −0.7419

Exemple 2 : Dans cet exemple, nous examinons ce qui se passe à la solution optimale lorsque les
contraintes linéaires soient dépendantes.
Nous supposons que la fonction objective
1
𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Soumis aux contraintes
𝑧1 + 𝑧2 = 1
2𝑧1 + 2𝑧2 = 6
1 0 −2
où 𝐸 = [ ];𝐹 = [ ]
0 1 −2
En utilisant la représentation graphique des contraintes d'égalité, nous pouvons démontrer qu'il n'y
a pas de solution possible de z1 et z2 qui satisfera les contraintes d'égalité. En outre, nous pouvons
2 4
démontrer que la matrice 𝐺𝐸 −1 𝐺 𝑇 = [ ]n'est pas inversible.
4 8

51
Exemple 3. Dans cet exemple, nous montrerons comment le nombre de contraintes d'égalité est
également un problème dans la solution optimale sous contrainte. Encore une fois, nous utilisons
la même fonction objective que dans l'exemple 1 où :
1 0 0 −2
𝐸 = [0 1 0] ; 𝐹 = [−3]
0 0 1 −1
mais nous ajoutons une contrainte supplémentaire aux contraintes d'origine afin que
𝑧1 + 𝑧2 +𝑧3 = 1
3𝑧1 − 2𝑧2 − 3𝑧3 = 1
𝑧1 − 3𝑧2 + 2𝑧3 = 1

Solution : La contrainte supplémentaire est indépendante des deux premières contraintes


d'origine. Maintenant, la seule solution réalisable qui satisfait toutes les contraintes est
z = [0,6552 0,069 0,2759] T, c' est la solution unique des équations linéaires. Il ne sert à rien de
procéder à l'optimisation de la fonction objectif, car la seule solution réalisable est la solution
optimale sous contrainte.

En résumé, afin de trouver la solution contrainte optimale, les contraintes d'égalité linéaire doivent
être linéairement indépendantes.
De plus, le nombre de contraintes d'égalité doit être inférieur ou égal au nombre de variables de
décision (c'est-à-dire, z). Si le nombre de contraintes d'égalité est égal au nombre de variables de
décision, la seule solution réalisable est celle qui satisfait les contraintes et il n'y a pas de variable
supplémentaire en u qui puisse être utilisée pour optimiser la fonction objectif d'origine.
Si le nombre de contraintes d'égalité est supérieur au nombre de variables de décision, alors il n'y
a pas de solution réalisable pour satisfaire les contraintes. Alternativement, la situation est
appelée irréalisable.
Dans la minimisation avec des contraintes d'inégalité, le nombre de contraintes pourrait être plus
grand que le nombre de variables de décision.

Optimisation sous contrainte d'inégalité


Les contraintes d'inégalité 𝐺𝑧 ≤ 𝑔 peuvent comprendre des contraintes actives et des contraintes
inactives.
Une inégalité 𝐺𝑖 𝑧 ≤ 𝑔𝑖 est dite active si 𝐺𝑖 𝑧 = 𝑔𝑖 et inactive si 𝐺𝑖 𝑧 < 𝑔𝑖 ,
où 𝐺𝑖 est la ième ligne de la matrice G et 𝑔𝑖 est l'ième élément du vecteur g, respectivement.
Les deux éléments 𝐺𝑖 avec 𝑔𝑖 forment la ième contrainte d'inégalité.

Nous introduisons les conditions de Kuhn-Tucker, qui définissent les contraintes actives et
inactives en termes de multiplicateurs de Lagrange.

Les conditions de Kuhn-Tucker


Les conditions nécessaires à ce problème d'optimisation sont :

𝐸𝑧 + 𝐹 + 𝐺 T 𝜆 = 0
𝐺𝑧 − 𝑔 ≤ 0
T (𝐺𝑧
𝜆 − 𝑔) = 0
𝜆≥0

52
où le vecteur λ contient les multiplicateurs de Lagrange.
Ces conditions peuvent être exprimées sous une forme plus simple en termes d'ensemble de
contraintes actives.

Soit Sact l'ensemble d'index des contraintes actives. Alors, les conditions nécessaires deviennent :

𝐸𝑧 + 𝐹 + ∑ 𝜆𝑖 𝐺𝑖 T = 0
𝑖∈𝑆𝑎𝑐𝑡
𝐺𝑖 𝑧 − 𝑔𝑖 = 0 pour 𝑖 ∈ 𝑆𝑎𝑐𝑡
𝐺𝑖 𝑧 − 𝑔𝑖 < 0 pour 𝑖 ∉ 𝑆𝑎𝑐𝑡

𝜆𝑖 ≥ 0 pour 𝑖 ∈ 𝑆𝑎𝑐𝑡
𝜆𝑖 = 0 pour 𝑖 ∉ 𝑆𝑎𝑐𝑡

La contrainte 𝐺𝑖 𝑧 − 𝑔𝑖 = 0 signifie qu'il s'agit d'une contrainte d'égalité, d'où une contrainte
active.
En revanche, 𝐺𝑖 𝑧 − 𝑔𝑖 < 0 signifie que la contrainte est satisfaite, c'est donc une contrainte
inactive.
Pour une contrainte active, le multiplicateur de Lagrange correspondant est non négatif, tandis que
le multiplicateur de Lagrange est nul si la contrainte est inactive. Il est clair que si l'ensemble actif
était connu au paravent, le problème initial pourrait être remplacé par le problème correspondant
ayant uniquement des contraintes d'égalité. Explicitement, en supposant que Gact et λact sont
donnés, la solution optimale a la forme fermée :

−1
𝜆𝑎𝑐𝑡 ∗ = −(𝐺𝑎𝑐𝑡 𝐸 −1 𝐺𝑎𝑐𝑡 T ) (𝑔𝑎𝑐𝑡 + 𝐺𝑎𝑐𝑡 𝐸 −1 𝐹)
𝑧 ∗ = −𝐸 −1 (𝐺𝑎𝑐𝑡 T 𝜆𝑎𝑐𝑡 + 𝐹)

Exemple 4 Dans l'exemple 2, nous avons montré que lors de l'optimisation avec des contraintes
d'égalité, si les contraintes sont dépendantes, alors il n'y a pas de solution réalisable.
Dans cet exemple, nous examinons ce qui se passe à la solution optimale si ces contraintes sont
des contraintes d'inégalité.
Nous supposons que la fonction objective :
1
𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
1 0 −2
où 𝐸 = [ ];𝐹 = [ ]
0 1 −2
Soumis aux contraintes
𝑧1 + 𝑧2 ≤ 1
2𝑧1 + 2𝑧2 ≤ 6
Solution. C'est clair que l'ensemble des variables qui vérifie la première inégalité 𝑧1 + 𝑧2 ≤ 1
satisfaire la deuxième inégalité 2𝑧1 + 2𝑧2 ≤ 6.
Ceci est illustré à la figure 2.5. Ainsi, la contrainte (𝑧1 + 𝑧2 ≤ 1) est une contrainte active, alors
que la contrainte (2𝑧1 + 2𝑧2 ≤ 6) est une contrainte inactive.
Nous trouvons l'optimum sous contrainte en minimisant J sujet à la contrainte d'égalité : 𝑧1 + 𝑧2 =

53
1 qui est 𝑧1 = 0.5 et 𝑧2 = 0.5. Nous vérifions qu'en effet avec cet ensemble de valeurs de 𝑧2 et
𝑧2 =, l'inégalité (2𝑧1 + 2𝑧2 ≤ 6) est vérifiée.

A. Méthode d'ensemble des contraintes actives :

L'idée de base est de définir à chaque étape un ensemble de contraintes, appelées ensemble de
travail, qui doit être traité comme l'ensemble actif.

L'ensemble de travail est choisi pour être un sous-ensemble des contraintes qui sont réellement
actives au point courant, et donc le point courant est réalisable (faisable) pour l'ensemble de
travail.

L'algorithme continue ensuite à se déplacer sur la surface définie par l'ensemble de contraintes de
travail vers un point amélioré.

À chaque étape de la méthode de jeu actif, un problème de contrainte d'égalité est résolu. Si tous
les multiplicateurs de Lagrange λi ≥ 0, alors le point est une solution locale au problème original.
Si, d'autre part, il existe un λi <0, alors la valeur de la fonction objective peut être diminuée en
relâchant la contrainte i (c'est-à-dire en la supprimant de l'équation de contrainte).
Au cours de la minimisation, il est nécessaire de surveiller les valeurs des autres contraintes pour
s'assurer qu'elles ne sont pas violées, puisque tous les points définis par l'algorithme doivent être
réalisables.
Il arrive souvent que lors d'un déplacement sur la surface de travail, une nouvelle limite de
contrainte soit rencontrée.

54
Il est nécessaire d'ajouter cette contrainte à l'ensemble de travail, puis de procéder à la
surface de travail redéfinie.

55
Exemple 5 Nous utilisons la fonction objective
1
𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
où :
1 0 0 −2
𝐸 = [0 1 0] ; 𝐹 = [−3]
0 0 1 −1
mais nous ajoutons une contrainte supplémentaire aux contraintes d'origine afin que
𝑧1 + 𝑧2 +𝑧3 ≤ 1
3𝑧1 − 2𝑧2 − 3𝑧3 ≤ 1
𝑧1 − 3𝑧2 + 2𝑧3 ≤ 1

Solution : La solution admissible des contraintes d'égalité (2.49) existe, c'est la solution des
équations linéaires :
𝑧1 + 𝑧2 +𝑧3 = 1
3𝑧1 − 2𝑧2 − 3𝑧3 = 1
𝑧1 − 3𝑧2 + 2𝑧3 = 1

Ainsi, les trois contraintes d'égalité sont considérées comme le premier ensemble de travail.
Nous calculons le multiplicateur de Lagrange pour les trois contraintes qui donne :
1.6873
∗ −1 T )−1 (𝑔 −1
𝜆 = −(𝐺𝐸 𝐺 + 𝐺𝐸 𝐹) = [ 0.0309 ]
−0.4352

Il est clair que le troisième élément de λ est négatif. Par conséquent, la troisième contrainte 𝑧1 −
3𝑧2 + 2𝑧3 = 1 est une contrainte inactive et sera supprimée de l'équation de l'ensemble des
contraintes.
Nous prenons les deux premières contraintes comme contraintes actives, et résolvons à nouveau le
problème d'optimisation en minimisant.

1
𝐽 = 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Sous contraintes 𝑧1 + 𝑧2 +𝑧3 = 1
3𝑧1 − 2𝑧2 − 3𝑧3 = 1
Ce problème est identique au problème donné dans l'exemple 1. Nous résolvons ce problème de
contrainte d'égalité, en obtenant comme avant
1.6452
𝜆∗ = [ ]
−0.0323
Clairement, le deuxième élément de λ est négatif. Nous éliminons la deuxième contrainte et
résolvons le problème d'optimisation.
1
= 𝑧 T 𝐸𝑧 + 𝑧 T 𝐹
2
Sous contraintes 𝑧1 + 𝑧2 +𝑧3 = 1
Une fois de plus, nous résolvons ce problème d'optimisation contrainte par l'égalité, et obtenons
λ = 5/3, conduisant à x = [0,3333 1,3333 -0,6667]T Clairement, la solution optimale x satisfait la
contrainte d'égalité. Nous vérifions également si les autres contraintes d'inégalité (2.49) sont satisfaites.
Ils sont tous en effet satisfaits.
56
Remarques et commentaires :

1. Dans le cas des contraintes d'égalité, le nombre maximal de contraintes d'égalité est égal au
nombre de variables de décision. Dans cet exemple, il est 3, et la seule solution possible x est de
satisfaire les contraintes d'égalité (voir (2.50)).
En revanche, dans le cas de contraintes d'inégalité, le nombre de contraintes d'inégalité peut être
supérieur au nombre de variables de décision, tant qu'elles ne sont pas toutes actives.
Dans cet exemple, une seule contrainte devient active, de sorte qu'elle devient une contrainte
d'égalité. Une fois la solution optimale trouvée contre cette contrainte active, le reste des inégalités
est automatiquement satisfait.
2. Il est clair qu'une procédure itérative est nécessaire pour résoudre le problème d'optimisation
avec des contraintes d'inégalité, car nous ne savions pas quelles contraintes deviendraient des
contraintes actives. Si l'ensemble actif pouvait être identifié à l'avance, alors la procédure itérative
serait raccourcie.
3. Notez que les conditions pour les contraintes d'inégalité sont plus relâchées que dans le cas des
contraintes d'égalité imposées. Par exemple, le nombre de contraintes peut être supérieur au
nombre de variables de décision, et l'ensemble des contraintes d'inégalité peut être linéairement
dépendant. Cependant, ces relaxations ne sont permises qu'au point que les contraintes actives
doivent être linéairement indépendantes et que le nombre de contraintes actives doit être inférieur
ou égal au nombre de variables de décision.

57
B. Méthode Primal-Dual
La famille des méthodes actives appartient au groupe des méthodes primales, où les solutions sont
basées sur les variables de décision (aussi appelées variables primaires dans la littérature). Dans
les méthodes d'ensemble actif, les contraintes actives doivent être identifiées avec les variables de
décision optimales. S'il y a beaucoup de contraintes, la charge de calcul est assez importante. De
plus, la programmation d'une méthode active n'est pas une tâche simple, comme nous l'avons
illustré dans l'exemple 5.
Une méthode "duale" peut être utilisée systématiquement pour identifier les contraintes qui ne
sont pas actives. Ils peuvent ensuite être éliminés dans la solution. Les multiplicateurs de
Lagrange sont appelés «dual» dans la littérature d'optimisation. Cette méthode conduira à des
procédures de programmation très simples pour trouver des solutions optimales de problèmes de
minimisation sous contraints.

Le problème dual du problème primal original est dérivé comme suit. En supposant la faisabilité
(c'est-à-dire, il y a un z tel que Gz <g), le problème primal est équivalent à :

1
max min 𝐽 = [2 𝑧 𝑇 𝐸𝑧 + 𝑧 𝑇 𝐹 + 𝜆T (𝐺𝑧 − 𝑔)]
𝜆≥0 𝑧
La minimisation sur z est sans contrainte. Elle est atteinte par
𝑧 ∗ = −𝐸 −1 (𝐺 T 𝜆 + 𝐹)
En remplaçant 𝑧 ∗ dans (𝐽), le problème dual est réécrit comme :
1 1
max [− 2 𝜆T 𝐻𝜆 − 𝜆𝑇 𝐾 − 2 𝐹 T 𝐸 −1 𝐹] (2.54)
𝜆≥0

où les matrices H et K sont données par


𝐻 = 𝐺𝐸 −1 𝐺 T
𝐾 = 𝑔 + 𝐺𝐸 −1 𝐹
Ainsi, le problème dual est aussi un problème de programmation quadratique avec λ comme
variable de décision. C'est équivalent à

1 1
min [2 𝜆T 𝐻𝜆 + 𝜆𝑇 𝐾 + 2 𝑔T 𝐸 −1 𝑔] (2.53)
𝜆≥0
Notez que le problème dual peut être plus facile à résoudre que le problème primal car les
contraintes sont plus simples (voir la procédure de programmation quadratique de Hildreth dans la
section suivante).
L'ensemble des multiplicateurs optimaux de Lagrange qui minimisent la fonction objective dual :
1 1
𝐽 = 𝜆T 𝐻𝜆 + 𝜆𝑇 𝐾 + 𝑔T 𝐸 −1 𝑔
2 2
soumis à λ ≥ 0, sont désignés par 𝜆𝑎𝑐𝑡 , et les contraintes correspondantes sont décrites par 𝐻𝑎𝑐𝑡 et
𝑔𝑎𝑐𝑡 . Avec les valeurs de 𝜆𝑎𝑐𝑡 et 𝐻𝑎𝑐𝑡 , le vecteur variable primal z est obtenu par :
𝑧 ∗ = −𝐸 −1 𝐹 − 𝐸 −1 𝐺𝑎𝑐𝑡 T 𝜆𝑎𝑐𝑡
où les contraintes sont traitées comme des contraintes d'égalité dans le calcul.

58
Algorithme de programmation quadratique de Hildreth:
Un algorithme simple, appelé procédure de programmation quadratique de Hildreth, a été proposé
pour résoudre ce problème dual.
Cet algorithme est basé sur l'ajustement, d’une manière itérative, des i composantes de λ afin de
minimiser la fonction objectif.
Partant d’une condition initiale donnée des composantes 𝜆0𝑖 on détermine à l’itération m +1 les
nouvelles composantes 𝜆𝑚+1
𝑖 par les expressions suivantes :

𝜆𝑚+1
𝑖 = max(0, 𝑤𝑖𝑚+1 ),
𝑖−1 𝑛
1
𝑤𝑖𝑚+1 = − (𝑘𝑖 + ∑ ℎ𝑖𝑗 𝜆𝑗𝑚+1 + ∑ ℎ𝑖𝑗 𝜆𝑗𝑚 )
ℎ𝑖𝑖
𝑗=1 𝑗=𝑖+1

où ℎ𝑖𝑗 correspond au {ij}ème


élément de la matrice 𝐻 = 𝐺𝐸 𝐺 T et 𝑘𝑖 est le ième élément du
−1

vecteur 𝐾 = 𝑔 + 𝐺𝐸 −1 𝐹 .
Si la contrainte i est inactive, on a ∀𝑚, 𝜆𝑚+1
𝑖 = 0 et si la contrainte i est active on a ∀𝑚, 𝜆𝑚+1
𝑖 ≠
0.
La condition d’arrêt de l’algorithme marque la convergence du vecteur des paramètres λ vers sa
valeur optimale 𝜆∗ et correspond explicitement à ∀𝑚, 𝜆𝑚+1 𝑖 = 𝜆𝑚𝑖 .

La solution optimale du problème primal est alors obtenue à partir de :


𝑧 ∗ = −𝐸 −1 (𝐺 T 𝜆 + 𝐹)
Deux conditions sont nécessaires pour la convergence des variables duales et consistent à avoir :
 des contraintes actives linéaires indépendantes.
 un nombre de contraintes actives inférieur ou égal au nombre des variables de décision.

Si une de ces conditions n’est pas vérifiée, m convergera vers un nombre d’itération limite 𝑚 =
𝑚𝑚𝑎𝑥 préalablement défini au sein de l’algorithme.
On peut dire que l’algorithme de programmation quadratique de Hildreth est basé sur une
méthode de recherche élément par élément et ne requiert aucune procédure d’inversion de matrice.

59
60
Programmation quadratique de Hildreth sous Matlab

function z=QPhild(E,F,G,g);
% Solution de problem Prog Quad par la methode Hildreth
% Min J=1/2 z^T E z+F z*=?? ;
% Sous Contraintes ;
% Gz <= g
%
% z la solution
[n1,m1]=size(G); %% n1 nombre de ligne de G = nombre de contraintes
z=-E\F;
kk=0;
for i=1:n1
if (G (i,:)*z>g(i)) kk=kk+1; %% verification de non violation de
chaque contraintes
%else
%kk=kk+0;
end
end
if (kk==0)
return;
end

P=G*(E\ G');
d=( G *(E\F)+g);
[n,m]=size(d);
x_ini=zeros(n,m);
lambda=x_ini;
al=10;
for km=1:38
% Trouver les éléments dans le vecteur de solution un par un
% km pourrait être plus grand si le multiplicateur de Lagranger
% a un taux de convergence lent.
lambda_p=lambda;
for i=1:n
w= P(i,:)*lambda-P(i,i)*lambda(i,1);
w=w+d(i,1);
la=-w/P(i,i);
lambda(i,1)=max(0,la);
end
al=(lambda-lambda_p)'*(lambda-lambda_p);
if (al<10e-8); break; end
end
z=-E\F -E\G'*lambda;

61
Exemple 6 : Minimiser la fonction objectif

1
𝐽 = 𝑧1 2 + 𝑧2 2 − 𝑧1 𝑧2 − 𝑧1
2
Sous contraintes
0 ≤ 𝑧1 , 0 ≤ 𝑧2 et 3𝑧1 + 2𝑧2 ≤ 4
Ecrire le problème sous forme standard, puis trouvez son dual et utilisez l'algorithme de Hildreth pour
trouvez la solution optimale.

Exemple 7: Minimiser
1 1
𝐽= (𝑧1 − 2)2 + (𝑧2 − 2)2
2 2

où les contraintes sont définies par 0 ≤ z1 ≤ 1 et 0 ≤ z2 ≤ 1 .

62
63
64
Série d'exercices :
Exercice 1 :
Supposons que l'ensemble des contraintes est défini par
z1 ≥ 0 , z2 ≥ 0 𝑧1 + 𝑧2 ≤ 3 2𝑧1 − 𝑧2 ≤ 4 et 𝑧2 ≤ 2
On cherche à minimiser la fonction objective
3 1
𝐽 = 𝑧1 2 + 𝑧2 2 + 𝑧1 𝑧2 − 15𝑧1 − 7𝑧2
2 2
1. Trouver le minimum de la fonction objective J sans contraintes.
2. Combien de contraintes sont violées avec cette solution optimale globale ?
3. Tracez les contraintes d'inégalité linéaires sur le plan (z1, z2), marquez également la solution
optimale globale dans le plan. À partir de ce graphique, devinez les contraintes actives pour ce
problème d'optimisation sous contrainte. Validez votre estimation en traitant les contraintes
actives comme des contraintes d'égalité.
4. Si votre estimation initiale n'est pas correcte, prenez une autre supposition sur les contraintes
actives jusqu'à ce que la validation montre que vous avez correctement trouvé l'ensemble des
contraintes actives.

Exercice 2 :
Continuez à partir de l'exercice 1. Trouvez le minimum de J sous contraintes en utilisant la
méthode de Hildreth et comparez avec la réponse que vous avez obtenue dans l'exercice 1.

Exercice 3 : Considérons le modèle à temps discret du moteur à CC


𝑥 (𝑘 + 1) 0.9048 0 𝑥1 (𝑘) 0.0952
( 1 )=[ ]( )+[ ] 𝑢(𝑘)
𝑥2 (𝑘 + 1) 0.0953 1 𝑥2 (𝑘) 0.0048
𝑥 (𝑘)
𝑦(𝑘) = [0 1] ( 1 )
𝑥2 (𝑘)
En supposant que la position de l'arbre est mesurée, concevoir un système de contrôle prédictif qui suivra
l'échelon unitaire comme référence avec des contraintes
Le système d'observateur en boucle fermée a des pôles à 0,1, 0,2 et 0,3, et le signal de contrôle satisfait
aux contraintes 0 ≤ u(k) ≤ 0.6; −0.2 ≤ ∆u(k) ≤ 0.2.
L'horizon de prédiction Np = 60 et l'horizon de contrôle Nc = 5; 𝑅̅ = I. Les conditions initiales du vecteur
d'état et les états d'observateur sont supposés nuls.

Exercice 4 :
Un contrôleur prédictif minimise l'indice de performance prédit :

2 2
𝐽𝑘 = ∑(𝑦𝑖/𝑘 + 𝑢𝑖/𝑘 )
𝑖=0
à chaque instant - k soumis à des contraintes d'entrée : −1 ≤ 𝑢𝑖/𝑘 ≤ 2 pour 𝑖 ≥ 0. La sortie du système y
est liée à l'entrée u via 𝑥𝑘+1 = 𝐴𝑥𝑘 + 𝐵𝑢𝑘 , 𝑦𝑘 = 𝐶𝑥𝑘
−2 1 1
𝐴=[ ] , 𝐵 = [ ] 𝐶 = [1 1 ]
0 1 1
a. Pourquoi l'optimisation MPC est-elle répétée, à k = 0, 1, 2,... au lieu d'une seule fois, à k = 0 ?
b. Si la loi de retour d'état du mode 2 est 𝑢𝑘 = [2 −1]𝑥𝑘 , montrez que

65

2 2 𝑇 13 −1
𝐽𝑘 = ∑(𝑦𝑖/𝑘 + 𝑢𝑖/𝑘 ) + 𝑥𝑁/𝑘 [ ]𝑥
−1 2 𝑁/𝑘
𝑖=0
où N est la longueur de l'horizon de prédiction du mode 1.
c. Montrer que les contraintes :
−1 ≤ 𝑢𝑖/𝑘 ≤ 2, 𝑖 = 0,1,2 … 𝑁 + 1
assurent que les prédictions satisfont −1 ≤ 𝑢𝑖/𝑘 ≤ 2 pour 𝑖 ≥ 0
d. Dériver une borne sur 𝐽𝑘+1 ∗ −𝐽𝑘 ∗ , par conséquent montrer que ∑∞ 2 2
𝑘=0(𝑦𝑘 + 𝑢𝑘 ) ≤ 𝐽0 le long des
trajectoires du système en boucle fermée.
e. Le système en boucle fermée est-il stable ? Expliquez votre réponse.

Exercice 5.
a. Expliquer la fonction des contraintes terminales dans une stratégie de contrôle prédictif pour un
système avec des contraintes d'entrée ou d'état. Définir deux propriétés principales qui doivent être
satisfaites par un ensemble de contraintes de terminal.
b. Un système discret a le modèle d'espace d'état suivant :
0.3 −0.9 0.5
𝑥𝑘+1 = 𝐴𝑥𝑘 + 𝐵𝑢𝑘 𝐴=[ ],𝐵 = [ ]
−0.4 −2.1 1
avec les contraintes :
𝑥
|𝑥1 + 𝑥2 | ≤ 1, |𝑥1 − 𝑥2 | ≤ 1, 𝑥 = [𝑥1 ]
2
Si la loi de retour d'état terminal est 𝑢𝑘 = [0.4 1.8]𝑥𝑘 ,

Montrez que l'ensemble suivant est un ensemble de contraintes terminal valide.


{𝑥: |𝑥1 + 𝑥2 | ≤ 1, |𝑥1 − 𝑥2 | ≤ 1}

Décrire une procédure pour déterminer le plus grand ensemble de contraintes terminales dans le
cas d'un gain de rétroaction général K.
c. Quelles sont les principales considérations qui régissent le choix de l'horizon de prédiction N ?

66

View publication stats

Vous aimerez peut-être aussi