Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem...

26
2. Februar, 2005 Anfang Präsentation Behandlung von Unstetigkeiten • Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung zuwenden. • Modelle aus den Ingenieurbereichen weisen häufig Unste-tigkeiten auf, die Schaltvorgänge, Begrenzer, trockene Reibung, Stösse oder ähnliche Vorgänge repräsentieren mögen. • Die Modellierungsumgebung muss sich dieser Vorgänge speziell annehmen, da sie in starkem Masse die Numerik der Differentialgleichungslöser beeinflussen.

Transcript of Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem...

Page 1: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Behandlung von Unstetigkeiten• Wir wollen uns heute dem Problem der Behandlung von

Unstetigkeiten in der Modellbeschreibung zuwenden.• Modelle aus den Ingenieurbereichen weisen häufig Unste-

tigkeiten auf, die Schaltvorgänge, Begrenzer, trockene Reibung, Stösse oder ähnliche Vorgänge repräsentieren mögen.

• Die Modellierungsumgebung muss sich dieser Vorgänge speziell annehmen, da sie in starkem Masse die Numerik der Differentialgleichungslöser beeinflussen.

Page 2: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Übersicht• Die numerische Lösung von Differentialgleichungen• Unstetigkeiten in Zustandsgleichungen• Integration über Unstetigkeiten• Zustandsereignisse• Ereignisbearbeitung• Mehrwertige Kennlinien• Der elektrische Schalter• Die ideale Diode• Die Reibungskennlinie

Page 3: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Numerische Differentialgleichungslöser• Alle heute im Einsatz stehenden numerischen

Differentialgleichungslöser arbeiten mit Polynom-extrapolation.

• Der Wert einer Zustandsvariablen x zum Zeitpunkt t+h, wobei h die momentane Schrittlänge ist, wird ermittelt, indem durch bereits bekannte Stützwerte von x und dx/dt der jetzigen Zeit t sowie der Vergangenheit ein Polynom nter Ordnung hindurchgelegt wird. Der Wert dieses Polynoms zum Zeitpunkt t+h repräsentiert die angenäherte Lösung der Differentialgleichung.

• Bei impliziten Verfahren wird die Zustandsableitung zum Zeitpunkt t+h ebenfalls als Stützwert beigezogen.

Page 4: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Beispiele

Explizites Eulerverfahren erster Ordnung:

x(t+h) x(t) + h · x(t)

·

Implizites Eulerverfahren erster Ordnung:

x(t+h) x(t) + h · x(t+h)

·

Page 5: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Unstetigkeiten in der Zustandsbeschreibung• Polynome sind immer stetig und stetig differenzierbar.• Wenn also die Zustandsraumbeschreibung des Systems:

• eine Unstetigkeit aufweist, ist die Polynomextrapolation eine sehr schlechte Approximation der Wirklichkeit.

• Somit weisen Verfahren mit fester Schrittlänge einen grossen Integrationsfehler auf, während Verfahren mit variabler Schrittlänge den Schritt in der Umgebung der Unstetigkeit sehr stark reduzieren.

x(t) = f(x(t),t)·

Page 6: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Integration über Unstetigkeiten• Ein Verfahren variabler Schrittlänge reduziert die

Schrittlänge bei jeder Unstetigkeit.• Nach der Unstetigkeit wird die Schrittlänge nur langsam

wieder vergrössert, da das Verfahren nicht unterscheiden kann zwischen einer Unstetigkeit und einem Punkt grosser lokaler Steifigkeit (mit grossem absolutem Wert der Ableitung). h

t

UnstetigkeitenDie Schrittlänge ist dauernd viel zu klein. Das Verfahren ist zu-mindest sehr ineffizient, falls nicht ungenau.

Page 7: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Das Zustandsereignis• Diese Probleme können vermieden werden, wenn dem

System explizit mitgeteilt wird, wo es Unstetigkeiten in der Modellbeschreibung gibt.

Beispiel: Begrenzerfunktion

x

f(x)

xp

fm

xm

fp

m = tg()1

f = fm

2f = m·x

3

f = fp

f = if x < xm then fm else if x < xp then m*x else fp ;

Page 8: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die Ereignisbearbeitung I

x

f(x)

xp

fm

xm

fp

xxp

t

Schwellwert

h

Iteration

h

xxp

t

Modellumschaltung

h

h

t

EreignisSchrittlängenreduktion während Iteration

Page 9: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die Ereignisbearbeitung II

