Zeitreihenkompression
Eine Verringerung der Zeitreihenauflösung – im Folgenden als Kompression bezeichnet – ist nötig, damit das Optimierungsproblem nicht zu groß und die Rechenzeit nicht zu lang wird, zum Beispiel bei der ganzjahresgekoppelten Optimierung und der Strukturoptimierung.
Die Einstellungen zur Zeitreihenkompression sind spezifisch für den gewählten Simulationsknoten, werden mit dem Projekt gespeichert und bleiben auch nach erneutem Öffnen erhalten. Die Kompressionsstufe wählen Sie im Simulationsribbon in der Gruppe Vorstufe aus der Drop-down-Liste aus (siehe folgende Abbildung).
Folgende Kompressionsstufen stehen zur Auswahl.
Die Zeitreihenkompression erfolgt entsprechend dieser gewählten Einstellung automatisch.
CSV-Datei ausgeben
Haben Sie eine Zeitreihenkompression (und nicht Keine Kompression) gewählt, können Sie die komprimierten Zeitreihen als CSV-Dateien ausgeben. Aktivieren Sie dazu die entsprechende Option in den Erweiterten Einstellungen unter Extras → Erweiterte Einstellungen (Optionen) → Simulation → Zeitreihenkompression → Komprimierte Zeitreihen als CSV-Datei ausgeben.
Während der Simulation wird im Simulator-Fenster auf dem Log-Level 3 Details die Meldung 8387 ausgegeben:
Die CSV-Datei mit den komprimierten Zeitreihen wurde gespeichert.
Von dort können Sie die CSV-Datei direkt öffnen, indem Sie auf den Link klicken (siehe folgende Abbildung).
Kompressionsverfahren
In der vereinfachten Vorstufe kommt je nach Anwendungsfall automatisch im Hintergrund ein Verfahren zur Reduktion der Zeitreihen zum Einsatz: Clustering oder Downsampling. Mit diesen Verfahren wird erreicht, dass mit weniger Zeitschritten gerechnet werden kann und trotzdem ein valides Ergebnis erzielt wird. Die Verfahren laufen weitgehend unsichtbar, lediglich einige Meldungen des Simulators im Log-Level 3 Details weisen darauf hin (siehe folgende Abbildung).
Clustering
Ein Clustering-Verfahren kommt bei reiner Strukturoptimierung zum Einsatz. Das Kompressionsverfahren fasst während der Simulation ähnliche Datenwerte zu repräsentativen Gruppen (Clustern) zusammen. Bei der Verdichtung bleibt die wesentliche Information erhalten, und lediglich die Zahl der Zeitschritte wird reduziert.
Als Clusteringverfahren wird der zentroidbasierte Algorithmus k-Means++ verwendet, welcher standardmäßig die Startwerte für die Clusterbildung, die initialen Clusterzentren, zufällig wählt (Random Seed) und anschließend optimiert. Daher unterscheiden sich die komprimierten Zeitreihen zwischen mehreren Simulationsdurchgängen meist geringfügig. Um diese Abweichungen bei Simulationen in TOP-Energy zu vermeiden, können Sie in den Erweiterten Einstellungen (Optionen) unter Simulation → Zeitreihenkompression statt des Random Seed einen Konstanten Seed, z. B. 0, vorgeben.
Die folgende Abbildung zeigt, wie die einzelnen Zeitschritte zu Clustern zusammengefasst werden.
Die Anzahl der Cluster beeinflusst die Rechenzeit, aber auch die Genauigkeit der Ergebnisse. Die exakte Clusteranzahl hängt vom Kompressionslevel, der Anzahl der Zeitreihen und der Größe des Optimierungsproblems ab.
Die Anzahl der Cluster wird im Fenster des Simulators auf Log-Level 3 Details in der Meldung 8385 angezeigt. Je nachdem, ob das Modell Speicherkomponenten enthält, kommen unterschiedliche Clustering-Verfahren zum Einsatz, die sich in der Formulierung der Meldung 8385 widerspiegeln: Clustering nach Häufigkeit der Datenpunkte oder Typtag-Clustering.
Clustering nach Häufigkeit (ohne Speicher)
Enthält das Modell keine Speicherkomponenten, werden die Zeitschritte nach der Ähnlichkeit ihrer Datenwerte zu Clustern zusammengefasst. Häufig auftretende Wertekonstellationen werden dabei stärker gewichtet. Extremwerte (Minima und Maxima) werden vom Algorithmus intern als separate Zeitschritte erhalten, damit Lastspitzen und Einspeisespitzen im Ergebnis nicht verloren gehen. Die Meldung 8385 lautet in diesem Fall:
[Vorstufe] Die Zeitreihen wurden für die Strukturoptimierung auf [Anzahl] Zeitschritte komprimiert.
Beim Clustering nach Häufigkeit ist die Anzahl der Cluster die Zahl der häufigen Datenpunkte.
Die Methode Clustering nach Häufigkeit der Datenpunkte steht auch im ETA, allerdings nur mit zufälligem Seed, zur Verfügung.
Typtag-Clustering (mit nicht saisonalem Speicher)
Enthält das Modell Speicherkomponenten, muss die Tagesstruktur der Zeitreihen erhalten bleiben. Speicher, wie z. B. Batteriespeicher, unterliegen einer Periodizitätsbedingung: der Ladestand am Ende eines Tages muss mit dem Ladestand am Anfang übereinstimmen. Um die Zerstörung dieser Tagesstruktur durch reines Typtag-Clustering zu verhindern, erfolgt zuerst das Day Sampling: Es reduziert die Zeitschritte innerhalb jedes Tages auf eine feste Anzahl repräsentativer Stützstellen. Erst danach wird das Typtag-Clustering durchgeführt: Es gruppiert ähnliche Tage zu Typtagen. Jeder Typtag steht stellvertretend für mehrere ähnliche Tage im Jahr. Zusätzlich werden die globalen Extremwerte (Minimum/Maximum) über alle Zeitreihen nachträglich synchronisiert, um die korrekte Beladung und Entladung der Speicherkomponenten im Optimierungsproblem sicherzustellen. Die Meldung 8385 lautet in diesem Fall:
Die Zeitreihen wurden für die Strukturoptimierung auf [Anzahl] Typtage mit jeweils [Anzahl] Zeitschritten komprimiert.
Beim Typtag-Clustering ist die Anzahl der Cluster das Produkt der Anzahl der Typtage und der Zeitschritte je Typtag.
Die Kompression nach Typtagen steht auch im ETA als Zeitreihenmethode, allerdings nur mit zufälligem Seed, zur Verfügung.
Downsampling
Das Downsamplingverfahren kommt zur Vereinfachung von Zeitreihen zum Einsatz, wenn eine ganzjahresgekoppelte Optimierung (z. B. bei Energiesystemen mit saisonalen Speichern) stattfindet, auch wenn das Energiesystem dabei Struktur-/Designvariablen enthält und gleichzeitig eine Strukturoptimierung ausgeführt wird.
Beim Downsampling wird die Zeitreihe nicht wie beim Clustering in Gruppen ähnlicher Zeitschritte zusammengefasst, sondern gleichmäßig aggregiert: Mehrere aufeinanderfolgende Zeitpunkte werden zu einem einzigen zusammengefasst, indem ihr arithmetisches Mittel gebildet wird. Downsampling ist eine Zeitreihenreduktion durch Aggregation. Zum Beispiel werden bei einer Downsamplingrate von 4 jeweils vier aufeinanderfolgende Zeitschritte durch ihren Durchschnittswert ersetzt. Das Ergebnis ist eine kürzere Zeitreihe, die den mittleren Verlauf des Originals beibehält – kurzfristige Spitzen können dabei verloren gehen.
Das Downsampling wird ausschließlich in der Vorstufe angewendet. Die Vorstufe rechnet die ganzjahresgekoppelte Optimierung mit den vereinfachten Zeitreihen und liefert Ergebnisse, die anschließend als Randbedingungen in die eigentliche Hauptoptimierung einfließen. Die Hauptoptimierung selbst verwendet wieder die originalen, hochaufgelösten Zeitreihen.
Enthält das Modell zusätzlich Strukturvariablen, werden beim Downsampling die globalen Extremwerte (Minima und Maxima) der Zeitreihen erhalten, damit Lastspitzen und Einspeisespitzen in der Vorstufe nicht verloren gehen.
Die konkrete Reduktionsrate, um die die Zeitreihen vereinfacht werden, wird intern heuristisch aus der gewählten Kompressionsstufe abgeleitet und nicht separat ausgewiesen.
Vereinfachte Vorstufe
Wenn einerseits ein anderes Kompressionslevel als Keine Kompression/exakt und andererseits zusätzlich die Optimierung mit ganzjahresgekoppelten Nebenbedingungen, Strukturoptimierung oder die Kombination aus beiden eingestellt wurde, wird eine vereinfachte Vorstufe ausgeführt. In dieser erfolgt die Zeitreihenkompression durch Clustering oder Downsampling und die Rechnung mit den komprimierten Zeitreihen.
Es gibt jedoch die Ausnahme, dass die Kompression bei zu wenigen Zeitschritten im Modell der Vorstufe ausgeschaltet wird und das Kompressionslevel somit intern (softwareseitig ohne aktive Umstellung im Simulationsribbon) auf exakt umgestellt wird. In diesem Fall wird die Warnung 8214 ausgegeben, die darüber informiert, dass keine Kompression durchgeführt wird.
Keine Zeitreihenkompression
Bei der Zeitreihenkompressionsstufe Keine Kompression/exakt findet keine Zeitreihenkompression statt. Das gesamte Optimierungsproblem wird über den vollständigen Simulationszeitraum in einer MILP-Optimierung, in der alle Zeitschritte (meist 8760 Zeitschritte für ein Jahr im Stundenraster) vom ersten bis zum letzten miteinander gekoppelt werden, gelöst.
Da das Optimierungsproblem in diesem Fall immer den gesamten (gefilterten) Zeitraum umfasst, sind die Einstellungen für den Look-Ahead (auch Rolling Horizon genannt, z. B. 24 h) und das Ergebniszeitfenster (z. B. 12 h) nicht anwendbar und werden im Simulationsribbon ausgegraut. Diese Einstellungen sind ohnehin nur für die Betriebsoptimierung relevant.
Ist ein Zeitfilter gesetzt, wird nur der gefilterte Zeitbereich optimiert. So kann zum Beispiel bei Eingangszeitreihen vom 01.01.2028 bis 31.12.2028 auch nur der Zeitraum vom 31.03. 12:00 Uhr bis 30.09. 12:00 Uhr betrachtet werden – das Gesamtsystem wird dann ausschließlich für diesen Zeitabschnitt vollständig gekoppelt.
Ohne Kompression (bei gewählter Stufe Keine Kompression/exakt oder bei weniger als 50 Zeitschritten) wird nur eine Optimierung durchgeführt, die Hauptstufe, in der das Gesamtsystem vollständig gekoppelt wird. Eine Vorstufe ist in diesem Fall nicht nötig. Ein System mit Strukturoptimierung und ohne Zeitreihenkompression wird nach der Zielfunktion der Strukturoptimierung optimiert. Die Zielfunktion der Betriebsoptimierung ist in diesem Fall im Simulationsribbon ausgegraut. Es handelt sich dann effektiv um eine Betriebsoptimierung mit integrierten Strukturvariablen.
Eigene komprimierte Zeitreihen (Strukturoptimierung)
In den Einstellungen der Strukturoptimierung im Simulationsformular gibt es die Option Eigene komprimierte Zeitreihe verwenden. Damit schalten Sie die Kompression der Zeitreihen durch den Simulator aus. Die im Simulationsribbon vorgenommene Einstellung bezüglich der Kompressionsstufe wird dann irrelevant.
Aktivieren Sie die Option Eigene komprimierte Zeitreihen verwenden, wenn Sie selbst komprimierte Zeitreihen hinterlegen möchten. Wenn Sie die Funktion mit einem Häkchen aktiviert haben, erscheinen zwei zusätzliche Eingabefelder für die Länge der Typperiode (Stunden) und die Zeitpunkte pro Typperiode. Die Eingabezeitreihen werden im Simulator als komprimierte Zeitreihen interpretiert. Da komprimierte Zeitreihen eine andere Struktur als unkomprimierte Zeitreihen haben, muss der Nutzer in diesen Menüpunkten explizit angeben, wie diese zu interpretieren sind. Dies ist vor allem relevant, wenn sich Speicherkomponenten, zum Beispiel Stromspeicher, im Modell befinden, da der Simulator die zeitliche Kopplung zwischen den Typperioden anhand dieser Angaben aufbaut.
Zeitpunkte pro Typperiode gibt an, wie viele Zeitschritte eine einzelne Typperiode in der komprimierten Zeitreihe enthält, also die Länge einer Typperiode in Zeitschritten. Zum Beispiel hat ein stündlich aufgelöster Typtag 24 Zeitpunkte pro Typperiode.
Länge der Typperiode (Stunden) gibt an, welche reale Zeitspanne eine Typperiode repräsentiert. Bei Typtagen beträgt dieser Wert 24, bei Typwochen 168.
Aus diesen beiden Angaben berechnet der Simulator die physikalische Zeitschrittlänge (= Schrittweite) eines einzelnen Zeitschritts:
\( \begin{aligned} Schrittweite = \frac{L\ddot{a}nge\ der\ Typperiode}{Zeitpunkte\ pro\ Typperiode} \end{aligned} \)Komprimiert man eine äquidistante Zeitreihe im 2-Stunden-Raster normal (keine Typtage, Typwochen etc.), so sollte für Zeitpunkte pro Typperiode 1 und für die Länge der Typperiode 2 gewählt werden. Komprimiert man dieselbe Zeitreihe aber auf Typtage, so sollte für Zeitpunkte pro Typperiode 12 und für die Länge der Typperiode 24 gewählt werden.
Wenn Sie keine Angaben zur Typperiode machen wollen, lassen Sie die Standardeinstellung für die Länge von 24 h unverändert.
Betriebliche Nebenbedingungen
Beachten Sie die Informationen zu den betrieblichen Nebenbedingungen bei Zeitreihenkompression.
Bedarfe
Die Bedarfe sollten jeweils in einer Komponente zusammengefasst werden und nicht auf mehrere Komponenten verteilt werden. Ansonsten könnte aufgrund der Kompression der Zeitreihen ein Bedarf nicht in der gewünschten Weise summiert werden.




