27. Oktober, 2004Anfang Präsentation
Objektorientierte Modellierung• Diese Vorlesung hat zum Ziel, die Anforderungen an eine
objektorientierte Modellierung physikalischer Systeme zu erläutern, und aufzuzeigen, wie diesen Anforderungen in Praxis Genüge getan werden kann.
• Die Vorlesung offeriert erste Einblicke in einige der Fähigkeiten von Dymola, einer Softwareumgebung, welche dafür geschaffen wurde, physikalische Systeme in object-orientierter Weise zu beschreiben. Dymola bietet eine graphische Benützerschnittstelle an.
• Einige Eigenschaften der darunter liegenden alpha-numerischen Modelbeschreibungsebene, welche Modelica genannt wird, werden ebenfalls vorgestellt.
27. Oktober, 2004Anfang Präsentation
Übersicht
• Kausalität der Modellgleichungen• Graphische Modellierung• Modellstruktur in Modelica• Modelltopologie in Modelica• Vererbungsregeln• Hierarchische Modellierung
27. Oktober, 2004Anfang Präsentation
Die Kausalität der ModellgleichungenU 0
i+
R
I 0
I0
R
U0 = f(t)
i = U0 / R
I0 = f(t)
u = R· I0
Identische Objekte
Unterschiedliche Gleichungen
-
-
Die Kausalität der Gleichungen darf nicht vorgegeben werden. Sie kann erst nach Ermittlung der Topologie bestimmt werden.
27. Oktober, 2004Anfang Präsentation
Grundforderungen der OO Modellierung
• Physikalische Objekte sollen durch mathematische graphische Objekte dargestellt werden können.
• Die graphischen Objekte sollen topologisch verknüpft werden können.
• Die mathematischen Modelle sollen hierarchisch beschrieben werden können. Dazu muss es möglich sein, Netzwerke gekoppelter Objekte wiederum als graphische Objekte darzustellen.
27. Oktober, 2004Anfang Präsentation
Ein Beispiel
model Circuit1 SineVoltage U0(V=10, freqHz=2500); Resistor R1(R=100); Resistor R2(R=20); Capacitor C(C=1E-6); Inductor L(L=0.0015); Ground Ground; equation connect(U0.p, R1.p); connect(R1.n, C.p); connect(R2.p, R1.n); connect(U0.n, C.n); connect(Ground.p, C.n); connect(L.p, R1.p); connect(L1.n, Ground.p); connect(R2.n, L.n);end Circuit1;
27. Oktober, 2004Anfang Präsentation
Graphische Information (Annotation)package CircuitLib annotation (Coordsys( extent=[0, 0; 504, 364], grid=[2, 2], component=[20, 20])); model Circuit1 annotation (Coordsys( extent=[-100, -100; 100, 100], grid=[2, 2], component=[20, 20])); Modelica.Electrical.Analog.Sources.SineVoltage U0(V=10, freqHz=2500) annotation (extent=[-80, -20; -40, 20], rotation=-90); Modelica.Electrical.Analog.Basic.Resistor R1(R=100) annotation (extent=[ -40, 20; 0, 60], rotation=-90); Modelica.Electrical.Analog.Basic.Capacitor C(C=1E-6) annotation (extent=[-40, -60; 0, -20], rotation=-90); Modelica.Electrical.Analog.Basic.Resistor R2(R=20) annotation (extent=[0, -20; 40, 20]); Modelica.Electrical.Analog.Basic.Inductor L(L=0.0015) annotation (extent=[40, 20; 80, 60], rotation=-90); Modelica.Electrical.Analog.Basic.Ground Ground annotation (extent=[0, -100; 40, -60]); equation connect(U0.p, R1.p) annotation (points=[-60, 20; -60, 60; -20, 60], style(color=3)); connect(R1.n, C.p) annotation (points=[-20, 20; -20, -20], style(color=3)); connect(R2.p, R1.n) annotation (points=[0, 0; -20, 0; -20, 20], style(color=3)); connect(U0.n, C.n) annotation (points=[-60, -20; -60, -60; -20, -60], style(color=3)); connect(Ground.p, C.n) annotation (points=[20, -60; -20, -60], style(color=3)); connect(L.p, R1.p) annotation (points=[60, 60; -20, 60], style(color=3)); connect(L.n, Ground.p) annotation (points=[60, 20; 60, -60; 20, -60], style(color=3)); connect(R2.n, L.n) annotation (points=[40, 0; 60, 0; 60, 20], style(color=3)); end Circuit1;end CircuitLib;
27. Oktober, 2004Anfang Präsentation
Modelle in Modelica
• Modelle in Modelica bestehen aus einer Beschreibung der Modellstruktur sowie einer Beschreibung der Einbettung in die Modellumgebung:
model Modellname Beschreibung der Modelleinbettung; equation Beschreibung der Modellstruktur;end Modellname;
27. Oktober, 2004Anfang Präsentation
Modellstruktur in Modelica• Die Modellstruktur in Modelica besteht entweder aus
Gleichungen, aus einer Beschreibung der Modelltopologie oder aber aus einer Mischung der zwei Modellstruktur-beschreibungsarten.
• Eine topologische Modellbeschreibung erfolgt graphisch durch das Einschleppen von Modellen aus Modell-bibliotheken, welche dann untereinander verbunden werden.
• Die gespeicherte Textversion des topologischen Modells besteht aus der Deklarationen der Untermodelle (Modellumgebung), der Deklaration der Verbindungen (Modellstruktur), sowie der Deklaration der graphischen Darstellungselemente (Annotation).
27. Oktober, 2004Anfang Präsentation
Modelltopologie in Modelica
Class name
Instance name
Modifier
Connection
Connector
model MotorDrive PI controller; Motor motor; Gearbox gearbox(n=100); Shaft Jl(J=10); Tachometer wl; equation connect(controller.out, motor.inp); connect(motor.flange , gearbox.a); connect(gearbox.b , Jl.a); connect(Jl.b , wl.a); connect(wl.w , controller.inp);end MotorDrive;
motor
controller
PIn=100
Jl=10
w l
w r
27. Oktober, 2004Anfang Präsentation
Widerstände in Modelica
Rivp vn
u
connector Pin Voltage v; flow Current i;end Pin;
model Resistor "Ideal resistor" Pin p, n; Voltage u; parameter Resistance R; equation u = p.v - n.v; p.i + n.i = 0; R*p.i = u;end Resistor;
Voltage
type ElectricPotential = Real (final quantity="ElectricPotential", final unit="V");type Voltage = ElectricPotential;
27. Oktober, 2004Anfang Präsentation
Ähnlichkeit zwischen Elementen
Rivp vn
u
model Resistor "Ideal resistor" Pin p, n; Voltage u; parameter Resistance R; equation u = p.v - n.v; p.i + n.i = 0; R*p.i = u;end Resistor;
model Capacitor "Ideal capacitor" Pin p, n; Voltage u; parameter Capacitance C; equation u = p.v - n.v; p.i + n.i = 0; C*der(u) = p.i;end Capacitor;
Civp vn
u
27. Oktober, 2004Anfang Präsentation
Teilmodelle und Erbeigenschaften
ivp vn
u
partial model OnePort Pin p, n; Voltage u; equation u = p.v - n.v; p.i + n.i = 0; end OnePort;
model Resistor "Ideal resistor" extends OnePort; parameter Resistance R; equation R*p.i = u;end Resistor;
model Capacitor "Ideal capacitor" extends OnePort; parameter Capacitance C; equation C*der(u) = p.i;end Capacitor;
ivp vn
u
R
ivp vn
u
C
27. Oktober, 2004Anfang Präsentation
Zerlegung und Abstraktion
planetary1=110/50
C4=0.12 C5=0.12
planetary2=110/50
C6=0.1
2
bearing2
C8=0.1
2
dem
ultip
lex
shaftS=2e-3
S
planetary3=120/44
C11=0.12
shaftS1=2e-3
S
C12=0.1
2
bearing1bearing4
Cou
rtes
y T
oyot
a T
ecno
-Ser
vice
27. Oktober, 2004Anfang Präsentation
Heterogene Modellierungsformalismen
inertialx
y
axis1
axis2
axis3
axis4
axis5
axis6r3Drive1
1
r3Motorr3ControlqdRef
1
S
qRef
1
S
k2
i
k1
i
qddRef cut joint
q: angleqd: angular velocity
qdd: angular acceleration
qd
tn
Jmotor=J
gear=i
spring=c
fric
=R
v0
Srel
joint=0
S
Vs
-
+diff
-
+pow er
emf
La=(2
50
/(2*D
*wm
))R
a=250
Rd2=100
C=0.004*D/w m
-
+OpI
Rd1=100
Ri=10
Rp1=200
Rp2=50
Rd4=100
hall2
Rd3=100
g1
g2
g3
hall1
g4
g5
rw
cut in
iRef
qd q
rate2
b(s)
a(s)
rate3
340.8
S
rate1
b(s)
a(s)
tacho1
PT1
Kd
0.03
w Sum
-
sum
+1
+1
pSum
-
Kv
0.3
tacho2
b(s)
a(s)
q qd
iRefqRef
qdRef
27. Oktober, 2004Anfang Präsentation
Referenzen
• Brück, D., H. Elmqvist, H. Olsson, and S.E. Mattsson (2002), “Dymola for Multi-Engineering Modeling and Simulation,” Proc. 2nd International Modelica Conference, pp. 55:1-8.
• Otter, M. and H. Elmqvist (2001), “Modelica: Language, Libraries, Tools, Workshop, and EU-Project RealSim,” Modelica web-site.
Top Related