TP_Bang-Bang - Joseph Gergaud

Transcription

TP_Bang-Bang - Joseph Gergaud
ENSEEIHT — 2ı̀eme Année Informatique & Mathématiques Appliquées
Contrôle optimal
2014–2015
TP Bang–Bang
TP : Tir multiple et problème Bang–Bang
Olivier Cots & Joseph Gergaud
1
Introduction
L’objectif est ici la résolution numérique des problèmes de contrôle optimal
à solution Bang–Bang, c’est-à-dire des problèmes où le contrôle optimal est
discontinu. On considère pour cela le problème simple suivant :

R2
M in 0 |u(t)|dt




 ẋ(t) = −x(t) + u(t)
(P )
|u(t)| ≤ 1



x(0) = x0 = 0


x(2) = xf = 0.5
2
2.1
Choix du point de départ
Étude de (P )
1. Visualiser la fonction de tir associée à (P ) ;
2. Peut-on ici calculer la dérivée de la fonction de tir à l’aide des équations
variationnelles vues au TP précédent ?
3. Résoudre (P ) par le tir simple. On prendra comme erreurs locales relative et absolue RelTol=AbsTol=1.e-10 et on considèrera les points
de départs p0 = −1.1, −0.5; 0; 0.5.
2.2
Méthodes homotopiques 1
On considère la famille de problèmes de contrôle optimal suivante :

R2
M
in

0 (|u(t)| − ε(ln |u(t)| + ln(1 − |u(t)|)))dt



 ẋ(t) = −x(t) + u(t)
(Pε )
|u(t)| < 1



x(0) = x0 = 0


x(2) = xf = 0.5
1
Pb Bang–Bang
Contrôle optimal
La minimisation du hamiltonien est donnée par

−2εsign(p)

√ 2
si p 6= 0,
ψ(p)−2ε−
ψ (p)+4ε2
uε (p) =
±2ε

√
si p = 0,
−1−2ε− 1+4ε2
où ψ(p) = −1 + |p|.
Remarque 2.1. Dans le code on prendra
uε (0) =
−2ε
√
.
−1 − 2ε − 1 + 4ε2
On donne aussi pour p 6= 0
ψ(p)
2ε 1 − √ 2
ψ (p)+4ε2
0
p
uε (p) =
.
(ψ(p) − 2ε − ψ 2 (p) + 4ε2 )2
1. Pour ε = 1
(a) Visualiser la fonction de tir ;
(b) Résoudre (Pε ) par le tir simple. On prendra comme erreurs locales
relative et absolue RelTol=AbsTol=1.e-10 et on considèrera les
points de départs p0 = −10, −1, 0, 1, 10.
2. Résoudre successivement (Pε ) pour ε = 1, 0.5, 0.1, 0.01, 0.0001. Pour
résoudre le problème pour εi+1 on prendra la solution trouvée pour
εi .
2.3
Résolution par tir multiple
Sachant que sur ce petit problème le contrôle optimal est égal à
(
0
si t < t1
u(t) =
sign(p(t)) si t > t1 ,
on peut trouver la solution en recherchant un zéro de la fonction de tir
multiple
4
S: R4 −→ R


p0
z(t1 , t0 , z0 ) − z1
 t1  7−→ z1 (tf , t1 , z1 ) − 0.5 ,
z1
p1 − 1
T
où zi = xi pi et z(ti , ti−1 , zi−1 ) est la solution du système différentiel en
ti avec la condition initiale z(ti−1 ) = zi−1 .
1. Résoudre le problème par le tir multiple défini ci-dessus.
2