OpenModelica

From Script | Spoken-Tutorial
Jump to: navigation, search

OpenModelica is an open source modelling and simulation environment intended for industrial and academic usage.It is an object oriented declarative multi domain modelling language for complex systems. The OpenModelica environment allows most of the expression, algorithm, and function parts of Modelica to be executed interactively, as well as equation models and Modelica functions to be compiled into efficient C code. The generated C code is combined with a library of utility functions, a run-time library and a numerical DAE solver. OpenModelica Connection Editor is the new Graphical User Interface for graphical model editing in OpenModelica.

Modelica has emerged as a strong contender in the arena of simulation languages. Modelica's object-oriented design makes it easy to develop chemical engineering unit operations and connect them to one another. With proprietary databases of thermodynamic and physical properties interfaced into the software, simulation of Chemical Engineering models has become much more user friendly and provides accurate results.

This environment can be used to work for both steady state as well as dynamic systems. Attractive strategy when dealing with design and optimization problems. As all the equations are solved simultaneously it doesn't matter whether the unknown variable in an input or output variable.

The Spoken Tutorial Effort for OpenModelica was contributed by Bhargava Nemmaru from the Spoken Tutorial Project and is supported by Rahul Jain, Kaushik Datta, Rahul Nagraj (intern) and Jayaram Ganesh (intern) from IIT Bombay.


Basic Level

1. Developing an equation-based model

  • Introduction to OMEdit
  • Declaration of variables and equations
  • Simulation of a model in OMEdit
  • Changing simulation conditions using Simulation Setup toolbox

2. Control flow and Event handling

  • Using if-else statement in Modelica
  • Handling time and state events
  • Using when statement in Modelica

3. Functions and Types

  • Defining a function in Modelica
  • Using algorithm
  • Defining custom types in Modelica

4. Arrays in Modelica

  • Declaring array variables in Modelica
  • Constructing arrays
  • Using for and while loops

5. Array Functions and Operations

  • Using OMShell
  • Using array construction functions in Modelica
  • Performing arithmetic operations on vectors and matrices
  • Using array conversion functions

Intermediate Level

6. Modelica Packages

  • Creating a package of classes in Modelica
  • Reference classes in a package
  • Importing classes in a package
  • Using Modelica library

7. Annotations in Modelica

  • Specifying model annotations in Modelica
  • Defining a record

8. Icon and Diagram Views

  • Specifying Icon and Diagram Views of a class in Modelica
  • Inserting figures in Icon/Diagram View

9. Component-oriented modeling

  • Instantiating a model in Modelica
  • Defining connectors
  • Developing model of a simple electric circuit using component models

10. Block Component Modeling

  • Defining a block in Modelica
  • Connecting blocks
  • Using blocks from Modelica library

Contributors and Content Editors

Kaushik Datta, Nancyvarkey