Elektrische Lastvorhersage

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

Load Prediction Chart

branche
divers
Thema
NLP, LLM
Tools
Torch, Transformers, DeepSpeed
Projektdauer
2 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.

Summary of the Working Process

Icons erstellt von Freepik , Smashicons, Eucalyp - Flaticon

Hintergrund

Qnovi Example

Ein wichtiger Baustein der Energiewende ist der Ausbau dezentraler erneuerbarer Energiequellen. Ein großer Anwendungsbereich sind hierbei Anlagen zur Eigenstromerzeugung über Photovoltaikmodule auf Industrie- und Gewerbeobjekten. Der erzeugte Strom wird primär von den Kunden selbst verbraucht. Zusätzliche Kapazitäten werden zugekauft, falls die benötigten Mengen nicht ausreichen. Wird zu viel Strom erzeugt, wird dieser ins Stromnetz eingespeist und verkauft. Die sich ergebende Restlast (Restlast = Energiebedarf - selbst erzeugte Energie) muss vom Energieversorger bereitgestellt werden.

Um eine stabile Energieversorgung zu gewährleisten, sind Energieversorger auf Prognosen der Restlasten angewiesen. In der Vergangenheit konnten diese Restlasten aufgrund langjähriger Erfahrung und Statistik prognostiziert werden. Nun steigt die Anzahl an Solaranlagen und damit die Menge an selbst erzeugtem Strom weiter an. Dies macht die Prognose von Restlasten immer komplexer, da zusätzliche Abhängigkeiten zu externen Faktoren wie dem Wetter entstehen. Die Prognose des Reststrombedarfs ist jedoch notwendig, um einen sicheren und ordnungsgemäßen Stromversorgungsbetrieb aufrechtzuerhalten.

Unsere Herangehensweise

Datenanalyse - Last

Data Outliers

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.

Influence of Weekend and Temperature
Einfluss des Wochenendes und der Temperatur

Sowohl der Wochentag als auch die Umgebungstemperatur besaßen einen starken Einfluss auf die elektrische Last.

Influence of Lockdown
Einfluss des Lockdowns

Da es sich bei dem Gebäude um einen Instandhaltungsbetrieb des ÖPNV handelt, hatte der Lockdown kaum einen Einfluss.

Influence of Holidays

Einfluss der Feiertage

Der Einfluss der Feiertage (1.0) zeigt deutliche Unterschiede zu normalen Arbeitstagen (-1.0) und liegt im Verbrauch auf dem Niveau der Wochenenden (-2.0).

Datenanalyse - Solarleistung

Solar Power Scatter
Streuung der produzierten elektrischen Leistung

Die produzierte elektrische Leistung streute relativ stark über der Einstrahlung, was eine hohe Kompensation erforderte. Außerdem waren vereinzelt Ausreißer vorhanden, die nicht mit der Einstrahlung korrelierten.

Solar Power Problems
Teilweise Einbruch der elektrischen Leistung

Besonders anhand des hinteren Teils des Diagramms wurde deutlich, dass weitere unter Umständen lokale Effekte einen starken Einfluss auf die Photovoltaik-Leistung hatten, die nicht über die Strahlungsmessung erfasst wurden.

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.

import holidays
holidays.Germany(
  years=[2018, 2019, 2020],
  subdiv="HE"
)
Feiertage

Die Feiertage können relativ einfach über die Python-Bibliothek holidays geladen werden. Der Vorteil liegt darin, dass automatisiert Feiertage verschiedener Bundesländer definiert werden können.

Non-official holidays
Weitere nicht offizielle Feiertage

Neben den offiziellen Feiertagen wie dem 1. Weihnachtsfeiertag gibt es noch weitere regionale Feiertage. Diese haben einen vergleichbaren Einfluss wie offizielle Feiertage und wurden deswegen als solche gekennzeichnet.

for day in holidays: 
    if day == "Tuesday") and „day-1 not a holiday":
        return Brueckentag
    if day == "Thursday") and not „day+1 not a holiday": 
        return Brueckentag
Brückentage

Während des Trainigs der Algorithmen zeigte sich, dass weitere Problemstellen besonders um die Feiertage aufgetreten sind. Diese können mit Hilfe von Brückentage definiert werden.

Seasons
Saisonalität

Um die Saisonalität erlernen zu können, wurde aus dem eigentlichen Datum jeweils das Jahr, der Monat, die Woche und weitere Informationen extrahiert. Wurde lediglich das Datum als Eingangsparameter verwendet, erlernt der ML-Algorithmus in der Regel keine Saisonalität und overfittet leichter.

Clouds
Regendaten

Während des Trainings zeigte sich, dass zusätzliche Wetterdaten wie die Regendaten vom DWD zu einer Verbesserung der Vorhersagegenauigkeit führten. Hierzu wurden die Daten vom DWD heruntergeladen und an den Datensatz angepasst. Die Verwendung von Radardaten hat sich aufgrund des unbekannten Gewerbestandorts als nicht zielführend erwiesen.

Rain Radar
Regenradar

Außerdem wurde untersucht, ob weitere Informationen anhand von Wetterradar-Daten verwendet werden konnten. Erste Untersuchungen waren aufgrund des unbekannten Standorts nicht vielversprechend, weshalb dieser Weg nicht weiter verfolgt wurde. Bei bekanntem Standort können aber entweder lokale Wetterphänomene extrahiert oder die Radardaten direkt zum Training verwendet werden.

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.

Load Prediction Network
Lastvorhersage

Für die Vorhersage der Last wurde ein rekurrentes Netz mit LSTM Zellen verwendet. Der Vorteil dieser Zellen ist, dass sie zeitliche Informationen speichern und für die Vorhersage nutzen können.

Photovoltaic Power Network
Vorhersage der Photovoltaikleistung

Für die Vorhersage der von der Photovoltaikanlage erzeugten Leistung wurde ein hybrider Ansatz gewählt.

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.

Entdecken Sie die Möglichkeiten der präzisen Vorhersage mit KI!

Kontakt