34
Jan Brug Jan Brugård rd MathCore Engineering AB [email protected] David Broman David Broman Linköping University Department of Computer and Information Science [email protected] Modelica Tutorial – Modeling and Simulation with OpenModelica and MathModelica 2 Copyright © Peter Fritzson , David Broman, and Jan Brugård Part I Introduction and demo example Part II Overview of environments Part III Modelica language and textual modeling Part IV Graphical modeling and the standard library [email protected] [email protected] Agenda Part I Introduction to Modelica and a demo example Part II Modelica environments Part III Modelica language concepts and textual modeling Part IV Graphical modeling and the Modelica standard library

Modelica Tutorial – Modeling and Simulation with OpenModelica

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modelica Tutorial – Modeling and Simulation with OpenModelica

Jan BrugJan BrugåårdrdMathCore Engineering AB

[email protected]

David BromanDavid BromanLinköping University

Department of Computer and Information Science [email protected]

Modelica Tutorial –Modeling and Simulation with

OpenModelica and MathModelica

2

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Agenda

Part I

Introduction to Modelica and a demo example

Part II

Modelica environments

Part III

Modelica language concepts and textual modeling

Part IV

Graphical modeling and the Modelica standard library

Page 2: Modelica Tutorial – Modeling and Simulation with OpenModelica

3

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Part I

Introduction to Modelica and a demo example

4

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is Modelica?

• Robotics

• Automotive

• Aircrafts

• Satellites

• Power plants

• Systems biology

A language for modeling of complex physical systems

Page 3: Modelica Tutorial – Modeling and Simulation with OpenModelica

5

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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.

6

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is Modelica?

A language for modeling of complex physical systems

i.e., Modelica is not a tool

Free, open languagespecification:

There exist several free and commercialtools, for example:

• OpenModelica from OSMC

• MathModelica by MathCore• Dymola by Dassault systems / Dynasim• SimulationX by ITI• MapleSim by MapleSoft

Available at: www.modelica.org

Page 4: Modelica Tutorial – Modeling and Simulation with OpenModelica

7

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is special about Modelica?

Multi-DomainModeling

8

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is special about Modelica?

Visual AcausalComponent

Modeling

Multi-DomainModeling

Acausal model(Modelica)

Causalblock-basedmodel(Simulink)

Keeps the physical structure

Page 5: Modelica Tutorial – Modeling and Simulation with OpenModelica

9

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

inertial

xy

axis1

axis2

axis3

axis4

axis5

axis6

r3Drive1

1

r3Motorr3ControlqdRef

1

S

qRef

1

S

k2

i

k1

i

qddRef cut joint

q: angle

qd

tn

Jmotor=J

gear=i

spring=c

fric

=Rv0

S

rel

joint=0

S

Vs

-

+diff

-

+pow er

emf

La=(2

50/(2

*D*w

m))

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

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

Courtesy of Martin Otter

What is special about Modelica?

Visual AcausalComponent

Modeling

Multi-DomainModeling

Hierarchical systemmodeling

Courtesy of Martin Otter

10

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is special about Modelica?

Visual AcausalComponent

Modeling

Multi-DomainModeling

TypedDeclarativeTextual Language

A textual class-based languageOO 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

Page 6: Modelica Tutorial – Modeling and Simulation with OpenModelica

11

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

What is special about Modelica?

HybridModeling

Visual AcausalComponent

Modeling

Multi-DomainModeling

TypedDeclarativeTextual Language

time

Continuous-time

Discrete-time

Hybrid modeling = continuous-time + discrete-time modeling

12

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Coming up in part III

TypedDeclarativeTextual Language

HybridModeling

Page 7: Modelica Tutorial – Modeling and Simulation with OpenModelica

13

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Coming up in part IV

Visual AcausalComponent

Modeling

Multi-DomainModeling

14

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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)

• 3.0 released September 2007 (latest)

Modelica Association established 2000• Open, non-profit organization

Modelica Conferences

• 6 international conferences (2000-2008)

