Skip to content

Ablauf der Simulation

Validierung

Vor der Simulation kann die Validierung mögliche Fehler im Modell erkennen. Der Simulationsprozess wird mit dem Validieren bereits begonnen und vor dem Beginn der Betriebsoptimierung gestoppt (siehe unten: Simulationsprozess, Punkt 7). Die Eingabedaten werden auf Plausibilität überprüft, indem die Minimal- und Maximalwerte der vorgegebenen Leistungen miteinander abgeglichen werden. Nach erfolgreicher Validierung können Sie mit einem Klick auf den Button die Simulation fortsetzen.

Simulationsprozess

Die Simulation kann auch ohne vorhergehende Validierung gestartet werden.

Nach dem Start durchläuft eine Simulation mehrere unabhängige Schritte, die detailliert in der Logliste des Simulators nachvollzogen werden können (siehe folgende Abbildung).

Die folgenden acht Schritte werden in jeder Simulation in dieser Reihenfolge ausgeführt. Kommt es zu einem Fehler, so kann die Simulation vorzeitig abgebrochen werden.

  • 1. Die Simulation wird gestartet.
  • 2. Die Simulationsdaten werden eingelesen.
    Zuerst werden die Modellbeschreibungen aller verwendeten Komponenten eingelesen.
  • 3. Ermitteln der zu simulierenden Zeitpunkte.
    Einlesen, Überprüfen und Synchronisieren der Zeitreihen.
  • 4. Aufbau der zu lösenden Gleichungssysteme.
    In diesem Schritt findet die Blockzerlegung statt. Gewöhnlich werden in einer Simulation mehrere hundert Variablen (Symbole) berechnet. Diese werden zu mehreren kleinen Gleichungssystemen zusammengefasst, die nacheinander gelöst werden.
  • 5. Die Gleichungssysteme werden vereinfacht.
    Einige dieser Gleichungssysteme können in diesem Schritt explizit durch Umstellen gelöst werden. Andere komplexere Systeme müssen mit einer numerischen Methode gelöst werden.
  • 6. Der Binärcode wird generiert.
    Die erstellten und vereinfachten Gleichungssysteme werden in Binärcode umgewandelt. Dadurch können sie effizient für mehrere tausend Zeitschritte gelöst werden.
  • 7. Die Simulationsergebnisse werden berechnet.
    Alle Blockarten werden ausgewertet und berechnet. Dieser zumeist umfangreichste Schritt beinhaltet

    • optional die Lösung algebraischer Gleichungssysteme mit dem nichtlinearen Newton-Solver (beispielsweise zur Berechnung von Koeffizienten oder Randbedingungen) und vor allem
    • die Optimierung mittels MILP-Solver zur Bestimmung der optimalen Auslegung des Systems und der optimalen Betriebsweise. Die MILP-Optimierung findet in der Hauptstufe und gegebenenfalls in der vereinfachten Vorstufe (bei einer Zeitreihenkompressionsstufe ungleich Keine Kompression/exakt kombiniert mit Strukturoptimierung und/oder Optimierung mit ganzjahresgekoppelter Nebenbedingung) statt.
  • 8. Die Ergebnisse werden anschließend ins Modell zurückgeschrieben.
    Sie erscheinen dann in den Formularen der Komponenten.

Blockzerlegung

Die Blockzerlegung ist ein wichtiger Schritt in der Simulation, da hier bestimmt wird, welche Variablen aus den Eingabedaten berechenbar sind und in welcher Reihenfolge diese bestimmt werden. Sie führt zu einer erheblich größeren Flexibilität in der Modellierung, da nicht genau festgelegt werden muss, welche Größen vom Nutzer eingegeben werden und welche zu berechnen sind.

Idealerweise können am Ende alle Variablen (Symbole) ermittelt werden. Nur dann gilt die Simulation als erfolgreich durchgeführt, und die folgende Meldung erscheint.

Simulation erfolgreich

In der Blockzerlegung wird die Reihenfolge festgelegt, in der die Variablen berechnet werden. Dazu werden die Gleichungen in kleinen Gleichungssystemen (Blöcken) gruppiert. In jedem Gleichungssystem werden Ergebnisvariablen berechnet. Ein Gleichungssystem kann von den Benutzereingaben und den in einem vorherigen Block kalkulierten Variablen abhängen.

Als Beispiel betrachten wir die vom rechtwinkligen Dreieck bekannten Gleichungen:
Gleichungen

Bei Vorgabe der Variablen a und b ergibt sich für die übrigen Variablen die Berechnungsreihenfolge:

Berechnungsreihenfolge

Die Zerlegung muss nicht eindeutig sein. Im obigen Beispiel kann man auch die Blöcke 1 und 2 vertauschen.

Wichtig ist, dass jede unbekannte Variable in genau einem Block berechnet wird und die dazu verwendeten Gleichungen nur Ergebnisse aus vorherigen Blöcken benutzen. Unter diesen Bedingungen werden die Blöcke so klein wie möglich gewählt.

