Objektorientierte Modellierung und Simulation mechatronischer Systeme mit Modelica und Dymola

Objektorientierte Modellierung und Simulation mechatronischer Systeme mit Modelica und Dymola Martin Otter Deutsches Zentrum für Luft- und Raumfahrt (...
Author: Simon Schwarz
4 downloads 2 Views 1MB Size
Objektorientierte Modellierung und Simulation mechatronischer Systeme mit Modelica und Dymola Martin Otter Deutsches Zentrum für Luft- und Raumfahrt (DLR) Institut für Robotik und Mechatronik (www.robotic.dlr.de) ETH-Zürich, 11. Dez. 2003

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

1

Inhalt 1. Einführung 2. Objektdiagramme 3. Grundlagen von Modelica 4. Transformations-Algorithmen 5. Unstetige und Strukturvariable Systeme 6. Zusammenfassung

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

2

1. Einführung Ziel: Modellierung und Simulation physikalischer Systeme, die aus Komponenten unterschiedlicher Fachgebiete bestehen

Beispiel: detailliertes Fahrzeugmodell • Fahrzeugdynamik (3D Mechanik) • Antriebsstrang (1D Mechanik) • Hydraulik • Verbrennung • Elektrische/elektronische Systeme • Klimaanlage (Thermo-Fluid Systeme) • Regler (Ein/Ausgangsblöcke, Statecharts, ...) • ... M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

4

Objektorientierte Modellierung • Technik zur multidisziplinären Modellierung komplexer Systeme. • 1978 von H. Elmqvist am Lund Institute of Technology (Schweden) entwickelt Seit 1992 eigene Firma (Dynasim) zur Weiterentwicklung von Dymola. • Wird seit Anfang der 90er Jahre an vielen Stellen weiterentwickelt. (Dymola, gPROMS, NMF, ObjectMath, Omola, Smile, U.L.M, EcoSim, ...) Standardisierung mit der frei verfügbaren Modellierungssprache • wird von der (non-profit) Modelica Association seit 1996 entwickelt. • Differentialgleichungen, algebraische und diskrete Gleichungen. • Deklarativ (= mathematische Gleichungen) statt prozedural • Viele Modelica Bibliotheken verfügbar (meist “public domain”): 1D/3D Mechanik, Elektronik, Hydraulik, elektr. Energiesysteme, Thermo-Fluid, ... • Erste Anwendungen mit Modelica 1.3 (Dezember 1999) Aktuelle Version ist Modelica 2.0 (Januar 2002) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

5

Homepage:

www.Modelica.org

Tutorial:

www.Modelica.org/documents/ModelicaTutorial14.pdf

Sprachdefinition:

www.Modelica.org/documents/ModelicaSpec20.pdf

Modell Bibliotheken:

www.Modelica.org/libraries.shtml

Veröffentlichungen:

www.Modelica.org/publications.shtml

Programme:

www.Modelica.org/tools.shtml Dymola (www.Dynasim.se) MathModelica (www.MathCore.se)

Bücher: - Introduction to Physical Modeling with Modelica von Michael Tiller. Kluwer Academic Publisher, 2001, http://www.Dynasim.se/Tiller/BookInfoPage/. - Principles of Object Oriented Modeling and Simulation with Modelica von Peter Fritzson, 2003. 940 Seiten, Wiley-IEEE press; ISBN 0-471-47163-1. - Elektrische Antriebe - Regelung von Antriebssystemen von D. Schröder Kapitel 20, S. 894 - 1004, von M. Otter, Springer Verlag, 2001, http://www.springer.de M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

6

Zusammenhang Modelica ↔ Dymola (= ähnlich wie: C++ ↔ Microsoft Visual Studio) Modelica (freie Spezifikation): Textuelles Format um Modell + Graphik + Animation von Komponenten zu definieren

Dymola (Kommerzielles Programm von Dynasim): Graphischer Editor für Modelica Modelle

Dymola: Übersetzung von Modelica nach C (Symbolische Transformationen), + simulieren + plotten, Animation M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

7

2. Objektdiagramme Komponente

Verbindung

Schnittstelle

• Jedes Icon repräsentiert eine physikalische Komponente. z.B. elektrischer Widerstand, mechanisches Getriebe, Pumpe

• Die Verbindungslinien repräsentieren die aktuelle physikalische Verbindung. Z.B. elektrisches Kabel, starre mechanische Verbindung, Wärmefluß.

• Eine Komponente besteht aus verbundenen Sub-Komponenten (= hierarchische Struktur) und/oder wird durch Gleichungen beschrieben.

• Mit symbolischen Algorithmen, wird die "high level" Modelica Beschreibung in die Zustandsform transformiert (dx/dt = f(x, t)) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

8

Moment gegeben

Entwurfsprinzipien von Modelica Gerät (rot. Trägheit)

• Modelica Komponenten entsprechen realen Geräten (nur eine Version) Winkel gegeben

• Gleiche Verschaltungmöglichkeiten wie physikalisches Gerät (→ DAEs mit höherem Index; verlangt z.T. symbolische Differentiation)

merging of volumes

• Gleiche oder bessere Effizienz als "Standard" Software Nur möglich durch spezialisierte symbolische Vorverarbeitung mit hierfür entworfenen Algorithmen M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

9

Drag & drop Modellierung

Dymola

Modelica Bibliothek Modelica.Mechanics.Rotational M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

10

Übersetzen (Modelica → C → Objektcode) + Simulieren + Visualisieren

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

11

Modelica Bibliotheken Modelica Standard Bibliothek • • • • • • • • •

SI unit types (450 types) Control systems (continuous/sampled) Electric and electronic systems 1D translational 1D rotational (clutches, brakes, ...) 1D heat transfer MultiBody systems (Jan. 2004) Media (Jan. 2004; 1250 Medium Modelle) Fluid (Frühjahr 2004; Rohrströmungen)

Kommerzielle Bibliotheken • Hydraulic components (HyLib) • Pneumatic components (PneuLib) • Vehicle power trains (PowerTrain)

Import/Export (kommerziell)

Andere "public domain" Bibliotheken • • • • • • •

ThermoFluid ThermoPower Electric power systems Vehicle dynamics (Beta) SPICElib (electronics; SPICE subset) WasteWater ...

"Public domain" in Entwicklung • • • • •

Digital electrical systems Advanced Sampled ↔ Continuous Interpolation (B-Splines) Linear algebra (LAPACK) Electrical motors

• Simulink → Modelica converter (Simelica) • Modelica → Simulink converter (Dymola Option) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

12

Beispiel: MultiBody Bibliothek 1D damper revolute joint

body

• Automatische Visualisierung von jedem Objekt • Automatische Zustandswahl • Automatische Schleifenbehandlung • Analytische Lösung einer Klasse von Schleifen. • Keine Einschränkungen bei der Verschaltung

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

13

Beispiel: Industrie-Roboter (DLR, Dynasim, KUKA)

model Resistor extends OnePort; parameter Real R; equation v = R*i; end Resistor;

1000 nichttriviale algebraische Gleichungen, 80 Zustände. mit “Mixed-Mode Integration”: schneller als Echtzeit auf 650 Mhz PC. M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

14

Beispiel: Gesamt-Systemmodell eines Verkehrsflugzeugs (EU-Projekt POA: 40 Ausrüsterfirmen, 100MEuro)

elektrisch

hydraulisch

mechanisch

pneumatisch M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

15

Beispiel: Hardware-in-the-Loop Simulation von Automatikgetrieben (verschiedene KFZ Hersteller, wie Toyota, BMW)

Steuergerät (Hardware)

gewünschter Druck

(Simulation)

+ Fahrer + Motor + Wandler + 1D Fahrzeugdynamik

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

16

Beispiel: Grosses, detailliertes Fahrzeugmodell (Ford, Dynasim, DLR; SAE paper 2001-01-0334) 3D-Mechanik (60 Gelenke, 70 Körper)

• 25000 nichttriviale algebraische Gleichungen • 320 Zustände

Hydraulik

Motor (Verbrennung)

Antriebsstrang (Automatik-Getriebe) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

17

Beispiel: Autopilot zum automatischen Landen (EU-Projekt REAL: Airbus, Delft University, DLR, NLR, ONERA) • Entwicklung einer Technologie um Autopiloten schneller zu entwerfen

Dymola Modell ist Teil des Reglers

• Regler enthält im Kern ein nichtlineares Flugzeug-Dynamik Modell als inverses Modell. Modell

Eingänge sind gegeben Flugzeugmodell Flugzeugmodell

Eingänge werden berechnet

Ausgänge werden berechnet

Ausgänge sind gegeben

6 Flugtests im August 2000 (mit ATTAS Forschungsflugzeug von DLR)

Inverses Modell M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

18

Beispiel: Energie-Erzeugung und -Verteilung (SyCon Consulting, Schweden) p

TurbineControl

QuickStop

tagnr=3

TurbinControlV

SuperHeater

DumpValv e

Pipe

LT

Distpipe TagNr = 28 - 30

PT TagNr = 1

pidpFWTank

Pipe5

M

Pipe2

FWTValv e

BurnerPowerAct

Pipe11

Pipe10

M

Pipe1

Drum

Pipe8

Furnace

GeneratorNet

TagNr = 4 - 14

tagnr=2

SaeV tagnr=31

SNod4c

Atmos

G12

M

SNod

FWTank

Condenser

LT DistrictHeat PT

TagNr = 24 - 25

LT

TagNr = 26 - 27

LC

TagNr = 22 - 23

M

FeedWaterStrip

TagNr = 15 - 19

LC M

M

CondensateStrip

M

3. Grundlagen von Modelica 3.1 Gleichungsorientierte Modellierung Objektorientierte Modellierungssprachen (Modelica, gPROMS, VHDL-AMS, ...) basieren auf Gleichungen und nicht auf Zuweisungen wie bei Blockdiagrammen.

AC=220

expression = expression

Bei der Transformation in die Zustandsform, werden Gleichungen abhängig von der Verschaltungsstruktur aufgelöst, z.B. u = R*i: i := u/R

L=0.1

C=0.01

z.B. J*der(x) = t1 + t2

G

R1=10

G

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

20

R3=40

R2=40

(Residuum; Gleichungssystem)

Vg

u := R*i ε := R*i - u

R2=100

R1=10

Die allgemeine Form in Modelica:

3.2 Variablen (type) vordefinierte Datentypen: Real, Integer, Boolean, String neuer Datentyp

vordefinierter Datentyp (Gleitpunktzahl)

type Angle

= Real(quantity ="Angle” , displayUnit="deg"); type Torque = Real(quantity ="Torque” , type Mass = Real(quantity ="Mass” , type Pressure = Real(quantity ="Pressure", displayUnit="bar” ,

Attribute (z.B. Einheit)

unit="rad", unit="N.m"); unit="kg", min=0); unit ="Pa", nominal=1.e5);

