Elektrische Lastvorhersage

Ein Wettbewerb zur genauen Vorhersage von produzierter elektrischer Leistung und benötigter Last für die Ermittlung des Reststrombedarfs.


Branche
Strom/Energie
Thema
Zeitreihenvorhersage
Tools
Tensorflow
Projektdauer
2-4 Wochen

Auf einen Blick

Im Rahmen eines von der Städtischen Werke AG in Kassel, des House of Energy e.V. und der hessian.ai durchgeführten Wettbewerbs, hat die Qnovi GmbH ein effizientes und präzises System zur Prognose des Reststrombedarfs eines städtischen Instandsetzungsbetriebs für den nächsten Tag entwickelt.

Dies erforderte sowohl ein Modell zur Vorhersage der produzierten elektrischen Leistung der betriebseigenen Solaranlage, als auch für den Verbrauch innerhalb des Betriebs. Während der erzeugte Solarstrom in erster Linie vom Wetter beeinflusst wird, dominieren bei der Verbrauchsvorhersage betriebliche Abläufe und menschliche Einflussfaktoren. Das System ist beispielsweise in der Lage, die Auswirkungen von Brückentagen oder Streikankündigungen auf die im Betrieb erforderliche elektrische Leistung korrekt abzubilden.

Aus den Modellvorhersagen lässt sich ableiten, wieviel Restenergie das Energieversorgungsunternehmen (EVU) dem Kunden in den nächsten 24 Stunden verteilt über 15 Minuten Intervalle liefern muss. Diese Vorhersage kann vom EVU genutzt werden, zielgenauer auf dem Day-Aheadmarkt der EPEX einzukaufen.

Zum 15.12.2022 haben die hessian.AI, Stadwerke Kassel und das House of Energy e.V. einen Wettbewerb auf Kaggle organisiert. Hierbei wurden Daten einer Solaranlage und eines Industriebetriebes zur Verfügung gestellt. Ziel war es, die Restlast vorherzusagen, welche mithilfe der produzierten Photovoltaikleistung und dem elektrischen Verbrauch berechnet werden kann.
Insgesamt haben 22 Teams an diesem Wettbewerb teilgenommen und die Qnovi GmbH hat dabei den 🥉 Platz erreicht.

In einem ersten Schritt untersuchten wir die Daten genauer und beseitigten mögliche Problemstellen. Hierzu zählten unterschiedliche Messfehler, bei denen keine Last gemessen wurde oder doppelte Werte bei der Zeitumstellung. Darüber hinaus erlangten wir ein besseres Verständnis der Daten und analysierten mögliche Einflussgrößen.
Die Last zum Beispiel war stark abhängig vom Wochentag (Werk- oder Wochenendtag), der Saisonalität und der Umgebungstemperatur. Die Daten der Solaranlage streuten zum Teil relativ stark und in manchen Bereichen waren Ausreißer vorhanden, in denen die Einstrahlung nicht mit der produzierten Leistung korrelierten. Dennoch war die produzierte Leistung abhängig von der Einstrahlung, Umgebungstemperatur aber auch von unterschiedlichen Wetterereignissen.

Nachdem wir die verschiedenen Einflussgrößen analysiert hatten, mussten wir diese für den Algorithmus verfügbar machen. Hierzu hatten wir die bereits vorhandenen Daten um weitere Größen erweitert. Für die Lastvorhersage wurden zum Beispiel der Wochentag, der Monat, das Jahr oder auch komplexere Zusammenhänge wie Feiertage oder Streiks verwendet.
Für die Vorhersage der Photovoltaikleistung wurden zusätzliche Wetterdaten des deutschen Wetterdienstes verwendet. Außerdem wurde untersucht, ob weitere Wetterradar-Daten verwendet werden konnten. Aufgrund der unbekannten Position der Anlage, konnte dies jedoch nicht weiter verfolgt werden.

In einem weiteren Schritt mussten die Daten aufbereitet werden, damit diese für das Training verwendet werden konnten. Einerseits mussten die Daten aufgeteilt werden, damit die Vorhersagegenauigkeit mit einem unabhängigen Datensatz verglichen werden konnten.
Außerdem mussten die Daten in tageweise Blöcke aufgeteilt werden. Damit wurde sichergestellt, dass der Algorithmus auch einen zeitlichen Zusammenhang erlernen konnte.

