Optimally
EN·DE·FRDefault locale: EN
Contact
Projets sélectionnés/Trading énergétique/2024

Alpiq

Enchères Day-Ahead qui ajoutent +0,9 M€ de profit réalisé sur une centrale de pompage-turbinage de 900 MW

Un cadre d'unit commitment stochastique + CVaR pour l'actif Nant de Drance d'Alpiq, validé sur 4 mois de prix Day-Ahead réellement clearés en 2021–2022

Le pompage-turbinage hydraulique est autant un instrument financier qu'une centrale. L'opérateur achète de l'électricité bon marché la nuit pour pomper de l'eau en hauteur, la revend en heure de pointe, et doit s'engager sur ces décisions des heures avant que les prix de marché ne se fixent. Bien fait, l'actif imprime de l'argent ; mal fait, la perte est réelle.

Nous avons travaillé avec Alpiq via l'EPFL pour construire un cadre d'optimisation stochastique et robuste qui transforme des prévisions de prix probabilistes en courbes d'offre prêtes à soumettre pour la centrale de 900 MW de Nant de Drance. Un seul curseur d'aversion au risque permet aux traders de doser leur prudence, de façon défendable.

+0,9 M€
profit Day-Ahead réalisé ajouté vs. baseline déterministe sur 4 mois de prix réellement clearés
+3,2 %
gain sur le backtest 4 mois Nant de Drance en marché réel
−70 % risque de queue
pour −2,5 % de profit attendu quand le curseur CVaR est activé
4 formulations
déterministe, stochastique, CVaR, hybride robuste — toutes construites et benchmarkées

Le défi

Les opérateurs de pompage-turbinage soumettent des courbes horaires d'offre et de demande au marché Day-Ahead des heures avant que les prix ne se fixent. Des prix spot volatils, des contraintes hydrauliques complexes et des temps minimums de démarrage/arrêt font de chaque enchère quotidienne un problème d'optimisation à fort enjeu.

Les modèles risque-neutres peuvent conduire à des pertes catastrophiques les jours de mauvais prix. Les formulations purement robustes sont trop conservatrices et laissent de l'argent sur la table. Alpiq avait besoin d'un cadre permettant aux traders de régler le bon équilibre.

Notre démarche

Nous avons formulé le problème de unit commitment basé sur les prix comme un MILP stochastique sur un éventail de scénarios de prix, avec toutes les contraintes au niveau machine (turbines, pompes, coûts de démarrage, temps de transition) et un terme de risque basé sur le CVaR réglable par un seul paramètre λ.

À côté du moteur stochastique, nous avons construit une formulation robuste à la Bertsimas-Sim et une variante hybride pour la construction des courbes d'offre/demande. Nous avons tout validé via une procédure post-optimisation : générer les courbes, les clearer contre les prix Day-Ahead réels, mesurer le profit réalisé.

Le résultat

Livrable : une base de code Python/Gurobi implémentant les quatre formulations d'enchères Day-Ahead (déterministe, stochastique, stochastique + CVaR, hybride robuste), l'algorithme de construction des courbes d'offre/demande, et un rapport de benchmark côte à côte sur lequel les traders d'Alpiq peuvent s'appuyer pour choisir leur appétit au risque.

Sur 4 mois de prix Day-Ahead réellement clearés en 2021–2022 (janvier, avril, juin, octobre), la version stochastique ajoute 897 315 € (+3,2 %) de profit réalisé par rapport à la baseline déterministe que les desks Day-Ahead utilisent typiquement aujourd'hui. Avec le curseur CVaR activé à λ = 0,5, le même moteur échange environ 2,5 % de profit attendu contre environ 70 % de réduction du risque de queue — un seul curseur entre recherche de profit et aversion au risque, défendable devant un comité.

Plongée technique

Le modèle derrière le résultat.

Le modèle

Au cœur se trouve un programme linéaire mixte déterministe. L'objectif : maximiser le profit de court terme (énergie vendue moins énergie achetée, net des coûts d'exploitation), plus la valeur de l'eau restant dans le réservoir à la fin de l'horizon, moins une petite pénalité pour les variations de la trajectoire du réservoir entre itérations.

Objectif de profit déterministe. Prod est positif (turbinage, vente), Cons est négatif (pompage, achat), pr_t est le prix Day-Ahead, et le dernier terme valorise l'eau restant dans chaque réservoir.

Bilan de masse du réservoir. Volume à l'heure suivante = volume actuel + apports + déversements amont − reliquats − sorties + débits de turbinage et pompage, signés selon le côté du réservoir.