h

t

h

t

Schrittlänge ohne Ereignis-behandlung

Schrittlänge mit Ereignis-behandlung

Page 10: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Repräsentation von Unstetigkeiten

• In Modelica wird die Unstetigkeit durch ein if-Statement repräsentiert.

• Bei der Übersetzung werden diese Statements in korrekte Ereignisbeschreibungen (Sätze von Modellen mit Um-schaltbedingungen) abgebildet.

• Der Benützer braucht sich um die Ereignisbeschreibungs-mechanismen selbst nicht zu kümmern. Diese bleiben hinter den if-Statements verborgen.

f = if x < xm then fm else if x < xp then m*x else fp ;

Page 11: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Probleme• Der Benützer sollte beachten, dass während der Iteration

die unstetige Kennlinie temporär verlassen wird.

• ist gefährlich, da absp temporär negativ werden kann.

• löst dieses Problem.

q = | p | p = p1 – p2 ;absp = if p > 0 then p else –p ;q = sqrt(absp) ;

p = p1 – p2 ;absp = noEvent( if p > 0 then p else –p ) ;q = sqrt(absp) ;

Page 12: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die „noEvent“-Klausel

• Die noEvent-Klausel sorgt dafür, dass if-Statements oder Boole’sche Ausdrücke, die normalerweise in Simulations-code übersetzt würden, bei welchem die Diskontinuitäten durch Ereignisse abgefangen werden, so stehengelassen werden, wie sie im Modellierungscode formuliert wurden.

• Dadurch wird die korrekte Simulation dieser Diskontinuitäten der Schrittsteuerung des numerischen Integrationsverfahrens überlassen.

p = p1 – p2 ;absp = noEvent( if p > 0 then p else –p ) ;q = sqrt(absp) ;

Page 13: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Mehrwertige Kennlinien I• Die bisher eingeführten Sprachelemente reichen nicht aus,

um damit mehrwertige Kennlinien, wie zum Beispiel Hysteresefunktionen zu beschreiben.

• Wenn x grösser wird als xp, muss f von fm nach fp umgeschaltet werden.

• Wenn x kleiner wird als xm, muss f von fp nach fm umgeschaltet werden.

x

f(x)

xpxm

fp

fm

Page 14: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Mehrwertige Kennlinien II

x

f(x)

xpxm

fp

fm

when initial() then reinit(f , fp);end when;when x > xp or x < xm then f = if x > 0 then fp else fm;end when;

}Diese Statements werden nur ausgeführt, wenn entweder x grösser wird als xp oder aber wenn x kleiner wird als xm.

Ausgeführt am Anfang der Simulation.

wird grösser

ist grösser

Page 15: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Der elektrische Schalter I

i

u

Wenn der Schalter offen ist, ist der Strom i=0. Wenn der Schalter zu ist, ist die Spannung u=0.

0 = if offen then i else u ;

Das if-Statement in Modelica ist akausal. Es wird sortiert, genau wie alle anderen Statements.

Page 16: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Der elektrische Schalter II

Mögliche Implementation: Schalter offen: s = 1 Schalter geschlossen: s = 0

0 = s · i + ( 1 – s ) · u

Schalter offen:

SF

Schalter geschlossen:SE

f = 0

e = 0

Sws ef

Die Kausalität des Switch Elements ist eine Funktion des Werts des Steuersignals s.

Page 17: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die ideale Diode I

u

i

Schalter geschlossen

Schalter offen

iu

Wenn u < 0 ist, ist der Schalter offen. Kein Strom fliesst.

Wenn u > 0 ist, ist der Schalter geschlossen. Strom kann fliessen. Die ideale Diode verhält sich wie ein Kurzschluss.

offen = u < 0 ; 0 = if offen then i else u ;

D ef

Page 18: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die ideale Diode II• Da Strom, wenn er durch die Diode fliesst, nicht einfach

unterbrochen werden kann, muss das Diodenmodell noch leicht modifiziert werden.

• Die Variable offen muss als Boolean deklariert werden. Ihr wird der Wert des logischen Ausdrucks rechts vom Gleichheitszeichen zugewiesen.

offen = u <= 0 and not i > 0 ; 0 = if offen then i else u ;

Page 19: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die Reibungskennlinie I• Kompliziertere Vorgänge, wie zum Beispiel die Reibungs-

kennlinie müssen sorgfältig analysiert werden.• Der Vorgang wird hier an Hand der Reibung erklärt.

