Optimally
EN·DE·FRDefault locale: EN
Kontakt
Ausgewählte Projekte/Energiehandel/2024

Alpiq

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.

+€0,9 Mio.
realisierter Day-Ahead-Profit gegenüber der deterministischen Baseline auf 4 Monaten real geclearter Preise
+3,2 %
Mehrertrag im 4-Monats-Backtest am realen Nant-de-Drance-Markt
−70 % Tail-Risiko
für −2,5 % erwarteten Profit bei aktiviertem CVaR-Knopf
4 Formulierungen
deterministisch, stochastisch, CVaR, hybrid robust — alle gebaut und gebenchmarkt

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.

AnsatzJanuar 2022April 2022Juni 2022Oktober 2021Total
Deterministisch, perfekte Voraussicht8 974 58810 652 3195 550 4476 098 30131 275 654
Deterministische Baseline8 677 2459 356 7184 952 0895 310 31828 296 370
Stochastisch (real)8 177 8539 646 8495 143 9706 225 01329 193 685
Stochastisch CVaR, λ = 0,5 (real)7 830 6829 526 1045 110 5105 975 41428 442 709
Hybrid robust (real)7 808 7849 577 6254 725 7254 759 01926 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

Abbildung 1 aus dem Bericht: das Verhältnis zwischen Value at Risk (VaR), Conditional Value at Risk (CVaR), Robust Profit (RP) und Conditional Robust Profit (CRP). CVaR ist der erwartete Verlust unter Bedingung, im schlechtesten (1 − α)-Tail zu liegen; die stochastische CVaR-Zielfunktion bestraft diese Grösse direkt.
Abbildung 1 aus dem Bericht: das Verhältnis zwischen Value at Risk (VaR), Conditional Value at Risk (CVaR), Robust Profit (RP) und Conditional Robust Profit (CRP). CVaR ist der erwartete Verlust unter Bedingung, im schlechtesten (1 − α)-Tail zu liegen; die stochastische CVaR-Zielfunktion bestraft diese Grösse direkt.
Tabelle 1 und Abbildung 16 aus dem Bericht: erwarteter Profit versus CVaR über Werte von λ. Die Pareto-Frontier liefert Tradern ein explizites Menü, bei λ = 0,5 sinkt der CVaR um ≈ 70 % gegenüber dem risikoneutralen Fall bei einem ≈ 2,5 % Rückgang im erwarteten Profit.
Tabelle 1 und Abbildung 16 aus dem Bericht: erwarteter Profit versus CVaR über Werte von λ. Die Pareto-Frontier liefert Tradern ein explizites Menü, bei λ = 0,5 sinkt der CVaR um ≈ 70 % gegenüber dem risikoneutralen Fall bei einem ≈ 2,5 % Rückgang im erwarteten Profit.
Tabelle 3 und Abbildung 25 aus dem Bericht: Post-Optimierungs-Ergebnisse über die vier Testmonate sowie Slack-Aktivierungen bis Juni 2022. Slack-Aktivierungen häufen sich im Hybrid-robusten Plan an Tagen mit schlechten Preisen und legen Unzulässigkeiten offen, die der Optimierer ignoriert hat.
Tabelle 3 und Abbildung 25 aus dem Bericht: Post-Optimierungs-Ergebnisse über die vier Testmonate sowie Slack-Aktivierungen bis Juni 2022. Slack-Aktivierungen häufen sich im Hybrid-robusten Plan an Tagen mit schlechten Preisen und legen Unzulässigkeiten offen, die der Optimierer ignoriert hat.

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?

Wir würden gerne davon hören.

contact@optimally.ch