Blockarten

Es gibt sechs verschiedene Blockarten:

  • Zuweisung
    Eine Zuweisung ist eine gerichtete Gleichung, in der immer die Variable auf der linken Seite berechnet wird. Variablen auf der rechten Seite müssen vorher berechnet werden. Auf diese Weise wird die Berechnungsreihenfolge vom Modell vorgegeben.
  • Symbolisch vereinfachte Gleichung
    Hierbei handelt es sich um eine Gleichung, die nach ihrer Ergebnisvariable umgestellt wurde. Beispielsweise kann der Simulator die Modellgleichung 3a+2b+c=0 nach der Variablen b auflösen. Es ergibt sich eine symbolisch vereinfachte Gleichung b=-1/2(3a+c). Die Variablen a und c müssen vorher bekannt sein.
  • Wohlbestimmtes Gleichungssystem
    Ein wohlbestimmtes Gleichungssystem besteht aus einer oder mehreren Gleichungen und ebenso vielen Ergebnisvariablen. Alle weiteren Variablen, die auftreten, müssen vorher berechnet worden sein. Derartige Gleichungssysteme werden mit einer numerischen Methode (Newton-Verfahren) mit dem Newton-Solver gelöst.
  • Unterbestimmtes Gleichungssystem
    Ein unterbestimmtes Gleichungssystem besitzt weniger Gleichungen als Ergebnisvariablen. Derartige Systeme sind nicht lösbar. Ursache können fehlende Eingabedaten oder Fehler im Modell sein.
  • Überbestimmte Gleichungssysteme
    Ein überbestimmtes Gleichungssystem besitzt mehr Gleichungen als Ergebnisvariablen. Handelt es sich um redundante Gleichungen, so kann das Modell gelöst werden. Andernfalls wird eine Lösung gesucht, bei der die Gleichungen bestmöglich erfüllt sind. Auch hier ist zu prüfen, ob eventuell zu viele Eingabedaten hinterlegt wurden.
  • Lineare Optimierung
    Zusätzlich zu gewöhnlichen Gleichungen gibt es ein lineares Modell, welches aus linearen Gleichungen, Ungleichungen und einer Zielfunktion besteht, die minimiert wird. Das lineare Modell wird stets in einem Block pro Zeitschritt (bzw. pro gekoppeltem Zeitschrittblock bei Look-Ahead) zusammengefasst und gelöst. In der Simulation wird dieses Modell zur Betriebs- und Strukturoptimierung und zur ganzjahresgekoppelten Optimierung des Energiesystems verwendet. Insbesondere die optimierte Steuerung und die Einschaltreihenfolge von Komponenten werden damit berechnet. Für die lineare Optimierung stehen verschiedene Löser (Solver) zur Verfügung.

Fehlerhafte und nicht lösbare Blöcke

Fehlerhafte Blöcke werden in Meldungen mit einer blauen verlinkten Blocknummer ausgewiesen. Folgen Sie dem Link, um genauere Informationen zu erhalten. Am Beispiel der Dampfturbine können Sie dieses Vorgehen genauer kennenlernen.

Kann ein Block nicht gelöst werden (z. B. aufgrund eines Fehlers oder wegen Unterbestimmtheit), so trifft dies ebenfalls für alle Blöcke zu, in denen Ergebnisvariablen des Blocks vorkommen. Auf diese Weise kann ein fehlerhafter Block zu einer Vielzahl von nicht gelösten Variablen führen.

Zeitabhängige Simulationen

Die Zeitreihen, die für Simulationen hinterlegt sind, müssen bestimmte Eigenschaften haben. Die Schnittmenge ihrer Zeiträume ergibt den maximalen Simulationszeitraum.

Für alle Variablen, deren Berechnung von zeitabhängigen Daten abhängt, werden ebenfalls Zeitreihen als Ergebnis bestimmt.

In zeitabhängigen Simulationen wird jeder Block für alle Zeitschritte gelöst, bevor der nächste Block berechnet wird.

Die folgende schematische Darstellung der Berechnungsreihenfolge verdeutlicht, dass der Simulator die Blöcke zeilenweise löst. Gelöste Blöcke sind blau (Zuweisung, Gleichungssystem, etc.) oder rot (lineare Optimierung). Der Block, welcher aktuell berechnet wird, ist grün. Blöcke, die noch nicht berechnet wurden, sind weiß.

Berechnungsreihenfolge

Um ganzjahresgekoppelte Nebenbedingungen zu berücksichtigen, wird ein spezieller Algorithmus zur ganzjahresgekoppelten Optimierung ausgeführt. Bei Zeitreihenkompression mit ganzjahresgekoppelter Optimierung oder Strukturoptimerung besteht der Rechenprozess aus einer vereinfachten Vorstufe und der Hauptstufe.

An den Anfang scrollen