principles of objectprinciples of object- …arupa54/modelica/oo_modelica_course...title microsoft...

22
1 Peter Fritzson Peter Fritzson Principles of Object Principles of Object-Oriented Oriented Modeling and Simulation Modeling and Simulation with Modelica with Modelica Peter Fritzson Peter Fritzson Linköping University, [email protected] Mohsen Torabzadeh Mohsen Torabzadeh-Tari Tari Linköping University, [email protected] Martin Sjölund Martin Sjölund Linköping University, [email protected] Slides Slides Based on book and lecture notes by Peter Fritzson Contributions 2004-2005 by Emma Larsdotter Nilsson, Peter Bunus Contributions 2007-2008 by Adrian Pop, Peter Fritzson Contributions 2009 by David Broman, Jan Brugård, Mohsen Torabzadeh-Tari, Peter Fritzson Contributions 2010 by Mohsen Torabzadeh-Tari, Peter Fritzson 2010-10-13 Course at Linköping University Course Based on Book, 2004 Course Based on Book, 2004 Peter Fritzson Principles of Object Oriented Modeling and Simulation with Modelica 2.1 Wiley-IEEE Press 940 pages pelab 2 Peter Fritzson Copyright Peter Fritzson Copyright © Open Source Modelica Consortium

Upload: duonganh

Post on 10-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1

Peter FritzsonPeter Fritzson

Principles of ObjectPrinciples of Object--OrientedOrientedModeling and SimulationModeling and Simulation

with Modelicawith ModelicaPeter FritzsonPeter Fritzson

Linköping University, [email protected]

Mohsen TorabzadehMohsen Torabzadeh--TariTariLinköping University, [email protected]

Martin SjölundMartin SjölundLinköping University, [email protected]

SlidesSlidesBased on book and lecture notes by Peter FritzsonContributions 2004-2005 by Emma Larsdotter Nilsson, Peter BunusContributions 2007-2008 by Adrian Pop, Peter FritzsonContributions 2009 by David Broman, Jan Brugård, Mohsen Torabzadeh-Tari, Peter FritzsonContributions 2010 by Mohsen Torabzadeh-Tari, Peter Fritzson

2010-10-13 Course at Linköping University

Course Based on Book, 2004Course Based on Book, 2004

Peter FritzsonPrinciples of Object Oriented Modeling and Simulation with Modelica 2.1

Wiley-IEEE Press

940 pages

pelab2 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

2

Outline Day 1Outline Day 1

Part I

Introduction to Modelica and a demo example

Part IIModelica environments

demo example

Part IIIModelica language concepts

Part IVGraphical modeling and the

pelab3 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

and textual modeling Modelica standard library

Acknowledgements, Usage, CopyrightsAcknowledgements, Usage, Copyrights

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

• Thanks to Emma Larsdotter Nilsson for contributions to the layout of these slides to Peter Bunus Adrian Pop Davidlayout of these slides, to Peter Bunus, Adrian Pop, David Broman, Jan Brugård, Mohsen Torabzadeh-Tari for contributions.

• Most examples, figures and much text in this course 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 reproduced with permission from

pelab4 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

p g p pModelica Association, Martin Otter, Hilding Elmqvist, and MathCore

• Modelica Association: www.modelica.org• OpenModelica: www.openmodelica.org

3

Software InstallationSoftware Installation

• Start the software installation

• Install OpenModelica-1.5.msi and simForge (e.g.

SimForge-0.9.RC2.jar) from the USB Stick

