Skip to content

Umgang mit numerischen Fehlern (z. B. negativen Temperaturen)

Navigation:

Numerische Berechnungsfehler

Unter Umständen können numerische Probleme auftreten, für die es spezielle Lösungsmöglichkeiten gibt. Wie Sie nach der Fehlermeldung 8327 mit der Komponente Dampfturbine umgehen können, wird in dem verlinkten Artikel beschrieben. Im Folgenden werden Lösungsmöglichkeiten für Probleme der Temperaturberechnung aufgezeigt.

Bei größeren und komplexeren TOP-Energy-Modellen mit den Stoffmodellen StWärme unter Berücksichtigung der Temperaturen oder StLuft_Abgas(ig) und Brennstoff unter Berücksichtigung der Zusammensetzung können numerische Probleme auftreten. Diese äußern sich darin, dass unrealistisch niedrige Temperaturen (von mehreren hundert Grad unter dem Gefrierpunkt) oder unrealistisch hohe Werte berechnet werden.

Diese Simulationsfehler mit physikalisch unplausiblen, zu hohen oder zu niedrigen Werten signalisiert die Fehlermeldung 8325:

Fehler bei der Berechnung des Blocks …
Aufgetreten zum Simulationszeitpunkt …, Schritt Nr. …
Für eine Variable wurde ein Wert berechnet, der außerhalb des Wertebereichs liegt.

Die falschen (Temperatur-)Werte sind meist Folge einer numerischen Ungenauigkeit und haben keinen Einfluss auf die Optimierung der Energieverteilung im System. In diesen Fällen ist die betroffene Komponente zum Fehlerzeitpunkt abgeschaltet, das heißt, sie entnimmt dem System keine Energie und fügt diesem auch keine Energie hinzu.

Die Fehlermeldung kann auch auftreten, wenn die Anlage in Betrieb ist. Dann liegt kein numerisches, sondern ein modellierungstechnisches Problem vor, das dringend anderweitig behoben werden muss!

Die Fehlermeldung 8325 kann auch in Fällen ohne ein Temperaturproblem vorkommen.

Prüfung auf numerische Fehler

Um zu kontrollieren, ob die negativen Temperaturwerte nur auftreten, wenn die Komponente ausgeschaltet ist, gibt es mehrere Möglichkeiten.

Simulatorfenster

Die schnellste Methode ist das Überprüfen der Werte im Simulatorfenster. Durch einen Klick auf den Zeitschritt zeigt der Simulator das entsprechende Datum an.

Die folgenden Abbildungen wurden mit einer früheren TOP-Energy-Version erzeugt, daher gibt es leichte Abweichungen in der grafischen Programmoberfläche, aber die Funktionsweise ist dieselbe. Die erste Abbildung des folgenden Sliders zeigt die Fehlermeldung 8325 mit dem Link zu dem fehlerhaften Block zum fehlerhaften Zeitpunkt.

Die zweite Abbildung des Sliders enthält die Anzeige des fehlerhaften Zeitpunktes als Aktueller Zeitschritt im Simulatorfenster nach einem Klick auf den blauen Link in der Fehlermeldung.

Die dritte Abbildung verdeutlicht, wie unter dem Reiter Variablen im Simulatorfenster z. B. der Massenstrom überprüft werden kann. Der Massenstrom ist zum Fehlerzeitpunkt des Beispiels gleich 0.

Fehlermeldung 8325

Anzeige des fehlerhaften Zeitpunktes

Variablen

Wechselt man im rechten Bereich des Simulatorfensters zum Reiter Variablen, können dort weitere Variablen eingegeben werden, deren Werte zum gleichen Zeitpunkt angezeigt werden. Es bietet sich an, Massenströme wie \( \dot{m} \) einzutragen. Sieht man, dass der Massenstrom zu dem Zeitpunkt 0 ist, das heißt, dass keine Masse in die Komponente strömt, ist der Wert der Temperatur energetisch gesehen zu diesem Zeitpunkt irrelevant.

Zeitreihen

Die zweite Methode, um festzustellen, ob die negativen Temperaturwerte nur auftreten, wenn die Komponente ausgeschaltet ist, bietet die Zeitreihenvorschau.

Dazu aktiviert man im Startribbon in der Gruppe Formulare die Pinformulare und schaut sich die Ausgabezeitreihen in dem entsprechenden Pinformular der Komponente an (beim Heißwasserkessel z. B. water_out).

Die folgende Abbildung verdeutlicht, dass die numerischen Ausreißer für die negativen Temperaturen nur zu Zeitpunkten stattfinden, an denen die Anlage abgeschaltet ist (der Massenstrom ist 0).

