equation-based object-oriented languages for …€¢ gproms • modelyze • … ... variable!!! 21...

26
Equation-Based Object-Oriented Languages for Acausal Modeling and Simulation David Broman [email protected] 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 III OpenModelica Demo Part IV Modelyze – a Research language [email protected] 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 Physical Interface Physical Plant 1 Network Platform 2 Platform 3 Physical Interface Sensor Sensor Physical Interface Actuator Physical Interface Actuator Computation 3 Delay 1 Computation 1 Computation 4 Computation 2 Delay 2

Upload: dinhdiep

Post on 22-Apr-2018

219 views

Category:

Documents


3 download

TRANSCRIPT

Equation-Based Object-Oriented Languages for

Acausal Modeling and Simulation

David Broman [email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

Part II !Modelica Overview!

Part II Modelica Overview

13

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

Part II !Modelica Overview!

Modelica Standard Library

24

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

Part II !Modelica Overview!

Modelica in Autmotive Industry

25

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

Part II !Modelica Overview!

Modelica in Avionics

26

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

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!

[email protected]

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!

[email protected]

Part II !Modelica Overview!

Typical Simulation Process

29

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

Part II !Modelica Overview!

Part IV

Open Modelica Demo

43

Part I !EOO Languages!for CPS!

Part IIIOpenModelica!Demo!

Part IVModelyze – a!Research language!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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!

[email protected]

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.