References & Ressources

This page contains an annotated list of references for the course. These linked documents and websites are in fact the main source of learning material, since the course itself is mostly based on the practical study of examples.

Modelica, the language

Main website: Modelica and the Modelica Association https://www.modelica.org/.

Introductory material

A quick overview of Modelica (23 slides):

[Overview]

Martin Otter, “Modelica Overview”, 2013. CC-BY-SA 3.0. PDF slides.

“This slide set gives an overview about the Modelica language, including users view, libraries and a sketch of the language elements”.

A more extensive introduction (180 slides from a short course), including an introduction to the OpenModelica environment:

[Tutorial]

Peter Fritzson, Bernhard Thiele (Linköping University), “Introduction to Object-Oriented Modeling, Simulation, Debugging and Dynamic Optimization with Modelica using OpenModelica”, tutorial version 2016-02. PDF slides.

  • Part I: Introduction to Modelica and a demo example

  • Part II: Modelica environments and OpenModelica (p. 49)

  • Part III: Modelica language concepts and textual modeling (p. 94)

  • Part IV: Graphical modeling and the Modelica standard library (p. 138)

  • Part V: Dynamic Optimization (p. 159)

More learning material can be found on OpenModelica’s Modelica Courses page.

Learning material

A few extensive books have been published on Modelica, but one of them stands out as being freely available online (with a screen friendly format):

[Tiller-2014]

Michael M. Tiller “Modelica by Example”, online book, first published in 2014 an continuously updated since. URL: mbe.modelica.university.

  • Part I: Describing Behavior

  • Part II: Object-Oriented Modeling

This book is opensource, so if you find a typo or have ideas to improve some aspects, you can bring contributions in the GitHub repository.

In addition, M. Tiller published an earlier book which starts with a very good introduction to Modelica (design goals, comparison to other tools, a bit of history…).

[Tiller-2001]

Michael M. Tiller “Introduction to Physical Modeling with Modelica”, Kluwer Academic Publishers, 2001. It is available at the library of Centrale Supélec, campus of Rennes (call number 003.3 TIL).

Book extract: Chapter 1.pdf.

References on language and libraries

A benefit of the openness and standardization of the Modelica language is the availability of many libraries of predefined components. A list of available libraries (free or commercial) is maintained on https://www.modelica.org/libraries.

The most important library is the Modelica Standard Library (package Modelica). Each component has a short documentation which can be directly viewed in OMEdit. The entire documentation tree can also be browsed online: http://doc.modelica.org/.

Since this library is opensource, the definition of each component (written in Modelica) is also an interesting source of information. Each class can be opened in OMEdit. The entire code tree is available on GitHub.

Extensive information on the language itself is found in the language specification:

[Spec]

“Modelica Language Specification 3.3 Revision 1”, July 11, 2014. PDF document.

Abstract: This document defines the Modelica language, version 3.3, which is developed by the Modelica Association, a non-profit organization […]

Modelica environments

The https://modelon.com/modelon-impact/modelon-creator-suite/optimica-compiler-toolkit/ The two main opensource Modelica environments are OpenModelica and JModelica.org. Both include a Modelica compiler and simulation engine. However, as of 2016, only OpenModelica has a Graphical User Interface (GUI) to develop models graphically (e.g. interconnect components). On the other hand, JModelica has a strong Python interface and also enables more advanced features like trajectory optimization (“Optimica” extension).

OpenModelica

OpenModelica homepage: https://openmodelica.org/

Notice that OpenModelica is made of several tools. In particular, the graphical model editor is named OMEdit. An overview of the different components of OpenModelica can be found in Fritzson’s [Tutorial] slides. Much more details are found in the User guide, in particular about the scripting language:

[OM-guide]

Open Source Modelica Consortium (OSMC), “OpenModelica User’s Guide”, version 1.11.0-dev as of September 2016.

https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/

Git

Learning Git

As a gentle introduction, there is Software carpentry’s lesson:

[SWC-Git]

Daisie Huang and Ivan Gonzalez (eds), “Version Control with Git”, version 2016-10

lesson material: http://swcarpentry.github.io/git-novice/ (Creative Commons Attribution 4.0 license)

And to dig further, the nicely written and comprehensive Pro Git book:

[ProGit]

Scott Chacon and Ben Straub, “Pro Git”, Apress, 2nd Edition, 2014

freely available online (in many languages): https://git-scm.com/book (Creative Commons Attribution Non Commercial Share Alike 3.0 license)

Git GUIs

Git is a program with command line interface (“CLI”). However, there are several graphical tools to manipulate a Git repository without using the command line. In fact there are too many choices: https://git-scm.com/downloads/guis

For this course, TortoiseGit is installed on the computers. It provides for the Windows file explorer:

  • overlay icons showing the file status (added, changed, committed…)

  • a powerful context menu for Git (right click -> Git sync, clone…)