Numerische Ausreißer
Reicht die Plotvorschau nicht für eine Bewertung, können beide Zeitreihen im ETA geöffnet und die Zeitpunkte dort verglichen werden.

Ursächliche Gleichung der Energiebilanz

Wenn eine Komponente nicht in Betrieb ist und keine Energie zu- oder abgeführt wird, werden trotzdem die Energiebilanzen und Zustandsgleichungen gelöst. Die Ursache für den oben beschriebenen Fehler lässt sich durch die folgende Gleichung, die den thermischen Enthalpiestrom beschreibt, finden:

\( \dot{H}_{therm} = \dot{m} \cdot c_p \cdot \Delta T \)     (1)

Bei einer ausgeschalteten Anlage tritt weder ein Enthalpie- noch ein Massenstrom ein oder aus. Daher ergibt sich die Gleichung:

\( 0 [kW]  = 0\, [\frac{kg}{s}] \cdot c_p \cdot \Delta T \)     (2)

Die Temperatur kann praktisch jeden beliebigen Wert annehmen, und die Gleichung bleibt trotzdem erfüllt.

Tatsächlich stellt sich die physikalische Frage, welche Temperatur die „richtige“ ist. Wenn die Anlage ausgeschaltet ist, lässt sich keine Temperatur eindeutig festlegen. Die fehlerhaften Temperaturen stellen energetisch keine Fehler dar, denn die energetische Auswertung und die Betriebsweisenoptimierung werden in keiner Weise beeinflusst.

Bei einer ausgeschalteten Anlage setzt der Solver normalerweise die nicht bestimmbare Temperatur (im abgebildeten Beispiel: die Eintrittstemperatur der KKM-Serverkühlung) gleich der im Flussschema nächsten vorhergehenden Temperatur (hier: die Austrittstemperatur der Rückkühler-Serverkühlung).

Geringe numerische Ungenauigkeiten im Tausendstelbereich können aber andere Ergebnisse verursachen.

Fehlerbehebung

Im vorangegangenen Abschnitt wurde beschrieben, warum dieser „Fehler“ energetisch gesehen keine Rolle spielt und für eine ökonomische Auswertung oder Fahrplanerstellung auch ignoriert werden kann. Trotzdem kann ein korrektes Lösen erforderlich sein, z. B. für eine Auswertung der Temperaturansichten.

Dafür werden nachfolgend vier Möglichkeiten vorgeschlagen, die das Problem beheben können. Leider ist dieses numerische Problem projektspezifisch und maßgeblich von der Komplexität und Größe der Simulation abhängig. Daher bieten diese Ansätze nur Ideen, und es kann keine Gewähr für deren Erfolg übernommen werden.

Fehlermeldung ausblenden

Die einfachste Möglichkeit ist das Ausblenden der störenden Fehlermeldung. Dafür wird die Nummer der Meldung 8325 im Simulatorfenster unter Einstellungen → Meldungen → Folgende ignorieren eingetragen (siehe folgende Abbildung). Bei der nächsten Simulation wird diese Fehlermeldung nicht mehr angezeigt.

Fehlermeldung ignorieren

Simulator/numerische Einstellungen

Unter Umständen können Veränderungen in den Solvereinstellungen zur Lösung des Problems beitragen. Im Simulationsformular kann die Erweiterte Lösungssuche eingeschaltet werden. Im Simulationsribbon können Sie in der Gruppe Optimierung die Gap für den Solverabbruch auf 0 setzen.

Weitere Informationen zum Gap-Wert erhalten Sie unter den jeweils gleichlautenden Erläuterungen zu den Fehlermeldungen 8361, 8366 oder 8371.

Maximale Leistungen (Big-M-Wert) beschränken

In Gleichungssystemen für gemischt-ganzzahlige Optimierungsprobleme werden häufig sogenannte Big-M-Formulierungen verwendet. Vereinfacht betrachtet werden Ungleichungen dabei so formuliert, dass eine Binärvariable mit einem großen Schrankenwert verknüpft wird. Es ist aber ratsam, diese Schranken so niedrig wie möglich zu wählen, da starke Größenunterschiede in den Zielfunktionsbeiträgen der Optimierung immer numerisch ungünstig sind. Die Standardwerte in den Komponentenvorlagen sind sehr groß gewählt, damit eine physikalische Schranke nicht tatsächlich wirksam wird. Praktisch findet man diese Werte als Grenzwerte unter anderem in den folgenden Komponenten:

  • (Strom-)Versorger,
  • sämtliche Wärmeübertrager,
  • Komponenten des Wärme- und Kältenetzes (Wärmeversorgung/_Verteilnetz, Kälteversorgung/_Verteilnetz),
  • Komponenten der Bilanzrelaxierung (Fehleranalyse) und
  • Komponenten der Programmierbaren Steuerung, die ein Big-M enthalten.

