La programmation dynamique stochastique pour contrôler un ...

Post on 16-Jun-2022

1 views 0 download

Transcript of La programmation dynamique stochastique pour contrôler un ...

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 — IETRpierre.haessig@centralesupelec.fr

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