Vergleich numerischer Löser zur Simulation steifer und hybrider Systeme A comparison of numerical solvers for stiff and hybrid system simulation Dr.-Ing. F. Felgner, Universität des Saarlandes, Saarbrücken; M. Sc. L. Liu, Universität des Saarlandes, Saarbrücken; Univ.-Prof. Dr.-Ing. G. Frey, Universität des Saarlandes, Saarbrücken. Kurzfassung Dieser Beitrag vergleicht etablierte numerische Lösungsverfahren, die ein weites Spektrum der wesentlichen Löser-Charakteristika abdecken: vier Löser, die im Softwarewerkzeug Dymola® integriert sind, sowie die sieben ODE-Löser von Matlab®/Simulink®. Die Bewertung erfolgt anhand dreier Benchmark-Tests. Hierfür werden die Löser an drei Modelltypen getestet: einem kontinuierlichen, einem steifen kontinuierlichen und einem steif-hybriden Modell. Dabei werden jeweils systematisch unterschiedliche Einstellungen der Toleranzparameter (von sehr niedrig bis sehr hoch) durchlaufen. Als Ergebnis folgt eine Übersicht, die die unterschiedlich gelagerten Stärken und Schwächen der Löser anhand von vier geeignet definierten Leistungsmaßen bewertet. Abstract This paper presents a comparison of well-established numerical solvers in the context of numerical simulation, covering a broad variety of typical solver characteristics: four solvers integrated in the software tool Dymola® as well as the seven ODE solvers of Matlab®/Simulink®. An evaluation is made by means of three benchmark tests. Therefore, the solvers are tested on three model types: a continuous, a stiff, and a stiff-hybrid model. Hereby, a wide range of tolerance settings (from low to very high) is systematically covered. As a result, we give a survey of differing strengths and weaknesses of the tested solvers on the basis of four appropriate key traits: accuracy, velocity, compactness of results, and numerical efficiency. 1. Einleitung und Motivation Modellierungs- und Simulationswerkzeuge sind in der Automatisierungstechnik ein verbreitetes Mittel zur Systemanalyse, zum Test und zur Validierung ® Automatisierungsstrategien. Moderne Softwarepakete, wie z.B. Matlab /Simulink ® von und Dymola®, bieten hierfür eine flexible grafische Oberfläche, die eine benutzerfreundliche Modellkomposition erlaubt. Abhängig von Problemstellung und Modellierungsweise kann das zu simulierende kontinuierlichen Modell unterschiedliche Regelungssystemen mathematische die Formen Form eines haben: bei rein gewöhnlichen Differentialgleichungssystems (ODE) bzw. differential-algebraischen Gleichungssystems, bei Steuerungssystemen (aus kontinuierlichem Prozess und ereignisdiskreter Steuerung) die Form eines hybriden differential-algebraischen Gleichungssystems. Für die Durchführung von Simulationen steht i.d.R. eine Auswahl integrierter Löser zur Verfügung. Doch trotz der Unterstützung durch relativ reife Simulationswerkzeuge stellt sich dem Anwender oft die Frage, welchen der angebotenen Löser er für ein konkretes Modell auswählen soll. Konkret geht es ihm dabei um die Genauigkeit, Korrektheit und mit zunehmender Modellgröße auch um die Effizienz des numerischen Lösungsvorgangs. Dieser Beitrag vergleicht etablierte numerische Lösungsverfahren, die ein weites Spektrum der wesentlichen Löser-Charakteristika abdecken. Vier der getesteten Löser sind in Dymola® [1] integriert sind; außerdem wurden die sieben ODE-Löser von Matlab®/Simulink® [2] getestet. Die Bewertung erfolgt anhand dreier Benchmark-Tests. Hierfür werden die Löser an drei Modelltypen getestet: einem kontinuierlichen, einem steifen kontinuierlichen und einem steifen hybriden Modell. Dabei werden jeweils systematisch unterschiedliche Einstellungen der Toleranzparameter (von sehr niedrig bis sehr hoch) durchlaufen. Als Ergebnis folgt eine Übersicht, die die unterschiedlich gelagerten Stärken und Schwächen der Löser anhand von vier normierten Leistungsmaßen – Genauigkeit, Simulationsgeschwindigkeit, Kompaktheit der Ergebnisdaten und numerische Effizienz – bewertet. Als wesentliche Grundlagen für die Simulation sog. steifer und hybrider Systeme werden im folgenden Abschnitt 2 die Begriffe Event-Handling und Steifheit besprochen. Die Basisdaten der untersuchten Löser sind in Abschnitt 3 zusammengefasst. Abschnitt 4 erläutert die Durchführung der Benchmark-Tests. Deren Ergebnisse und Schlussfolgerungen sind im Abschnitt 6 zusammengestellt. Dieser Beitrag fasst die englischsprachige Publikation [3] derselben Autoren zusammen und fügt als wesentliche Erweiterung die sieben Matlab®/Simulink®-ODE-Löser und deren Benchmark-Test-Ergebnisse hinzu. 2. Grundbegriffe Bei der numerischen Simulation gilt es, einen geeigneten Kompromiss zwischen der Genauigkeit der Ergebnisse und der Effizienz der Lösungsfindung zu erreichen. Aus Nutzersicht verschärft sich dieser Zielkonflikt mit steigender Komplexität des betrachteten Systems. Selbst bei gewöhnlichen, rein kontinuierlichen Systemen zeigen verschiedene Löser deutliche Unterschiede in der Leistung. Im Zusammenhang mit den anspruchsvolleren sog. steifen und/oder hybriden Systemen treten insbesondere zwei Grundbegriffe auf: das EventHandling und die Bedeutung der Begriff der Steifheit. Weiterführende Phänomene (z.B. Event-Iterationen, Dirac-Impulse, Chattering) werden im Folgenden nicht betrachtet; [4] gibt einen Überblick über derartige Phänomene. Zunächst zum Event-Handling: Das Event-Handling ist ein Schlüsselbegriff in der Simulation hybrider Systeme. Die folgende Vorgehensweise wurde bereits 1979 in [5] beschrieben und entspricht grundsätzlich auch noch der Funktionsweise heutiger Simulationswerkzeuge: Während des numerischen Lösungsvorgangs überwacht der Simulator zu jedem Zeitschritt alle im Modell formulierten logischen Bedingungen (die Bedingungsargumente von „if“- oder „when“-Konstruktionen). Ändert eine solche Bedingung C von einem Zeitschritt tn zum Zeitschritt tn+1 ihren Wert von FALSE auf TRUE, so erkennt der Simulator, dass ein Event vorliegt, und hält den numerischen Löser beim Zeitschritt tn an. Jetzt muss ein sog. RootFinder den genauen Event-Zeitpunkt tE ∈ [tn, tn+1] lokalisieren. Unter der Annahme C = FALSE ist nun für den Event-Zeitpunkt tE die Lösung zu finden. Anschließend wird C = TRUE gesetzt und zum Zeitpunkt tE abermals die Lösung ermittelt. Letztere Lösung ist die Anfangsbedingung, von der aus der Löser schließlich bei tE den Lösungsvorgang neu startet. Das Event-Handling bremst die Simulationsgeschwindigkeit. Falls sich die logische Bedingung C auf abhängige Variablen bezieht (d.h. nicht bzw. nicht nur auf die Zeit), muss der numerische Lösungsalgorithmus beim Root-Finding mehrmals ausgeführt werden. Die sichere Event-Erkennung kann zudem eine besonders hohe Genauigkeit der Lösung erfordern. Insbesondere bremst die i.d.R. sehr kleine Zeit-Schrittweite unmittelbar nach dem Löser-Neustart bei tE die Simulation ab. Demzufolge hängt die Simulationsgeschwindigkeit für hybride Systeme stark von der Regelung der Zeit-Schrittweite des Lösers ab. Zum Begriff der Steifheit: Obwohl der Begriff „steifes System“ häufig gebraucht wird, gibt es keine einheitliche Definition hierfür. Abhängig vom jeweiligen Blickwinkel sind die Definitionen quantitativ, qualitativ oder eher pragmatisch formuliert, z.B.: Definition 1: “An ODE system is called stiff if, when solved with any n-th order accurate integration algorithm and a local error tolerance of 10–n, the step size of the algorithm is forced down to below a value indicated by the local error estimate due to constraints imposed on it by the limited size of the numerically stable region.” [6] Definition 2: “An IVP (Initial Value Problem) is stiff in some interval [0, b] if the step size needed to maintain stability of forward Euler method is much smaller than the step size required to represent the solution accuracy.” [7] Definition 3: “Stiff equations are equations where certain implicit methods, in particular BDF, perform better, usually tremendously better, than explicit ones.” [8, 9] Die Definitionen 1 und 2 reflektieren, dass die Steifheit nicht allein durch die Systemgleichungen selbst bedingt sein kann, sondern sich erst in Verbindung mit der Genauigkeitsanforderung und dem interessieren Zeitintervall ergibt. D.h., ein System kann in Verbindung mit niedriger Genauigkeitsanforderung steif sein, wohingegen es bei hoher Genauigkeitsanforderung nicht mehr steif ist. Die pragmatische Definition 3, offensichtlich die älteste, gibt dagegen implizit einen allgemeinen Ratschlag zur Wahl der Lösungsmethode. Eine Erweiterung des Steifheitsbegriffs auf hybride Systeme must das Phänomen der Events berücksichtigen. In Anlehnung an Definition 2 definieren wir ein steif-hybrides System folgendermaßen: Definition 4: Ein hybrides System ist steif-hybrid in einem Intervall [0, b], wenn zur korrekten Erkennung aller Events eine wesentlich kleinere Schrittweite erforderlich ist als zur Einhaltung der geforderten Genauigkeit. Aus Definition 4 folgt, dass ein System steif-hybrid ist, wenn im Lösungsintervall hochfrequente Events auftreten. Gegenwärtig ist zur Lösung dieses Problems keine Methode verfügbar, die sowohl effektiv ist (d.h. zuverlässig bei der Event-Erkennung) als auch eine effiziente Regelung der Schrittweite besitzt. Wie bei hybriden Systemen im Allgemeinen ist somit umso mehr bei steif-hybriden Systemen die Schrittweiten-Regelung entscheidend für die Leistungsfähigkeit eines numerischen Lösers. 3. Die getesteten numerischen Löser Ausschlaggebend für die Wahl der getesteten Löser war zum einen, dass sie ein breites Spektrum typischer Charakteristika abdecken. Zum anderen sind diese Löser in zwei der bekanntesten universellen Simulationswerkzeugen integriert. Ganz besonders gut etabliert ist Matlab®/Simulink® [2] dessen sieben ODE-Löser aus dem Release 2009b hier alle untersucht wurden. Seit gut zehn Jahren findet auch die Software Dymola® [1] immer weitere Verbreitung, weil sie einen leistungsfähigen Übersetzer für den Sprachstandard Modelica besitzt. Modelica erlaubt eine objektorientierte, gleichungsbasierte Systembeschreibung und eignet sich daher besonders gut für die Modellierung großer Systeme, die aus interagierenden physikalischen Komponenten aufgebaut sind. Aus diesem Grund wurden hier auch vier der in Dymola®, Version 7.3, integrierten Löser geprüft. Die Matlab®/Simulink®-Löser (detaillierte Quellenangaben zu den Lösern: s. [2]): (1) ode45 ist ein Dormand-Prince-Algorithmus und basiert auf einer Runge-Kutta-Methode 4./5. Ordnung. (2) ode23 verwendet eine Runge-Kutta-Methode 2./3. Ordnung. (3) ode113 arbeitet mit variabler Ordnung und kombiniert den expliziten Adam-BashforthAlgorithmus mit dem impliziten Adams-Moulton-Algorithmus. (4) ode15s arbeitet mit variabler Ordnung und operiert mit numerischen Differentiationsformeln. (5) ode23s basiert auf einer modifizierten Rosenbrock-Formel 2. Ordnung. (6) ode23t operiert mit der Trapezregel. (7) ode23tb ist ein 2-stufiger Runge-Kutta-Algorithmus; die erste Stufe benutzt die Trapezregel, die zweite eine Rückwärtsdifferentiationsformel (BDF) 2. Ordnung. Die Löser (4) bis (7) empfiehlt die Matlab®-Produktdokumentation [2] für steife Systeme. Weiter charakteristische Eigenschaften der Löser sind in Tabelle 1 gegenübergestellt. Tabelle 1: Charakteristika der Matlab®/Simulink®-Löser Einschritt-Methode ode45 ode23 ● ● Mehrschritt-Methode Explizit ● ● ● ● Implizit Konservativität der Schrittweiten-Regelung ode113 ode15s ode23s niedrig mittel ode23t ode23tb ● ● ● (●) (●) ● ● mittel mittel hoch ● hoch hoch Die getesteten Dymola®-Löser (zu detaillierten Quellenangaben: s. [3]): (1) DASSL (Differential-Algebraic System Solver) ist der Standard-Löser von Dymola®. Er verwendet Rückwärtsdifferentiation (BDF) mit variabler, maximal 5. Ordnung. (2) LSODAR (Livermore Solver for Ordinary Differential Equations with Automatic Method Switching and Root Finder) wechselt automatisch zwischen verschiedenen Lösungsalgorithmen, um sowohl nicht-steife als auch steife System effizient zu berechnen. Für nicht-steife Probleme verwendet er eine Adams-Moulton-Methode mit variabler, maximal 12. Ordnung, für steife Probleme eine Mehrschritt-BDF 1. bis 5. Ordnung. (3) Radau IIA (Radau-Lobatto Formula Type-II A-stable Solver) ist ein 3-stufiger RungeKutta-Algorithmus. (4) DOPRI5 5th-Order (Dormand-Prince Runge-Kutta Solver) entspricht dem Grundalgorithmus nach dem ersten der o.g. Matlab®/Simulink®-Löser (ode45). Tabelle 2: Charakteristika der getesteten Dymola®-Löser DASSL LSODAR Radau IIA DOPRI5 ● ● Einschritt-Methode Mehrschritt-Methode ● ● Explizit ● Implizit Konservativität der Schrittweiten-Regelung ● ● ● sehr hoch hoch mittel mittel 4. Benchmark-Tests und Testkriterien Jeder der Löser wurde mit jedem der folgenden drei Testmodelle geprüft. Dabei handelt es sich um ein nicht-steifes kontinuierliches Modell (als Referenzmodell mit den geringsten Anforderungen), ein steifes kontinuierliches Modell und ein steif-hybrides Modell. Das nicht-steife kontinuierliche Modell: Das steife kontinuierliche Modell: Das steif-hybride Modell: x& 1 = sin(10 ⋅ t ), x& 2 = x1 x1(0) = 1, x 2 (0 ) = 0 x& 1 = sin(10 ⋅ t ), x& 2 = x1, x& 3 = 1000 ⋅ x 3 x1(0) = 1, x 2 (0 ) = 0 , x 3 (0 ) = 2 x&1 = sin(10 ⋅ t ), x1(0) = 1, (1) ⎧⎪ x1 , wenn x1 > 1,1 x& 2 = ⎨ ⎪⎩ x1 + 1, wenn x1 ≤ 1,1 x 2 (0 ) = 0 (2) (3) Im System nach Gleichung (3) erreicht x1, exakt gerechnet, maximal den Wert 1,2. Durch die relativ knapp unter diesem Wert angesetzte Umschaltbedingung für x& 2 wird das System steif- hybrid i. S. v. Definition 4 aus Abschnitt 2. Die Implementierung der Systemmodelle (1), (2), (3) erfolgte sowohl als Simulink®-Blockschaltbild (simuliert in Matlab®, Release 2009b mit MEX-Compiler) als auch in Modelica® (simuliert mit Dymola®, Version 7.3 mit Microsoft-CCompiler). Die Berechnung erfolgte mit einer Intel-CPU E8500 (3,16 GHz) und dem Betriebssystem Windows 7. In Simulationen mit allen Modellen und Lösern wurden für verschiedene Genauigkeits-Toleranzen tol folgende Testkriterien ermittelt: • CPU-Zeit (ohne Abspeichern einer Ergebnisdatei): ttoltal • Anzahl der Ergebniszeitschritte: Nresult • Mittlerer Fehler: Erravg := 1 Nresult x exact,i − x solver,i N result i =0 x exact,i ∑ xexact,i: Vektor der exakten Zustandsvariablen zum Ergebniszeitschritt i xsolver,i: Vektor der vom jeweiligen Löser gefundenen Zustandsvariablen z. Erg.zeitschr. i • Numerische Effizienz des Lösers: ηsolver := N result N i.steps Ni.steps: Gesamtzahl der Interationsschritte über alle Zeitschritte einer Simulation (schließt bei hybridem Modell auch die zur Lokalisierung der Events nötigen Iterationen ein) Um den Einfluss von Speicherallokationszeiten zu minimieren, wurde ttotal jeweils für Simulationen über 10000 s ermittelt, ebenso die Größen Nresult und ηsolver . Für Erravg und die nachfolgenden Histogramme wurden 10 s Modellzeit simuliert. Die detaillierten Testergebnisse sind in den Bildern 1, 2 und 3 zu sehen. Die in der Matlab®-Produktinformation [2] gegebenen Empfehlung zur Löser-Wahl bei steifen Systemen bestätigen sich im Großen und Ganzen, jedoch nicht immer: So zeigt etwa der Löser ode23s für das steife System mit geringer Genauigkeitsanforderung Vorteile in der CPU-Zeit, jedoch nicht (wie in der Empfehlung angedeutet) gegenüber ode115; beim steifhybriden System fällt ode23s mit seinen langen CPU-Zeiten vollkommen aus dem Rahmen. 5. Zusammenfassende Bewertung der Löser Um die zahlreichen Einzelergebnisse zusammenfassend gegenüberzustellen, definieren wir aus den obigen Testkriterien vier auf den Bereich [0; 1] normierte Leistungsmaße: • Numerische Genauigkeit: C1 := tol Err avg (4) • Geschwindigkeit der Simulation: C 2 := 1 t total (5) • Kompaktheit der Ergebnisse: C3 := 1 Nresult (6) • Numerische Effizienz: C4 := ηsolver (bereits normiert) (7) Die Normierung setzt C1 auf den Wert 1, wenn Erravg ≤ tol gilt; C2 und C3 werden bezogen auf den jeweils kleinsten Wert von ttotal bzw. von Nresult (unter allen Testergebnissen) normiert. Die Kiviat-Diagramme in Tabelle 3 berücksichtigen die Toleranzeinstellungen tol := 10−4 und tol := 10−6 (die in Matlab®/Simulink® implementierten zeigen Löser für Toleranzen unter 10−6 praktisch keine Änderungen mehr). Die Übersicht macht deutlich, dass es unter den vielen getesteten Lösern keinen generell überlegenen gibt. In der Tat sinkt die Leistungsfähigkeit mit steigender Modellkomplexität i. S. v. Steifheit und Hybridität. Noch relativ gering sind Leistungsschwankungen bei DASSL, dem voreingestellten Standard-Löser von Dymola®. Bei Matlab®/Simulink® hingegen wurde mit ode45 ein Standardlöser gewählt, der zwar deutlicher ausgeprägte Stärken und Schwächen, dafür insgesamt die höchste Leistung (d.h. die größte Gesamtfläche über alle Kiviat-Diagramme) zeigt. 6. Literaturhinweise [1] Webseite von Dassault Systèmes zur Software Dymola®: http://www.3ds.com/products/catia/portfolio/dymola [2] Webseite von MathWorks Deutschland zu Software-Paket Simulink®: http://www.mathworks.de/products/simulink/ sowie Online-Produktdokumentation zu den implementierten Lösern: http://www.mathworks.com/help/techdoc/ref/ode23.html [3] Liu, L.; Felgner, F.; Frey, G.: Comparison of 4 Numerical Solvers for Stiff and Hybrid Systems Simulation. IEEE International Conference on Emerging Technologies and Factory Automation, Bilbao (Spanien), 2010. [4] Mosterman, P. J.: An Overview of Hybrid Simulation Phenomena and Their Support by Simulation Packages. Hybrid Systems: Computation and Control 1999, S. 165-177. [5] Cellier, F. E., Kofman, E.: Continuous System Simulation, Springer, 2006. [6] Cellier, F.E., Combined Continuous/Discrete System Simulation by Use of Digital Computers: Techniques and Tools, Dissertation ETH Zürich (Schweiz), 1979. [7] Ascher, U. M., Petzold, L. R.: Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. SIAM, 1998. [8] Hairer, E., Wanner, G.: Solving Ordinary Differential Equations II-Stiff and DifferentialAlgebraic Problems, Springer, 1991. [9] Curtiss, C. F., Hirschfelder, J. O.: Integration of Stiff Equations. Proc. of the National Academy of Sciences of the United States of America, Vol. 38 (1952), S. 235-243. 1,0E+01 Mittlerer Fehler Erravg 1,0E+01 1,0E-01 1,0E-01 1,0E-03 1,0E-03 1,0E-05 1,0E-05 1,0E-07 ode45 ode113 ode23s ode23tb 1,0E-09 1,0E-11 1,0E-10 2,5E+06 1,0E-08 1,0E-06 1,0E-04 ode23 ode15s ode23t Mittlerer Fehler Err avg DASSL LSODAR RADAU IIA DOPRI5 1,0E-07 1,0E-09 1,0E-11 1,0E-02 tol Anzahl der Ergebniszeitpunkte Nresult 1,0E-10 2,5E+06 2,0E+06 2,0E+06 1,5E+06 1,5E+06 1,0E+06 1,0E+06 5,0E+05 5,0E+05 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Anzahl der Ergebniszeitpunkte N result DASSL LSODAR RADAU IIA DOPRI5 0,0E+00 0,0E+00 1,0E-10 60 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Histogramm zu Nresult für tol = 1E-10 50 1,0E-10 60 40 30 30 20 20 10 10 1,0E-06 1,0E-04 1,0E-02 tol Histogramm zu N result für tol = 1E-10 50 40 1,0E-08 DASSL LSODAR RADAU IIA DOPRI5 Nresult = 2456 Nresult = 487 Nresult = 694 Nresult = 541 0 0 0 2 4 60% Effizient ηsolver 50% 0 6 Modellzeit 8 / s 10 4 60% 40% 30% 30% 20% 20% 10% 10% 6 8 Modellzeit / s 10 Effizienz ηsolver 50% 40% 0% 2 DASSL LSODAR RADAU IIA DOPRI5 0% 1,0E-10 25 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 1,0E-08 1,0E-06 25 CPU-Zeit ttotal / s 20 1,0E-10 15 10 10 5 5 0 1,0E-02 tol CPU-Zeit ttotal / s 20 15 1,0E-04 DASSL LSODAR RADAU IIA DOPRI5 0 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Bild 1: Benchmark-Test-Ergebnisse für das nicht-steife kontinuierliche Modell nach Gl. (1) (links: Matlab®/Simulink®-Löser; rechts: Dymola®-Löser). Mittlerer Fehler Erravg 1,0E-01 1,0E-03 1,0E-05 1,0E-05 1,0E-07 1,0E-07 1,0E-09 1,0E-09 ode45 ode113 ode23s ode23tb 1,0E-11 1,0E-13 1,0E-15 1,0E-10 1,5E+07 1,0E-08 Mittlerer Fehler Erravg 1,0E-01 1,0E-03 ode23 ode15s ode23t DASSL LSODAR RADAU IIA DOPRI5 1,0E-11 1,0E-13 1,0E-15 1,0E-06 1,0E-04 1,0E-02 tol Anzahl der Ergebniszeitpunkte Nresult 1,0E-10 1,5E+07 1,0E+07 1,0E+07 5,0E+06 5,0E+06 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Anzahl der Ergebniszeitpunkte N result DASSL LSODAR RADAU IIA DOPRI5 0,0E+00 0,0E+00 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Histogramm zu Nresult für tol = 1E-10 400 1,0E-10 300 200 200 100 100 0 0 0 2 4 60% 6 Modellzeit 8 / s 10 Effizienz ηsolver 50% 0 2 4 30% 30% 20% 20% 10% 10% 1,0E-02 tol Nresult Nresult Nresult Nresult 6 = 2749 = 2376 = 745 = 6158 8 Modellzeit / s 10 Effizienz ηsolver 50% 40% 1,0E-04 DASSL LSODAR RADAU IIA DOPRI5 60% 40% 0% 1,0E-06 Histogramm zu N result für tol = 1E-10 400 300 1,0E-08 DASSL LSODAR RADAU IIA DOPRI5 0% 1,0E-10 1,0E-08 1,0E-06 150 1,0E-04 1,0E-02 tol CPU-Zeit ttotal / s 1,0E-10 1,0E-06 150 100 100 50 50 0 1,0E-08 1,0E-04 1,0E-02 tol CPU time ttotal / s DASSL LSODAR RADAU IIA DOPRI5 0 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Bild 2: Benchmark-Test-Ergebnisse für das steife kontinuierliche Modell nach Gl. (2) (links: Matlab®/Simulink®-Löser; rechts: Dymola®-Löser). Kurven bei höheren Toleranzen abgebrochen, wenn keine stabile Lösung gefunden wurde. 1,0E+00 Mittlerer Fehler Err avg 1,0E+00 1,0E-02 1,0E-02 1,0E-04 1,0E-04 1,0E-06 DASSL LSODAR RADAU IIA DOPRI5 Mittlerer Fehler Erravg 1,0E-06 ode45 ode113 ode23s ode23tb 1,0E-08 1,0E-10 1,0E-10 4,0E+06 1,0E-08 1,0E-06 1,0E-04 ode23 ode15s ode23t 1,0E-08 1,0E-10 1,0E-02 tol Anzahl der Ergebniszeitpunkte Nresult 1,0E-10 4,0E+06 3,0E+06 3,0E+06 2,0E+06 2,0E+06 1,0E+06 1,0E+06 0,0E+00 0,0E+00 1,0E-10 80 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 60 40 40 20 20 1,0E-04 1,0E-02 tol DASSL LSODAR RADAU IIA DOPRI5 1,0E-10 60 1,0E-06 Anzahl der Ergebniszeitpunkte Nresult 80 Histogramm zu Nresult für tol = 1E-10 1,0E-08 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Histogramm zu Nresult für tol = 1E-10 0 0 0 2 4 60% 6 Modellzeit 8 /s Effizienz ηsolver 50% 0 10 60% 50% 40% 40% 30% 30% 20% 20% 10% 10% 2 4 6 DASSL LSODAR RADAU IIA DOPRI5 8 Modellzeit / s 10 Effizienz ηsolver 0% 0% 1,0E-10 25 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 1,0E-08 1,0E-06 25 CPU-Zeit ttotal / s 20 1,0E-10 15 10 10 5 5 1,0E-02 tol CPU-Zeit ttotal / s 20 15 1,0E-04 DASSL LSODAR RADAU IIA DOPRI5 0 0 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol 1,0E-10 1,0E-08 1,0E-06 1,0E-04 1,0E-02 tol Bild 3: Benchmark-Test-Ergebnisse für das steif-hybride Modell nach Gl. (3) (links: Matlab®/Simulink®-Löser; rechts: Dymola®-Löser). Kurven bei höheren Toleranzen abgebrochen, wenn nicht alle Events detektiert wurden. Tabelle 3: Vergleich der Leistungsmaße aller getesteten Löser in Kiviat-Diagrammen Geschwindigkeit Geschwindigkeit Effizienz y Kompaktheit Kompaktheit Kompaktheit Genauigkeit Genauigkeit Geschwindigkeit Geschwindigkeit Geschwindigkeit Genauigkeit y Genauigkeit Genauigkeit DOPRI5 nicht eingetragen, da nicht alle Events erkannt. Geschwindigkeit DOPRI5 Kompaktheit Geschwindigkeit RADAU Effizienz Effizienz LSODAR Kompaktheit Geschwindigkeit Accuracy DASSL Genauigkeit Genauigkeit Effizienz Effizienz Kompaktheit Kompaktheit Geschwindigkeit Genauigkeit Geschwindigkeit Genauigkeit Kompaktheit Kompaktheit Kompaktheit Geschwindigkeit Kompaktheit Effizienz Effizienz Effizienz ncy Effizienz tol = 1E−6 Genauigkeit Effizienz Effizienz iency Kompaktheit Dymola®-Solver tol = 1E−4 (= Default-Wert) Steif-hybrid Genauigkeit Geschwindigkeit Accuracy Genauigkeit ode45 ode23 ode113 ode15s ode23s ode23t ode23tb Steif-kontinuierlich Effizienz tol = 1E−6 Matlab®-Solver tol = 1E−4 (Default: 1E-3) Nicht-steif kontinuierlich