Modelica—A language for equation-based physical modeling and high performance simulation
A new language called Modelica for hierarchical physical modeling is developed through an international effort. Modelica 1.0 [http:// www.Dynasim.se/Modelica] 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 and techniques.
Compared to the widespread simulation languages available today this language offers two 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.
A class in Modelica may contain variables (i.e. instances of other classes), equations and local class definitions. The multi-domain capability is partly based on a notion of connectors, which 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 model is translated into a 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 C/C++ code generated from Modelica models is quite efficient.
High performance parallel simulation code can be obtained either at the coarse-grained level by identifying fairly independent submodels which are simulated in parallel, or at the fine-grained level by parallelizing on clustered expression nodes in the equation graph. Preliminary results using the coarse-grained approach have been obtained in an application on simulating an autonomous aircraft watching car traffic.
Unable to display preview. Download preview PDF.
- Mats Andersson: Object-Oriented Modeling and Simulation of Hybrid Systems. Ph.D. thesis ISRN LUTFD2/TFRT-1043-SE, Department of Automatic Control, Lund Institute of Technology, Lund, Sweden, December 1994.Google Scholar
- Hilding Elmqvist, Dag Brück, and Martin Otter: Dymola—User’s Manual. Dynasim AB, Research Park Ideon, Lund, Sweden, 1996, http://www.Dynasim.seGoogle Scholar
- Hilding Elmqvist, Sven-Erik Mattsson: Modelica— The Next Generation Modeling Language—An International Design Effort. In Proceedings of First World Congress of System Simulation, Singapore, September 1–3 1997.Google Scholar
- Peter Fritzson, Vadim Engelson. Modelica—A Unified Object-Oriented Language for System Modeling and Simulation, In Proceedings of ECOOP-98, Brussels, July 1998, LNCS 1445, Springer Verlag.Google Scholar
- Dag Fritzson, Patrik Nordling. Solving Ordinary Differential Equations on Parallel Computers Applied to Dynamic Rolling Bearing Simulation. In Parallel Programming and Applications, P. Fritzson, L. Finmo, eds., IOS Press, 1995Google Scholar
- A.C. Hindmarsh. ODEPACK, A Systematized Collection of ODE Solvers, Scientific Computing, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, 1983 (Vol. 1 of IMACS Transactions on Scientific Computation), pp. 55–64, also http://www.netlib.org/odepack/index.htmlGoogle Scholar
- Modelica Home Page. http://www.Dynasim.se/ModelicaGoogle Scholar
- ObjectMath Home Page. http://www.ida.liu.se/labs/pelab/omathGoogle Scholar
- Martin Otter, C. Schlegel, and Hilding Elmqvist. Modeling and Real-time Simulation of an Automatic Gearbox using Modelica. In Proceedings of ESS’97— European Simulation Symposium, Passau, Oct. 19–23, 1997.Google Scholar
- Clemens Szyperski. Component Software—Beyond Object-Oriented Programming. Addison-Wesley, 1997.Google Scholar