• The 7th International Modelica conference September 20-22, Como, Italy

Page 8: Modelica Tutorial – Modeling and Simulation with OpenModelica

15

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.comIntroductory example

16

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Part II

Modelica environments

Page 9: Modelica Tutorial – Modeling and Simulation with OpenModelica

17

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

• Dynasim (Dassault Systemes)

• Sweden

• First Modelica tool on the market

• Main focus on automotive industry

• www.dynasim.com

Dymola

18

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.comSimulation X

• ITI

• Germany

• Mechatronic systems

• www.simulationx.com

Page 10: Modelica Tutorial – Modeling and Simulation with OpenModelica

19

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.comMapleSim

• Maplesoft

• Canada

• Latest Modelica tool on the market

• Integrated with Maple

• www.maplesoft.com

20

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.comOpenModelica

• Open Source Modelica Consortium (OSMC)

• Sweden

• Open source

• www.openmodelica.org

Page 11: Modelica Tutorial – Modeling and Simulation with OpenModelica

21

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

MathModelica

• MathCore

• Sweden

• Released 2006

• General purpose

• Mathematica connection

• www.mathcore.com

22

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

• Advanced Interactive Modelica compiler (OMC)• Supports parts of the Modelica Language

• Basic environment for creating models• OMShell – an interactive command handler

• OMNotebook – a literate programming notebook

• MDT – an advanced textual environment in Eclipse

2/14/2009 22PELAB - Linköping University

OpenModelica

Page 12: Modelica Tutorial – Modeling and Simulation with OpenModelica

23

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Founded Dec 4, 2007

Industrial members• Bosch-Rexroth AG, Germany• ABB Corporate Research AB, Sweden• Siemens Industrial Turbomachinery, Sweden• Equa Simulation AB, Sweden• TLK Thermo, Germany • VTT, Finland• MostforWater, Belgium• MapleSoft, Canada, • Emmeskay Inc., USA• IFP, Paris, France• MathCore Engineering AB

Open-source community services• Website and Support Forum

• Version-controlled source base

• Bug database

• Development courses

• www.openmodelica.org

Code Statistics

• Linköping University, Sweden

• Technical Univ of Hamburg-Harburg, Germany• Technical Univ of Braunschweig, Germany• Université Laval, Canada• University of Queensland, Australia• Griffith University, Australia• Politecnico di Milano, Italy

Academic members

Open Source Modelica Consortium

24

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

MathModelica Components

Modeling

Documentation Analysis

Simulation

Page 13: Modelica Tutorial – Modeling and Simulation with OpenModelica

25

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

MathModelica Editions

Lite

Ideal for small student projects. It is free for academic and personal use, but not available for industry.

Runs with, but is not part of OpenModelica

System Designer

Suited for modeling and simulation projects in industry and academia.

Stand-alone

System Designer Professional

Targeted at research in industry and academia, offering unparalleled possibilities for analyzing results.

Includes a tight Mathematica connection

26

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Part III

Modelica language concepts and textual modeling

HybridModeling

TypedDeclarativeTextual Language

Page 14: Modelica Tutorial – Modeling and Simulation with OpenModelica

27

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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

28

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Typical Simulation Process

Page 15: Modelica Tutorial – Modeling and Simulation with OpenModelica

29

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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’ = - xInitial 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

30

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Differential Algebraic Equations

( )

constantsand/or parameters ofector v

ablesinput vari ofr vecto(t)