Objectif stochastique risque-averse. λ = 1 retrouve la maximisation risque-neutre du profit attendu ; λ → 0 rend le modèle maximalement averse aux pertes de queue.

Conditional Value at Risk : μ est la VaR au niveau de confiance α (typiquement 0,9), et v_s capture le déficit de chaque scénario en dessous.

Formulation robuste (Bertsimas-Sim). Γ est le budget d'incertitude : il plafonne le nombre de pas de temps où la variable duale b_t peut pousser le prix vers sa borne pire cas. Γ plus grand = plus averse au risque, profit attendu plus faible.

Chaque formulation produit un planning horaire d'activations de turbines et de pompes. Depuis ce planning, nous lisons les courbes d'offre (production) et de demande (consommation) que le trader soumet à la bourse Day-Ahead, puis nous validons le tout contre les prix réellement clearés dans une étape post-optimisation.

Benchmark

Profit réalisé (€) sur quatre mois de test, procédure post-optimisation sur les données de Nant de Drance.

ApprocheJanvier 2022Avril 2022Juin 2022Octobre 2021Total
Déterministe, prescience parfaite8 974 58810 652 3195 550 4476 098 30131 275 654
Baseline déterministe8 677 2459 356 7184 952 0895 310 31828 296 370
Stochastique (réel)8 177 8539 646 8495 143 9706 225 01329 193 685
Stochastique CVaR, λ = 0,5 (réel)7 830 6829 526 1045 110 5105 975 41428 442 709
Hybride robuste (réel)7 808 7849 577 6254 725 7254 759 01926 871 152

Tous les montants en EUR. La prescience parfaite est la borne supérieure inatteignable (optimisation déterministe contre les prix effectivement clearés). Les lignes ‘réel' clearent les courbes contre le prix Day-Ahead réel et requièrent l'activation de slack quand l'engagement initial est physiquement infaisable. Les approches stochastique et stochastique-CVaR battent toutes deux la baseline déterministe en profit réalisé, le CVaR sacrifiant environ 2,5 % de profit attendu pour ≈ 70 % de réduction du risque de queue.

Tiré du dossier

Figure 1 du rapport : la relation entre Value at Risk (VaR), Conditional Value at Risk (CVaR), Robust Profit (RP) et Conditional Robust Profit (CRP). Le CVaR est la perte attendue conditionnellement à être dans la pire queue (1 − α) ; l'objectif stochastique-CVaR pénalise cette grandeur directement.
Figure 1 du rapport : la relation entre Value at Risk (VaR), Conditional Value at Risk (CVaR), Robust Profit (RP) et Conditional Robust Profit (CRP). Le CVaR est la perte attendue conditionnellement à être dans la pire queue (1 − α) ; l'objectif stochastique-CVaR pénalise cette grandeur directement.
Tableau 1 et Figure 16 du rapport : profit attendu vs CVaR selon λ. La frontière de Pareto donne aux traders un menu explicite, à λ = 0,5, le CVaR chute d'environ 70 % par rapport au cas risque-neutre pour une baisse d'environ 2,5 % du profit attendu.
Tableau 1 et Figure 16 du rapport : profit attendu vs CVaR selon λ. La frontière de Pareto donne aux traders un menu explicite, à λ = 0,5, le CVaR chute d'environ 70 % par rapport au cas risque-neutre pour une baisse d'environ 2,5 % du profit attendu.
Tableau 3 et Figure 25 du rapport : résultats post-optimisation sur les quatre mois de test et activations de slack jusqu'en juin 2022. Les activations de slack se concentrent sur le planning hybride-robuste les jours de mauvais prix, révélant des infaisabilités que l'optimiseur ignorait.
Tableau 3 et Figure 25 du rapport : résultats post-optimisation sur les quatre mois de test et activations de slack jusqu'en juin 2022. Les activations de slack se concentrent sur le planning hybride-robuste les jours de mauvais prix, révélant des infaisabilités que l'optimiseur ignorait.

Techniques

  • Linéarisation MILP itérative de la puissance dépendante de la hauteur
  • Programmation mixte stochastique sur scénarios de prix
  • Optimisation risque-averse augmentée du CVaR
  • Optimisation robuste Bertsimas-Sim avec budget Γ
  • Formulation robuste hybride pour la construction des courbes
  • Procédure post-optimisation avec prix réellement clearés

Stack

  • Python
  • Gurobi
  • Pyomo
  • Pandas
  • Données de marché Alpiq

Un problème de ce type ?

Nous serions ravis d'en entendre parler.

contact@optimally.ch