Technologische Neuigkeiten, Bewertungen und Tipps!

Solarstromvorhersage mit SARIMA, XGBoost und CNN-LSTM – Auf dem Weg zur KI

Hinweis: Der folgende Artikel hilft Ihnen dabei: Solarstromvorhersage mit SARIMA, XGBoost und CNN-LSTM – Auf dem Weg zur KI

Ursprünglich veröffentlicht auf Towards AI.

Analyse und Prognose der Solarstromleistung mithilfe statistischer Tests und maschinellem Lernen

Inhaltsverzeichnis

  1. Einführung
  2. Die Daten
  3. Explorative Datenanalyse (EDA)
  4. Modellieren

5. Schlussfolgerung

Der Zweck dieses Beitrags besteht darin, zu zeigen, wie die Anwendung datenwissenschaftlicher Methoden zur Lösung von Problemen im Bereich der erneuerbaren Energien genutzt werden kann. Ich werde Techniken diskutieren, um aus einem Datensatz einen greifbaren Wert zu gewinnen, indem ich Hypothesentests, Feature Engineering, Zeitreihenmodellierungsmethoden und vieles mehr verwende. Ich werde auch auf Themen wie Datenlecks und Datenaufbereitung für verschiedene Zeitreihenmodelle eingehen und wie diese verwaltet werden können.

1. Einleitung

Im Energiesektor wird zunehmend erneuerbare Energie genutzt, um Haushalte mit Strom zu versorgen. Doch ob im großen Maßstab oder für den Hausgebrauch, die Probleme bleiben die gleichen. Kraftwerke, die Strom aus erneuerbaren Quellen liefern, stehen vor dem Problem der Unterbrechung und müssen ständig gewartet werden. Aufgrund von Unterbrechungen kann es für das Stromnetz schwierig werden, die Stabilität aufrechtzuerhalten. Mit Prognosemethoden können Netzbetreiber jedoch Anstiege und Rückgänge der Stromerzeugung vorhersagen, was dazu beitragen kann, die Last entsprechend zu steuern und den Betrieb besser zu planen.

Anhand von Daten zu zwei Solarkraftwerken werde ich diese Probleme lösen, indem ich sie zunächst in zwei Fragen zusammenfasse:

1 . Ist es möglich, Solarmodule mit suboptimaler Leistung zu identifizieren?

2. Ist es möglich, zwei Tage Solarstrom vorherzusagen?

Bevor wir mit der Beantwortung dieser Fragen fortfahren, stellen wir sicher, dass wir verstehen, wie eine Solaranlage Strom erzeugt.

Abbildung 1 zeigt eine allgemeine Ansicht des Prozesses der Stromerzeugung, vom Solarmodul bis zum Stromnetz. Durch den photoelektrischen Effekt wird Sonnenenergie direkt in Strom umgewandelt. Wenn Materialien wie Silizium () Licht ausgesetzt werden, werden Photonen (subatomare Teilchen elektromagnetischer Energie) absorbiert und geben freie Elektronen frei, die einen Gleichstrom (DC) erzeugen. Mithilfe eines Wechselrichters wird Gleichstrom in Wechselstrom (AC) umgewandelt und in das Stromnetz eingespeist, wo er an Haushalte verteilt werden kann.

Es gibt verschiedene Arten von Solarstromsystemen, wie zum Beispiel netzunabhängige Systeme und direkte Photovoltaiksysteme, aber in diesem Fall analysieren wir ein netzgekoppeltes System.

Kommen wir ohne weitere Umschweife zur Analyse.

2. Die Daten

Die Rohdaten bestehen aus zwei durch Kommas getrennten Werten ()-Dateien für jede Solaranlage. Eine Datei zeigt die Stromerzeugung und die andere Datei zeigt die aufgezeichneten Messwerte des in der Solaranlage befindlichen Sensors. Beide Datensätze für jede Solaranlage werden in einem einzigen Datenrahmen zusammengefasst.