fB

v

R0Rm

-Rm

-R0

Gleitreibung

Haftreibung

Wenn v ist die Rei-bungskraft eine Funktion der Geschwindigkeit.

Wenn v , wird die Reibungskraft so gerech-net, dass die Geschwin-digkeit 0 bleibt.

Page 20: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Die Reibungskennlinie II• Wir unterscheiden fünf Fälle:

Haftung: Die Reibungskraft kompensiert die Summe der angrei-fenden Kräfte, es sei denn |f | > R0 .

Vorwärtsbewegung: Die Reibungskraft berechnet sich zu:fB = Rv · v + Rm.

Rückwärtsbewegung: Die Reibungskraft berechnet sich zu:fB = Rv · v Rm.

Einsetzen der Vorwärtsbewegung:

Die Reibungskraft berechnet sich zu:fB = Rm.

Einsetzen der Rückwärtsbewegung:

Die Reibungskraft berechnet sich zu:fB = Rm.

v = 0 a = 0

v = 0 a > 0

v = 0 a < 0

v > 0

v < 0

Page 21: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Das Zustandsübergangsdiagramm• Der genaue Vorgang kann in einem Zustandsübergangs-

diagramm dargestellt werden.

Anfang

Rückwärts-bewegung

(v < 0)

Rückwärts-beschleunigung

(a < 0)Haftung (a = 0)

Vorwärts-beschleunigung

(a > 0)

Vorwärts-bewegung

(v > 0)

v < 0 v > 0v = 0

f < R0 f > R0

a 0 and not v < 0 a 0 and not v > 0

v < v >

v 0

v 0

Page 22: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Das Reibungsmodell Imodel Reibung; parameter Real R0, Rm, Rv; parameter Boolean ic=false; Real fB, fc; Boolean Haft(final start = ic); Boolean Vor(final start = ic), Rück(final start = ic); Boolean StartVor(final start = ic), StartRück(final start = ic);

fB = if Vor then Rv*v + Rm else if Rück then Rv*v - Rm else if StartVor then Rm else if StartRück then -Rm else fc; 0 = if Haft or initial() then a else fc;

Page 23: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Das Reibungsmodell II

when Haft and not initial() then reinit(v,0); end when;

Vor = initial() and v > 0 or pre(StartVor) and v > 0 or pre(Vor) and not v <= 0; Rück = initial() and v < 0 or pre(StartRück) and v < 0 or pre(Rück) and not v >= 0;

Page 24: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Das Reibungsmodell III

StartVor = pre(Haft) and fc > R0 or pre(StartVor) and not (v > 0 or a <= 0 and not v > 0); StartRück = pre(Haft) and fc < -R0 or pre(StartRück) and not (v < 0 or a >= 0 and not v < 0); Haft = not (Vor or Rück or StartVor or StartRück); end Reibung;

Page 25: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Referenzen I• Cellier, F.E. (1979), Combined Continuous/Discrete

System Simulation by Use of Digital Computers: Techniques and Tools, Swiss Federal Institute of Technology, ETH Zürich, Switzerland.

• Elmqvist, H., F.E. Cellier, and M. Otter (1993), “Object-oriented Modeling of Hybrid Systems,” Proc. ESS'93, SCS European Simulation Symposium, Delft, The Netherlands, pp.xxxi-xli.

• Cellier, F.E., M. Otter, and H. Elmqvist (1995), “Bond Graph Modeling of Variable Structure Systems,” Proc. ICBGM'95, 2nd SCS Intl. Conf. on Bond Graph Modeling and Simulation, Las Vegas, NV, pp.49-55.

Page 26: Anfang Präsentation 2. Februar, 2005 Behandlung von Unstetigkeiten Wir wollen uns heute dem Problem der Behandlung von Unstetigkeiten in der Modellbeschreibung.

2. Februar, 2005Anfang Präsentation

Referenzen II• Elmqvist, H., F.E. Cellier, and M. Otter (1994), “Object-

oriented Modeling of Power-electronic Circuits Using Dymola,” Proc. CISS'94, First Joint Conference of International Simulation Societies, Zurich, Switzerland, pp. 156-161.

• Glaser, J.S., F.E. Cellier, and A.F. Witulski (1995), “Object-oriented Switching Power Converter Modeling Using Dymola with Event-handling,” Proc. OOS'95, SCS Object-Oriented Simulation Conference, Las Vegas, NV, pp. 141-146.