Attribute: quantity, unit, displayUnit, min, max, start, fixed, nominal, stateSelect Bibliothek Modelica.SIunits: 450 vordefinierte Typen nach ISO Einheiten-Standard M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

21

3.3 Schnittstellen-Definition (connector) Verbindungs-Klasse

Neue Connector-Klasse

connector Pin import SI=Modelica.SIunits; SI.Voltage v; flow SI.Current i; end Pin;

connector Flange import SI=Modelica.SIunits; SI.Position s; flow SI.Force f; end Flange;

Fluß-variable

Verwendung:

Potential-Variable Fluß-Variable

Pin p, n; equation connect(p, n) Verbundene Variable sind identisch Verbundene Variable erfüllen die Null-Summen-Gleichung

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

22

1D-mechanisch

elektrisch

R3

v1

s3 i3

v3

v2

R1 (i1 = R1.p.i, etc.)

i1

R2

i2

s1

m3

m1

m2

s2

connect(R1.p, R2.p); connect(R1.p, R3.p);

f3

f1

f2

connect(m1.flange_a, m2.flange_a); connect(m1.flange_a, m3.flange_a);

s1 = s2

v1 = v2

s1 = s3

v1 = v3

f1 + f 2 + f 3 = 0

i1 + i2 + i3 = 0

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

