What is Modelica?
Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1360 generic model components and 1280 functions in various domains, as of version 3.2.1.
What is ModelicaML?
Modelica Modeling Language (ModelicaML) is a graphical modeling language for the description of time-continuous and time-discrete/event-based system dynamics. ModelicaML is defined as an extended subset of the OMG Unified Modeling Language (UML). This subset enables the generation of executable Modelica code.
ModelicaML extends the graphical modeling capabilities of Modelica by providing more diagrams (UML diagrams for presenting the composition, connection, inheritance or behavior of classes) for graphical model definition or documentation. Moreover, ModelicaML supports a method for formalizing and evaluating system requirements using simulations.
What is UML?
The Unified Modeling Language (UML) is a general-purpose modeling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.It was created and developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software during 1994–95 with further development led by them through 1996. In 1997 it was adopted as a standard by the Object Management Group (OMG), and has been managed by this organization ever since. In 2000 the Unified Modeling Language was also accepted by the International Organization for Standardization (ISO) as an approved ISO standard. Since then it has been periodically revised to cover the latest revision of UML.
Simulation on Eclipse
When I look for an Eclipse based tools for my sgJavaSci Code Generation project, I tried many basic tools for Modeling like that EMF, GMF, Graphiti, Spray and so on… However Eclipse has more powerful tools based UML on top of basic tools, Papyrus, Sirius for System Engineer. It also has tools for code generation Acceleo and Xtext.
Regarding UML, it can be extended for using on various domain. For example one of them is SysML for system engineering and developing Embedde systems. However, this modeling languages are not for simulation.
Regarding ModelicaML, it can be used for code generation and simulation. A Modelica open source project, OpenModelica already has tools for development graphical and textual, Connection Editor (OMEdit) and NoteBook (OMNoteBook) applications. But output of this tools can not be used for code generation because they are not XML based. That is why ModelicaML was selected for code generation with GeneAuto. Also all of the tools to be used are open source.
You’ll find an example model on OpenModelica Connection editor, and an equivalent model on ModelicaML on Eclipse Kepler below. Also you can download source code of example below.
Example is a discrete model of simple up-counter
Modelica Model on OpenModelica Connection Editor
You should have OpenModelica installation to try this model