Das Training des KI-Algorithmus erfolgte mit der Bibliothek Tensorflow und dauerte je nach Einstellungen zwischen 8-12 Minuten. Aufgrund der doch relativ geringen Datenmenge waren die Trainingsdauern somit überschaubar. Da bei dem Wettbewerb eine bestmögliche Vorhersagegenauigkeit erzielt werden sollte, wurde außerdem eine automatisierte Optimierung der Einstellungen (engl. Hyperparameter) des Algorithmus mit Ray Tune durchgeführt.
Um den Überblick über die unterschiedlichen Netze zu behalten, wurde die Bibliothek ML-Flow verwendet. Damit konnten unterschiedliche Konfigurationen nachvollzogen werden und die besten Einstellungen ermittelt werden.

Um eine sichere und genaue Vorhersage zu gewährleisten, wurden die Algorithmen genauer untersucht. Hierzu wurde die Genauigkeit anhand eines Validierungsdatensatz berechnet, sowie der Einfluss der unterschiedlichen Eingangsgrößen untersucht. Außerdem wurde unter anderem auch die Vorhersage in den Randbereichen untersucht.

Die Implementierung des Algorithmus war kein Teil der Challenge. Generell lassen sich die Algorithmen über unterschiedlichste Arten mit breits vorhandenen Systemen verbinden. So können diese auf dem Handy (iOS/Android) und einem Mikrocontroller oder auch im Browser sowie auf dem PC ausgeführt werden. Hierzu sind unterschiedlichste Schnittstellen über C, C++, Python, Swift, Java und Javascript verfügbar.
Ergebnisszusammenfassung

Icons erstellt von Freepik , Smashicons, Eucalyp - Flaticon

Hintergrund

Photovoltaikanlage

Ein wichtiger Bestandteil der Energiewende ist der dezentrale Ausbau erneuerbarer Energien. Ein großes Verwendungsgebiet sind dabei Anlagen zur Eigenstromerzeugung über Photovoltaikmodule auf Industrie- und Gewerbeflächen. Der erzeugte Strom wird in erster Linie vom Kunden selbst verbraucht. Reichen die benötigten Mengen nicht aus, werden zusätzliche Kapazitäten gekauft. Bei zuviel erzeugten Strom wiederum, wird dieser in das Stromnetz eingespeist und verkauft. Die entstehende Restlast (Restlast = Energiebedarf - selbst erzeugte Energie) muss vom Energieversorger bereitgestellt werden.
Um eine stabile Energieversorgung zu gewährleisten, sind die Energieversorger auf Prognosen zur Restlast angewiesen. In der Vergangenheit konnten diese Residuallasten aufgrund langjähriger Erfahrungen prognostiziert werden. Nun nimmt der Anteil der Solaranlagen und damit der Anteil der Eigenstromerzeugung immer weiter zu. Dadurch wird die Prognose der Residuallasten immer komplexer, da es zusätzliche Abhängigkeiten von externen Faktoren wie beispielsweise dem Wetter gibt. Die Vorhersage des Restrombedarfs ist jedoch notwendig, um einen sicheren und ordnungsgemäßen Versorgungsbetrieb aufrechtzuerhalten.

Unsere Herangehensweise

Datenanalyse - Last

Datenausreisser

Zuerst wurde eine intensive Datenuntersuchung und -aufbereitung durchgeführt. Hierbei sind bei der Last unter anderem zwei Problemstellen aufgefallen. Während der Zeitumstellung waren doppelte und unstimmige Zeilen vorhanden, gleichzeitig betrug der Lastwert 0. Darüber hinaus scheint es auch einen Einbruch der Last am 09.05.2020 um 19:30 Uhr gegeben zu haben.
Da in der Regel immer eine Grundlast vorlag und Lasten von 0 kW sich deutlich von der gewöhnlichen Last unterscheiden, wurden diese als Ausreißer gekennzeichnet, entfernt und die dortigen Werte interpoliert. Ansonsten hätte es einen starken Einfluss auf die späteren Prognosen geben können.

