ModelicaML – Tutorial...ModelicaML Tutorial Page 3 20.03.2011 ModelicaML: Technology Acceleo...

Post on 21-Apr-2020

8 views 0 download

Transcript of ModelicaML – Tutorial...ModelicaML Tutorial Page 3 20.03.2011 ModelicaML: Technology Acceleo...

ModelicaML – Tutorial

Getting Started

Wladimir Schamai

EADS Innovation Works Systems Engineering

Possible line for organisation unit / Arial Regular 10pt

ModelicaML Tutorial

Page 2

20.03.2011

ModelicaML: Technology

System Modeling with ModelicaML 1

Modelica Code Generation 2

System Simulation with Modelica Tools 3

ModelicaML Tutorial

Page 3

20.03.2011

ModelicaML: Technology

Acceleo

ModelicaML Code Generator

(Eclipse Plug-In)

Papyrus UML

ModelicaML Profile (Eclipse Plug-In) Any Modelica Simulation Tool

Model to Text Transformation

Generated Modelica Code

(.mo files)

.mo

ModelicaML

General Description of the

UML-Based Graphical Notation

ModelicaML Tutorial

Page 5

20.03.2011

ModelicaML: Graphical Notation

Structure

Behavior

Requirements

ModelicaML Tutorial

Page 6

20.03.2011

ModelicaML: Class Diagram

Class (model, block,

record, connector)

extends relation

(with type

modifications)

variables (of

primitive type) or

components (of

composite type)

(Two-Tanks System Example)

ModelicaML Tutorial

Page 7

20.03.2011

ModelicaML: Connection Diagram

Class

(model, block) Component (of

composite type)

Connection

Component (port)

of connector type (Two-Tanks System Example)

ModelicaML Tutorial

Page 8

20.03.2011

ModelicaML: State Machine Diagram

State Machine

Composite

State

Simple

State States Transition

with guards

Start

entry/do/exit

behavior

indication

(Two-Tanks System Example)

ModelicaML Tutorial

Page 9

20.03.2011

Set of

equations or

assignments

Conditional flow

(if/when) with

guards

Start

Explicit

state

dependency

(Player Example)

ModelicaML: Conditional Eq./Alg. Diagram

ModelicaML

Hands-on Modeling Tutorial

ModelicaML Tutorial

Page 11

20.03.2011

•From “source” liquid flows into the “tank1”

•Controller “piContinuous1” controls the level of liquid in “tank1”, based on a

predefined reference value, by opening and closing the tank outflow valve.

•Liquid flows from “tank1” into “tank2”

•Controller “piContinuous2” controls the level of liquid in “tank2”

Source: Peter Fritzson. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley-IEEE Press, 2004. page 391.

Example: Two Tanks System

ModelicaML Tutorial

Page 12

20.03.2011

1

2

3 4

5

6

ModelicaML Papyrus MDT GUI Overview

ModelicaML Tutorial

Page 13

20.03.2011

•Model Browser: Shows model elements

•Properties View: Shows the properties of selected element

•Diagram Editors (different UML-based diagrams)

•Palette (different for each diagram)

•ModelicaML code generation and validation buttons

•Component tree: Shows the components hierarchy of the

selected class

1

2

3

4

5

6

ModelicaML Papyrus MDT GUI Overview

ModelicaML Project Setup

ModelicaML Tutorial

Page 15

20.03.2011

Create ModelicaML Project

•Open Eclipse

•Change the Perspective to Papyrus Perspective

ModelicaML Tutorial

Page 16

20.03.2011

Create ModelicaML Project

1

2

3

Go to File -> Create …

ModelicaML Tutorial

Page 17

20.03.2011

Create ModelicaML Project

ModelicaML Tutorial

Page 18

20.03.2011

Papyrus Project Files

Model file

(can be edited using any UML2 tool)

Diagram file

(can only be edited using Papyrus MDT)

ModelicaML Tutorial

Page 19

20.03.2011

Configure Model Explorer

1

2

3

ModelicaML Tutorial

Page 20

20.03.2011

Change and Customize the Perspective

1

2

Select and customize the ModelicaML perspective –

disable all features that are not used

Typical ModelicaML customized perspective:

Model Setup

ModelicaML Tutorial

Page 22

20.03.2011

Create Model Structure

Create Packages and Classes using ModelicaML menus

ModelicaML

Actions

ModelicaML Tutorial

Page 23

20.03.2011

Hint: Setting type of components

ModelicaML Tutorial

Page 24

20.03.2011

Hint: Setting type of components

ModelicaML Primitive Types are:

•ModelicaReal

•ModelicaInteger

•ModelicaString