• (If you have a Mac or Linux computer, install

pelab5 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

( y pOpenModelica-1.5.0)

OutlineOutline

• Introduction to Modeling and Simulation

• Modelica - The next generation modeling and Simulation Languageg g

• Modeling and Simulation Environments and OpenModelica

• Classes

• Components, Connectors and Connections

• Equations

pelab6 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

q

• Discrete Events and Hybrid Systems

• Algorithms and Functions

• Demonstrations

4

Why Modeling & Simulation ?Why Modeling & Simulation ?

• Increase understanding of complex systems

• Design and optimization

• Virtual prototyping

• VerificationBuild more complex systems

pelab7 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

What is a system?What is a system?

• A system is an object or collection of objects whose properties we want to study

N t l d tifi i l t• Natural and artificial systems

• Reasons to study: curiosity, to build it

Collector

pelab8 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Storage tank

PumpCold water

Hot water

Electricity

Heater

5

Examples of Complex SystemsExamples of Complex Systems

• Robotics

• Automotive

• Aircrafts

• Satellites

• Biomechanics

• Power plants

• Hardware-in-the-loop, real-time simulation

pelab9 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

ExperimentsExperiments

An experiment is the process of extracting information from a system by exercising its inputs

Problems• Experiment might be too expensive• Experiment might be too dangerous• System needed for the experiment might not yet exist

pelab10 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

6

Model conceptModel concept

A model of a system is anything an experiment can be applied to in order to answer questions about that system

Kinds of models:• Mental model – statement like “a person is reliable”• Verbal model – model expressed in words• Physical model – a physical object that mimics the system• Mathematical model – a description of a system where

the relationships are expressed in mathematical form – a

pelab11 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

p pvirtual prototype

• Physical modeling – also used for mathematical models built/structured in the same way as physical models

SimulationSimulation

A simulation is an experiment performed on a model

Examples of simulations:• Industrial process – such as steel or pulp

manufacturing, study the behaviour under different operating conditions in order to improve the process

• Vehicle behaviour – e.g. of a car or an airplane, for operator training

• Packet switched computer network – study behaviour

pelab12 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Packet switched computer network study behaviour under different loads to improve performance

7

Reasons for SimulationReasons for Simulation

• Suppression of second-order effects• Experiments are too expensive, too dangerous, or

the system to be investigated does not yet existthe system to be investigated does not yet exist• The time scale is not compatible with experimenter

(Universe, million years, …)

• Variables may be inaccessible.

• Easy manipulation of models

pelab13 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• Suppression of disturbances

Dangers of SimulationDangers of Simulation

Falling in love with a modelThe Pygmalion effect (forgetting that model is not the real world, e.g. introduction of foxes to hunt rabbits in Australia), g )

Forcing reality into the constraints of a modelThe Procrustes effect (e.g. economic theories)

Forgetting the model’s level of accuracySimplifying assumptions

pelab14 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

8

Building Models Based on KnowledgeBuilding Models Based on Knowledge

System knowledge• The collected general experience in relevant domains

• The system itself• The system itself

Specific or generic knowledge• E.g. software engineering knowledge

pelab15 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Kinds of Mathematical ModelsKinds of Mathematical Models

• Dynamic vs. Static models

• Continuous-time vs. Discrete-time dynamic modelsy

• Quantitative vs. Qualitative models

pelab16 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

9

Dynamic vs. Static ModelsDynamic vs. Static Models

A dynamic model includes time in the model

A static model can be defined without involving time

Resistor voltage – static system

Capacitor voltage - dynamic

Input currentpulse

pelab17 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

time

ContinuousContinuous--Time vs.Time vs.DiscreteDiscrete--Time Dynamic ModelsTime Dynamic Models

Continuous-time models may evolve their variable values continuously during a time period

Discrete-time variables change values a finite number of timesgduring a time period

Continuous

Discrete

pelab18 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

time

10

Quantitative vs. Qualitative ModelsQuantitative vs. Qualitative Models

Results in qualitative dataVariable values cannot be represented numerically

Mediocre = 1, Good = 2, Tasty = 3, Superb = 4

Good

Tasty

Superb

pelab19 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Quality of food in a restaurant according to inspections at irregular points in time

time

Mediocre

Using Modeling and SimulationUsing Modeling and Simulationwithin the Product Designwithin the Product Design--VV

Level of Abstraction

Experience Feedback

Specification

Design

DesignRefinement

Component erification

Subsystem level integration andverification

Subsystem level integration testcalibration and verification

Product verification anddeployment

Maintenance

Detailed feature design andimplementation

Architectural design and system functional design

Preliminary feature design

Systemrequirements

Verification

Integration

Calibration

pelab20 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Component verification

Realization

implementation

Documentation, Version and Configuration Management

11

Principles of Graphical EquationPrinciples of Graphical Equation--Based ModelingBased Modeling

• Each icon represents a physical componenti.e. Resistor, mechanical Gear Box, Pump

• Composition lines represent the actual• Composition lines represent the actual physical connections i.e. electrical line, mechanical connection, heat flow