Die  Maximalleistungen liegen standardmäßig bei mehreren Megawatt und können in den meisten Anwendungsfällen problemlos herabgesetzt werden.

Die sinnvolle Beschränkung der Big-M-Werte wirkt sich außerdem in vielen Fällen positiv auf die benötigte Rechenzeit aus. Daher sind diese Maßnahmen grundsätzlich zu empfehlen!

Die folgende Abbildung zeigt, wie die Maximale übertragbare Leistung in den Technischen Eingabedaten beschränkt werden kann.

Modelländerungen (für fortgeschrittene Anwender)

Eine erfahrungsgemäß erfolgreiche Problemlösung besteht in dem Eingriff in das Gleichungssystem durch geringfügige Änderungen am Modell. Solche Änderungen sollten jedoch nur vorgenommen werden, wenn ein Ignorieren der Fehlermeldung tatsächlich nicht möglich ist, denn teilweise ist dafür ein tiefgehendes Verständnis der Modellierung notwendig.

Als Ergänzung zu der oben genannten (allgemeinen) Gleichung (1) für die Enthalpieberechnung soll hier kurz genauer auf die MILP-Formulierung eingegangen werden. Die aktuellen Leistungen der energieumwandelnden Komponenten (im aktuellen Beispiel: der Kompressionskältemaschine) befinden sich innerhalb der Schranken von Minimaler und Maximaler Leistung oder nehmen den Wert 0 (entspricht „Anlage ausgeschaltet“) an. Die Binärvariable bIsOn kann den Wert 1 (Anlage ist in Betrieb) oder 0 (Anlage ist ausgeschaltet) annehmen. Die Minimale und die Maximale (Kälte-)Leistung werden aus den Eingabedaten übernommen.

\( l\dot{Q}_{cool} \le bIsOn \cdot \dot{Q}_{cool,min}  \)     (3)

\( l\dot{Q}_{cool} \ge bIsOn \cdot \dot{Q}_{cool,max} \)     (4)

Das negative Vorzeichen der Kälteleistung \( l\dot{Q}_{cool}\) ergibt sich aus der Konvention, Wärme als positive und Kälte als negative Leistung aufzufassen.

Eingabedaten: Minimale Teillasten

Ist in der Komponente keine Minimale Teillast vorgegeben, so ist die Gleichung für die untere Schranke:

\(  l\dot{Q}_{cool} \le bIsOn \cdot 0\, [kW]  \)     (5)

Numerisch ist das ungünstig. Weil hier nur der Fall betrachtet wird, in dem die Anlage keine Leistung erbringt, lautet die Gleichung:

\( 0\, [kW] \le bIsOn \cdot 0\, [kW] \)     (6)

Wenn die Optimierungsvariablen nicht genau gleich 0 berechnet werden, sondern einen sehr kleinen Wert nahe 0 annehmen (siehe die vorangegangene Abbildung), zieht sich der Fehler bis zu den Energiebilanzen hin. Das Problem lässt sich in den meisten Fällen beseitigen, wenn in der Komponente eine Minimale Teillast (z. B. von 1 %) vorgegeben wird.

Vorsicht: Durch die Änderung der (technischen) Komponente lässt sich keine Lösung für das Optimierungsproblem mehr finden, wenn während der Simulation Werte unterhalb der minimalen Teillast gedeckt werden müssen!

Vermeintlichen Betrieb erzwingen (bIsOn == 1 setzen)

Wenn keine minimale Teillast vorgegeben werden kann, lässt sich die Lösung von Gleichung (5) auch auf andere Weise numerisch erleichtern: Mit der Betrieblichen Randbedingung Erzwungener Betrieb lässt sich der Betrieb erzwingen. Im Eingabefeld Betrieb An/Aus tragen Sie eine 1 ein. Damit wird die Binärvariable bIsOn auf 1 gesetzt. Die Gleichung zum Erzwingen des Anlagenbetriebes lautet:

\( bIsOn == 1 \)     (7).

Wenn keine Teillast vorhanden ist, stellt das auch für den Betrieb keine reale Einschränkung dar, denn die Anlage kann theoretisch mit einer beliebig geringen Leistung laufen, also auch einer Leistung mit dem Wert 0. Dann kann die Anlage praktisch keine Leistung erbringen, obwohl die entsprechende Binärvariable „in Betrieb“ (bIsOn = 1) ist.

Nehmen Sie diese Manipulation nicht vor, wenn variable Kosten hinterlegt wurden, die vom Betrieb der Anlage abhängig sind, z. B. Personalkosten. Die Abhängigkeit von der Variablen bIsOn hätte zur Folge, dass die Kosten immer anfallen.
An den Anfang scrollen