Ein Wettbewerb zur genauen Vorhersage von produzierter elektrischer Leistung und benötigter Last für die Ermittlung des Reststrombedarfs.
Icons erstellt von Freepik , Smashicons, Eucalyp - Flaticon
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.
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.
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.
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.
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.
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.
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.
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.
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.