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.
Thilo Ernst - GMD
Tel: +49 30 6392 1919