Daten für Solaranlage 1 (SP1) Und Solaranlage 2 (SP2) wurden alle 15 Minuten für jedes Modul gesammelt und reichten von . Beide Datensätze, SP1 und SP2, enthalten dieselben Variablen.

  • -15-Minuten-Intervalle
  • Temperatur der die Module umgebenden Luft
  • -Temperatur der Module
  • energiereiche Strahlung auf die Module
  • -Gleichstrom
  • -Wechselstrom
  • -die täglich erzeugte Stromsumme
  • -kumulierter Wechselrichterertrag
  • -Eindeutige Identifizierung der Solaranlage
  • -Eindeutige Identifikation für jedes Modul

Mithilfe eines Wettersensors wurden für jede Solaranlage die Umgebungstemperatur, die Modultemperatur und die Einstrahlung erfasst.

Die Originaldaten sind zu finden Hier.

In diesem Fall, Gleichstrom wird die abhängige () Variable sein. Bevor wir mit der Modellierung fortfahren, ist es immer eine gute Idee, die Daten eingehend zu analysieren und, in unserem Fall, zu versuchen, Solarmodule mit suboptimaler Leistung zu finden.

Für die Analyse und Vorhersagen werden zwei separate Datenrahmen verwendet. Der einzige Unterschied besteht darin, dass der für Vorhersagen verwendete Datenrahmen in stündliche Intervalle neu abgetastet wird und der für die Analyse verwendete Datenrahmen 15-Minuten-Intervalle enthält.

Die Anlagen-ID wird aus beiden Datenrahmen entfernt, da sie keinen Mehrwert für die Beantwortung der oben genannten Fragen darstellt. Die Modul-ID wird ebenfalls aus dem Vorhersagedatensatz entfernt. Tabelle 1 und Tabelle 2 zeigen eine Stichprobe der Daten.

Bevor wir mit der Analyse der Daten fortfahren, werden einige Annahmen über die Solaranlagen getroffen, darunter:

3. Explorative Datenanalyse (EDA)

Für diejenigen unter Ihnen, die neu in der Datenwissenschaft sind, ist EDA ein entscheidender Schritt zum Verständnis Ihrer Daten durch grafische Darstellungen und die Durchführung statistischer Tests. Der Code für diesen Abschnitt ist nicht enthalten. Der Code für alle Visualisierungen ist jedoch auf meiner Github-Seite zu finden, die am Ende des Beitrags verlinkt ist.

Durch die Darstellung von Gleich- und Wechselstrom für SP1 und SP2 kann zunächst die Leistung jeder Solaranlage beobachtet werden.

Anlage 1 zeigt eine um eine Größenordnung höhere Gleichstromleistung als Anlage 2. Basierend auf der Annahme, dass die für SP1 erfassten Daten korrekt sind und die zur Datenaufzeichnung verwendeten Instrumente nicht fehlerhaft sind, führt dies zur Untersuchung der Effizienz des Wechselrichters in SP1.

Abbildung 3 zeigt die Effizienz des Wechselrichters für alle Module in SP1, indem AC- und DC-Leistung nach der Tagesfrequenz für jedes Modul zusammengefasst werden. Laut Energy Saving Trust sollte der Wirkungsgrad eines Solarwechselrichters zwischen 93 und 96 % liegen. .

Da SP1 Probleme mit dem Wechselrichter zeigt, wird eine weitere Analyse nur für SP2 durchgeführt.

Auch wenn diese kurze Analyse zur Untersuchung des Wechselrichters geführt hat, beantwortet sie nicht die Hauptfrage, nämlich die Identifizierung von Solarmodulen mit suboptimaler Leistung.

Da der Wechselrichter für SP2 wie erwartet funktioniert, werden wir durch eine genauere Untersuchung der Daten versuchen, etwaige Anomalien zu identifizieren und zu untersuchen.

Betrachtet man den Zusammenhang zwischen Modultemperatur und Umgebungstemperatur in Abbildung 4, so zeigt sich, dass es Zeiträume gibt, in denen die Modultemperatur extrem hoch ist.

