daes, modelica - university of california, berkeley
Post on 09-Feb-2022
4 Views
Preview:
TRANSCRIPT
Equation-Based Object-Oriented Languages for
Acausal Modeling and Simulation
David Broman broman@eecs.berkeley.edu
EECS Department
University of California, Berkeley, USA
and
Linköping University, Sweden
Lecture 12a in EECS 144/244 University of California, Berkeley
April 17, 2013
Some of the slides are based OSMC tutorials and contributed by Peter Fritzson (Based on book and lecture nodes), David Broman, Emma Larsdotter Nilsson, Peter Bunus, Adrian Pop, Jan Brugård, Mohsen Torabzadeh-Tari, and Adeel Asghar. Copyright © Open Source Modelica Consortium.
2
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Agenda
Part I EOO Languages for CPS
Part III OpenModelica Demo
Part II Modelica Overview
Part IV Modelyze –
a research language
Platform 1
Physical Plant 2
Physical Plant 2
PhysicalInterface
Physical Plant 1
NetworkPlatform 2
Platform 3
PhysicalInterface
Sensor
Sensor
PhysicalInterfaceActuator
PhysicalInterface Actuator
Computation 3
Delay 1Computation 1
Computation 4Computation 2
Delay 2
3
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Part I EOO Languages for CPS
Platform 1
Physical Plant 2
Physical Plant 2
PhysicalInterface
Physical Plant 1
NetworkPlatform 2
Platform 3
PhysicalInterface
Sensor
Sensor
PhysicalInterfaceActuator
PhysicalInterface Actuator
Computation 3
Delay 1Computation 1
Computation 4Computation 2
Delay 2
4
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Cyber-Physical Systems (CPS)
Industrial Robots Power Plants Aircraft
5
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modeling and Simulating Cyber-Physical Systems
Physical system (the plant) Cyber system: Computation (embedded) + Networking
Sensors
Actuators
System
Model
Modeling
Equation-based model
Platform 1
Physical Plant 2
Physical Plant 2
PhysicalInterface
Physical Plant 1
NetworkPlatform 2
Platform 3
PhysicalInterface
Sensor
Sensor
PhysicalInterfaceActuator
PhysicalInterface Actuator
Computation 3
Delay 1Computation 1
Computation 4Computation 2
Delay 2
Various models of computation (MoC)
Physical system available?
Hardware-in-the-loop (HIL) simulation
Simulation with timing properties
Modeling
6
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented (EOO) Languages
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
7
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
objects (components)!
ports!
connections!
EOO model (textual)
Equation-Based Object-Oriented (EOO) Languages
EOO model (graphical)
8
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented (EOO) Languages
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
Acausality • At the equation-level u = R * i
• At the object connection level
9
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented (EOO) Languages
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
Acausality • At the equation-level u = R * i
• At the object connection level
acausal (non-causal)
Direction not determined at modeling time!
causal
Physical topology !is lost!
10
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented (EOO) Languages
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
Acausality • At the equation-level u = R * i
• At the object connection level
acausal (non-causal)
causal
11
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Equation-Based Object-Oriented (EOO) Languages
Equation-Based Object-Oriented
(EOO)
Domain-Specific Language (DSL)
• Primarily domain: Modeling of physical systems
Models and Objects
• Object in e.g., Java, C++: object = data + methods
• Multiple physical domains: e.g., mechanical, electrical, hydraulic
• Objects in EOO languages: object = data + equations
Acausality • At the equation-level u = R * i
• At the object connection level
• Modelica • VHDL-AMS • gPROMS • Modelyze • …
12
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Part II Modelica Overview
13
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is Modelica?
• Robotics • Automotive • Aircrafts • Satellites • Power plants • Systems biology
A language for modeling of complex physical systems
14
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is Modelica? A language for modeling of complex physical systems
Primary designed for simulation, but there are also other usages of models, e.g. optimization.
15
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is Modelica? A language for modeling of complex physical systems
i.e., Modelica is not a tool
Free, open language specification:
Available at: www.modelica.org
16
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica Tools
SimulationX by ITI GmbH
Dymola by Dassault Systemes
LMS Imagine.Lab AMESim by LMS
MapleSim by Maplesoft
MOSILAB by Fraunhofer FIRST
CyModelica by CyDesign Labs
OPTIMICA Studio by Modelon AB
MWorks by Suzhou Tongyuan
Wolfram SystemModeler by Wolfram
OpenModelica supported by OSMC
Jmodelica.org supported by Modelon
Modelicac (part of Scilab)
SimForge
Free Environments Commercial Environments
17
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is special about Modelica? Multi-Domain Modeling
18
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is special about Modelica?
Visual Acausal Component
Modeling
Multi-Domain Modeling
Acausal model (Modelica)
Causal block-based model (Simulink)
Keeps the physical structure!!
19
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
inertialxy
axis1
axis2
axis3
axis4
axis5
axis6
r3Drive1
1r3Motor
r3ControlqdRef1
S
qRef1
S
k2
i
k1
i
qddRef cut joint
q: angleqd: angular velocity
qdd: angular acceleration
qd
tn
Jmotor=J
gear=i
spring=c
fric=Rv0
Srel
joint=0
S
Vs
-
+diff
-
+pow er
emf
La=(250/(2*D*wm))
Ra=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
wSum
-
sum
+1
+1
pSum
-
Kv
0.3
tacho2
b(s)
a(s)
q qd
iRefqRef
qdRef
What is special about Modelica?
Visual Acausal Component
Modeling
Multi-Domain Modeling
Hierarchical system modeling
Courtesy of Martin Otter
20
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is special about Modelica?
Visual Acausal Component
Modeling
Multi-Domain Modeling
Typed Declarative Textual Language
A textual class-based language OO primary used for as a structuring concept
Behaviour described declaratively using • Differential algebraic equations (DAE) (continuous-time) • Event triggers (discrete-time)
class VanDerPol "Van der Pol oscillator model" Real x(start = 1) "Descriptive string for x”; Real y(start = 1) "y coordinate”; parameter Real lambda = 0.3; equation der(x) = y; der(y) = -x + lambda*(1 - x*x)*y; end VanDerPol;
Differential equations!!
Variable!declarations!!
21
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is special about Modelica?
Hybrid Modeling
Visual Acausal Component
Modeling
Multi-Domain Modeling
Typed Declarative Textual Language
time
Continuous-time
Discrete-time
Hybrid modeling = continuous-time + discrete-time modeling
22
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Translational
Position
Force
Linear momentum
Mechanical. Translational
Some Domains
Domain Type
Potential
Flow
Carrier
Modelica Library
Electrical
Voltage
Current
Charge
Electrical. Analog
Rotational
Angle
Torque
Angular momentum
Mechanical. Rotational
Magnetic
Magnetic potential
Magnetic flux rate
Magnetic flux
Hydraulic
Pressure
Volume flow
Volume
HyLibLight Heat
Temperature
Heat flow
Heat
HeatFlow1D
Chemical
Chemical potential
Particle flow
Particles
Under construction
Pneumatic
Presure
Mass flow
Air
PneuLibLight
23
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica Standard Library
24
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica in Autmotive Industry
25
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica in Avionics
26
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica in Power Generation GTX Gas Turbine
Hello
Courtesy of Siemens Industrial Turbomachinery AB
Developed by MathCore for Siemens
27
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Brief Modelica History
Modelica design group meetings • First meeting in fall 1996 • International group of people with expert knowledge in both
language design and physical modeling • Industry and academia
Modelica Language Versions
• v1.0 (1997), v2.0 (2002) v.2.2 (2005) v.3.0 (2007) 3.1 (2009) 3.2 (2010), 3.2 revision 1 (2012)
Modelica Association established 2000 • Open, non-profit organization
Modelica Conferences • 9 international conferences (2000-2012)
28
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Typical Simulation Process
29
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
A resistor equation: R*i = v;!
Acausal Modeling
The order of computations is not decided at modeling time
Acausal Causal
Causal possibilities: !"i := v/R; v := R*i; R := v/i;!
Visual Component Level
Equation Level
30
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Simple model - Hello World!
model HelloWorld "A simple equation" Real x(start=1); parameter Real a = -1; equation der(x)= a*x; end HelloWorld;
Equation: x� = - x Initial condition: x(0) = 1
Simulation in OpenModelica environment
0.5 1 1.5 2 0.2 0.4 0.6 0.8 1
simulate(HelloWorld, stopTime = 2) plot(x)
Name of model!
Continuous-time!variable !
Initial condition!
Parameter, constant!during simulation !
Differential equation !
31
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Differential Algebraic Equations
( )
constantsand/or parameters ofector vablesinput vari ofr vecto(t)
variablesalgebraic of vector)( variablesstate of vector)(
variablesstate ateddifferenti of vector)(ime t
,)(),(),(),( ,0
pu
tytxtx
t
ptutytxtxtf
=
model DAEexample Real x(start=0.9, fixed=true); Real y; equation der(y)+sin(x)= sin(time); x - y = exp(-0.9*x)*cos(y); end DAEexample;
General representation of DAEs:
Differentiated variable!
Force it to be the start value!Algebraic variable!
Built-in functions and global time variable!
Typically, the compiler transforms the DAE to an ODE before simulation, sometimes using an index reduction algorithms (more about this in lecture 12b).
32
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Textual and Graphical Models
AC
R=10
R1
L=0.1
L
G
L=1!R=100!
Used model (defined elsewhere)!Named component =model instance!
Modification of parameter value!
Enables later modification of component!
Connect equations!
33
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
AC
R=10
R1
L=0.1
L
G
L=1!R=100!
Equations and Inheritance
Inherits equations and !components from !TwoPin
Algebraic equation!
Differential equation!
Pin p, n and Reals v and i are copied to the subclass
Equations are copied as well.
34
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
AC
R=10
R1
L=0.1
L
G
L=1!R=100!
Connectors (Ports)
Connectors are instances !of a connector class.
35
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
AC
R=10
R1
L=0.1
L
G
L=1!R=100!
Connections and Flow Variables
Equation from flow variables:!L.n.i + AC.n.i + G.p.i = 0
Equations from potential variables: L.n.v = AC.n.v AC.n.v = G.p.v
Fundamental concept making acausal modeling work (simplified)
36
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Models and Equation Generation
R * i = v !L * der(i) = v !
Behavior equations
Resistor Inductor
Positive port Negative port Each port in electrical domain: i – flow variable (current) v – potential variable (voltage)
Modelica connect-equations
connect(VS.n,G.p)!connect(R.n,G.p) !
Port set for a3
{G.p,R.n,VS.n} !
R.n.v = G.p.v!VS.n.v = G.p.v!
Potential equations (generated)
G.p.i + R.n.i + VS.n.i = 0!
Sum-to-zero equation (generated)
37
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Abstraction and Composition
Abstracted model
SC is an instance of model (b)
(a) and (c) describes the same circuit
Same port (e.g. SC.n) can be seen as:
outside port inside port
VS.n.i + SC.n.i + G.p.i = 0!
SC.R.n.i - SC.n.i = 0!
38
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Hybrid Modeling
time
Continuous-time
Discrete changes in time
Hybrid modeling = continuous-time + discrete changes (events) (Using Modelica terminology)
Real x; Voltage v; Current i;
Events!
discrete Real x; Integer i; Boolean b;
• A point in time that is instantaneous, i.e., has zero duration • An event condition so that the event can take place • A set of variables that are associated with the event • Some behavior associated with the event,
e.g. conditional equations that become active or are deactivated at the event
39
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Event creation – when
when <conditions> then <equations> end when;
when-equations
Only dependent on time, can be scheduled in advance
Time event when time >= 10.0 then ... end when;
time event 1 event 2 event 3
Equations only active at event times
State event when sin(x) > 0.5 then ... end when;
Related to a state. Check for zero-crossing
40
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Reinit - discontinuous changes
model BouncingBall "the bouncing ball model" parameter Real g=9.81; //gravitational acc. parameter Real c=0.90; //elasticity constant Real height(start=10),velocity(start=0); equation der(height) = velocity; der(velocity)=-g; when height<0 then reinit(velocity, -c*velocity); end when; end BouncingBall;
The value of a continuous-time state variable can be instantaneously changed by a reinit-equation within a when-equation
Reinit ”assigns” continuous-time variable velocity a new value
Initial conditions
41
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica – large and complex
We have just “scratched on the surface of the language”
• Functions and algorithm sections • Arrays and matrices • Inner / outer variables (lookup in instance hierarchy) • Annotations • Loop constructs • Partial classes • Packages, blocks... And much more...
Examples of the features which has not been covered
42
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Part IV
Open Modelica Demo
43
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
4/24/13& 43&
Open Source Modelica Consortium (OSMC)
OSMC • Founded in 2007 in Linköping, Sweden • Seven founding organizations • Non-profit, non-governmental organization • Aim of developing and promoting the OpenModelica project • Non-commercial and commercial usage under the OSMC public license
44
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Part IV
Modelyze – a Research Language
45
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
What is Modelyze?
Modelyze (MODEL and analYZE)
Purpose: Research language – address the expressiveness and analyzability problem by making the language extensible
Novelty: Typed symbolic expressions
Small, simple, host language for embedding domain-specific languages (DSL) of different models of computation (MoC)
Key aspect: Both the DSL and models in the DSL are defined in Modelyze
Formal semantics for a core of the language. Proven type soundness for the core.
Gradually typed functional language (call-by-value)
Prototype implementation (interpreter). Evaluated for series of equation-based DSLs.
46
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Modelica Environment
Modelica Model
Model Library Model Library Model Library
Modelica Tool
Result (e.g., simulation)
Language Specification - Type checking - Collapsing the instance hierarchy - Connection Semantics - Simulation (Runtime)
47
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Language Specification - Type checking - Collapsing the instance hierarch
Modelyze Environment
Modelyze DSL Model
Model Library Model Library Model Library
Modelyze Tool
Result (e.g., simulation)
Language Specification - Type checking - Collapsing the instance hierarchy - Connection Semantics - Simulation (Runtime)
Library for using models - Connection Semantics - Simulation (Runtime)
Library for using models - Connection Semantics - Simulation (Runtime)
Library for using models - Connection Semantics - Simulation (Runtime)
48
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Pendulum (y position)!
Tension in the string!
String breaks (3.2 s)!Ball is flying freely!
Ball bounces on the floor!
Example DSL embedded in Modelyze
49
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Example DSL embedded in Modelyze
Function as model abstraction!
Initial Values! Two modes !
Unknowns!
Guarded Transition !
Differential equations !
Self transition, updating the velocity!
50
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
Conclusions
Thank you for listening!
EOO Languages are particularly good for physical modeling because of their acausal capability
Modelyze is an extensible research language for embedding equation-based languages.
Modelica is the current state-of-the-art EOO language. The fundamental formalism is DAEs.
Platform 1
Physical Plant 2
Physical Plant 2
PhysicalInterface
Physical Plant 1
NetworkPlatform 2
Platform 3
PhysicalInterface
Sensor
Sensor
PhysicalInterfaceActuator
PhysicalInterface Actuator
Computation 3
Delay 1Computation 1
Computation 4Computation 2
Delay 2
OpenModelica is a free Modelica environment that includes both compiler and a graphical modeling IDE.
51
Part I !EOO Languages!for CPS!
Part IIIOpenModelica!Demo!
Part IVModelyze – a!Research language!
broman@eecs.berkeley.edu
Part II !Modelica Overview!
References and Further Reading
• Sven Erik Mattsson, Hilding Elmqvist, and Martin Otter. Physical System Modeling with Modelica. Control Engineering Practice 6. Pages 501-510, 1998.
• Peter Fritzson. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley-IEEE Press, New York, 2004.
• Peter Fritzson, Peter Aronsson, Håkan Lundvall, Kaj Nyström, Adrian Pop, Levon Saldamli, and David Broman The OpenModelica Modeling, Simulation, and Software Development Environment. Simulation News Europe. Issue 44, Pages 8-16, ARGESIM, 2005
• David Broman, Peter Fritzson, and Sébastien Furic. Types in the Modelica Language. In Proceedings of the Fifth International Modelica Conference, pages 303-315, Vienna, Austria, 2006.
• David Broman and Jeremy G. Siek. Modelyze: a gradually typed host language for embedding equation-based modeling languages. Technical Report UCB/EECS-2012-173, EECS Department, University of California, Berkeley, June 2012.
See http://www.modelica.org for more information on Modelica, including the latest language specification.
top related