23

Vordefinierte, elementare Schnittstellen type electrical

potential electrical potential

flow

location (Modelica library)

current

Modelica.Electrical.Analog.Interfaces.PositivePin

translational distance

force (scalar)

Modelica.Mechanics.Translational.Interfaces.Flange_a

rotational

torque (scalar)

Modelica.Mechanics.Rotational.Interfaces.Flange_a

heat transfer temperature

heat flow rate

Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a

hydraulic

pressure

volume flow rate HyLibLight.Interfaces.Port_A

pneumatic

pressure

mass flow rate

mechanical

position vector, transformation matrix

cut-force (vector) MultiBody.Interfaces.Frame_a cut-torque (vector)

pressure,

mass flow rate, enthalpy flow rate,

angle

thermo-fluid specific enthalpy, mass flow rate of mass fractions

signal

Real, Boolean, Integer Vektor

icon

PneuLibLight.Interfaces.Port_1

Modelica_Fluid.Interfaces.FluidPort_a

substances Modelica.Blocks.Interfaces.InPort /OutPort Modelica.Blocks.Interfaces.BooleanInPort/OutPort Modelica.Blocks.Interfaces.IntegerInPort /OutPort

(hydraulic : incompressible pipe flow pneumatic : compressible pipe flow thermo-fluid: incompressible/compressible multi-substances/phases pipe flow with heat transport) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

