Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03430.jsonl.gz/362

Die Verfügbarkeit grosser Datenmengen erlaubt es, sehr genaue Vorhersagemodelle zu entwickeln. Die Herausforderung besteht nunmehr darin, Workflows für die Datenanalyse zu entwickeln, wodurch diese Rohdaten erst in wertvolle Erkenntnisse umgewandelt werden können. Der Artikel beschreibt, wie der gesamte Workflow der Datenanalyse für eine Anwendung zur Vorhersage von Stromlasten mit MATLAB umgesetzt wurde.
Mithilfe dieser Anwendung können sich Analysten von Energieversorgern für jede beliebige Region im US-Bundesstaat New York Diagramme früherer Stromlasten und eine Vorhersage künftiger Lasten anzeigen lassen (Bild 1). Dies ermöglicht die Auswirkung des Wetters auf Stromlasten zu verstehen, und künftige Produktion und den Verbrauch zu bestimmen. Die Bedeutung für Stromerzeuger wird offensichtlich, wenn man bedenkt, dass allein im Bundesstaat New York jährlich mehrere Milliarden Dollar für Strom ausgegeben werden.
In dieser Fallstudie werden zwei Datensätze verwendet: Stromlastdaten von der Website des New York Independent System Operator (NYISO) und Wetterdaten (Temperatur und Taupunkt) vom National Climatic Data Center.
Das NYISO veröffentlicht jeden Monat Energiedaten in Form einer CSV-Datei. Anhand einer Beispieldatei werden diejenigen Datenwerte identifiziert, die genauer analysiert werden sollen. Anschliessend werden diese Werte für den vollständigen Datensatz importiert. Mit dem Import-Tool in MATLAB lassen sich Spalten einer CSV-Datei auswählen und die enthaltenen Daten anschliessend in eine Vielzahl von MATLAB-Datenstrukturen, z. B. Vektoren, Matrizen usw. importieren. Die Stromlasten-CSV-Datei enthält Zeitstempel sowie Namen und Last einer Region.
Die meisten Echtdaten enthalten aber fehlende oder falsche Werte, die vor der eigentlichen Analyse identifiziert und bereinigt werden müssen. Nach der Umformatierung und dem Plotten der NYISO-Daten kann man Spitzen in den Stromlasten feststellen, die ausserhalb des normalen zyklischen Verhaltens der Nachfrage liegen. Es muss nun entschieden werden, ob diese Spitzen irregulär sind, und somit vom Datenmodell ignoriert werden können, oder ob sie auf ein Phänomen hinweisen, welches das Modell berücksichtigen muss. Hier soll nur das normale zyklische Verhalten untersucht werden. Falls das Modell aber auch Ausreisser berücksichtigen soll, müssen die Spitzen später etwas genauer betrachtet werden.
Es gibt mehrere Varianten, die Identifizierung der Spitzen zu automatisieren. Eine davon ist die Anwendung einer Glättungs- kurve (Spline) und die Bestimmung der Spitzen durch Berechnung des Unterschieds zwischen den geglätteten und den ursprünglichen Kurven (Bild 2). Nach Entfernen der Ausreisser aus den Daten muss entschieden werden, wie mit den fehlenden Datenpunkten umgegangen werden soll. Eine Möglichkeit ist, diese einfach zu ignorieren. Alternativ können die fehlenden Werte in MATLAB durch Näherungswerte ersetzt werden, indem vergleichbare Daten aus anderen Beispielen eingefügt werden. Dabei muss man darauf achten, die Daten nicht zusätzlich zu verzerren. Im vorliegenden Fall werden die fehlenden Werte ignoriert, da für genaue Modelle noch immer genügend «gute» Daten vorhanden sind. Analog werden auch die Temperatur- und Taupunktdaten bereinigt, ehe dann eine Aggregierung der beiden Datensätze in MATLAB erfolgt.
MATLAB bietet viele Techniken für die Modellierung von Daten an. Wenn, wie im vorliegenden Fall, viele Variablen vorhanden sind, das System besonders komplex ist oder wenn die zugrundeliegenden Gleichungen unbekannt sind, können Techniken des maschinellen Lernens (Machine Learning) angewendet werden. Zur Vorhersage von Stromlasten fällt die Entscheidung auf überwachtes Lernen (Supervised Learning). Dabei wird ein Modell auf Grundlage historischer Eingangsdaten (Temperatur) und Ausgangdaten (Stromlasten) entwickelt und anschliessend trainiert. Nach Abschluss des Trainings kann es verwendet werden, um zukünftiges Verhalten vorherzusagen. Für die Vorhersage von Stromlasten kann man ein neuronales Netzwerk und die Neural Network Toolbox verwenden. Der Workflow hierfür sieht folgendermassen aus:
Nach Abschluss des Trainings werden Testdaten verwendet, um zu überprüfen, wie gut das Modell mit neuen Daten funktioniert (Bild 3). Die Vorhersage wird nun mit den tatsächlich gemessenen Daten verglichen. Die Ergebnisse zeigen, dass das Modell des neuronalen Netzwerks einen mittleren absoluten Prozentfehler (Mean Absolute Percent Error, MAPE) von weniger als zwei Prozent hinsichtlich der Testdaten aufweist.
Bei der ersten Ausführung des Modells für einen Testdatensatz erkennt man Punkte, beispielsweise um Feiertage herum, in denen die Vorhersage des Modells erheblich von den tatsächlichen Stromlasten abweicht. Weiter wird ersichtlich, dass die Vorhersage des Modells für die Stromlasten vom 29. Oktober 2012 in New York City um Tausende von Megawatt abweicht (Bild 4). An diesem Tag hatte Hurrikan Sandy das Stromnetz in der Region lahmgelegt. Für Feiertage, die vorhersehbare Ereignisse darstellen, ist eine Erweiterung des Modells sinnvoll. Ein Sturm wie Sandy jedoch ist ein ausserordentliches Ereignis und lässt sich daher nur schwer erfassen. Der Prozess des Entwickelns, des Testens und des Weiterentwickelns eines Vorhersagemodells erfordert häufig mehrfache Wiederholungen. Trainings- und Testzeiten können mithilfe der Parallel Computing Toolbox verringert werden, indem verschiedene Schritte auf mehreren Prozessorkernen gleichzeitig ausgeführt werden. Für sehr grosse Datensätze kann das Vorgehen gar auf mehreren Rechnern, unter Einsatz von MATLAB Distributed Computing Server, ausgeführt werden.
Sobald das Modell die Genauigkeitsanforderungen erfüllt, besteht der letzte Schritt darin, die Überführung in das Produktionssystem vorzunehmen. Mit MATLAB Compiler kann man eine eigenständige Anwendung oder ein Excel-Add-In erzeugen. Mit MATLAB Compiler SDK wiederum können .NET- und Java-Komponenten generiert werden. Mit MATLAB Production Server kann die Anwendung direkt in einer Produktionsumgebung bereitgestellt werden und dort eine grosse Anzahl von Benutzern gleichzeitig bedienen.
Sektion 19: Embedded Computing
Sektion 32: Engineering in der Automation
Sektion 42: Robotics & Systeme