Alpiq · Schweizer Energieproduzent und -händler
Day-Ahead-Gebote, die +€0,9 Mio. realisierten Profit auf einem 900-MW-Pumpspeicherkraftwerk hinzufügen
Ein stochastisches und CVaR-basiertes Unit-Commitment-Framework für das Nant-de-Drance-Asset von Alpiq, validiert auf 4 Monaten real geclearter Day-Ahead-Preise 2021–2022
Pumpspeicherwasserkraft ist ebenso ein Finanzinstrument wie ein Kraftwerk. Der Betreiber kauft günstigen Nachtstrom, um Wasser bergauf zu pumpen, verkauft ihn zur Spitzenlast zurück und muss sich Stunden vor der Marktklärung auf diese Entscheidungen festlegen. Trifft er richtig, druckt das Asset Geld; trifft er falsch, ist der Verlust real.
Gemeinsam mit Alpiq und der EPFL haben wir ein stochastisches und robustes Optimierungs-Framework gebaut, das probabilistische Preisprognosen in einreichungsfertige Gebotskurven für das 900-MW-Kraftwerk Nant de Drance verwandelt. Ein einziger Risikoaversions-Knopf erlaubt Tradern, vorsichtig zu sein, verteidigbar.
Die Herausforderung
Pumpspeicherbetreiber reichen stündliche Angebots- und Bietkurven am Day-Ahead-Markt Stunden vor der Preisklärung ein. Volatile Spotpreise, komplexe hydraulische Nebenbedingungen und minimale Up/Down-Zeiten machen aus jedem Tagesgebot ein Optimierungsproblem mit hohem Einsatz.
Risikoneutrale Modelle können an Tagen mit ungünstigen Preisen zu katastrophalen Verlusten führen. Rein robuste Formulierungen sind zu konservativ und lassen Geld liegen. Alpiq brauchte ein Framework, mit dem Trader die richtige Balance einstellen können.
Unser Vorgehen
Wir haben das preisbasierte Unit-Commitment-Problem als stochastisches MILP über einen Fächer von Preisszenarien formuliert, mit vollständigen maschinenbezogenen Nebenbedingungen (Turbinen, Pumpen, Anfahrkosten, Übergangszeiten) und einem CVaR-basierten Risikoterm, einstellbar über einen einzigen λ-Parameter.
Daneben haben wir eine robuste Formulierung im Stil von Bertsimas-Sim und eine Hybrid-Variante für die Konstruktion der Angebots-/Bietkurven gebaut. Validiert haben wir alles in einem Post-Optimierungs-Pass: Gebotskurven generieren, gegen die echten Day-Ahead-Preise clearen, realisierten Profit messen.
Das Ergebnis
Deliverable: eine Python/Gurobi-Codebasis mit allen vier Day-Ahead-Gebotsformulierungen (deterministisch, stochastisch, stochastisch + CVaR, hybrid robust), dem Algorithmus zur Angebots-/Bietkurven-Konstruktion und einem direkten Benchmark-Bericht, an dem sich die Trader von Alpiq bei der Wahl ihres Risikoappetits orientieren können.
Über 4 Monate real geclearter Day-Ahead-Preise in 2021–2022 (Januar, April, Juni, Oktober) fügt die stochastische Variante €897.315 (+3,2 %) realisierten Profit gegenüber der deterministischen Baseline hinzu, die Day-Ahead-Desks heute typischerweise fahren. Mit aktiviertem CVaR-Risiko-Knopf bei λ = 0,5 tauscht dieselbe Engine rund 2,5 % erwarteten Profit gegen rund 70 % geringeres Tail-Risiko — ein einziger Drehknopf zwischen Profitstreben und Risikoaversion, den Trader vor einem Komitee verteidigen können.
Technischer Deep Dive
Das Modell hinter dem Ergebnis.
Das Modell
Im Kern liegt ein deterministisches gemischt-ganzzahliges lineares Programm. Die Zielfunktion: maximierter Kurzfristprofit (verkaufte Energie minus gekaufte Energie, netto nach Betriebskosten), zuzüglich des Wertes des am Ende des Horizonts im Speicher verbleibenden Wassers, abzüglich einer kleinen Strafe für Veränderungen der Speichertrajektorie zwischen Iterationen.
Deterministische Profit-Zielfunktion. Prod ist positiv (Turbinierung, Verkauf), Cons negativ (Pumpen, Kauf), pr_t ist der Day-Ahead-Preis, und der letzte Term bewertet das in jedem Speicher verbleibende Wasser.
Massenbilanz des Speichers. Volumen in der nächsten Stunde = Volumen jetzt + Zuflüsse + Überläufe von oberhalb − Restmengen − Abflüsse + Turbinen- und Pumpdurchsätze, signiert je nach Seite des Speichers.
Risikoaverse stochastische Zielfunktion. λ = 1 reproduziert die risikoneutrale Maximierung des erwarteten Profits; λ → 0 macht das Modell maximal abgeneigt gegen Tail-Verluste.
Conditional Value at Risk: μ ist der VaR auf Konfidenzniveau α (typischerweise 0,9), und v_s erfasst den Fehlbetrag jedes Szenarios darunter.
Robuste Formulierung (Bertsimas-Sim). Γ ist das Unsicherheitsbudget: Es deckelt, wie viele Zeitschritte die Dualvariable b_t den Preis zur Worst-Case-Schranke verschieben darf. Grösseres Γ = risikoaverser, geringerer erwarteter Profit.
Jede Formulierung produziert einen stündlichen Plan für Turbinen- und Pumpenaktivierungen. Aus diesem Plan lesen wir die Angebots- (Produktion) und Biet- (Verbrauch) Kurven ab, die der Trader an der Day-Ahead-Börse einreicht, und validieren anschliessend alles in einem Post-Optimierungs-Pass gegen die real geclearten Preise.
Benchmark
Realisierter Profit (€) über vier Testmonate, Post-Optimierungs-Verfahren auf Nant-de-Drance-Daten.
| Ansatz | Januar 2022 | April 2022 | Juni 2022 | Oktober 2021 | Total |
|---|---|---|---|---|---|
| Deterministisch, perfekte Voraussicht | 8 974 588 | 10 652 319 | 5 550 447 | 6 098 301 | 31 275 654 |
| Deterministische Baseline | 8 677 245 | 9 356 718 | 4 952 089 | 5 310 318 | 28 296 370 |
| Stochastisch (real) | 8 177 853 | 9 646 849 | 5 143 970 | 6 225 013 | 29 193 685 |
| Stochastisch CVaR, λ = 0,5 (real) | 7 830 682 | 9 526 104 | 5 110 510 | 5 975 414 | 28 442 709 |
| Hybrid robust (real) | 7 808 784 | 9 577 625 | 4 725 725 | 4 759 019 | 26 871 152 |
Alle Zahlen in EUR. Die perfekte Voraussicht ist die unerreichbare obere Schranke (deterministische Optimierung gegen die tatsächlich geclearten Preise). Die ‘real’-Zeilen clearen die Gebotskurven gegen den realen Day-Ahead-Preis und benötigen Slack-Aktivierungen, wenn das ursprüngliche Commitment physikalisch unzulässig ist. Sowohl die stochastische als auch die stochastische CVaR-Variante schlagen die deterministische Baseline beim realisierten Profit, wobei CVaR rund 2,5 % des Erwartungsprofits gegen ≈ 70 % Tail-Risiko-Reduktion tauscht.
Aus den Unterlagen



Techniken
- Iterative MILP-Linearisierung der höhenabhängigen Leistung
- Stochastische gemischt-ganzzahlige Programmierung über Preisszenarien
- CVaR-augmentierte risikoaverse Optimierung
- Bertsimas-Sim-robuste Optimierung mit Budget Γ
- Hybrid-robuste Formulierung zur Konstruktion der Angebots-/Bietkurven
- Post-Optimierung mit real geclearten Preisen
Stack
- Python
- Gurobi
- Pyomo
- Pandas
- Marktdaten von Alpiq
Ein Problem wie dieses?