variablesalgebraic of vector)(

variablesstate of vector)(

variablesstate ateddifferenti of vector)(

ime t

,)(),(),(),( ,0

p

u

ty

tx

tx

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:

Informally: ODE + algebraic equations = DAE

Differentiated variable

Force it to be thestart value

Algebraic variable

Algebraic equation

Built-in functions and global time variable

Typically, the compiler transforms the DAE to an ODE before simulation, sometimes using an index reduction algorithms.

Page 16: Modelica Tutorial – Modeling and Simulation with OpenModelica

31

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Textual and Graphical Models

AC

R=10

R1

L=0.1

L

G

L=1R=100

Used model (defined elsewhere)

Named component =model instance

Modification of parameter value

Enables later modification of component

Connect equations

32

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

AC

R=10

R1

L=0.1

L

G

L=1R=100

Equations and Inheritance

Inherits equations and

components from

TwoPin

Algebraic equation

Differential equation

Pin p, n andReals v and i

are copied to the subclass

Equations are copied as well.

Page 17: Modelica Tutorial – Modeling and Simulation with OpenModelica

33

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

AC

R=10

R1

L=0.1

L

G

L=1R=100

Connectors (Ports)

Connectors are instances

of a connector class.

34

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

AC

R=10

R1

L=0.1

L

G

L=1R=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)

Page 18: Modelica Tutorial – Modeling and Simulation with OpenModelica

35

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Hybrid Modeling

time

Continuous-time

Discrete-time

Hybrid modeling = continuous-time + discrete-time modeling

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

36

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Event creation – if

model Diode "Ideal diode"

extends TwoPin;

Real s;

Boolean off;

equation

off = s < 0;

if off then

v=s

else

v=0;

end if;

i = if off then 0 else s;

end Diode;

if <condition> then<equations>

elseif <condition> then<equations>

else<equations>

end if;

if-equations, if-statements, and if-expressions

False if s<0

If-equation choosingequation for v

If-expression

Page 19: Modelica Tutorial – Modeling and Simulation with OpenModelica

37

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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;

timeevent 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

38

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Generating Repeated Events

The call sample(t0,d) returns

true and triggers events at times t0+i*d, where i=0,1, …

model SamplingClock

Integer i;

discrete Real r;

equation

when sample(2,0.5) then

i = pre(i)+1;

r = pre(r)+0.3;

end when;

end SamplingClock;

time

sample(t0,d)

false

true

t0 t0+d t0+2d t0+3d t0+4d

Variables need to be discrete

Creates an event after 2 s, then each 0.5 s

pre(...) takes the previous value before the event.

Page 20: Modelica Tutorial – Modeling and Simulation with OpenModelica

39

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.comReinit - 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

40

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

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

Page 21: Modelica Tutorial – Modeling and Simulation with OpenModelica

41

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Exercise 2.1 Simulate Bouncing Ball

• Open OpenModelica OMNotebook

• Open file ”bouncingball.onb”

• Each cell is evaluated by first clicking on an input cell and then pressing <shift>-<enter>. Do this in order for each of the cells below. When the finial cell is evaluated a plot of the height variable should be shown in the notebook.

• b) Change the gravitational acceleration to the one on the moon.Change the simulation time to 25 seconds. Evaluate each cell again and plot the result.

42

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Exercise 2.2 Bouncing Ball with Stairs

• Move the the model back to earth again...

• Assume that we shall simulate a ball falling down a staircase in a house.

• Each step has a heigth of 0.2m and a length of 0.3m. The ball ismoving in the x direction with a constant speed of 1 m/s. The height between the groundfloor and the first floor is 3m. The ball is dropped 1m above the first floor and 2m from the staircase.

Task : After how long time does the ball first hit the groundfloor?

Tips: Plot two variables x and y:

plot({x,y});

Page 22: Modelica Tutorial – Modeling and Simulation with OpenModelica

43

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Part IV

Graphical modeling and the Modelica standard library

Visual AcausalComponent

Modeling

Multi-DomainModeling

44

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Building an Electric Circuit

Page 23: Modelica Tutorial – Modeling and Simulation with OpenModelica

45

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Building an Electric Circuit

46

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Building an Electric Circuit

Page 24: Modelica Tutorial – Modeling and Simulation with OpenModelica

47

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Translational Position Force Linear momentumMechanical.

Translational

Some Other Domains

Domain Type

Potential Flow Carrier Modelica Library

Electrical Voltage Current ChargeElectrical.

Analog

Rotational Angle TorqueAngular

momentum

Mechanical.

Rotational

MagneticMagnetic potential

Magnetic flux rate