Das mag zwar kontraintuitiv erscheinen, aber hohe Temperaturen wirken sich negativ auf Solarmodule aus. Wie bereits erwähnt, setzen Photonen, wenn sie mit Elektronen in einer Solarzelle in Kontakt kommen, freie Elektronen frei. Bei höheren Temperaturen befindet sich jedoch bereits eine größere Anzahl von Elektronen in einem angeregten Zustand, was die Spannung verringert, die das Panel erzeugen kann, und damit wiederum die Effizienz verringert .

Unter Berücksichtigung dieses Phänomens zeigt Abbildung 5 unten die Modultemperatur und die Gleichstromleistung für SP2 ().

In Abbildung 5 zeigt die rote Linie die mittlere Temperatur. Es gibt einen klaren Wendepunkt und Anzeichen für ein Plateau der Gleichstromversorgung. Die Gleichstromleistung beginnt bei ~52 ein Plateau zu erreichen. Um herauszufinden, dass Solarmodule nicht optimal funktionieren, Alle Zeilen mit Modultemperaturen über 52 °C werden entfernt.

Abbildung 6 unten zeigt die Gleichstromleistung für jedes Modul in SP2 während der Tageszeit. Der Gleichstrom wird wie erwartet verteilt, mit größerer Stromerzeugung zur Mittagszeit. Allerdings gibt es Anzeichen für eine geringe Stromerzeugung zu Spitzenzeiten. Es ist schwierig, die Ursache dafür darzustellen, da die Wetterbedingungen an diesem Tag möglicherweise schlecht waren oder SP2 am Ende seines regulären Reinigungszyklus angelangt sein könnte.

Um festzustellen, welche Module leistungsschwach sind und nicht durch schlechte Wetterbedingungen oder das Ende der Reinigungszyklen beeinträchtigt werden, kann ein statistischer Test, der die Leistung jedes Moduls im Vergleich zu anderen gleichzeitig zeigt, eine suboptimale Leistung identifizieren.

Da die Verteilung der Gleichstromleistung verschiedener Module zur gleichen Zeit pro 15-Minuten-Intervall normalverteilt ist, kann ein Hypothesentest ermitteln, welche Module eine schlechte Leistung erbringen. .

Abbildung 7 zeigt in absteigender Reihenfolge, wie oft jedes Modul im Vergleich zu den anderen Modulen gleichzeitig statistisch signifikant schlechter abgeschnitten hat.

Eine klare Schlussfolgerung kann aus Abbildung 7 gezogen werden, die zeigt. Diese Informationen können an die Betriebsleiter von SP2 weitergegeben werden, um die Ursache zu untersuchen.

4. Modellierung

In diesem Abschnitt betrachten wir drei verschiedene Zeitreihenalgorithmen: SARIMA, XGBoost und CNN-LSTM und ihren Aufbau zur Vorhersage von 2 Tagen Gleichstrom für SP2.

Für alle drei Modelle wird eine Walk-Forward-Validierung verwendet, um den nächsten Datenpunkt vorherzusagen. Die Walk-Forward-Validierung ist eine Technik, die zur Zeitreihenmodellierung verwendet wird, da Vorhersagen mit der Zeit ungenauer werden. Ein pragmatischerer Ansatz besteht daher darin, das Modell mit tatsächlichen Daten neu zu trainieren, sobald diese verfügbar sind.

Weitere Informationen zu dieser Technik und wie sie in einem LSTM-Modell (Long Short Term Memory) verwendet werden kann, finden Sie im folgenden Beitrag.

Verwendung von Deep Learning zur Vorhersage der Leistungsabgabe einer Windkraftanlage

Vor der Modellierung lohnt es sich immer, die Daten genauer zu untersuchen. Abbildung 8 zeigt die Korrelations-Heatmap aller Features im SP2-Datensatz. Die Heatmap zeigt die abhängige Variable Gleichstrom, die eine starke Korrelation mit der Modultemperatur, der Einstrahlung und der Umgebungstemperatur aufweist. Diese Funktionen können wahrscheinlich eine wichtige Rolle bei der Prognose spielen.