•ModelicaBoolean

ModelicaML Tutorial

Page 25

20.03.2011

Hint: Setting of the component properties (Declaration, Causality, Variability, etc.)

ModelicaML Tutorial

Page 26

20.03.2011

Create Class Components

p => Set variability to “parameter” i => Set causality to “input”

p

p

p

i

p

p

p

p

p

= 2

= 2 => Set declaration

= 10

= 0.02

= 0

= 0.05

= 10

= 0.5

= 1

ModelicaML Tutorial

Page 27

20.03.2011

Create Function Arguments

i => Set causality to “input”

i

i

i

o

o => Set causality to “output”

Inheritance/Extension Modeling

ModelicaML Tutorial

Page 29

20.03.2011

Create Class Diagram

ModelicaML Tutorial

Page 30

20.03.2011

General: Working with diagrams

Creating edges:

• Select the palette tool

• Click on the edge source element

and hold the mouse button

• Move the mouse to the target

element and release the mouse

button

1

2

3 2

3

1

ModelicaML Tutorial

Page 31

20.03.2011

General: Working with diagrams

Deletion of elements:

• Right click on a diagram element

• (preferred) Select the option “Delete Selected Element” in order to delete it from the model. This is recommended in order to keep the model and the diagram consistent

• Select the option “Hide Selected Element” in order to remove the element from the diagram. The element will still exist in the model and can be shown on the diagram by drag&drop.

ModelicaML Tutorial

Page 32

20.03.2011

Configure Diagram Palette

right click here…

ModelicaML Tutorial

Page 33

20.03.2011

Create Extends Relation

•Drag & drop BaseController and

PIcontinuousController onto diagram

•Use the palette tool “Extends Relation”

ModelicaML Tutorial

Page 34

20.03.2011

Hint: Element Appearance: Show stereotype name

1

2 3

4

Select an

element

ModelicaML Tutorial

Page 35

20.03.2011

Hint: Element Appearance: Compartments

1

2

right click

3

Behavior Modeling

ModelicaML Tutorial

Page 37

20.03.2011

Hint: Editing Modelica Code

•Syntax highlighting and code completion is supported in code editors

•Hit Ctrl + Space for code completion when editing Modelica code

ModelicaML Tutorial

Page 38

20.03.2011

Create Behavior

ModelicaML Tutorial

Page 39

20.03.2011

Create Behavior

ModelicaML Tutorial

Page 40

20.03.2011

Create Behavior

ModelicaML Tutorial

Page 41

20.03.2011

Create State Machine

ModelicaML Tutorial

Page 42

20.03.2011

Configure Diagram Palette

right click here…

ModelicaML Tutorial

Page 43

20.03.2011

General: Working with diagrams

State Transitions:

• Select the palette tool

• Click on the transition source state

(click on label) and hold the mouse

button

• Move the mouse to the target state

(to its label) and release the mouse

button

1

2 3

2

3

1

ModelicaML Tutorial

Page 44

20.03.2011

Create State Machine

Architecture Modeling

ModelicaML Tutorial

Page 46

20.03.2011

Create Connection Diagram

•Create a ModelicaML Connection Diagram under the TanksConnectedPI class

•Use components tool from the palette to create components inside the class on the diagram

•Define the types of components

•Use Model Explorer to find the ports

•Drag&Prop ports into respective components

•Arrange the components

•Use the “Connection” tool from the palette for connecting ports

ModelicaML Tutorial

Page 47

20.03.2011

Model System Architecture

ModelicaML Tutorial

Page 48

20.03.2011

Create Connection Diagram

Drag&drop the

port into

component

Set component

type

Create

components

using the

palette tools

1

2

3

Connect

components

4

ModelicaML Tutorial

Page 49

20.03.2011

Hint: Hide the name of all connectors

•Click on the compartment of the class

•Right-click -> “Select” -> “All Connectors”

•Right-click on one of the selected connectors -> “Filters” -> “Show/Hide connector

Labels” -> “No connector Labels”

ModelicaML Tutorial

Page 50

20.03.2011

Hint: Element Appearance: Hide the name of the connection stereotype

1

2

3 4

Select an

element

Component Modifications

ModelicaML Tutorial

Page 52

20.03.2011

Define Component Modifications

1

2

3

4

ModelicaML Tutorial

Page 53

20.03.2011

Define Component Modifications

Model Validation

ModelicaML Tutorial

Page 55

20.03.2011

Validate Model

Modelica Code Generation

ModelicaML Tutorial

Page 57

20.03.2011

Launch Modelica Code Generation

ModelicaML Tutorial

Page 58

20.03.2011

Generated Modelica Code