Modelica & Dymola Introduction - Lunds...
-
Upload
truongthuy -
Category
Documents
-
view
216 -
download
1
Transcript of Modelica & Dymola Introduction - Lunds...
![Page 1: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/1.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica & Dymola IntroductionFMNN05 – EMIL FREDRIKSSON & CLAUS FÜHRER
![Page 2: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/2.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica
![Page 3: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/3.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Introduction
Modelica is a free, object-oriented, equation based language
for modelling of complex systems.
Initiated in 1996 by Hilding Elmqvist and now used in
industry all over the world.
Companies: Audi, BMW, Daimler,
Ford, Toyota, VW, ABB, Siemens
![Page 4: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/4.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Introduction
Modelica is a multi-domain language, not geared towards
any specific domain.
Easily couple models containing for example, mechanical
and electrical components.
Declarative, the order of the
equations does not matter.
![Page 5: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/5.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Introduction
• Object-oriented, models are classes and thus can easily
be extended using ordinary object-oriented features.
• Modelica allow acausal modelling, i.e. the
input-output causality is not fixed.
• Promotes model reuse!
• The language elements are mapped to
differential, algebraic and discrete
equations. NO support for partial
differential equations.
model FirstReal x;
equationder(x) = -1;
end First;
![Page 6: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/6.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Introduction
Modelica is designed for fully implicit ordinary differential
equations,
𝟎 = 𝑭(𝒕, 𝒙, ሶ𝒙)
![Page 7: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/7.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Language VS Tool
Commercial Open-source
Dymola JModelica.org
SimulationX OpenModelica
MapleSim
Modelica → Compiler → Simulation Environment
Language Tool
![Page 8: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/8.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Standard Library (MSL)
Free library consisting of over 1200 models and about 900
functions in many engineering domains.
• Mechanics
• Electrical
• Fluid
• Thermal
• Etc...
![Page 9: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/9.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics
![Page 10: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/10.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica, Hello World
How would the equation,
look in the Modelica language?
ሶ𝑥 = −𝑥, 𝑥 𝑡0 = 1
![Page 11: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/11.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica, Hello World
How would the equation,
look in the Modelica language?
ሶ𝑥 = −𝑥, 𝑥 𝑡0 = 1
model Basic
Real x(start=1);
equation
der(x) = -x;
end Basic;
![Page 12: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/12.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Model
model Example
…
…
equation
…
end Example;
Model body
• Declaration of constants /
parameters / states / inputs
Equation section
• Declaration of model
equations
Name of the modelType of the object (i.e a model)
Start of equations
![Page 13: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/13.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics
• A key feature is that it is equation based, consider:
• x=y+1
• NOT an assignment in Modelica, a relation! The compiler
takes care of manipulating the equations.
• 0 = y+1-x is identical!
![Page 14: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/14.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica, Hello World (again)
How would the equation,
look in the Modelica language?
ሶ𝑥 = −𝑥, 𝑥 𝑡0 = 1
model Basic
Real x(start=1);
equation
0 = - der(x) - x ;
end Basic;
Note that this is identical
to the previous example!
![Page 15: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/15.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics (Syntax)
The important variable types are:
Real
Integer
Boolean
Additionally there is:
String
Enumeration
Real p;Integer y;Real x;
![Page 16: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/16.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics (Syntax)
Constants
– Known by the compiler
and do not change values.
Parameters
– Known before the
simulation starts and
remain constant
throughout the simulation
Variability
• Constants
• Parameters
• Time-varyings
• Inputs
• Outputs
parameter Real p1 = 1;constant Integer y = 10;Real x;
![Page 17: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/17.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics (Syntax)
To specify derivatives the keyword der() is to be used.
der(x) → 𝑑𝑥
𝑑𝑡
Only first order derivatives! der(der(x))
![Page 18: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/18.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Example, Pendulum
𝑚𝑑2𝑥
𝑑𝑡2=𝐹
𝐿𝑥
𝑚𝑑2𝑦
𝑑𝑡2=𝐹
𝐿𝑦 −𝑚𝑔
𝑥2 + 𝑦2 = 𝐿2
L is the length (parameter) of the Pendulum and g is the
gravity (constant), x and y are the coordinates and F is the
force.
Pendulum equations in Modelica code?
![Page 19: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/19.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics (Syntax)
Start attributes for time-varying variables may be set
using the modifier start.
Real x(start=1.0); x has (guess) start value 1.0!
NOTE, during initialization this value may change!
Real x(start=1.0, fixed=true); x must have start value 1.0!
Forces the initialization algorithm to use 1.0 as start value.
![Page 20: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/20.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Basics (Syntax)
model ChangedInitValuesReal x(start = 1);Real y(start = -1);
equationder(x) = -y;y = 1+x;
end ChangedInitValues;
• Consider the
following model,
• What happens
here?
•
If the guessed
values are
used:
• What actually happens is that ONE of the
guessed values are used to calculate the other.
𝑦 = 1 + 𝑥 → −1 = 1 + 1 → −1 ≠ 2
![Page 21: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/21.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Pendulum
model Pendulumconstant Real g=9.81 ”Gravity";
parameter Real L=1 ”Length";parameter Real m=1.0 ”Mass";
Real x(start=0.1);Real y(start=-0.9);Real vx;Real vy; Real F;
equationder(x) = vx;der(y) = vy;x^2 + y^2 = L^2;m*der(vx) = (F/L)*x;
m*der(vy) = (F/L)*y - m*g;
end Pendulum;
![Page 22: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/22.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Example
The Van der Pol oscillator
• Parameter declaration
• State declaration
• Equations declaration
model VDP
// State start values
parameter Real x1_0 = 0;
parameter Real x2_0 = 1;
// The states
Real x1(start = x1_0);
Real x2(start = x2_0);
// The control signal
input Real u;
equation
der(x1) = (1 - x2^2) * x1 - x2 + u;
der(x2) = x1;
end VDP;NOTE: the equations may just as well
be specified as a residual!
ሷ𝑥 = 1 − 𝑥2 ሶ𝑥 − 𝑥 + 𝑢
![Page 23: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/23.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Features
In Modelica you can additionally specify:
• Functions
• Algorithms
• External functions (calling C or FORTRAN)
• Hybrid constructs (if and when clauses)
![Page 24: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/24.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica (connect statement)
In order to support model reuse, Modelica has a key
component, connect, for describing the interaction
between models.
connect(resistor2.n, resistor1.p)
In the electric case:
• The current should sum up to zero
• The voltage should be the same at
both connections
Different meaning in other domains.
![Page 25: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/25.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Electrical Circuit
Consider this Simple Circuit model:
model SimpleCircuit
parameter Real C = 0.001;
parameter Real R = 100;
parameter Real V0 = 5;
// The states
Real i;
Real uC(start=0);
equation
V0 – uC = R*i;
der(uC)*C = i;
end SimpleCircuit;
![Page 26: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/26.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Electrical Circuit, Decomposed
• In order to model large systems, decomposing the system
into smaller components which are then connected is
essential.
• Trying this for our simple circuit:
model Resistor
parameter R;
Real i1, v1;
Real i2, v2;
Real i,u;
equationu = v2 - v1;
i1 + i2 = 0;
i = i2;
u = R*i;
end Resistor;
model Capacitator
parameter C;
Real i1, v1;
Real i2, v2;
Real i,u;
equationu = v2 - v1;
i1 + i2 = 0;
i = i2;
der(u)*C = i;
end Capacitator;
![Page 27: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/27.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Electrical Circuit, Decomposed
model ConstVoltage
parameter V0;
Real i1, v1;
Real i2, v2;
Real i,u;
equationu = v2 - v1;
i1 + i2 = 0;
i = i2;
u = V0;
end ConstVoltage;
model Ground
Real i,u;
equationv = 0;
end Ground;
Voltage Source: Ground Model:
![Page 28: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/28.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Electrical Circuit, Reassembled
• The missing equations
are added in the top-level
model.
• This has to be done
manually and is thus error
prone.
• In order to simplify this,
Modelica introduces the
connector class.
model SimpleCircuit
Ground G;
Resistor R(R=100);
Capacitor C(C=0.001);
ConstVoltage S(V0=5);
equation
S.v2 = R.v1S.i2 + R.i1 = 0;R.v2 = C.v1R.i2 + C.i1 = 0;C.v2 = S.v1C.v2 = G.vC.i2 + S.i1 + G.i = 0;
end SimpleCircuit;
![Page 29: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/29.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Connect Statement
In the electric case, we want a connector with the
properties:
• The current should sum up to zero
• The voltage should be the same at both connections
connector Pin
Real v;
flow Real i;
end Pin;
connect(pin1, pin2)pin1.v = pin2.v
pin1.i + pin2.i = 0
![Page 30: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/30.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Resistor Revisited
model Resistor
parameter R;
Real i1, v1;
Real i2, v2;
Real i,u;
equationu = v2 - v1;
i1 + i2 = 0;
i = i2;
u = R*i;
end Resistor;
model Resistor
parameter R;
Pin n, p;
Real i,u;
equationu = p.v – n.v;
p.i + n.i = 0;
i = p.i;
u = R*i;
end Resistor;
Using Pins
![Page 31: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/31.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Electrical Circuit, Reassembled (Again)
model SimpleCircuit
Ground G;
Resistor R(R=100);
Capacitor C(C=0.001);
ConstVoltage S(V0=5);
equation
connect(G.p, S.n);connect(S.p, R.n);connect(R.p, C.n);connect(C.p, G.p);
end SimpleCircuit;
![Page 32: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/32.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica Graphical Representation
Modelica is a textual language. However, there are language
features for specifying graphical representation of models.
Note, the equations in each model can always be viewed and
that the structure of the physical system is kept!
![Page 33: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/33.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modelica References
In charge of developing the Modelica language is the
non-profit organization Modelica Association
https://www.modelica.org/
Modelica by Example, free book about Modelica,
http://book.xogeny.com/
Cheat Sheet
http://modref.xogeny.com/
![Page 34: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/34.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola
![Page 35: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/35.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola
State of the art modelling and simulation tool based on the
Modelica language.
“Dymola, Dynamic Modeling Laboratory, is a complete tool
for modeling and simulation of integrated and complex
systems for use within automotive, aerospace, robotics,
process and other applications.”
Developed since 1996 and now used in
industries such as, SCANIA, Toyota, BMW,
Ford and Tetra Pak.
![Page 36: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/36.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola (modelling layer)
• Modelica
standard library
• Toggle between
viewing textual or
objects layer
• Modelling area
• Toggle between
the modelling and
simulation tab
![Page 37: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/37.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola (modelling layer)
DEMO (MSL)
DEMO (Modelica Grammar)
![Page 38: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/38.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola (simulation layer)
• Translate the
model
• Simulate the model
• Simulation setup
• Browse the model
variables,
parameters and
constants
![Page 39: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/39.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola (simulation information)
Retrieving information
after a simulation:
• Goto, Simulation
• Choose, Show Log
A log showing the
simulation statistics will
appear.
![Page 40: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/40.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Dymola
DEMO (Simple dx)
![Page 41: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/41.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
More Information from Dymola
See under the
Translation tab
and the Debug
tab in Simulation
Setup.
![Page 42: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/42.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Integrators in Dymola
Integrators are found under
General in Simulation
Setup.
• Switch integrator
• Dassl
• Euler
• Radau
• more...
• Change tolerance
![Page 43: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/43.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Pendulum, revisited
𝑚𝑑2𝑥
𝑑𝑡2=𝐹
𝐿𝑥
𝑚𝑑2𝑦
𝑑𝑡2=𝐹
𝐿𝑦 −𝑚𝑔
𝑥2 + 𝑦2 = 𝐿2
L is the length (parameter) of the Pendulum and g is the
gravity (constant), x and y are the coordinates and F is the
force.
Write the Pendulum equations in Modelica code:
![Page 44: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/44.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Phase plots
In the Variable
Browser:
• Right click on a
variabel
• Choose to use as
independent
variable
![Page 45: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/45.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Installation
• Download and install Dymola
• Download and install Visual Studio Express
– https://www.microsoft.com/en-
us/download/details.aspx?id=44914
![Page 46: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/46.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Installation
• Goto simulation tab (bottom right corner)
– Goto Simulation menu (top, third from the left)
– Goto Setup
– Goto Compiler
– Choose Visual Studio and press OK.
• Next, goto Help menu (top, last from the left)
– Goto License
– Goto Setup
– Choose a local license file and point it to the provided license file.
– Press OK and restart!
![Page 47: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/47.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Modeling Issues
![Page 48: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/48.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Starting Point
Before starting on the projects:
• Check the many examples in the Modelica standard
library!
• Read the information about the different parts and objects!
![Page 49: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/49.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Initial Values
Real x(start = 0.9, fixed = true);
The initial guess If the initial guess is fixed or not
![Page 50: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/50.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Initial Values
model Pendulumconstant Real g=9.81 ”Gravity";
parameter Real L=1 ”Length";parameter Real m=1.0 ”Mass";
Real x(start=0.1);Real y(start=-0.9);Real vx;Real vy; Real F;
equationder(x) = vx;der(y) = vy;x^2 + y^2 = L^2;m*der(vx) = (F/L)*x;
m*der(vy) = (F/L)*y - m*g;
end Pendulum;
What happens if you specify
inconsistent initial values?
What happens if you do NOT
fully specify the initial values?
What happens if you force the
initial values?
![Page 51: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/51.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Initial Values
![Page 52: Modelica & Dymola Introduction - Lunds universitetctr.maths.lu.se/na/courses/FMNN05/course_media/material/Modelica... · Lund University | Numerical Analysis | FMNN05 | 2016-11-08](https://reader031.fdocuments.in/reader031/viewer/2022022006/5ac1efd77f8b9a4e7c8da8f3/html5/thumbnails/52.jpg)
Lund University | Numerical Analysis | FMNN05 | 2016-11-08
Initial Values
Cases (Pendulum):
• Not fully specified (x=0.1)
– Dymola, tries to find a consistent set. May fail!
• Fixed inconsistent values (x=0.9, y=0.9, fixed=true)
– Error, overspecified system
• Guessed inconsistent values (x=0.9, y=0.9, fixed=false)
– Dymola, changes one of the values!
• Guessed inconsistent values (x=1.1, y=0.9, fixed=false)
– Error, cannot recover