Vergleich numerischer Löser zur Simulation steifer und hybrider

Werbung
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
Herunterladen