Syntax für die Bewirtschaftung von Stromspeichern

Veröffentlicht am 14.06.2010

Für den Betrieb eines Stromspeichers in Abhängigkeit der Preise an der EEX gilt es, jene Stunden als Lade- bzw. Entladezeiten zu identifizieren, in denen unter Berücksichtigung der Speicherverluste ein wirtschaftlicher Fahrplan erstellt werden kann. Es müssen demnach Stunden mit Preisen ermittelt werden, in denen die Erlöse beim Entladen der Speicher die Kosten für das Befüllen der Speicher übersteigen. Um diese Strompreise systematisch zu bestimmen, wurde ein Algorithmus entwickelt.

Die Strompreise werden für einen ausgewählten Zeitbereich (z. B. eine Woche oder drei Tage) absteigend sortiert. Anhand dieses Vektors können für den ausgewählten Zeitbereich die Strompreise für das Laden bzw. Entladen der Pumpspeicherkraftwerke (PSW) ermittelt werden. Dies erfolgt dadurch, dass solange Preispaare aus hohen und niedrigen Preisen gebildet werden, bis der Entladestrompreis (absteigende Preise beginnend mit dem höchsten Preis) kleiner oder gleich dem zum Energieausgleich benötigten Ladestrompreis (aufsteigend beginnend mit dem niedrigsten Preis) ist. Dieses letzte Preispaar definiert die Preisgrenzen für das Laden und Entladen des PSW. Zeiten mit Strompreisen, die zwischen den beiden Grenzwerten liegen, werden als Stillstandzeiten (keine Speicherbewirtschaftung) definiert.

Anhand der ermittelten Grenzwerte wird die Speicherbewirtschaftung gemäß dem Strompreisverlauf simuliert. Aufgrund der begrenzten Kapazität kann es bei dem beschriebenen Algorithmus passieren, dass in Stunden mit hohen Strompreisen nicht entladen werden kann, da der Speicher bereits leer ist. Das Programm wurde daher um eine Optimierungssyntax erweitert (Abbildung 1), welche die Kapazitätsbegrenzung bereits bei der Fahrplanerstellung berücksichtigt.

Bild_Syntax_550

Abbildung 1: Syntax für die Bewirtschaftung von Stromspeichern

Beschreibung der Syntax:

Solange der „Zähler_1“ den Wert 168 (letzter Wert einer Woche) nicht erreicht hat, wird das Programm durchlaufen [Abfrage grünes Feld]. Besitzt der „Zähler_1“ den Wert Null (d. h. das Programm würde nach Initialisierung noch nicht durchlaufen), wird eine Abfrage durchgeführt, ob der teuerste Strompreis der Woche (Pm) größer ist als der billigste Strompreis der Woche (Pn) sowie ein vom Wirkungsgrad des Speichers abhängiger Teil (1/eta-1) des zweitbilligsten Strompreises der Woche (Pn-(j+1)) [Abfrage oranges Feld]. Der Hintergedanke dabei ist die Tatsache, dass aufgrund der Wirkungsgradverluste eines Pumpspeicherkraftwerks für eine Entladestunde mindestens eine Stunde sowie ein Teil einer anderen Stunde geladen werden muss.

Ist die besagte Abfrage positiv, werden verschiedene Variablen (Var_1=a, Var_2=b sowie Var_3=c) mit Werten belegt sowie die beiden Zählvariablen (Zähler_1 und Zähler_2) um einen Wert erhöht.

Der „Zähler_1“ ist nach einem Durchlauf kleiner 168 [grünes Feld], folglich wird das Programm weiter durchlaufen. Da der „Zähler_1“ in dem ersten Durchlauf auf Eins gesetzt wurde, wird [gemäß Abfrage blaues Feld] auf die Abfrage im roten Feld verwiesen. Darin wird festgestellt, ob der zweitteuerste Strompreis der Woche (Pm+i) größer ist als die zur Gewährleistung einer Entladestunde verbleibenden anteiligen Ladezeiten. Die Variablen a, b und c werden je nach verbrauchtem Zeitanteil billiger Ladestunden definiert. Bei bestimmten Konstellationen kann es vorkommen, dass ein geringer Restanteil einer billigen Ladestunde, eine weitere vollständige Ladestunde sowie ein Teil einer dritten Ladestunde benötigt wird, um eine Entladestunde generieren zu können.

Das Programm wird solange durchlaufen, bis der „Zähler_1“ den Wert 168 erreicht hat bzw. bis der jeweilige Entladestrompreis (teure Stunde) nicht mehr größer ist als die für eine Entladestunde benötigten anteiligen Ladestrompreise (billige Stunden). Alle Stunden über dem Preisniveau des zuletzt untersuchten teuren Strompreises werden als Entladestunden, alle Stunden unterhalb des zuletzt angebrochenen billigen Strompreises als Ladestunden definiert.

 

Ansprechpartner: Dipl.-Ing. (FH) Dominik Bernhard