Magnetic flux

Hydraulic Pressure Volume flow Volume HyLibLight

Heat Temperature Heat flow Heat HeatFlow1D

ChemicalChemical potential

Particle flow ParticlesUnder

construction

Pneumatic Presure Mass flow AirPneuLibLight

48

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica Standard Library

Page 25: Modelica Tutorial – Modeling and Simulation with OpenModelica

49

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica Standard Library

50

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Blocks

Page 26: Modelica Tutorial – Modeling and Simulation with OpenModelica

51

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Electrical

52

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica Standard Library

Page 27: Modelica Tutorial – Modeling and Simulation with OpenModelica

53

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica Standard Library

54

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica Standard Library

Page 28: Modelica Tutorial – Modeling and Simulation with OpenModelica

55

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Other Libraries

• Bond graphs

• Magnetic

• Systems biology

• Hydraulics

• Pneumatics

• Powertrain

• Petri Nets

• Etc…

56

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica in Autmotive Industry

Page 29: Modelica Tutorial – Modeling and Simulation with OpenModelica

57

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica in Avionics

58

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica in Power Generation

Page 30: Modelica Tutorial – Modeling and Simulation with OpenModelica

59

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Modelica in Biomechanics

60

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Exercise 3.1

• Draw the DCMotor model using the graphic connection editor using

models from the following Modelica libraries: Mechanics.Rotational,

Electrical.Analog.Basic,

Electrical.Analog.Sources

J

emf u

G

R L • Simulate it for 15s and plot the variables for the outgoing rotational speed on the inertia axis and the voltage on the voltage source (denoted u in the figure) in the same plot.

Page 31: Modelica Tutorial – Modeling and Simulation with OpenModelica

61

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Optional Exercise 3.2

• If there is enough time: Add a torsional spring to the outgoingshaft and another inertia element. Simulate again and see the results. Adjust some parameters to make a rather stiff spring.

62

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Optional Exercise 3.3

• If there is enough time: Add a PI controller to the system and try to control the rotational speed of the outgoing shaft. Verify the result using a step signal for input. Tune the PI controller by changing its

parameters in MathModelica.

Page 32: Modelica Tutorial – Modeling and Simulation with OpenModelica

63

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Live example

• Building a component with icon

64

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Optional Exercise 3.4

• Make a component of the model in Exercise 2.2, and use it when

building the model in exercise 2.3.

Replace with component

Page 33: Modelica Tutorial – Modeling and Simulation with OpenModelica

65

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Learn more…

• Modelica Association• www.modelica.org

• OpenModelica• www.openmodelica.org

• MathModelica• www.mathcore.com,

[email protected]

• Books • Principles of Object Oriented Modeling and Simulation with

Modelica 2.1, Peter Fritzson

• Introducción al Modelado y Simulación de Sistemas Técnicos y Físicos con Modelica, Peter Fritzson

• Introduction to Modelica, Michael Tiller

66

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Summary

HybridModeling

Visual AcausalComponent

Modeling

Multi-DomainModeling

TypedDeclarativeTextual Language Thanks for listening!

Page 34: Modelica Tutorial – Modeling and Simulation with OpenModelica

67

Copyright © Peter Fritzson , David Broman, and Jan Brugård

Part IIntroduction anddemo example

Part IIOverview of environments

Part IIIModelica language and textual modeling

Part IVGraphical modelingand the standard library

[email protected]@mathcore.com

Acknowledgements and Copyrights

• If you want to use the Powerpoint version of these slides in your owncourse, send an email to: [email protected], [email protected], or [email protected]

• The slides were created by David Broman, Jan Brugård, Peter Fritzson, and Emma Larsdotter Nilsson,

• Some of the figures in this tutorial are adapted with permission from Peter Fritzson’s book ”Principles of Object Oriented Modeling and Simulation with Modelica 2.1”, copyright Wiley-IEEE Press

• Some examples and figures are reproduced with permission from Modelica Association, Martin Otter, Hilding Elmqvist, and MathCore