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