Wechselstrom zeigt in der Heatmap unten einen Pearson-Korrelationskoeffizienten von 1. Um Probleme mit Datenlecks zu vermeiden, wird der Wechselstrom aus dem Datenrahmen entfernt, da dem Modell kein Zugriff auf diese Informationen gewährt werden kann, bevor eine der anderen Variablen aufgezeichnet wird.

Für die SARIMA- und XGBoost-Modelle wurde die Python-Bibliothek „Multiprocessing“ verwendet, um den Einsatz mehrerer Prozessoren zu nutzen und durch Rastersuche optimale Hyperparameter zu finden.

SARIMA () ist eine univariate Zeitreihenvorhersagemethode. Da die Zielvariable Anzeichen eines 24-Stunden-Zyklus aufweist, ist SARIMA eine gültige Modellierungsoption, da sie saisonale Effekte berücksichtigt. Dies kann in der saisonalen Zersetzungsgrafik unten beobachtet werden.

Der SARIMA-Algorithmus erfordert, dass die Daten stationär sind. Es gibt mehrere Möglichkeiten, zu testen, ob die Daten stationär sind, z. B. statistische Tests (), zusammenfassende Statistiken () und die visuelle Analyse der Daten.

Der Augmented Dickey-Fuller (ADF) Test ist ein „Unit-Root-Test“ Wird verwendet, um zu bestimmen, ob eine Zeitreihe stationär ist. Es handelt sich im Grunde um einen statistischen Signifikanztest mit einer Null- und Alternativhypothese, bei dem auf der Grundlage des resultierenden p-Werts eine Schlussfolgerung gezogen wird.

Die Zeitreihendaten sind instationär.

Die Zeitreihendaten sind stationär.

Wenn in unserem Fall der p-Wert ≤ 0,05 ist, können wir die Nullhypothese ablehnen und bestätigen, dass die Daten keine Einheitswurzel haben.

Aus dem ADF-Test ergibt sich ein p-Wert von 0,000553, also < 0,05. Aufgrund dieser Statistik können die Daten als stationär betrachtet werden. Ein Blick auf Abbildung 2 zeigt jedoch deutliche Anzeichen einer Saisonalität, die zu instationären Daten führt. Daher ist es wichtig, mehrere Tests durchzuführen.

Um die abhängige Variable mit SARIMA zu modellieren, muss die Zeitreihe stationär sein. Abbildung 9 () zeigt deutliche Anzeichen einer Saisonalität für Gleichstrom. Durch die Berechnung der ersten Differenz wird die Saisonalitätskomponente entfernt, die in Abbildung 10 zu sehen ist, da sie einer Normalverteilung ähnelt. Die Daten sind nun stationär und für den SARIMA-Algorithmus geeignet.

Zu den Hyperparametern für SARIMA gehören: P(), D(), Q(), P(), D(), Q(), M(), Trend(). Weitere Informationen zu SARIMA-Hyperparametern und -Prognosen finden Sie hier.

Abbildung 11 zeigt die Autokorrelation (ACF), Partielle Autokorrelation (PACF) und saisonale ACF/PACF-Diagramme. Das ACF-Diagramm zeigt die Korrelation zwischen einer Zeitreihe und einer verzögerten Version von sich selbst. Der PACF zeigt eine direkte Korrelation zwischen einer Zeitreihe und einer verzögerten Version von sich selbst. Der schattierte blaue Bereich stellt das Konfidenzintervall dar. SACF und SPACF können berechnet werden, indem man die saisonale Differenz nimmt(M) aus den Originaldaten, in diesem Fall 24, da es einen klaren saisonalen Effekt von 24 Stunden gibt, wie im ACF-Diagramm gezeigt.

Mit Intuition kann aus den ACF- und PACF-Diagrammen ein Ausgangspunkt für die Hyperparameter abgeleitet werden. Beispielsweise zeigen sowohl der ACF als auch der PACF einen allmählichen Rückgang, was bedeutet, dass die Reihenfolge der Autoregression() und gleitende Durchschnittsreihenfolge() größer als 0 sind. Und kann bestimmt werden, indem man die PCF- bzw. SPCF-Diagramme beobachtet und die Anzahl der Verzögerungen zählt, die statistisch signifikant sind, bevor ein Verzögerungswert unbedeutend wird. Ähnlich, Und finden Sie in den ACF- und SACF-Diagrammen.