• Variables at the interfaces describe interaction with other component

• Physical behavior of a component isdescribed by equations

Connection

Component 1

Component 3

Component 2

pelab21 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

described by equations

• Hierarchical decomposition of components

axis5

axis6

r3Drive1

1

r3Motorr3ControlqdRef

1

S

qRef

1

S

k2

i

k1

i

qddRef cut joint

l

qd

tn

Application Example Application Example –– Industry RobotIndustry Robot

axis1

axis2

axis3

axis4Jmotor=J

gear=i

spring=c

fric

=Rv0

Srel

joint=0

S

- -

La=(250/(2*R

a=250

Rd2=100

C=0.004*D/w mRd1=100

Ri=10

Rp1=200

Rp2

=50

g5

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

pelab22 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

inertialx

y

Vs

+diff

+pow er

emf

*D*w

m))

-

+OpI

Rd4=100

hall2

Rd3

=100

g1

g2

g3

hall1

g4

rw

qd q

Srel = n*transpose(n)+(identity(3)- n*transpose(n))*cos(q)-skew(n)*sin(q);wrela = n*qd;zrela = n*qdd;Sb = Sa*transpose(Srel);r0b = r0a;vb = Srel*va;wb = Srel*(wa + wrela);ab = Srel*aa;zb = Srel*(za + zrela + cross(wa, wrela));

Courtesy of Martin Otter

12

GTX Gas Turbine Power Cutoff MechanismGTX Gas Turbine Power Cutoff Mechanism

pelab23 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Hello

Courtesy of Siemens Industrial Turbomachinery AB

Developed by MathCore for Siemens

Modelica in Automotive IndustryModelica in Automotive Industry

pelab24 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

13

Modelica in AvionicsModelica in Avionics

pelab25 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Modelica in BiomechanicsModelica in Biomechanics

pelab26 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

14

Modelica Modelica ––The Next GenerationThe Next GenerationModeling LanguageModeling Language

pelab27 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Stored KnowledgeStored Knowledge

Model knowledge is stored in books and human minds which computers cannot access

“The change of motion is proportional to the motive force impressed “– Newton

pelab28 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

15

The Form The Form –– EquationsEquations

• Equations were used in the third millennium B.C.

• Equality sign was introduced by Robert Recorde in 1557

Newton still wrote text (Principia, vol. 1, 1686)“The change of motion is proportional to the motive force impressed ”

CSSL (1967) introduced a special form of “equation”:i bl i

pelab29 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

variable = expressionv = INTEG(F)/m

Programming languages usually do not allow equations!

What is Modelica?What is Modelica?

R b ti

A language for modeling of complex physical systems

• Robotics

• Automotive

• Aircrafts

• Satellites

• Power plants

• Systems biology

pelab30 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• Systems biology

16

What is Modelica?What is Modelica?

A language for modeling of complex physical systems

pelab31 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Primary designed for simulation, but there are also other

usages of models, e.g. optimization.

What is Modelica?What is Modelica?

A language for modeling of complex physical systemsi.e., Modelica is not a tool

Free, open language specification:

There exist several free and commercial tools, for example:

• OpenModelica from OSMC• MathModelica by MathCore• Dymola by Dassault systems / Dynasim• SimulationX by ITI

pelab32 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• SimulationX by ITI• MapleSim by MapleSoft

Available at: www.modelica.org

17

Declarative languageEquations and mathematical functions allow acausal modeling,high level specification, increased correctness

Modelica Modelica –– The Next Generation Modeling The Next Generation Modeling LanguageLanguage

Multi-domain modelingCombine electrical, mechanical, thermodynamic, hydraulic, biological, control, event, real-time, etc...

Everything is a classStrongly typed object-oriented language with a general class concept, Java & MATLAB-like syntax

Visual component programming

pelab33 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Visual component programmingHierarchical system architecture capabilities

Efficient, non-proprietaryEfficiency comparable to C; advanced equation compilation, e.g. 300 000 equations, ~150 000 lines on standard PC

High level language

Modelica Modelica –– The Next Generation Modeling The Next Generation Modeling LanguageLanguage

MATLAB-style array operations; Functional style; iterators, constructors, object orientation, equations, etc.

MATLAB similarities

Non-Proprietary• Open Language Standard

B th O S d C i l i l t ti

