Gestion optimale de l’énergie stockée
Présentation de la Programmation Dynamique Stochastique
Avant de détailler la méthode, nous présentons un rapide état des lieux de son utilisation pour la gestion d’un stock d’énergie.
Utilisation de la (S)DP pour la gestion d’énergie
La programmation dynamique a été créée par Bellman [8] dans les années 1950 pour étudier et résoudre les problèmes d’optimisation dynamique tels que les allocations successives de ressources (multi-stage allocation). L’intérêt de cette méthode pour la gestion du stock d’énergie d’une batterie vient du parallèle évident avec la gestion du stock d’eau d’un barrage hydroélectrique. L’utilisation de la (S)DP pour résoudre des problèmes de ressources en eau, et en particulier la gestion de réservoirs est presque concomitante à la méthode elle-même (voir par exemple le panorama de Yakowitz [103] en 1982). La gestion du stock d’eau de barrages hydroélectriques fait donc appel à cette méthode depuis longtemps et a fait l’objet de nombreux développements dont le plus connu est peut-être la méthode SDP duale (SDDP) de Pereira et al. [80] 1 . La recherche se poursuit encore actuellement, par exemple pour inclure des contraintes en probabilité sur le stock [2] (exemple : garantir qu’un lac de barrage soit susamment rempli certains mois d’été pour satisfaire les besoins du tourisme nautique). De façon générale, la programmation dynamique a été utilisée pour diérents problèmes de gestion d’énergie avec incertitude. Nous relevons en particulier le travail de Lin et al. [68] (University of Michigan) sur un véhicule hybride et celui de Bilbao et al. [10] (EPFL, Suisse) sur un ascenseur avec stockage. Pour ces deux applications, la clé de l’optimisation se situe dans la modélisation des systèmes, et en particulier de la dynamique des incertitudes. Dans chaque cas, la SDP permet d’obtenir une loi de gestion optimale. Costa [27][chap. 5] a également étudié la prise en compte d’incertitudes dans la planication d’un micro-réseau. La programmation dynamique a aussi été utilisée dans un contexte de gestion d’énergie déterministe, c’est-à-dire la planication à l’avance, hors-ligne, du partage optimal des ux de puissance (i.e. calcul de trajectoire optimale). Nous relevons le travail de Rionneau et al. [88] (Grenoble) sur un système photovoltaïque-batteries et de Caux et al. [25] (Toulouse) sur un véhicule hybride. Cependant, cette utilisation de la programmation dynamique dans un contexte déterministe ne doit pas être confondue avec l’utilisation dans un contexte stochastique, car les objectifs sont nettement diérents. Comme nous allons le voir dans la prochaine partie, l’optimisation stochastique a pour objectif d’obtenir une loi de gestion optimale, par opposition à l’optimisation déterministe qui recherche une trajectoire optimale. Nous préciserons donc en particulier cette notion de “loi de gestion”. Pour l’essentiel, nos connaissances sur la programmation dynamique proviennent du livre de Dimitri Bertsekas [9] 2 . En particulier, nous pensons que son premier chapitre présente de façon concise et claire 80 % des concepts utilisés dans nos travaux. Nous avons également trouvé quelques compléments utiles chez Whittle [100]. Relevons que l’optimisation dynamique est l’objet d’un partenariat industrie-université persistant entre EDF R&D et l’équipe d’optimisation de Michel De Lara, au CERMICS (laboratoire de l’École des Ponts ParisTech).
Mise en œuvre de la méthode SDP
Les ingrédients de la méthode
La programmation dynamique s’intéresse à l’optimisation d’un système au l du temps (nous considérons des instants discrets k). Plus précisément, elle s’intéresse au cas où les décisions ne peuvent être prises séparément à cause d’un couplage temporel représenté par une équation dynamique : xk+1 = f (xk ,uk ,wk ) (3.1) où interviennent trois variables (scalaires ou vectorielles) : — l’état du système x, qui joue le rôle de “mémoire” ou d’“inertie”, — la commande u, que l’on souhaite choisir à chaque instant k pour minimiser un coût, — la perturbation aléatoire w, qui rend l’état futur xk+1 partiellement incertain (perturbation absente dans le cas d’un problème déterministe), et la fonction f est appelée “dynamique du système”. Nous la supposons ici invariante, c’est-àdire indépendante de l’instant k. L’objectif à minimiser est une fonction coût additive, c’est-à-dire la somme cumulée du coût, noté c(xk ,uk ,wk ), que subit le système à chaque instant : K X−1 k=0 c(xk ,uk ,wk ) or la présence de perturbations stochastiques wk fait de cette somme une variable aléatoire pour laquelle la minimisation n’a pas de sens. Nous considérons alors que l’objectif est de minimiser l’espérance (la moyenne par rapport aux perturbations) de cette somme : J = E K X−1 k=0 c(xk ,uk ,wk ) (3.2) et K représente le nombre d’instants considérés pour l’optimisation, appelé horizon du problème. Le coût (3.2) est un problème à horizon ni, sachant que nous abordons plus bas la question de l’horizon inni (pour minimiser un coût moyen). Application au problème de garantie d’engagement Nous rappelons gure 3.1 (reproduction de la gure 1.3) la structure de notre problème : gestion d’un stockage pour garantir un engagement J+1. Pmis est l’erreur de prévision, ou plus généralement l’écart entre le productible et un engagement J+1. L’objectif de la gestion est de répartir optimalement ce ux d’énergie, à chaque instant k, entre un stockage (Psto) et le réseau (Pdev , l’écart à l’engagement qui est pénalisé). Pour la présente illustration, nous ne considérons pas l’écrêtage du productible (Pcur = 0). La première étape de la mise en œuvre de la programmation dynamique consiste à modéliser le problème, ce que nous avons fait au chapitre 2. En particulier, il faut faire l’inventaire des variables d’états, celles qui apparaissent dans une équation dynamique du type (3.1). Pour notre problème, nous avons une première variable d’état évidente : l’énergie Esto contenue dans le système de stockage. Cette énergie est régie par une équation du type : Esto (k + 1) = Esto (k) + Psto (k)∆t (rappel 2.1) où Psto (k) joue le rôle d’une variable de commande uk . avec 2 degrés de liberté Stockage Réseau écart entre productible & engagement dispatcher stocker écrêter pénalités vieillissement pertes non-production Coûts Délestage Figure 3.1 – Structure simpliée du système “éolien-stockage avec engagement” pour la gestion d’énergie Pour le coût, nous allons prendre l’exemple simple d’une pénalisation quadratique de l’écart à l’engagement : c = P 2 dev (k) = (Pmis (k) − Psto (k))2 (cf. 1.8) qui fait intervenir Pmis , l’écart entre productible et engagement. Nous avons vu que cet écart (qui est, avec quelques hypothèses, l’erreur de prévision J+1) a un comportement stochastique. On pourrait croire qu’il sut de prendre l’écart Pmis comme variable de perturbationw, mais cela n’est pas possible. En eet, la SDP impose que la série des perturbations {wk } soient indépendantes entre elles, or nous avons vu partie 2.3.2 que les erreurs de prévision J+1 sont fortement corrélées et nous en avons proposé un modèle AR(1) (2.34). Cette corrélation “promeut” la perturbation Pmis au rang de variable d’état. Ainsi, notre modèle de dynamique fait intervenir deux variables d’état x = (Esto,Pmis ), régies par l’équation : Esto (k + 1) = Esto (k) + Psto (k)∆t Pmis (k + 1) = ϕPmis (k) + w(k) (3.3) où Psto est la variable de commande et w la perturbation indépendante et identiquement distribuée (iid). Le pas de temps ∆t vaut 1 heure, en lien avec le modèle AR(1) et nous prenons ϕ = 0,8 pour la corrélation des erreurs entre 2 heures consécutives. Pour terminer la modélisation, nous devons considérer descontraintes sur la commande. Elles peuvent dépendre de l’état et sont notées génériquement u ∈ U (x). Pour notre exemple, ce sont les limites du stockage qui contraignent la puissance absorbable : — les limites d’énergie : 0 ≤ Esto + Psto∆t ≤ Er ated (i.e. (2.2)) — les limites de puissance : |Psto | ≤ Pr ated Pour toute la partie 3.1, nous xons numériquement l’échelle du système de stockage avec une capacité Er ated = 10 MWh et pour l’écart-type des erreurs de prévision σP = 1 MW. Cela correspondrait à une erreur RMS de 10 % pour une ferme éolienne de 10 MW. Pour cette partie nous ne souhaitons pas limiter la puissance, mais l’hypothèse gaussienne du modèle AR(1) rend improbable toute erreur Pmis > 4σP . Nous prenons donc Pr ated = 4 MW. Résolution du problème d’optimisation A priori, la fonction coût (3.2) semble dépendre de 3K variables : les triplets (xk ,uk ,wk ) pour k = 0,. . . ,K − 1. Cependant, l’eet des perturbations wk est moyenné avec l’opérateur espérance. De plus, l’évolution des variables d’état est complètement dénie par la dynamique (3.1), une fois que l’on connaît les contrôles et l’état initial.