Die Differenzordnung() kann durch die Anzahl der Differenzen bestimmt werden, die erforderlich sind, um die Daten stationär zu machen. Die saisonale Differenzordnung() wird aus der Anzahl der Differenzen geschätzt, die erforderlich sind, um die Saisonalitätskomponente aus der Zeitreihe zu entfernen.

Durch Hyperparameteroptimierung mithilfe eines Rastersuchansatzes werden die optimalen Hyperparameter auf der Grundlage des niedrigsten mittleren quadratischen Fehlers (MSE) ausgewählt, zu dem auch gehören.

Abbildung 12 zeigt die vorhergesagten Werte des SARIMA-Modells im Vergleich zur aufgezeichneten Gleichstromleistung für SP2 über 2 Tage.

Um die Leistung des Modells zu analysieren, zeigt Abbildung 13 die Modelldiagnose. Das Korrelogramm zeigt nach der ersten Verzögerung fast keine Korrelation, und das Histogramm unten zeigt eine Normalverteilung um einen Mittelwert Null. Daraus können wir schließen, dass es keine weiteren Informationen gibt, die das Modell aus den Daten zusammenstellen kann.

XGBoost ist ein Entscheidungsbaumalgorithmus zur Gradientenverstärkung. Es verwendet einen Ensemble-Ansatz, bei dem neue Entscheidungsbaummodelle hinzugefügt werden, um bestehende Entscheidungsbaumbewertungen zu ändern. Im Gegensatz zu SARIMA ist XGBoost ein multivariater Algorithmus für maschinelles Lernen, was bedeutet, dass das Modell mehrere Funktionen nutzen kann, um die Modellleistung zu steigern.

Es wurden Feature-Engineering-Schritte unternommen, um die Modellgenauigkeit zu verbessern. Es wurden 3 zusätzliche Funktionen erstellt, darunter eine verzögerte Version von Wechsel- und Gleichstrom. Und bzw. Gesamteffizienz, durch Division der Wechselstromleistung durch die Gleichstromleistung. Und wurden aus den Daten gelöscht. Abbildung 14 zeigt die Wichtigkeitsstufe nach Gain () und Weight ().

Für die Modellierung verwendete Hyperparameter wurden durch Rastersuche ermittelt und führten zu:

Wie bereits erwähnt, wird ein Walk-Forward-Validierungsansatz verwendet und a . .

Abbildung 15 zeigt die vorhergesagten Werte des XGBoost-Modells im Vergleich zur aufgezeichneten Gleichstromleistung für SP2 über 2 Tage.

CNN-LSTM

CNN-LSTM ist ein Hybridmodell aus zwei neuronalen Netzwerkmodellen. CNN ist ein Feed-Forward-Neuronales Netzwerk, das gute Leistungen bei der Bildverarbeitung und der Verarbeitung natürlicher Sprache gezeigt hat. Es kann auch effektiv zur Vorhersage von Zeitreihendaten eingesetzt werden. LSTM ist ein Sequenz-zu-Sequenz-Modell eines neuronalen Netzwerks, das entwickelt wurde, um das seit langem bestehende Problem der Gradientenexplosion/des Gradientenverschwindens durch die Verwendung eines internen Speichersystems zu lösen, das es ermöglicht, den Zustand über die Eingabesequenz hinweg zu akkumulieren.

In diesem Fall wird CNN-LSTM als Encoder-Decoder-Architektur verwendet. Da CNN die Sequenzeingabe nicht direkt unterstützt, liest ein 1D-CNN die Sequenzeingabe und lernt automatisch die wichtigen Funktionen. Diese können dann von LSTM interpretiert werden. Ähnlich wie beim XGBoost-Modell werden dieselben Daten verwendet und mit dem MinMaxScaler von scikitlearn skaliert, jedoch in einem Bereich von -1 und 1.

Eine Modellzusammenfassung der verschiedenen Schichten, die im endgültigen Modell verwendet wurden, ist in Abbildung 16 unten zu sehen.

