Modelica - Interoperability for Generic Simulation Systems
by Thilo Ernst
Resulting from an international effort, a unified, object-oriented
language for modeling the dynamic behaviour of physical systems is emerging.
Modelica (Modelica is a trademark of the Modelica Design group) has the
potential to solve the interoperability problems currently hampering the
application of generic simulation tools to complex, heterogeneous systems.
A large variety of software packages supporting the development of models
and simulation software for studying the dynamic behaviour of physical
systems is available today both from research organizations and from specialized
commercial software vendors. By automating the process of simulation software
development for certain problem classes, these generic simulation systems
enable practitioners without substantial programming experience to obtain
executable simulators easily: Either a mathematical model (eg a set of
ordinary differential equations) of the problem is communicated to the
system in a description language close to the mathematical concepts involved,
or the model is interactively composed from predefined building blocks
representing entities of the application domain using a graphical user
interface. By drastically reducing the efforts for simulator development,
these packages considerably broadened the range of possible applications
and contributed to the current situation where simulation is more and more
regarded as an everyday tool in several fields of engineering.
However, the ongoing trend towards ever more complex and heterogeneous
technical systems to be simulated confronts these tools with substantial
problems: In most cases, models can be re-used only in the same system.
The main cause for this interoperability problem is the absence of a state-of-the-art,
standardized model representation. Model description languages, where employed,
often do not adequately support the structuring of large, complex models
and the process of model evolution. This support is often provided by sophisticated
graphical user interfaces, but at the price of specialization to a certain
modeling formalism or application domain and uniqueness to a specific package,
so this approach even adds to the interoperability problem.
It is quite obvious that general software engineering methods and technology
are applicable to the development of simulation software, and of course
for large simulator development efforts, (eg those targeted at grand challenge
problems), techniques like object oriented design are applied frequently.
However, despite the fact that the very concept of object orientation originated
in the realm of simulation (Simula67 language), the same cannot be said
about the development of simulation software using generic simulation systems:
A rather small set of these tools exploits the observation that object-oriented
concepts can be applied not only for the development of simulation software,
but already at the model level, in order to directly support the hierarchical
structuring, reuse and evolution of large and complex models.
This method, called object oriented physical systems modeling, works
independent from the targeted application domain and from any graphical
formalism used. Combined with another innovative modeling and simulation
concept called non-causal modeling, the object oriented modeling approach
provides unlimited model reusability and general model evolution support.
Non-causal modeling generalizes the traditional simulation abstraction
(the input/output block) by relaxing the causality constraints, ie, by
not committing ports to an 'input' or 'output' role early. Examples of
object-oriented and/or non-causal modeling languages include: ASCEND, Dymola,
gPROMS, NMF, ObjectMath, Omola, SIDOPS+, Smile, U.L.M., ALLAN, VHDL-AMS.
Together with other proven concepts from the variety of existing modeling
and simulation languages, these two cornerstones provide a new foundation
for creating a unified, domain- system- and platform-independent model
representation, that way attacking the interoperability problem described
above.
Having started as an action within ESPRIT project 'Simulation in Europe
Basic Research Working Group (SiE-WG)' and currently operating as a Technical
Committee within Eurosim, a working group made up of simulation tool builders,
users from different application domains, and computer scientists has made
an attempt to unify the concepts and introduce a common modeling language.
This language, called Modelica, is intended for modeling within many application
domains (for example: electrical circuits, multi-body systems, drive trains,
hydraulics, thermodynamical systems and chemical systems) and possibly
using several formalisms (for example: ordinary differential equations
ODE, DAE, bond graphs, finite state automata and Petri nets).
In the first phase, the design focused on the continuous time domain,
with some hybrid (discrete event) features, and was targeted at the underlying
mathematical model of hybrid DAEs (systems of differential and algebraic
equations). However, considerable attention was paid at keeping the design
open in order to allow extensions in different directions so Modelica can
evolve into a true multi-formalism, multi-domain, general-purpose modeling
language. Existing standards were taken into account wherever feasible.
The first official version (V1.0) of the Modelica definition was published
in September, 1997, and is available via the EUROSIM website at: http://Eurosim.tuwien.ac.at/Modelica.
The figure is intended to provide a first
impression of the language.
Modelica was the subject of a dedicated session and a panel discussion
at the European Simulation Symposium (ESS'97) end-October 1997 in Passau,
Germany, and was well received by the audience. The Modelica Design Group,
planning to continue as a joint committee of the EUROSIM and SCS Simulation
Societies soon, welcomes comments on Modelica 1.0 and invites interested
individuals or groups to participate in the further development. A first,
minor revision mainly intended to eliminate 'teething troubles' is scheduled
for spring 1998. More information regarding contacts and participation
is offered on the Modelica web repository mentioned above.
Several companies and research organizations have already started efforts
to interface their systems with Modelica or plan to do so in the near future.
In the context of the SMILE project (see http://www.first.gmd.de/org/smile)
carried out in cooperation with the Technical University of Berlin, GMD
Institute for Computer Architecture and Software Technology is planning
to implement an open Modelica translator which by the use of modern tools
will be easy to adapt and integrate into existing systems as an interfacing
component.
Please contact:
Thilo Ernst - GMD
Tel: +49 30 6392 1919
E-mail: Thilo.Ernst@gmd.de