Skip to content

Modelica

Modelica® is a freely available, object-oriented multi-domain language for modeling of heterogeneous physical systems. It is suited for multi-domain modeling, as for example aerospace applications involving mechanical, electrical, hydraulic and control subsystems. In contrast to data flow-oriented languages with directed inputs and outputs, such as the widely known Matlab and its associated Simulink tool, Modelica employs an equation based modeling, which results in a faster modeling process and a significantly increased reusability of the models.

collage modelica


Modelica is designed such that it can be utilized in a similar way as an engineer builds a real system[1]: First trying to find standard components like motors, pumps and valves from manufacturers' catalogues with appropriate specifications and interfaces and only if there does not exist a particular subsystem, a component model would be newly constructed based on standardized interfaces. The language is developed under open source license since 1996 by the non-profit Modelica Association, based at Linköping University, Sweden.

Modelica supports both high level modeling by graphical composition and detailed library component modeling by equations. In order that the Modelica language and the Modelica libraries can be used, a Modelica translator is needed to transform a Modelica model into a form which can be efficiently simulated in an appropriate simulation environment. Differently to any causal-based simulators, algebraic loops are automatically solved, in Modelica based simulators, at compilation stage by employing powerful symbolic manipulations, therefore no iterative procedures are required resulting in faster simulations. Symbolic manipulation also allows Modelica based simulators to automatically generate linearised equations and Jacobian matrix of the system which would have to be derived manually or numerically with signal-flow based modelling.

Dymola from Dynasim (http://www.Dynasim.se) is an example of a Modelica translator which is able to perform all necessary symbolic transformations for very large systems as well as for real time applications. A graphical editor for model editing and browsing, as well as a simulation environment are included for translation, and convenient interfaces to Matlab/ SIMULINK exist. For example, a Modelica model can be transformed into a SIMULINK S-function C mex-file which can be simulated in SIMULINK as an input/output block.

Models of standard engineering components are typically available in model libraries, which are mathematically described by differential, algebraic and discrete equations. Modelica Association develops and maintains a growing Modelica Standard Library that contains the most commonly used components, including among others analogue and digital electronics, electrical machines, translational and rotational mechanical systems, as well as input/output control blocks.

[1] “Modelica Language, Libraries, Tools, and Conferences”, M. Otter and H. Elmqvist, in Proc. of Modelica Conference, April, 2002.