Zusätzlich zur Aufteilung der Daten in Trainings- und Testdaten werden die Trainingsdaten in einen Trainings- und Validierungsdatensatz aufgeteilt. Dies kann vom Modell weiterhin genutzt werden, um die Modellleistung nach jeder Iteration aller Trainingsdaten (einschließlich der Validierungsdaten) zu bewerten. Dies wird als Epoche bezeichnet.

Eine Lernkurve ist ein großartiges Diagnosetool für Deep Learning, das die Leistung des Modells nach jeder Epoche zeigt. Abbildung 17 unten zeigt, wie das Modell aus den Daten lernen kann und zeigt die Konvergenz der Validierungsdaten mit den Trainingsdaten. Dies ist ein Zeichen für eine gute Modellausbildung.

Abbildung 18 zeigt die vorhergesagten Werte des CNN-LSTM-Modells im Vergleich zur aufgezeichneten Gleichstromleistung für SP2 über 2 Tage.

Abbildung 19 zeigt die Bandbreite der für alle Modellläufe aufgezeichneten MSEs.

Vor der Modellierung wird ein Persistenzmodell berechnet, um einen maximalen MSE-Wert bereitzustellen und die Leistung anderer Modelle zu bewerten. Tabelle 3 hebt die MSE für jedes Modell (mittlere MSE für CNN-LSTM) und die Laufzeit in Minuten für jedes Modell hervor.

Aus Tabelle 3 geht hervor, dass XGBoost im Vergleich zu allen anderen Modellen die beste Leistung zeigt, mit dem niedrigsten MSE und der zweitschnellsten Laufzeit. Da dieses Modell eine Laufzeit aufweist, die für stündliche Vorhersagen akzeptabel ist, kann es ein leistungsstarkes Werkzeug zur Unterstützung des Entscheidungsprozesses von Betriebsleitern sein.

5. Schlussfolgerung

Zusammenfassend lässt sich sagen, dass SP1 und SP2 analysiert wurden, um Bereiche mit geringer Leistung zu identifizieren. SP1 zeigte aufgrund der geringen Wechselrichtereffizienz eine geringe Leistung. Die weitere Untersuchung von SP2 ergab Anzeichen für nicht optimal funktionierende Solarmodule. Die Verwendung eines Hypothesentests, um zu zählen, wie oft jedes Modul im Vergleich zu anderen Modulen zur gleichen Zeit statistisch signifikant schlechter abgeschnitten hat, gab Anlass zu Bedenken hinsichtlich des Moduls welchezeigte etwa 850 Zählungen mit geringer Leistung.

Die Vorhersage der zukünftigen Solarstromproduktion führte dazu, dass SP2 in stündlichen Intervallen neu abgetastet und die Daten in 48 Zeiträume (2 Tage) aufgeteilt wurden, um Daten zu testen, und die restlichen Zeiträume für das Training der drei Modelle. Zu diesen Modellen gehörten SARIMA, XGBoost und CNN-LSTM. SARIMA zeigte die schlechteste Leistung und XGBOOST zeigte das beste Ergebnis mit einem MSE von 16,9 und einer Laufzeit von 1,43 Minuten. XGBoost wird für alle drei Modelle und für den Einsatz in der Produktion empfohlen.

Vielen Dank fürs Lesen und viel Spaß beim Lernen.

Datenreferenz

. Daten zur Solarstromerzeugung. Lizenz: Datendateien © Originalautoren, abgerufen am 25. September 2020 von

Um auf den in diesem Beitrag verwendeten Code zuzugreifen, besuchen Sie meine GitHub-Seite. Der Link ist zu finden Hier.

Um Kontakt aufzunehmen

Linkedin: https://www.linkedin.com/in/amit-bharadwa123/

Sind Sie daran interessiert, Ihr eigenes Data-Science-Projekt zu starten? Schauen Sie sich den Link unten an, um Sie auf Ihrer Reise zu unterstützen.

7 Schritte zu einem erfolgreichen Data Science-Projekt


„Solar Power Prediction Using SARIMA,

Veröffentlicht über Towards AI