MATLAB-like array and scalar arithmetic, but strongly typed and efficiency comparable to C.

pelab34 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• Both Open-Source and Commercial implementations

Flexible and powerful external function facility• LAPACK interface effort started

18

Modelica Language PropertiesModelica Language Properties

• Declarative and Object-Oriented

• Equation-based; continuous and discrete equations

• Parallel process modeling of real-time applications, according to synchronous data flow principle

• Functions with algorithms without global side-effects(but local data updates allowed)

pelab35 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• Type system inspired by Abadi/Cardelli

• Everything is a class – Real, Integer, models, functions, packages, parameterized classes....

Object OrientedObject OrientedMathematical Modeling with ModelicaMathematical Modeling with Modelica

• The static declarative structure of a mathematical model is emphasized

• OO is primarily used as a structuring concept

• OO is not viewed as dynamic object creation and sending messages

• Dynamic model properties are expressed in a

pelab36 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

declarative way through equations.

• Acausal classes supports better reuse of modeling and design knowledge than traditional classes

19

Brief Modelica HistoryBrief Modelica History

• First Modelica design group meeting in fall 1996• International group of people with expert knowledge

in both language design and physical modeling• Industry and academia

• Modelica Versions• 1.0 released September 1997• 2.0 released March 2002• 2.2 released March 2005

3 0 l d S t b 2007

pelab37 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• 3.0 released September 2007• 3.1 released May 2009

• Modelica Association established 2000• Open, non-profit organization

Modelica ConferencesModelica Conferences

• The 1st International Modelica conference October, 2000

• The 2nd International Modelica conference March 18-19, 2002

• The 3rd International Modelica conference November 5-6, 2003 in Linköping, Sweden

• The 4th International Modelica conference March 6-7, 2005 in Hamburg, Germany

• The 5th International Modelica conference September 4-5, 2006 in Vienna, Austria

pelab38 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

• The 6th International Modelica conference March 3-4, 2008 in Bielefeld, Germany

• The 7th International Modelica conference Sept 21-22, 2009 in Como, Italy

20

Exercises Part IExercises Part IHandsHands--on graphical modelingon graphical modeling

(20 minutes)(20 minutes)

pelab39 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Graphical ModelingGraphical ModelingUsing Drag and Drop CompositionUsing Drag and Drop Composition

pelab40 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Courtesy MathCore Engineering AB

21

Exercises Part I Exercises Part I –– Basic Graphical ModelingBasic Graphical Modeling

• (See instructions on next two pages) • Start the simForge editor• Draw the RL-Circuit• Simulate

AC

R=10

R1

L=0.1

L

L=1R=100

pelab41 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

G

SimulationThe RL-Circuit

Exercises Part I Exercises Part I –– simForge Instructions Page 1simForge Instructions Page 1

• Start simForge, (e.g. SimForge-0.9.RC2.jar).

• Go to File menu and choose New Project.

• Write RL_Circuit and click on the Browse button for choosing the destination folder.

• Press OK.

• In the navigation bar in the left, there should be three items, Modelica, IEC61131-3 and Simulation result. Double-click on the Modelica.

• Under the Modelica : • The standard Modelica library components are listed

pelab42 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

The standard Modelica library components are listedin the Used external package.• The Modelica classes and Modelica files are the places where your models will end up under. The first folder is for the graphical models and the latter is for the texual form.

22

Exercises Part I Exercises Part I –– simForgesimForge Instructions Page 2Instructions Page 2

• Go to File menu and choose New File. Write RL_circuit and press OK. • In the Add Class pop-up dialog box change the Type from package to

class and press OK.• Double click on the RL circuit under the Modelica classes and the _

graphical window will appear. • Drag and Drop components from the standard Modelica library to your

model.• For connecting components, move the cursor to the target pin and press

shift+click once and just move the cursor with the mouse to the destination pin and press again shift+click.

• Start the simulation with simulation button.

• Under the Edit menu -> Advanced properties you cani k h i ibl l d b

pelab43 Peter Fritzson Copyright Peter Fritzson Copyright ©© Open Source Modelica Consortium

Start the simulation with simulation button. • In the simulation pop-up you can leave out

some fields like the Stop time, which will result in a default value of 1 sec. will be used.

• The result will appear under the Simulation result.

tick the visible legend bar.