Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
La programmation dynamique stochastiquepour contrôler un système de stockage d’énergieExemple du lissage de la production d’un houlogénérateur
Pierre Haessig
CentraleSupélec — [email protected]
http://pierreh.eu
Réunion du groupe Commande des Systèmes Électriques(CSE, inter GdR MACS-SEEDS), 9 avril 2015
d’après : P. Haessig, T. Kovaltchouk, B. Multon, H. Ben Ahmed, S. Lascaud"Computing an Optimal Control Policy for an Energy Storage", EuroSciPy 2013
http://arxiv.org/abs/1404.63891 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Plan de la présentation
1. Introduction
2. Exemple du lissage de la production d’un houlogénérateurContexte de la récupération de l’énergie des vaguesUn houlogénérateur : le SEAREVLissage de la puissance produite
3. Mise en œuvre de la programmation dynamiqueModélisation : dynamiques déterministes et stochastiquesRésolution : équation de la programmation dynamique
4. Conclusion
2 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Plan de la présentation
1. Introduction
2. Exemple du lissage de la production d’un houlogénérateur
3. Mise en œuvre de la programmation dynamique
4. Conclusion
3 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Mon parcours
Pierre Haessig
Professeur assistant à CentraleSupélec depuis septembre 2014à Rennes, dans l’équipe d’automatique ASH de l’IETR (Hervé Guéguen). Thèse sur les systèmes éolien-stockage (gestion &dimensionnement), laboratoire SATIE (ENS Rennes) et EDF R&D.
4 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
StoDynProg : un package pour l’Optim. DynamiqueEn travaillant sur la gestion d’un système de stockage d’énergiepour l’éolien, je progressivement réalisé que : le problème de gestion d’énergie optimale est un problèmed’Optimisation Dynamique (structure spécifique). il existe la méthode de la Programmation Dynamique (DP)
pour le traiter. les algorithmes de DP sont “trop simples pour mériter uneimplémentation” → pas de “DP toolbox” ! !
→ Écriture d’un code générique pouvant résoudre tous mesproblèmes et, avec un peu de chance, d’autres problèmesd’Optimisation Dynamique : StoDynProg (en Python).
Pour tester cet objectif de généricité, j’ai choisi un problèmedifférent, en lien avec les travaux du SATIE à Rennes : le lissage dela production d’un houlogénérateur.
5 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
StoDynProg : un package pour l’Optim. DynamiqueEn travaillant sur la gestion d’un système de stockage d’énergiepour l’éolien, je progressivement réalisé que : le problème de gestion d’énergie optimale est un problèmed’Optimisation Dynamique (structure spécifique). il existe la méthode de la Programmation Dynamique (DP)
pour le traiter. les algorithmes de DP sont “trop simples pour mériter uneimplémentation” → pas de “DP toolbox” ! !
→ Écriture d’un code générique pouvant résoudre tous mesproblèmes et, avec un peu de chance, d’autres problèmesd’Optimisation Dynamique : StoDynProg (en Python).
Pour tester cet objectif de généricité, j’ai choisi un problèmedifférent, en lien avec les travaux du SATIE à Rennes : le lissage dela production d’un houlogénérateur.
5 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Plan de la présentation
1. Introduction
2. Exemple du lissage de la production d’un houlogénérateurContexte de la récupération de l’énergie des vaguesUn houlogénérateur : le SEAREVLissage de la puissance produite
3. Mise en œuvre de la programmation dynamique
4. Conclusion
6 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Récupération de l’Énergie des Vagues
(CC-BY-NC picture by polandeze)www.flickr.com/photos/polandeze/3151015577
Produire de l’électricité à partirde la houle en électricité (avec de“grosses machines”) est un sujetactif de R&D.
Il n’y a pas encore de machinesindustrialisées (à l’inverse del’éolien et du PV), mais unegrande variété de prototypes :les Houlogénérateurs.
E.ON P2 Pelamis, July 2011 http://www.pelamiswave.com 7 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Un Houlogénérateur : le SEAREV
Design hydromécanique de Centrale Nantes.Équipe du SATIE à Rennes impliquée dans la conception de la génératrice électrique.
8 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Un Houlogénérateur : le SEAREVune production très fluctuante
1.0
0.5
0.0
0.5
1.0
speed (
m/s
)
1.0
0.5
0.0
0.5
1.0
200 400 600 800time (s)
0.2
0.4
0.6
0.8
1.0
pow
er
(MW
)
240 250 260 270 280 290zoomed time (s)
0.2
0.4
0.6
0.8
1.0
Le SEAREV est un double pendule qui oscille avec les vagues.Une génératrice électrique freine la roue interne pour générer de lapuissance (Pprod = T (Ω)× Ω).
9 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage de puissance
240 260 280 300 320time (s)
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
Objectif de cette applicationOn souhaite lisser les variations de la puissance produite.Cela nécessite un réservoir tampon d’énergie pour
compenser la différence Pprod − Pgrid .
10 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage de puissance par un Système de Stockage d’Énergie
240 260 280 300 320time (s)
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
Ocean Wave Energy Converter
? Storage
Production Grid
EnergyManagement
Renewable Energy Source
with an Energy Storage System
11 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
linearpolicy
D’abord avec une loi de gestion empirique simple (linéaire) :
Pgrid (t) = PmaxErated
Esto(t)
. . .bon résultat, mais stockage sous-utilisé → pourrait faire mieux.
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
linearpolicy
Le “faire mieux” est défini avec une fonction coût additive quipénalise les variations de Pgrid :
J = 1NE
N−1∑k=0
cost(Pgrid (k)− Pavg )
avec N →∞
et ce coût J doit être minimisé.12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
linearpolicy
Le contrôle du stockage (choix de Pgrid à chaque pas de temps)pour minimiser une fonction coût est un problème
d’Optimisation Dynamique Stochastique.
(aussi appelé “Contrôle Optimal Stochastique”, selon les points de vue)
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
linearpolicy
La Programmation Dynamique (Richard Bellman, ~1950) nousenseigne que la décision optimale est une stratégie à retour d’état :
Pgrid (t) = µ(x(t)) avec x = (Esto, autres variables ?)
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
linearpolicy
La Programmation Dynamique (Richard Bellman, ~1950) nousenseigne que la décision optimale est une stratégie à retour d’état :
Pgrid (t) = µ(x(t)) avec x = (Esto, autres variables ?)
et la DP donne une méthode pour calculer cette loi de gestion µ. . .
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Lissage : Gestion du Stock d’Énergie
0.0
0.2
0.4
0.6
0.8
1.0
Pow
er
(MW
)
Pprod
Pgrid
average
200 250 300 350 400time (s)
0
2
4
6
8
Energ
y E
sto
(MJ)
linearpolicy
optimizedpolicy
optimizedpolicy
linearpolicy
En applicant la loi de gestion optimale µ∗, l’écart-type de lapuissance injectée sur le réseau est réduit de ~20 % par rapport àla gestion empirique.Cette amélioration est “simplement” due à une utilisation plusintelligente de l’énergie stockée.
12 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Plan de la présentation
1. Introduction
2. Exemple du lissage de la production d’un houlogénérateur
3. Mise en œuvre de la programmation dynamiqueModélisation : dynamiques déterministes et stochastiquesRésolution : équation de la programmation dynamique
4. Conclusion
13 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des entrées incertaines
La DP accepte les perturbations stochastiques (→ SDP),à condition qu’elles soient indépendantes (e.g. décorrélées, bruit blanc).
1.0
0.5
0.0
0.5
1.0
speed (
m/s
)
1.0
0.5
0.0
0.5
1.0
200 400 600 800time (s)
0.2
0.4
0.6
0.8
1.0
pow
er
(MW
)
240 250 260 270 280 290zoomed time (s)
0.2
0.4
0.6
0.8
1.0
Autocorrélation de la vitesse du pendule Ω(k)
Le SEAREV présente despulses de puissance(bouffées de vagues) :→ clairement pas unbruit blanc.
On approxime cettedynamique oscillante enajustant un modèleautorégressif AR(2) surla vitesse Ω(k).
14 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des entrées incertaines
La DP accepte les perturbations stochastiques (→ SDP),à condition qu’elles soient indépendantes (e.g. décorrélées, bruit blanc).
1.0
0.5
0.0
0.5
1.0
speed (
m/s
)
1.0
0.5
0.0
0.5
1.0
200 400 600 800time (s)
0.2
0.4
0.6
0.8
1.0
pow
er
(MW
)
240 250 260 270 280 290zoomed time (s)
0.2
0.4
0.6
0.8
1.0
Autocorrélation de la vitesse du pendule Ω(k)
0 5 10 15 20 25 30 35 40lag time (s)
1.0
0.5
0.0
0.5
1.0data acf
Le SEAREV présente despulses de puissance(bouffées de vagues) :→ clairement pas unbruit blanc.
On approxime cettedynamique oscillante enajustant un modèleautorégressif AR(2) surla vitesse Ω(k).
14 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des entrées incertaines
La DP accepte les perturbations stochastiques (→ SDP),à condition qu’elles soient indépendantes (e.g. décorrélées, bruit blanc).
1.0
0.5
0.0
0.5
1.0
speed (
m/s
)
1.0
0.5
0.0
0.5
1.0
200 400 600 800time (s)
0.2
0.4
0.6
0.8
1.0
pow
er
(MW
)
240 250 260 270 280 290zoomed time (s)
0.2
0.4
0.6
0.8
1.0
Autocorrélation de la vitesse du pendule Ω(k)
0 5 10 15 20 25 30 35 40lag time (s)
1.0
0.5
0.0
0.5
1.0data acf
AR(2) model - acf fit on 15 s
Le SEAREV présente despulses de puissance(bouffées de vagues) :→ clairement pas unbruit blanc.
On approxime cettedynamique oscillante enajustant un modèleautorégressif AR(2) surla vitesse Ω(k).
14 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des dynamiques
1. La dynamique du stockage d’énergie est déterministe :
Esto(k + 1) = Esto(k) + Psto(k)∆t
2. La puissance du SEAREV est une dynamique stochastique : Modèle autorégressif stochastique pour la vitesse Ω :
Ω(k) = φ1Ω(k − 1) + φ2Ω(k − 2) + w(k)
AR(2) → espace d’état, avec vitesse Ω et accélération A Une transformation non linéaire statique donne la puissance :Pprod = T (Ω)× Ω
→ Modèle Markovien de la puissance produite par le SEAREV.
Vecteur d’état complet : x = (Esto,Ω,A)→ dynamique xk+1 = f (xk , uk ,wk)
15 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des dynamiques
1. La dynamique du stockage d’énergie est déterministe :
Esto(k + 1) = Esto(k) + Psto(k)∆t
2. La puissance du SEAREV est une dynamique stochastique : Modèle autorégressif stochastique pour la vitesse Ω :
Ω(k) = φ1Ω(k − 1) + φ2Ω(k − 2) + w(k)
AR(2) → espace d’état, avec vitesse Ω et accélération A Une transformation non linéaire statique donne la puissance :Pprod = T (Ω)× Ω
→ Modèle Markovien de la puissance produite par le SEAREV.
Vecteur d’état complet : x = (Esto,Ω,A)→ dynamique xk+1 = f (xk , uk ,wk)
15 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Modélisation des dynamiques
1. La dynamique du stockage d’énergie est déterministe :
Esto(k + 1) = Esto(k) + Psto(k)∆t
2. La puissance du SEAREV est une dynamique stochastique : Modèle autorégressif stochastique pour la vitesse Ω :
Ω(k) = φ1Ω(k − 1) + φ2Ω(k − 2) + w(k)
AR(2) → espace d’état, avec vitesse Ω et accélération A Une transformation non linéaire statique donne la puissance :Pprod = T (Ω)× Ω
→ Modèle Markovien de la puissance produite par le SEAREV.
Vecteur d’état complet : x = (Esto,Ω,A)→ dynamique xk+1 = f (xk , uk ,wk)
15 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Équation de la Programmation Dynamique
Au final, le problème d’optimisation revient à résoudre l’équationde la programmation dynamique (ou “de Bellman”) :
J∗ + J(x) = minu∈U(x)
Ew
cost(x , u,w)︸ ︷︷ ︸coût instantané
+ J(f (x , u,w))︸ ︷︷ ︸coût du futur
x : état, u : commande, w : perturbation stochastique
C’est une équation fonctionnelle : doit être résolue pour tout x La loi de gestion optimale µ : x 7→ u apparaît en argmin.
En pratique, numériquementL’équation est résolue sur une grille discrète de l’espace d’état.Avec x ∈ Rn, J et µ sont des tableaux de dimension n.
16 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Équation de la Programmation Dynamique
Au final, le problème d’optimisation revient à résoudre l’équationde la programmation dynamique (ou “de Bellman”) :
J∗ + J(x) = minu∈U(x)
Ew
cost(x , u,w)︸ ︷︷ ︸coût instantané
+ J(f (x , u,w))︸ ︷︷ ︸coût du futur
x : état, u : commande, w : perturbation stochastique
C’est une équation fonctionnelle : doit être résolue pour tout x La loi de gestion optimale µ : x 7→ u apparaît en argmin.
En pratique, numériquementL’équation est résolue sur une grille discrète de l’espace d’état.Avec x ∈ Rn, J et µ sont des tableaux de dimension n.
16 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Visualisation de la loi de gestion P∗grid(Esto, Ω, A)La loi de commande optimale est une fonction R3 7→ R, ounumériquement un tableau 3D.
Surfaces P∗grid (vitesse Ω, accelération A),pour différents niveaux d’énergie Esto
17 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
Plan de la présentation
1. Introduction
2. Exemple du lissage de la production d’un houlogénérateur
3. Mise en œuvre de la programmation dynamique
4. Conclusion
18 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
ConclusionÀ propos de l’intérêt de la Programmation Dynamique (DP)
Pros : La DP permet de calculer une loi de commande non linéaire,
non intuitive (pas d’a priori sur la forme) La loi de gestion est calculée une fois pour toutes (offline)
Cons : Le comportement obtenu est sensible à des erreurs demodélisation (e.g. non linéarité du pendule) Applicabilité de la DP limitée par la dimension de l’état(dim(X ) ≤ 4)
Code et données disponibles sur GitHubhttps://github.com/pierre-haessig/stodynprog/tree/master/examples/
19 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
ConclusionÀ propos de l’intérêt de la Programmation Dynamique (DP)
Pros : La DP permet de calculer une loi de commande non linéaire,
non intuitive (pas d’a priori sur la forme) La loi de gestion est calculée une fois pour toutes (offline)
Cons : Le comportement obtenu est sensible à des erreurs de
modélisation (e.g. non linéarité du pendule) Applicabilité de la DP limitée par la dimension de l’état(dim(X ) ≤ 4)
Code et données disponibles sur GitHubhttps://github.com/pierre-haessig/stodynprog/tree/master/examples/
19 / 19
Introduction Lissage de la Prod. d’un Houlogénérateur Mise en œuvre de la Prog. Dynamique Conclusion
ConclusionÀ propos de l’intérêt de la Programmation Dynamique (DP)
Pros : La DP permet de calculer une loi de commande non linéaire,
non intuitive (pas d’a priori sur la forme) La loi de gestion est calculée une fois pour toutes (offline)
Cons : Le comportement obtenu est sensible à des erreurs de
modélisation (e.g. non linéarité du pendule) Applicabilité de la DP limitée par la dimension de l’état(dim(X ) ≤ 4)
Code et données disponibles sur GitHubhttps://github.com/pierre-haessig/stodynprog/tree/master/examples/
19 / 19