Professional Documents
Culture Documents
Modelica
Modelica
for
Acausal Modeling and Simulation
Lecture 12a in EECS 144/244
University of California, Berkeley
David Broman
broman@eecs.berkeley.edu
EECS Department
University of California, Berkeley, USA
and
Agenda
broman@eecs.berkeley.edu
Part II
Modelica Overview
Part I
EOO Languages for CPS
Platform 1
Actuator
Physical
Interface
Physical Plant 2
Network
Physical
Interface
Platform 2
Sensor
Computation 1
Delay 1
Computation 4
Computation 2
Sensor
Platform 3
Physical
Interface
Delay 2
Computation 3
Physical Plant
Plant 12
Physical
Physical
Interface
Actuator
Part III
OpenModelica Demo
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part IV
Modelyze
a research language
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
3
broman@eecs.berkeley.edu
Part I
EOO Languages for CPS
Platform 1
Actuator
Physical
Interface
Physical Plant 2
Network
Physical
Interface
Platform 2
Sensor
Computation 1
Delay 1
Computation 4
Computation 2
Sensor
Platform 3
Physical
Interface
Delay 2
Computation 3
Physical Plant
Plant 12
Physical
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Physical
Interface
Actuator
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
Power Plants
Industrial Robots
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
broman@eecs.berkeley.edu
Aircraft
Part IV
Modelyze a!
Research language!
broman@eecs.berkeley.edu
Platform 1
Actuator
Physical
Interface
Physical Plant 2
Network
Physical
Interface
Platform 2
Sensor
Computation 1
Delay 1
Computation 4
Computation 2
Simulation with
timing properties
Various models of computation (MoC)
Sensor
Platform 3
Physical
Interface
Delay 2
Computation 3
Physical Plant
Plant 12
Physical
Model
Equation-based model
Hardware-in-the-loop
(HIL) simulation
Modeling
Physical
Interface
Actuator
Modeling
Physical system
available?
Sensors
System
Actuators
Physical system (the plant)
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part IV
Modelyze a!
Research language!
Domain-Specific
Language (DSL)
Primarily domain:
Modeling of physical
systems
Multiple physical domains:
e.g., mechanical, electrical,
hydraulic
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Equation-Based
Object-Oriented
(EOO)
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
connections!
Primarily domain:
Modeling of physical
systems
objects (components)!
Equation-Based
ports!
Object-Oriented
(EOO)
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
broman@eecs.berkeley.edu
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
8
broman@eecs.berkeley.edu
Primarily domain:
Modeling of physical
systems
Multiple physical domains:
e.g., mechanical, electrical,
hydraulic
Equation-Based
Object-Oriented
(EOO)
Acausality
At the equation-level
u=R*i
At the object connection level
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
Equation-Based
acausal (non-causal)
Object-Oriented
(EOO)
Acausality
causal
Part II !
Modelica
Overview!
Physical topology !
At the equation-level
u = Ris*lost!
i
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
10
broman@eecs.berkeley.edu
Primarily domain:
Modeling of physical
systems
Multiple physical domains:
e.g., mechanical, electrical,
hydraulic
Equation-Based
acausal (non-causal)
Object-Oriented
(EOO)
Acausality
causal
Part I !
EOO Languages!
for CPS!
broman@eecs.berkeley.edu
Primarily domain:
Modeling of physical
systems
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
At the equation-level
u=R*i
At the object connection level
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
11
Primarily domain:
Modeling of physical
systems
Multiple physical domains:
e.g., mechanical, electrical,
hydraulic
Modelica
VHDL-AMS
gPROMS
Modelyze
Part I !
EOO Languages!
for CPS!
broman@eecs.berkeley.edu
Equation-Based
Object-Oriented
(EOO)
Acausality
At the equation-level
u=R*i
At the object connection level
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
12
broman@eecs.berkeley.edu
Part II
Modelica Overview
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
13
What is Modelica?
broman@eecs.berkeley.edu
Robotics
Automotive
Aircrafts
Satellites
Power plants
Systems biology
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
14
What is Modelica?
broman@eecs.berkeley.edu
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
15
What is Modelica?
broman@eecs.berkeley.edu
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
16
Modelica Tools
broman@eecs.berkeley.edu
Commercial Environments
Free Environments
MapleSim by Maplesoft
SimForge
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
17
broman@eecs.berkeley.edu
Multi-Domain
Modeling
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
18
broman@eecs.berkeley.edu
Visual Acausal
Component
Modeling
Acausal model
(Modelica)
Causal
block-based
model
(Simulink)
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
19
Multi-Domain
Modeling
k2
i
qddRef
qdRef
Kd
qdRef
qRef
k1
cut joint
r3Control
r3Motor
qd
q: angle
qd: angular velocity
qdd: angular acceleration
0.3
sum
w Sum
+1
+1
rate2
rate3
b(s)
340.8
a(s)
joint=0
spring=c
iRef
axis4
gear=i
fric=Rv0
Kv
axis5
rel
Jmotor=J
pSum
Visual Acausal
Component
Modeling
0.03
qRef
axis6
tn
r3Drive1
broman@eecs.berkeley.edu
axis3
tacho2
b(s)
b(s)
a(s)
a(s)
tacho1
PT1
axis2
g5
qd
C=0.004*D/w m
Rd1=100
Rd2=100
cut in
Rp1=200
Ri=10
diff
+
pow er
OpI
Rp2=50
rate1
axis1
Vs
Rd4=100
g1
Rd3=100
emf
iRef
g3
hall2
Part I !
EOO Languages!
for CPS!
y
x
inertial
hall1
Part II !
Modelica
Overview!
g2
qd
g4
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
20
broman@eecs.berkeley.edu
Visual Acausal
Component
A textual class-based language
Modeling
OO primary used for as a structuring concept
Typed
Declarative
Textual Language
Part I !
EOO Languages!
for CPS!
Differential equations!
!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
21
broman@eecs.berkeley.edu
Visual Acausal
Component
Modeling
Hybrid modeling =
continuous-time + discrete-time modeling
Continuous-time
Discrete-time
Typed
Declarative
Textual Language
Part I !
EOO Languages!
for CPS!
time
Part II !
Modelica
Overview!
Hybrid
Modeling
Part IV
Modelyze a!
Research language!
Part III
OpenModelica!
Demo!
22
Some Domains
broman@eecs.berkeley.edu
Domain
Type
Potential
Flow
Carrier
Modelica
Library
Electrical
Voltage
Current
Charge
Electrical.
Analog
Position
Force
Linear momentum
Mechanical.
Translational
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
Presure
Mass flow
Air
Translational
Pneumatic
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
PneuLibLight
Part IV
Modelyze a!
Research language!
23
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
broman@eecs.berkeley.edu
Part IV
Modelyze a!
Research language!
24
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
broman@eecs.berkeley.edu
Part IV
Modelyze a!
Research language!
25
Modelica in Avionics
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
broman@eecs.berkeley.edu
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
26
broman@eecs.berkeley.edu
Developed
by MathCore
for Siemens
Hello
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
27
broman@eecs.berkeley.edu
Modelica Conferences
9 international conferences (2000-2012)
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
28
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
broman@eecs.berkeley.edu
Part IV
Modelyze a!
Research language!
29
Acausal Modeling
broman@eecs.berkeley.edu
Causal
Visual
Component
Level
Equation
Level
Causal possibilities:
i := v/R;
v := R*i;
R := v/i;!
A resistor equation:
R*i = v;!
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
!"
Part IV
Modelyze a!
Research language!
Part III
OpenModelica!
Demo!
30
Name of model!
broman@eecs.berkeley.edu
Initial condition!
Continuous-time!
variable !
Parameter, constant!
during simulation !
Differential equation !
1
0.8
simulate(HelloWorld, stopTime = 2)
plot(x)
0.6
0.4
0.2
0.5
Part I !
EOO Languages!
for CPS!
1.5
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
31
0 = f t , x (t ), x(t ), y (t ), u (t ), p
Force it to be the
start value!
Algebraic variable!
Differentiated
variable!
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;
t
time
x (t ) vector of differentiated state variables
x(t ) vector of state variables
y (t ) vector of algebraic variables
u (t)
broman@eecs.berkeley.edu
Part II !
Modelica
Overview!
Part IV
Modelyze a!
Research language!
Part III
OpenModelica!
Demo!
32
broman@eecs.berkeley.edu
R1
R=10
R=100!
L
L=1!
L=0.1
A
C
Enables later
modification of
component!
Named component =
model instance!
Modification of
parameter value!
Connect
equations!
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
33
broman@eecs.berkeley.edu
R1
Pin p, n and
Reals v and i
are copied to the
subclass
R=10
R=100!
L
L=1!
L=0.1
A
C
Equations are
copied as well.
G
Differential equation!
Algebraic equation!
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part IV
Modelyze a!
Research language!
Part III
OpenModelica!
Demo!
34
Connectors (Ports)
broman@eecs.berkeley.edu
R1
R=10
R=100!
L
L=1!
L=0.1
A
C
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
35
broman@eecs.berkeley.edu
R1
R=10
R=100!
L
L=1!
L=0.1
A
C
Fundamental
concept making
acausal modeling
work (simplified)
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
36
Negative port
broman@eecs.berkeley.edu
Behavior equations
L * der(i) = v !
Inductor
Part I !
EOO Languages!
for CPS!
R * i = v !
Resistor
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
37
broman@eecs.berkeley.edu
Same port
(e.g. SC.n)
can be seen
as:
SC is an instance
of model (b)
inside port
outside port
Abstracted model
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
SC.R.n.i - SC.n.i = 0!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
38
Hybrid Modeling
broman@eecs.berkeley.edu
Discrete changes
discrete
in time
time
Events!
Real x;
Integer i;
Boolean b;
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
39
broman@eecs.berkeley.edu
when-equations
when <conditions> then
<equations>
end when;
event 1
event 2
event 3
time
Time event
State event
Part II !
Modelica
Overview!
Part IV
Modelyze a!
Research language!
40
broman@eecs.berkeley.edu
Reinit assigns
continuous-time variable
velocity a new value
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Initial conditions
Part IV
Modelyze a!
Research language!
41
broman@eecs.berkeley.edu
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
42
broman@eecs.berkeley.edu
Part IV
Open Modelica Demo
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
43
Part I !
EOO Languages!
4/24/13&
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
43&
44
broman@eecs.berkeley.edu
Part IV
Modelyze a Research Language
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
45
What is Modelyze?
broman@eecs.berkeley.edu
Modelyze
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
46
Modelica Environment
broman@eecs.berkeley.edu
Model
Model
Model
Library
Library
Library
Result
(e.g., simulation)
Modelica
Tool
Modelica Model
Language Specification
- Type checking
- Collapsing the instance hierarchy
- Connection Semantics
- Simulation (Runtime)
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
47
Modelyze Environment
broman@eecs.berkeley.edu
Model
Model
Model
Library
Library
Library
Part I !
EOO Languages!
for CPS!
Result
(e.g., simulation)
Modelyze
Tool
Modelyze DSL
Model
Part II !
Modelica
Overview!
LanguageSpecification
Specification
Language
Typechecking
checking
--Type
Collapsingthe
theinstance
instancehierarchy
hierarch
--Collapsing
- Connection Semantics
- Simulation (Runtime)
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
48
Pendulum (y position)!
String breaks (3.2 s)!
Ball is flying freely!
Ball bounces on the
floor!
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
49
Function as
model abstraction!
Unknowns!
Initial Values!
Two modes !
Guarded
Transition !
Differential equations !
Self transition,
updating the velocity!
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
50
Conclusions
broman@eecs.berkeley.edu
Platform 1
Actuator
Physical
Interface
Physical Plant 2
Network
Physical
Interface
Platform 2
Sensor
Computation 1
Delay 1
Computation 4
Computation 2
Sensor
Platform 3
Physical
Interface
Delay 2
Computation 3
Physical Plant
Plant 12
Physical
Physical
Interface
Actuator
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!
51
broman@eecs.berkeley.edu
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, Hkan Lundvall, Kaj Nystrm, 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 Sbastien 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.
Part I !
EOO Languages!
for CPS!
Part II !
Modelica
Overview!
Part III
OpenModelica!
Demo!
Part IV
Modelyze a!
Research language!