Towards Unified System Modeling with the
ModelicaML UML Profile
Adrian Pop, David Akhvlediani, Peter Fritzson
Programming Environments Laboratory,Department of Computer and Information Science
Linköping University [email protected]
EOLT’2007, 2007-07-30
2
Outline
IntroductionSystem Modeling Language (SysML™)Modelica
ModelicaML: a UML profile for ModelicaOverview and PurposeDiagrams
Package DiagramClass Diagram and Internal Class DiagramEquation Diagram Simulation Diagram
Conclusions and Future Work
3
System Modeling Language (SysML™)
Graphical modeling language for Systems Engineering constructed as a UML2 Profile
Designed to provide simple but powerful constructs for modeling a wide range of systems engineering problems
Effective in specifying requirements, structure, behavior, allocations, and constraints on system properties to support engineering analysis
Intended to support multiple processes and methods such as structured, object-oriented, etc.
4
SysML™ - Diagrams
5
SysML™ - Block Definitions
6
RoboticsAutomotiveAircraftsSatellitesBiomechanicsPower plantsHardware-in-the-loop, real-time simulationetc
Modelica – General Formalism to Model Complex Systems
7
Modelica – The Next Generation Modeling Language
Declarative languageEquations and mathematical functions allow acausal modeling, high level specification, increasedcorrectness
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 programmingHierarchical system architecture capabilities
Efficient, nonproprietaryEfficiency comparable to C; advanced equationcompilation, e.g. 300 000 equations
8
Modelica Language Properties
Declarative and Object-Oriented
Equation-based; continuous and discreteequations
Parallel process modeling of concurrentapplications, according to synchronous data flowprinciple
Functions with algorithms without global side-effects(but local data updates allowed)
Type system inspired by Abadi/Cardelli (Theory of Objects)
Everything is a class – Real, Integer, models, functions, packages, parameterized classes....
9
Modelica Acausal Modeling Semantics
What is acausal modeling/design?Why does it increase reuse?
The acausality makes Modelica classes morereusable than traditional classes containing assignment statements where the input-output causality is fixed.
Example: a resistor equation:R*i = v;
can be used in three ways:i := v/R;v := R*i;R := v/i;
10
Keyword flow indicates that currents of
connected pins sums to zero.
A connect statement in Modelica
corresponds to equations:
connector PinVoltage v;flow Current i;
end Pin;
connect(Pin1,Pin2)
Connection between Pin1 and Pin2
Pin1.v = Pin2.vPin1.i + Pin2.i = 0
Connector Classes, Components and Connections
11
Modelica - Reusable Class Libraries
InfoR= C= L=
G
AC=
DC=
Vs Is
S
D T
-+
OpV i
E
: 1
Infoshaft3DS=
Sshaft3D= shaftS=
S
shaft=
gear1=
gear2=
planetary=diff=
sun=
planet=ring=
bearing fixTooth
SmoveS move
torque
c= d=
fric=
fricTab clutch=converter
r
w a tfixedBase
Sstate
Infoinertial
bar= body= bodyBar=
cylBody=bodyShape=
revS=S
prismS=S
screw S=
ScylS=
S
univS
SplanarS=
S
sphereS
S
freeS
Srev= prism=
screw =
cyl= univ planar= spherefree
C
barC=
barC2=x
y
C
sphereC c= d= cSer=
force
torque
lineForce=
lineTorque=
sensor
s sd
lineSensor
Library
advanced
Library
drive
Library
translation
12
Graphical Modeling - Drag and Drop Composition
13
inertialx
y
axis1
axis2
axis3
axis4
axis5
axis6r3Drive1
1r3Motor
r3ControlqdRef1
S
qRef1
S
k2
i
k1
i
qddRef cut joint
l
qd
tn
Jmotor=J
gear=i
spring=c
fric
=Rv0
Srel
joint=0
S
Vs
-
+diff
-
+pow er
emf
La=(250/(2*D*wm
))Ra=250
Rd2=100
C=0.004*D/w m
-
+OpI
Rd1=100
Ri=10
Rp1=200
Rp2=
50
Rd4=100
hall2
Rd3=
100
g1
g2
g3
hall1
g4
g5
rw
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
Srel = n*n' + (identity(3) - n*n')*cos(q) - skew(n)*sin(q);wrela = n*qd;zrela = n*qdd;Sb = Sa*Srel';r0b = r0a;vb = Srel*va;wb = Srel*(wa + wrela);ab = Srel*aa;zb = Srel*(za + zrela + cross(wa, wrela));fa = Srel'*fb;ta = Srel'*tb;
Hierarchical Composition Diagram for a Model of a Robot
14
Multi-Domain Modelica Model - DCMotor
A DC motor can be thought of as an electrical circuit which also contains an electromechanical component.
model DCMotorResistor R(R=100);Inductor L(L=100);VsourceDC DC(f=10);Ground G;ElectroMechanicalElement EM(k=10,J=10, b=2);Inertia load;
equationconnect(DC.p,R.n);connect(R.p,L.n);connect(L.p, EM.n);connect(EM.p, DC.n);connect(DC.n,G.p);connect(EM.flange,load.flange);
end DCMotor
load
EM DC
G
R L
15
SysML vs. Modelica
SysMLPros
Can model all aspects of complex system designCons
Precise behavior can be described but not simulated (executed)
ModelicaPros
Precise behavior can be described and simulatedCons
Cannot model all aspects of complex system design, i.e. requirements, inheritance diagrams, etc
16
Outline so far
IntroductionSystem Modeling Language (SysML™)Modelica
ModelicaML: a UML profile for ModelicaOverview and PurposeDiagrams
Package DiagramClass Diagram and Internal Class DiagramEquation DiagramSimulation Diagram
Conclusions and Future Work
17
ModelicaML - a UML profile for ModelicaSupports modeling with all Modelica constructs i.e. restricted classes, equations, generics, discrete variables, etc.
Multiple aspects of a system being designed are supported system development process phases such as requirements analysis, design, implementation, verification, validation and integration.
Supports mathematical modeling with equations (to specify system behavior). Algorithm sections are also supported.
Simulation diagrams are introduced to configure, model and document simulation parameters and results in a consistent and usable way.
The ModelicaML meta-model is consistent with SysML in order to provide SysML-to-ModelicaML conversion and back.
18
ModelicaML - Purpose
Targeted to Modelica and SysML users
Provide a SysML/UML view of Modelica for Documentation purposesLanguage understanding
To extend Modelica with additional design capabilities (requirements modeling, inheritance diagrams, etc)
To support translation between Modelica and SysML models via XMI
19
ModelicaML - Overview
20
ModelicaML – Package DiagramThe Package Diagram groups logically connected user defined elements into packages. The primarily purpose of this diagram is to support the specifics of the Modelica packages.
21
ModelicaML – Class Diagram ModelicaML provides extensions to SysML in order to support the full set of Modelica constructs.
ModelicaML defines unique class definition types ModelicaClass, ModelicaModel, ModelicaBlock, ModelicaConnector, ModelicaFunction and ModelicaRecord that correspond to class, model, block, connector, function and record restricted Modelica classes.
Modelica specific restricted classes are included because a modeling tool needs to impose their semantic restrictions (for example a record cannot have equations, etc).
Class Diagram defines Modelica classes and relationships between classes, like generalizations, association and dependencies
22
ModelicaML - Internal Class Diagram
Internal Class Diagram shows the internal structure of a class in terms of parts and connections
23
ModelicaML – Equation Diagram
behavior is specified using Equation Diagramsall Modelica equations have their specific diagram:
initial, when, for, if equations
24
ModelicaML – Simulation Diagram
Used to model, configure and document simulation parameters and resultsSimulation diagrams can be integrated with any Modelica modeling and simulation environment (OpenModelica)
25
Outline so far
IntroductionSystem Modeling Language (SysML™)Modelica
ModelicaML: a UML profile for ModelicaOverview and PurposeDiagrams
Package DiagramClass Diagram and Internal Class DiagramEquation DiagramSimulation Diagram
Conclusions and Future Work
26
Conclusions
ModelicaML – UML profile for ModelicaTargeted to Modelica and SysML usersProvides a SysML/UML view of Modelica for
Documentation purposesLanguage understanding
extends Modelica with additional design capabilities (requirements modeling, inheritance diagrams, etc)supports translation between Modelica and SysML models via XMI
27
Future Workintegration with Modelica Development Tooling (MDT) and the OpenModelica CompilerTranslation between Modelica, ModelicaML and SysMLFurther improvements to ModelicaML specification
28
End
Thank You!Questions?
Modelica Development Tooling (MDT)http://www.ida.liu.se/~pelab/modelica/OpenModelica/MDT/
OpenModelica Projecthttp://www.ida.liu.se/~pelab/modelica/OpenModelica.html