Une introduction formelle au contrôle optimal

Transcription

Une introduction formelle au contrôle optimal
Une introduction formelle au contrôle optimal
Patrice Hauret
La plupart des systèmes sont pilotés par des paramètres, dits paramètres de
contrôle. Ainsi, la tension de la peau d’un tambour contrôle ses fréquences de
vibration, la forme d’une aile d’avion contrôle ses propriétés aérodynamiques,
et l’environnement électromagnétique dans une solution chimique favorise ou
défavorise certaines des réactions chimiques qui peuvent y avoir lieu. Contrôler
un système, c’est l’amener au plus proche d’un état voulu, l’état optimal étant
celui qui minimise un critère, fonction de l’état et de la valeur du contrôle.
Voici quelques notes sur le contrôle optimal abordé de façon formelle. C’est une
approche générique qui peut facilement se spécifier formellement sur des problèmes assez divers (contrôle laser en chimie quantique, optimisation de formes).
Dans la suite, on note δv un élément de l’espace tangent Tv U au point v ∈ U,
et par ∂f
∂v (v) · δv ou ∂v f · δv la différentielle de f en v ∈ U prise pour δv ∈ Tv U.
1
1.1
Principes formels du contrôle optimal
Position du problème
On appellera λ ∈ Λ le contrôle sur le système considéré, et sous son effet,
l’état u ∈ U du système est solution de
A(u, λ) = 0
dans E 0 ,
(1)
où E 0 est le dual d’un espace de Banach E. On notera u(λ) la solution u sous le
contrôle λ. Le critère à optimiser est J(u, λ) sous contrainte que u soit solution
de (1). Autrement dit, on veut minimiser G(λ) = J(u(λ), λ) pour λ ∈ Λ.
Un détail important : la notion de contrôle n’est pas nécessairement robuste.
Autrement dit, ce n’est pas parce qu’on dispose d’un contrôle (presque) optimal,
qu’en le modifiant d’une façon apparemment modérée, on obtiendra encore un
bon contrôle. Il est donc a priori important de définir la classe Λ des contrôles
comme les contrôles qu’on pourra effectivement produire précisément en pratique.
Pour résoudre un problème de contrôle optimal, on peut naturellement penser à écrire un algorithme de gradient pour se rapprocher de la solution optimale.
La suite consiste donc à déterminer la dérivée de G par rapport au contrôle. Mais
il y’a un élément important à remarquer : le gradient est une forme linéaire sur
Tλ Λ ; il ne donne donc pas en soit la direction de plus grande pente. En revanche,
1
on notera (∂λ G)] , la solution de
(∂λ G)] , δλ T
λΛ
= ∂λ G · δλ,
∀δλ ∈ Tλ Λ,
avec à gauche, un produit scalaire sur l’espace tangent Tλ Λ. Ce vecteur (∂λ G)]
représente, en revanche, une direction de plus grande pente pour le contrôle.
1.2
Algorithme de gradient
Pour déterminer les composantes du gradient ∂λ G(λ0 ) quand on est en dimension finie (et petite) Nλ , on pense naturellement pour déterminer sa composante selon la i-ème variable de contrôle λi , à écrire
∂λ G(λ0 )i =
G(λ0 + ei ) − G(λ0 )
.
ei est le i-ème vecteur de base de RNλ , et > 0 est un petit paramètre. Evidemment, pour calculer toutes les composantes du gradient avec cette stratégie,
il faut relancer un code Nλ fois (calcul de la solution avec un différent λ +
évaluation de G). En grandes dimensions, ou en dimension infinie, cela n’a pas
de sens.
Ainsi, supposant qu’on sache calculer (ou évaluer) le gradient, un algorithme
d’optimisation est le suivant
1. Initialiser λ(0) et k = 0,
]
2. Calculer g (k) ' ∂λ G(λ(k) ) ,
3. Choisir λ(k+1) = λ(k) − α(k) g (k) ,
4. Repartir en 2. jusqu’à convergence du critère G(λ(k) ).
Pour choisir α(k) , on se tourne vers les techniques usuelles de recherche d’un pas
optimal minimisant le critère dans la direction voulue.
1.3
Méthode de l’adjoint
Cette méthode permet de calculer le gradient pour un coût de calcul indépendent de la dimension de l’espace de contrôle et vaut aussi en dimension
infinie. Minimiser J(u, λ) pour λ ∈ Λ sous la contrainte (1), c’est formellement
stationnariser le Lagrangien
L(u, λ, p) = J(u, λ) + hA(u, λ), piE 0 ,E ,
où p ∈ E est un multiplicateur de Lagrange. Celà revient donc à déterminer
u ∈ U, λ ∈ Λ, p ∈ E tels que
∂J
∂A
· δu +
(u, λ) · δu, p
=0
∀δu ∈ Tu U,
(2)
∂u
∂u
E 0 ,E
∂J
· δλ +
∂λ
A(u, λ) = 0
∂A
(u, λ) · δλ, p
=0
∂λ
E 0 ,E
2
dans E 0 ,
(3)
∀δλ ∈ Tλ Λ, .
(4)
L’état optimal est celui qui est solution de ce système couplé. Cependant, on
souhaite poursuivre sur l’idée d’une résolution itérative en cherchant le gradient
de G.
Notons que (2) définit un problème adjoint parce qu’il s’écrit
*
+
>
∂J
∂A
=−
(u, λ)
· p, δu
· δu, ∀δu ∈ Tu U.
∂u
∂u
0
F ,F
Noter que la dualité est sur F = Tu U maintenant (dualité sur un espace tangent
0
de déplacements ; ∂A
∂u (u, λ) : F → E ). Si A est linéaire en u et est auto-adjoint
(Laplacien par exemple), ce problème est le même que celui qu’on résoudrait
pour u avec un second membre différent. Par définition de l’adjoint, on commence par remarquer que
*
+
>
∂A
∂A
∂u
∂u
∂J ∂u
.
· ·δλ = −
(u, λ)
· p,
· δλ
=−
(u, λ) ·
· δλ, p
∂u ∂λ
∂u
∂λ
∂u
∂λ
E 0 ,E
0
F ,F
De plus, en différentiant A(u(λ), λ) = 0 par rapport à λ, il vient
∂A
∂A ∂u
·
· δλ +
· δλ = 0,
∂u ∂λ
∂λ
∀δλ ∈ Tλ Λ,
et on déduit donc que
∂J ∂u
·
· δλ =
∂u ∂λ
∂A
(u, λ) · δλ, p
∂λ
,
E 0 ,E
où p ∈ E est solution de (2).
On souhaite déterminer
∂G
∂J ∂u
∂J
· δλ =
·
· δλ +
· δλ,
∂λ
∂u ∂λ
∂λ
et au vu du résultat qui précède, nous avons
∂G
∂A
∂J
· δλ =
(u, λ) · δλ, p
+
· δλ,
∂λ
∂λ
∂λ
E 0 ,E
∀δλ ∈ Tλ Λ.
Ainsi, dans l’algorithme de la section précédente, déterminer (exactement) les
composantes du gradient g (k) ne nécessite qu’un seul calcul, celui du problème
adjoint (à la réalisation près de l’opération ]).
2
2.1
Contrôle optimal de formes sur un exemple
Introduction
Il est possible de faire du calcul optimal de formes en déclinant l’approche
précédente, avec juste quelques subtilités liées à la nature du contrôle. Notons
3
cependant qu’à cause de la nature différentielle de l’approche, la topologie du
domaine est contrainte à rester identique au cours du processus d’optimisation (pas d’apparition de trous). Traitons brièvement un exemple. Considérons
comme équation :
−∆u = 1, Ω,
avec u = 0 sur le bord ∂Ω. On adoptera dans la suite la formulation variationnelle usuelle pour ce problème : trouver u ∈ U = H01 (Ω) tel que
Z
Z
∇u : ∇v =
v, ∀v ∈ U.
(5)
Ω
Ω
On cherche à miminimiser une fonctionnelle J(Ω, u). La difficulté pour appliquer
le programme prècèdent consister à savoir différentier par rapport au domaine.
On va s’exercer sur l’équation (5).
2.2
Poser le problème
En optimisation de formes, quand on écrit A(u, λ) = 0, la solution u est
définie sur un domaine Ω(λ), et donc différentier par rapport à λ à u fixé semble
compliqué. Une idée de base peut consister à se ramener à un domaine Ω̂ de
référence sur lequel la solution û est ramenée, et à utiliser une carte ϕ telle
que le domaine effectif soit Ω = ϕ(Ω̂). La solution u sur Ω est définie par
u(ϕ(x̂)) = û(x̂). Si je réalise le changement de variables ϕ dans la formulation
(5), j’obtiens
−1 # "
−1 #
Z "
∂ϕ
∂v̂
∂ϕ
∂ϕ
∂ û
·
:
·
det
dx̂ = 0, ∀v̂ ∈ V̂,
hA(û, ϕ), v̂i :=
∂
x̂
∂
x̂
∂
x̂
∂
x̂
∂ x̂
Ω̂
avec des notations évidentes. En différentiant par rapport à ϕ, on a
Z "
−1 # ∂ û
∂ϕ
∂ϕ
∂A
∂v̂
(û, ϕ) · δϕ, v̂ =
·
· B det
:
dx̂
∂ϕ
∂
x̂
∂
x̂
∂
x̂
∂ x̂
Ω̂
"
−1 #
Z ∂ û
∂v̂
∂ϕ
∂ϕ
+
·B :
·
det
dx̂
∂ x̂
∂ x̂
∂ x̂
Ω̂ ∂ x̂
−1 # "
−1 # Z "
∂ϕ
∂v̂
∂ϕ
∂ϕ
∂δϕ
∂ û
·
:
·
cof
:
dx̂,
+
∂
x̂
∂
x̂
∂
x̂
∂
x̂
∂
x̂
∂ x̂
Ω̂
où cof M est la matrice des cofacteurs de M , et
−1
−1
∂ϕ
∂δϕ
∂ϕ
B=−
·
·
.
∂ x̂
∂ x̂
∂ x̂
Quitte à reparamétriser le domaine autour de la configuration actuelle, on peut
toujours supposer ϕ = id, ce qui donne
Z ∂A
∂u
∂v ∂δϕ
(u, ϕ) · δϕ, v = −
:
·
dx
∂ϕ
∂x ∂x
Ω ∂x
4
Z −
Ω
Z ∂v
∂v
∂u ∂δϕ
∂u
·
:
dx +
:
div (δϕ) dx,
∂x ∂x
∂x
∂x
∂x
Ω
La difficulté apparente ici, c’est que ϕ est le contrôle au lieu de λ qui serait
seulement la restriction ϕ|∂Ω au bord du domaine. En pratique, quand on a
le déplacement δλ du bord du domaine, on le relève en un champ de déplacements δϕ qui existe dans tout le domaine. Le champ δϕ définit en même temps
l’adaptation du maillage. Pour trouver δϕ, l’idée est d’utiliser un relèvement
harmonique
(
−∆δϕ = 0, Ω,
δϕ = δλ, ∂Ω.
5