Um genauer zu untersuchen, welche Eingangsdaten überhaupt für eine spätere Modellierung sinnvoll sind, wurden weitere Analysen durchgeführt. Generell ist die elektrische Last stark abhängig von der Saisonalität. So unterscheidet sich der Stromverbrauch im Winter signifikant von dem im Sommer. Es müssen also die saisonalen Unterschiede des Frühlings, Sommers, Herbst und Winters vom Modell abgebildet werden. Dies erfolgt über eine Kategorisierung des jeweiligen Jahres in verschiedene Bereiche.
Da es sich hierbei jedoch nicht um die allgemeine Last, sondern um die Last eines spezifischen Betriebs handelt, spielen weitere Faktoren eine Rolle. Hierzu zählt zum Beispiel der Arbeitsbeginn, Pausenzeiten, unterschiedliche Ferienzeiten oder die allgemeine Auslastung des Betriebs.
Analog dazu gibt es auch starke Unterschiede zwischen dem Wochenende und der Arbeitswoche. Während der Arbeitswoche ist sowohl die Grund- als auch Spitzenlast des Betriebs deutlich höher. Einen vergleichbaren Einfluss besitzen Feiertage oder Streiks.

Datenanalyse - Solarleistung

Generell zeigte sich, dass die Modellierung der produzierten Leistung mit den gegebenen Daten theoretisch mittels einer einfachen physikalischen Modellierung auf Basis der Strahlungsdaten und der Effizienz erfolgen könnte. Es stellte sich jedoch heraus, dass dabei eine Kompensation des Temperatureinflusses auf den Wirkungsgrad notwendig gewesen wäre. Das lässt sich gut an dem relativ breiten Band der produzierten Leistung erkennen.
Darüber hinaus sind teilweise Bereiche vorhanden, in denen die produzierte Leistung nicht mit der eintreffenden Strahlung korrelierte. Der Einbruch des Strahlungssignals scheint dort vor- bzw. nachzulaufen, aus den Daten lässt sich jedoch kein Grund dafür feststellen. Somit könnten auch lokale Effekte eine Rolle spielen, beispielsweise eine partielle Verdunkelung der Photovoltaikmodule.

Feature Engineering

Um die oben beschriebenen Untersuchungen auch für das spätere Training der neuronalen Netze oder allgemein der maschinellen Lernalgorithmen verwenden zu können, mussten die entsprechenden Features erzeugt werden. Gesetzliche Feiertage sind in der Python-Bibliothek holidays gelistet. Darüber hinaus wurden noch zusätzliche, nicht gesetzliche Feiertage wie Heiligabend oder Silvester eingetragen.

Weitere Untersuchungen zeigten, dass in den Zeiträumen mehrere Streiks stattfanden. Da Streiks - insbesondere im öffentlichen Dienst - meist angekündigt werden lässt sich dieses Feature auch während der späteren Anwendung des Algorithmus verwendet werden.
Darüber hinaus mussten noch Eingangsfeatures erzeugt werden, damit der Algorithmus die Saisonalität erlernt und nicht lediglich auf das Datum overfittet. Hierfür wurden zusätzliche Spalten für die Woche, den Monat und das Jahr erzeugt.

Für die Leistungsvorhersage der Photovoltaikanlage werden grundsätzlich keine weiteren Features benötigt. Sowohl die direkte als auch indirekte Einstrahlung sowie weitere Daten wie die Umgebungstemperatur sollten für die Modellierung ausreichend sein. Es zeigte sich jedoch bei der Datenanalyse, dass die Streueung teilweise relativ hoch war und mehrere Ausreißer vorhanden waren. Dies lässt sich einerseits auf den Einfluss der Temperatur und des Verschmutzungsgrades auf den Wirkungsgrade der Solarzellen zurückführen, aber auch auf lokale Effekte wie die teilweise Bedeckung der Solarzellen durch Wolken oder Schnee.

Datasplitting und Slicing