24

3.4 Komponenten Modelle (model) p.i

u

n.i

Beispiel: Kapazität graphische Information

p.v

Konstante (Wert kann vor Simulationsbeginn interaktiv geändert werden)

n.v Datentyp (Gleitpunktzahl)

Wert der Konstante (Voreinstellung)

model Capacitor import SI = Modelica.SIunits; parameter SI.Capacitance C = 0.01; SI.Voltage u ”Spannungsabfall”; Pin p, n; Beschreibungstext annotation(Diagram(Rectangle(..)..); (wird in Menues angezeigt) equation 0 = p.i + n.i; u = p.v - n.v; mathematische Gleichung, keine Zuweisung! C*der(u) = p.i; end Capacitor; Differentation nach der Zeit M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

25

Beispiel: Hierarchisches Modell

Bibliotheksname abkürzen neue Modell-Klasse

Modell-Klasse Modell-Instanz (Komponente) Modifikation model Drive import R = Modelica.Mechanics.Rotational; import E = Modelica.Electrical.Analog.Basic; R.Inertia Inertia1 (J = 0.002); R.IdealGear IdealGear1(ratio = 100) E.Resistor Resistor1 (R = 0.2) ... annotation(Diagram(Rectangle(extent=..)..)..); equation connect(Inertia1.flange_b, IdealGear1.flange_a); connect(Resistor1.n , Inductor1.p); ... end SimpleDrive; Connector "flange_a" von IdealGear1 Verbindung Connector "n" (= Klemme) von Resistor1 grafische Informationen M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

26

3.5 Modelica Bibliotheken (package) Modelica Bibliotheken sind hierarchisch aufgebaut und werden auf dieselbe Hierarchie im Dateisystem abgebildet. Damit können Klassenbeschreibungen automatisch im Dateisystem gefunden werden: \Modelica \Blocks \Electrical \Analog package.mo Basic.mo Semiconductors.mo Sources.mo ... \Mechanics package.mo Rotational.mo Translational.mo Constants.mo Icons.mo Math.mo SIunits.mo ...

within Modelica.Electrical.Analog; package Basic model Resistor ... neue Bibliothek end Resistor; model Capacitor ... end Capacitor; ... end Basic; File: ...\Modelica\Electrical\Analog\Basic.mo Bibliothek: Modelica.Electrical.Analog.Basic

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

27

3.6 Felder und Komponentenfelder Felder ähnlich wie in Matlab: parameter Real A[:,:] = [11, 12, 13; 21, 22, 23];

Aber: Felder können von jeder Modell-Klasse definiert werden. R2

R3

R4

R=R

R=R

R=R

R=R

p

n C3

C=C

C2

C=C

C1

C=C

Beispiel: verlustbehaftete elektrische Leitung

R1

ground

import Basic = Modelica.Electrical.Analog.Basic; parameter Integer n=4; Basic.Resistor Rvec[n] // 4 Widerstände equation for i in 1:n-1 loop connect(Rvec[i].n, Rvec[i+1].p); // Verbindungsdefinition end for;

Erlaubt komfortable Diskretisierung einfacher partieller Differentialgleichungen M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

28

3.7 Weitere Sprachelemente von Modelica • Prozedurale Teile (algorithm Sektion) • if, for, while • Funktionen (ähnlich wie Matlab m-Files) • Einbindung externer C-Funktionen (viel einfacher als bei Matlab) • Vererbung (extends) • Hierarchische Datenstrukturen (record) • Austauschbare Komponenten (replaceable/redeclare) • Physikalische Felder, wie elektrisches Feld (inner/outer; Art von globaler Var.) • Unstetige Systeme (when; Triggerung von Ereignissen durch Relationen) • Strukturvariable Systeme (Coulomb-Reibung, ideale Diode, ...) • Neuinitialisierung nach Ereignissen (reinit; z.B. Stoß) • Wahl von Zustandsvariablen (stateSelect = never, avoid, default, prefer, always) M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

29

4. Transformations-Algorithmen 4.1 Grundlagen Ausgangsgleichungssystem = alle Komponentengleichungen + alle Verbindungsgleichungen (connect) Dies ist ein differential-algebraisches Gleichungssystem (DAE: Differential-Algebraic Equation system):

0 = f (x& , x, y , t )

x: Variable, die abgeleitet auftreten y: algebraische Variable Transformation in Zustandsform

x& = f1 (x, t ) y = f 2 ( x, t )

d.h. löse nichtlineares algebraisches Gleichungssystem 0 = f ( x& , y ) nach den beiden unbekannten Vektoren Löse Zustandsform numerisch mit Standard-Integrationsverfahren

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

30

Beispiel: gegeben: C.u, L.i1, t + Konstanten (R1.R, ...) gesucht : dC.u /dt, dL.i1 /dt Dies sind 27 Gleichungen

für die 27 Unbekannten R1.i1 , R1.i2, R2.i1 , R2.i2, C.i1 , C.i2 , dL.i1/dt, L.i2 , S.i1 , S.i2 , g.i1 , g.v1

R1.v1, R1.v2 , R1.u, R2.v1, R2.v2, R2.u, C.v1 , C.v2 , dC.u/dt, L.v1 , L.v2 , L.u, S.v1 , S.v2 , S.u,

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

31

Symbolische Sortierung, Umformung, Elimination von Hilfsgrößen, Reduktion von algebraischen Gleichungssystemen mit speziellen Algorithmen führt auf rekursive Auswertungsvorschrift: R2.u R1.v1 L.u R1.u C.i1 dL.i1 /dt dC.u /dt

:= R2.R*L.i1 := S.A*sin(S.w*t) := R1.v1 - R2.u := R1.v1 - C.u := R1.u / R1.R := L.u / L.L := C.i1 / C.C

Algorithmen sind für große Systeme geeignet (z.B. Dymola: > 100 000 Gleichungen)

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

32

4.2 Singuläre Systeme (DAE's mit höherem Index) Um in die Zustandsform transformieren zu können müssen eventuell Teile der Modellgleichungen differenziert werden. Dies ist immer dann notwendig, wenn Zahl der Zustände vom Gesamtsystem < Summe der Zustände der Komponenten Beispiele: lokale Zustände

1

Zwangsbedingung: u1

1

u1

u2

= u2

Zahl der Zustände vom Gesamtsystem: 1

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

33

lokale Zustände

2

2 Zahl der Zustände vom Gesamtsystem: 2

ideales Getriebe mit starrer mechanischer Kopplung

Solche Systeme treten bei der objektorientierten Modellierung sehr leicht auf. Diese werde in Dymola vollautomatisch behandelt, d.h., die zu differenzierenden Gleichungen werden ermittelt, genügend of analytisch differenziert und die Zahl der Zustände wird automatisiert reduziert (Algorithmen von Pantelides, sowie Mattsson und Söderlind)

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

34

4.3 Transformations-Algorithmen bei Dymola 1. Singuläre Systeme: Gleichungen symbolisch differenzieren + möglichst viele Zustände “statisch” festlegen. Verbleibende Zustände während der Simulation numerisch ausgewählen (Pantelides/Dummy-Derivative Methode). 2. Gleichungen sortieren, so dass möglichst kleine, voneinander entkoppelte algebraische Gleichungssysteme entstehen (BLT). 3. Dimensionen der algebraischen Gleichungssysteme durch “intelligente” Variablensubstitution reduzieren (Tearing). Wenn Dimension=1 und System linear, Gleichung symbolisch lösen. 4. Verbleibende algebraische Gleichungen während der Simulation numerisch lösen (verwende linearen Löser, wenn Gleichungen linear in den Unbekannten sind). 5. Reell/Boolsche Gleichungssysteme (Reibung/ideale Diode etc.) mit speziellen numerischen Verfahren an Ereignispunkten lösen (um neue Systemstruktur zu ermitteln) 6. Gleichungen umordnen, so dass “konstante” Teile nur einmal, am Beginn der Simulation, und “Ausgangsgleichungen” nur an Ausgabepunkten ausgewertet werden. 7. LU-Zerlegung von linearen algebraischen Gleichungssystemen mit fester Koeffizientenmatrix nur einmal, am Beginn der Simulation, durchführen (= sehr effiziente Lösung). 8. Wenn gewünscht, die Zahlenwerte von Parametern bei der Transformation ausnützen. Beispiel: L = sqrt(n’*n) wird vereinfacht zu: L= 1, wenn n=[1;0;0]. Bei 3D-mechanischen Systemen wird dadurch Zahl der Operationen in der Regel um 3 .. 10 reduziert. 9. Wenn gewünscht, Differentialgleichungen diskretisieren ("Inline Integration") und diskretisierte Gleichungen mit obigen Algorithmen lösen (für Echtzeit-Simulation "steifer" Systeme). M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

35

5. Unstetige und Strukturvariable Systeme y

Beispiel:

Modelica:

Relation triggert Ereignis

y = if u > 0 then 1 else -1;

u

y,u

y = y(t+)

6

stetige Fortsetzung zur Detektierung des Umschaltpunktes

7

y

t

u 1 Integratorschritte

Ereignis 2

3

5 4 pre(y) = y(t-)

Ein Modell behält solange den gewählten if-Zweig bei, bis der Zeitpunkt der Änderung der ifBedingung detektiert wurde. (kann mit noEvent(..) abgeschaltet werden).

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

36

Eine der Stärken von Modelica und Dymola: Strukturvariable Systeme: Wichtige strukturvariable Komponenten sind in Bibliotheken verfügbar und können direkt angewendet werden.

Beispiel: Komponenten basierend auf Coulomb-Reibung mit Modellierung der Haft/Gleiteffekte. XXX.mode = 2: friction is not active = 1: forward sliding = 0: stuck (no relative motion) = -1: backward slidingd

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

37

Beispiel: Automatik-Getriebe mit 6 Kupplungen (Reibelementen)

Kupplung Modelica Modell M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

38

Beispiel: ideales Diodenmodell idealisiertes Modell detailliertes Modell (schnellere Simulation)

i

i

i

i = f(u)

i = g(u)

u u

u

i

Beispiel: ideales Thyristormodell ig, fire i i ig > 0

s>0

u

u

s0

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

u

39

Beispiel: Implementierung eines idealen Diodenmodells in Modelica

i1 v1 i1 s

i2 v2

u u

= v1 - v2

0

= i1 + i2

off = s < 0

s

s=0

u

u

= if off then 0 else s

i1 = if off then s else 0

parametrisierte Kurvendarstellung: u = u(s) i = i(s)

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

40

Beispiel: Gleichrichter-Schaltkreis mit 4 idealen Diodenmodellen An einem Ereignispunkt müssen 8 Gleichungen in 4 Real Unbekannten s1, s2, s3, s4 und 4 Boolean Unbekannten m1, m2, m3, m4 gelöst werden, um den Schaltzustand der idealen Dioden zu ermitteln (Einsatz spezieller Algorithmen in Dymola): m1 = s1 < 0 m2 = s2 < 0 m3 = s3 < 0 m4 = s4 < 0 0   m1  m  1 +1− m 1  R1  m −1 1 

0 m2 m4   s   − uC  1   0  − m2 − m4   s  m3   2  ⋅ =  u0  − m2 0   s3  m3 − 1     R1  R1  s  0  m2 − 1 1 − m3 − m4   4 

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

41

6. Zusammenfassung Mit Modelica (= Sprache) und Dymola (= Modelica Simulationsumgebung) können Modelle anwendungsnah mit Objektdiagrammen definiert und simuliert werden, wenn die Modelle durch • Differentialgleichungen und/oder • algebraischen Gleichungen und/oder • diskreten Gleichungen (Abtastregler etc.) und/oder • einfache partielle Differentialgleichungen mathematisch beschrieben werden können. Die Code-Erzeugung von Dymola hat insbesondere Optionen zum Export von Modellen nach SIMULINK (= am weitesten verbreitetes “allgemeines” Simulationsprogramm) und zur Echtzeitsimulation (z.B. spezielle Integrationsverfahren mit fester Schrittweite für steife Systeme).

M. Otter: Objektorientierte Modellierung mit Modelica und Dymola, ETH Zürich, 11. 12. 2003

42

Suggest Documents