The Modelica Standard Library as an Ontology for Modeling and Simulation of physical systems (original) (raw)

Modelica — A unified object-oriented language for physical systems modeling

Simulation Practice and Theory, 1997

A new language called Modelica for hierarchical physical modeling is developed through an international effort. Modelica 1.0 [http : / / www. Dyna s im. s e / Mode 1 i c a] was announced in September 1997. It is an object-oriented language for modeling of physical systems for the purpose of efficient simulation. The language unifies and generalizes previous object-oriented modeling languages. Compared with the widespread simulation languages available today this language offers three important advances: 1) non-causal modeling based on differential and algebraic equations; 2) multidomain modeling capability, i.e. it is possible to combine electrical, mechanical, thermodynamic, hydraulic etc. model components within the same application model; 3) a general type system that unifies object-orientation, multiple inheritance, and templates within a single class construct. A class in Modelica may contain variables (i.e. instances of other classes), equations and local class definitions. A function (method) can be regarded as a special case of local class without equations, but including an algorithm section. The equation-based non-causal modeling makes Modelica classes more reusable than classes in ordinary object-oriented languages. The reason is that the class adapts itself to the data flow context where it is instantiated and connected. The multi-domain capability is partly based on a notion of connectors, i.e. certain class members that can act as interfaces (ports) when connecting instantiated objects. Connectors themselves are classes just like any other entity in Modelica. Simulation models can be developed using a graphical editor for connection diagrams. Connections are established just by drawing lines between objects picked from a class library. The Modelica semantics is defined via translation of classes, instances and connections into a flat set of constants, variables and equations. Equations are sorted and converted to assignment statements when possible. Strongly connected sets of equations are solved by calling a symbolic and/or numeric solver. The generated C/C++ code is quite efficient. In this paper we present the Modelica language with emphasis on its class construct and type system. A few short examples are given for illustration and compared with similar constructs in C++ and Java when this is relevant.

Modelica - The Next Generation Modeling Language An International Design Effort

A new language called Modelica for physical modeling is developed in an international effort. The main objective is to make it easy to exchange models and model libraries. The design approach builds on noncasual modeling with true ordinary differential and algebraic equations and the use of object-oriented constructs to facilitate reuse of modeling knowledge. There are already several modeling language based on these ideas available from universities and small companies. There is also significant experience of using them in various applications. The aim of the Modelica effort is to unify the concepts and design a new uniform language for model representation. The paper describes the effort and gives an overview of Modelica.

Ontology for modeling and simulation

Simulation Conference (WSC), …, 2010

This paper establishes what makes an ontology different in Modeling and Simulation (M&S) from other disciplines, vis-a-vis, the necessity to capture a conceptual model of a system in an explicit, unambiguous, and machine readable form. Unlike other disciplines where ontologies are used, such as Information Systems and Medicine, ontologies in M&S do not depart from a set of requirements but from a research question which is contingent on a modeler. Thus, the semiotic triangle is used to present that different implemented ontologies are representations of different conceptual models whose commonality depends on which research question is being asked. Ontologies can be applied to better capture the modeler ¶V perspective. The elicitation of ontological, epistemological, and teleological considerations is suggested. These considerations may lead to better differentiation between conceptualizations, which for a computer are of importance for use, reuse and composability of models and interoperability of simulations. 1 643 978-1-4244-9864-2/10/$26.00 ©2010 IEEE

An integrated modelica environment for modeling, documentation and simulation

1998

Modelica is a new object-oriented multi-domain modeling language based on algebraic and differential equations. In this paper we present an environment that integrates different phases of the Modelica development lifecycle. This is achieved by using the Mathematica environment and its structured documents, "notebooks". Simulation models are represented in the form of structured documents, which integrate source code, documentation and code transformation specifications, as well as providing control over simulation and result visualization. Import and export of Modelica code between internal structured and external textual representation is supported. Mathematica is an interpreted language, which is suitable as a scripting language for controlling simulation and visualization. Mathematica also supports symbolic transformations on equations and algebraic expressions which is useful in building mathematical models.

The openmodelica modeling, simulation, and development environment

2005

Modelica is a modern, strongly typed, declarative, and object-oriented language for modeling and simulation of complex systems. This paper gives a quick overview of some aspects of the OpenModelica environment -an open-source environment for modeling, simulation, and development of Modelica applications. An introduction of the objectives of the environment is given, an overview of the architecture is outlined and a number of examples are illustrated.

Modelica - A Unified Object-Oriented Language for System Modelling and Simulation

Proceedings of the 12th European Conference on Object Oriented Programming, 1998

A new language called Modelica for hierarchical physical modeling is developed through an international effort. Modelica 1.0 [http : / / www. Dyna s im. s e / Mode 1 i c a] was announced in September 1997. It is an object-oriented language for modeling of physical systems for the purpose of efficient simulation. The language unifies and generalizes previous object-oriented modeling languages. Compared with the widespread simulation languages available today this language offers three important advances: 1) non-causal modeling based on differential and algebraic equations; 2) multidomain modeling capability, i.e. it is possible to combine electrical, mechanical, thermodynamic, hydraulic etc. model components within the same application model; 3) a general type system that unifies object-orientation, multiple inheritance, and templates within a single class construct. A class in Modelica may contain variables (i.e. instances of other classes), equations and local class definitions. A function (method) can be regarded as a special case of local class without equations, but including an algorithm section. The equation-based non-causal modeling makes Modelica classes more reusable than classes in ordinary object-oriented languages. The reason is that the class adapts itself to the data flow context where it is instantiated and connected. The multi-domain capability is partly based on a notion of connectors, i.e. certain class members that can act as interfaces (ports) when connecting instantiated objects. Connectors themselves are classes just like any other entity in Modelica. Simulation models can be developed using a graphical editor for connection diagrams. Connections are established just by drawing lines between objects picked from a class library. The Modelica semantics is defined via translation of classes, instances and connections into a flat set of constants, variables and equations. Equations are sorted and converted to assignment statements when possible. Strongly connected sets of equations are solved by calling a symbolic and/or numeric solver. The generated C/C++ code is quite efficient. In this paper we present the Modelica language with emphasis on its class construct and type system. A few short examples are given for illustration and compared with similar constructs in C++ and Java when this is relevant. AC.v=Ac .p.v-AC.n.v AC.i=AC.p.i AC. v=AC. VA* sin(2*PI*AC, f'time) ; RI 0=Rl.p.i+Rl.n.i G RI.v=RI.p.v-RI.n.v Rl.i=Rl.p.i RI.v = RI.R*RI.i R2 0=R2 .p. i+R2 .n. i wires R2 .v=R2.p.v-R2 .n.v R2 .i=R2 .p.i R2.v = R2.R*R2.i C 0=L.p. i+L.n.i L.v=L.p.v-L.n.v L.i=L.p.i L.v = L.L*L.der(i) G.p.v=0 Rl.p.v=AC.p.v // wire 1 C.p.v=Rl.n.v // wire 2 AC.n.v=C.n.v // wire 3 R2.p.v=Rl.p.v // wire 4 L.p.v=R2.n.v // wire 5 L.n.v=C.n.v // wire 6 G.p.v= AC.n.v // wire 7 0=C.p.i+C.n.i flOW 0=AC.p.i+Rl.p.i+R2.p.i //i C.v=C.p.v-C.n.v at 0=C.n.i+G.i+AC.n.i+L.n.i //2 C.i=C.p.i node 0=Rl.n.i+ C.p.i // 3