Die zur Verfügung gestellten Daten bestehen aus zwei csv-Dateien, den Trainings- und Testdaten. Insgesamt umfassen diese einen Zeitraum von ca. 3 Jahren zwischen Januar 2018 und Oktober 2020. In diesen Bereichen sind jeweils zusammenhängende Zeiträume von unterschiedlicher Länge in den Trainingsdaten vorhanden. Anschließend folgte ein Zeitraum von ca. einer Woche mit Testdaten, welche für die Messung der Vorhersagegenauigkeit verwendet wurde. Dazwischen fehlt ein kurzer Zeitraum, um eine einfache Interpolation zu verhindern.
Da für das Training der neuronalen Netze in der Regel ein Validierungsdatensatz verwendet wird, musste dieser erst erzeugt werden. Hierfür wurde jeweils die letzte Woche des Trainigdatensatzes verwendet, da dieser relativ ähnlich zu den darauf folgenden Testdaten ist. Mithilfe des Validierungsdatensatzes kann ein mögliches Overfitting identifiziert werden sowie weitere Funktionen wie das Reduzieren der Lernrate verwendet werden.

Das anschließende Training der neuronalen Netze erfolgte bei der Vorhersage der Last ausschließlich tageweise. Bei der Vorhersage der produzierten elektrischen Leistung wurde sowohl tageweise als auch tabular bzw. direkt anhand der übermittelten Daten trainiert.
Für das Training wurden somit in einem weiteren Preprocessing-Schritt tagesweise Blöcke erzeugt.

Data-Windowing

Netztraining

Wie für andere Kundenprojekte auch nutzten wir für das Netztraining die Python-Bibliothek Tensorflow. Hierfür hatten wir uns aufgrund der starken zeitlichen Abhängigkeit für ein LSTM für die Lastvorhersage entschieden. Bei der Vorhersage der Photovoltaik-Leistung wurde ein hybrider Ansatz gewählt. Aufgrund der physikalischen Zusammenhänge in den Eingangsdaten sollte dort keine zeitliche Abhängigkeit vorhanden sein. Trotzdessen zeigte sich teilweise eine bessere Vorhersagegenauigkeit mit LSTM-Zellen, was auf die oben beschriebenen Probleme zurückzuführen war, in denen die eingehende Strahlung nicht mit der produzierten elektrischen Energie korrelierte. Solche lokalen Effekte können teilweise über LSTM-Zellen abgedeckt werden.

Illustration Ensemble Learning

Um die Vorhersagegenauigkeit noch weiter zu erhöhen, wurde ein sogenanntes Ensemble Learning verwendet. Hierbei werden Vorhersagen unterschiedlicher Modelle miteinander verknüpft und gemittelt. Der Vorteil liegt darin, dass eine bessere Vorhersagegenauigkeit erzielt werden kann.

Validierung

Aufgrund des relativ eingeschränkten Datensatzes erfolgte die interne Bewertung des Algorithmus anhand des Validierungsdatensatzes. Hierzu wurde sowohl der RMSE berechnet, der auch für die abschließende Bewertung verwendet wurde, als auch weitere Bewertungsparameter wie der MSE oder MAE.
Die abschließende Bewertung im Wettbewerb erfolgte über die Kaggle Plattform anhand von Eingangsdaten, deren dazugehörige Last und Leistung den Wettbewerbsteilnehmern und uns nicht bekannt waren.

Implementierung

  • Python
  • C++
  • C
  • Swift
  • Android (Java)
  • Javascript
  • ...

Die Implementierung der neuronalen Netze bzw. Modelle war kein Teil der Challenge, trotz dessen werden nachfolgend einige Möglichkeiten aufgezeigt.
Da für das Training der Netze die Bibliothek Tensorflow verwendet wurde, können generell alle verfügbaren Schnittstellen dieser Plattform genutzt werden.
Somit lässt sich eine direkte Ausführung auf dem Steuergerät, Mikrocontroller oder dem Handy mit iOS oder Android realisieren. Darüber hinaus kann auch eine Verwendung direkt im Browser über Javascript oder alternativ über eine API mit aktiver Internetverbindung erfolgen.