Dymola: Environment for Object-oriented Modeling
of Physical Systems
Introduction
Dymola was designed by Hilding Elmqvist of the Technical University at Lund (LTH)
in Sweden as part of his PhD dissertation.
Dymola is a modeling environment that enables the user to map hardware components
of physical systems directly onto corresponding software components.
Elmqvist recognized that there must not exist any distinction between input and
output parameters of such objects. The direction of information flow can only
be determined during the compilation of the models based on the embedding of the
model components into the overall model.
Since then, Dymola/Modelica matured into the best and most flexible modeling
environment for the description of physical systems currently available on the
software market.
Historical Development
- In 1978, Hilding Elmqvist introduced a first version of Dymola as part of
his PhD dissertation. The language presented at that time offered a purely
alphanumerical user interface that today forms the basis of the modern
modeling language Modelica. A first version of the Dymola
compiler had been coded in Simula 68. However, that version
was soon replaced by a newer version that was coded in Pascal.
The compiler translated Dymola models to Simnon, a simulation
environment that Elmqvist had developed in 1975 as part of his
MS Thesis.
- In 1981, Hilding Elmqvist developed a first version of a graphic user
interface (GUI) that would enable the user to describe a physical system
by means of graphical objects. The graphic modules were then mapped onto
Dymola. Elmqvist was convinced that graphical descriptions of systems were
easier to manage, as they support two-dimensional connections, whereas an
alphanumerical description must necessarily be one-dimensional. However,
the proposed GUI could not meaningfully be utilized, as it consumed to
many computer resources. The computers of those days were not yet
powerful enough to meaningfully support such a development.
- After Elmqvist had left academia in 1984 to assume a job in industry, I myself
together with my students continued in 1986 with the development of Dymola.
In particular, we developed new translation modules that mapped Dymola models
onto the simulation languages Desire and ACSL. These modules
were developed under a grant from NASA.
- In 1991, I published the book
Continuous System Modeling [1], in
which Dymola played a central role. This book convinced Hilding Elmqvist
to give up his position in industry and create instead a company of his
own, called
Dynasim AS, the sole purpose of which would be
the further development of Dymola.
- A still unsolved problem was the symbolic treatment of algebraic loops and
structural singularities, as they occurred frequently in the coupling of
Dymola models. This problem was solved by Elmqvist in 1992. It led to
publication [2].
- In the summer of 1992, I worked at the German Aerospace Establishment (DLR)
in Oberpfaffenhofen. This contract led to a close and very fruitful
collaboration between Hilding Elmqvist (Dynasim), Martin Otter (DLR), and
myself. In the sequel, DLR financed majorly the further development of
Dymola for several years. As a first project, an interface to the DLR
simulation environment DSblock was developed that forms the basis
of the Dymosim simulation environment in use today.
- In 1993, the Dymola modeling environment was enriched by language elements
for modeling discontinuous processes that replaced and improved on the
modeling concepts that had been proposed in the modeling environment
COSY [3]. In parallel, a new version of the Dymola compiler was
issued, now coded in C.
- In 1994, the symbolic treatment of algebraic loops was improved by the
introduction of tearing variables. Also introduced were new language
elements that should enable the user to describe vector processes, as they
occur for example in mechanics in the description of multibody systems (MBS),
by means of matrices, offering a user interface similar to that available in
Matlab.
- Also in 1994, a new GUI was introduced that first took the name of
Dymodraw. In contrast to the earlier development of 1981, Dymodraw
was fully functional. Unfortunately, he tools offered in Dymodraw for the
definition of new graphical objects still left much to be desired. For
this reason, it was easy to use already developed graphical objects in
Dymodraw, but the design of new graphical objects was painful and error
prone. The graphic compiler was coded in C++.
- In 1995, the efficiency of the compiled simulation code was significantly
improved by the introduction of DASSL as the default integration method,
as well as by the new concept of "inlining", i.e., the merging of the
integrator equations with the model equations prior to the symbolic
preprocessing of the resulting differential-algebraic equation (DAE)
system [4].
- In 1996, the symbolic preprocessor was enhanced by yet another algorithm,
called "relaxing" of linear equation systems. The relaxing algorithm
offers a symbolic implementation of the Gauss reduction algorithm [5].
- Also in 1996, the language definition of Dymola, which by now was 18 years
old, underwent a major revision. Die resulting new language was called
Modelica. Modelica's language definition was placed in the public
domain. As the name "Dymola" had been freed up, the GUI from now on assumed
the name Dymola. By the year 2003, Dymola Version 5 was released, which
finally offered a completely redesigned and fully functional GUI, in which
also the design and development of new graphical objects can be accomplished
easily and reliably.
- In 1997, a standard committee was created, the task of which was the further
development and standardization of the language definition of Modelica.
Unfortunately, I could no longer participate personally in this effort, as this
would have called for 2-3 trips to Europe annually, mostly during teaching
sessions, which I could not justify.
- Already in 1993, I stopped with the further development of the Dymola compiler,
as I would not and could not compete with Elmqvist's group in this arena.
Instead, I subsequently focused my efforts on a task that my students and I
could handle much more easily and successfully, namely the design and
development of new Dymola/Modelica libraries, such as
BondLib .
Most Important Publications
- Cellier, F.E. (1991),
Continuous System Modeling,
Springer-Verlag, New York.
- Cellier, F.E., and H. Elmqvist (1993),
Automated Formula Manipulation Supports Object-Oriented
Continuous-System Modeling,
IEEE Control Systems, 13(2), pp.28-38.
- Elmqvist, H., F.E. Cellier, and M. Otter (1993),
Object-Oriented Modeling of Hybrid Systems,
Proc. ESS'93, SCS European Simulation Symposium,
Delft, The Netherlands, pp.xxxi-xli.
- Elmqvist, H., M. Otter, and F.E. Cellier (1995),
Inline Integration: A New Mixed Symbolic/Numeric Approach for Solving
Differential-Algebraic Equation Systems,
Proc. ESM'95, SCS European Simulation MultiConference,
Prague, Czech Republic, pp.xxiii-xxxiv.
- Otter, M., H. Elmqvist, and F.E. Cellier (1996),
"Relaxing" - A Symbolic Sparse Matrix Method Exploiting the Model
Structure in Generating Efficient Simulation Code,
Proc. Symposium on Modelling, Analysis, and Simulation,
CESA'96, IMACS MultiConference on Computational Engineering in Systems
Applications, Lille, France, vol.1, pp.1-12.
Sponsors
- NASA
- German Aerospace Establishment
Deutsche Version
Homepage
Last modified: July 4, 2005 -- © François Cellier