Table Of Contents

ModelicaRes

Python utilities to set up and analyze Modelica simulation experiments

The goal of ModelicaRes is to provide an open-source tool to effectively manage Modelica simulations, interpret results, and create publishable figures. It is currently possible to

  • Auto-generate simulation scripts,
  • Run model executables with varying parameters,
  • Browse data,
  • Perform custom calculations, and
  • Produce various plots and diagrams.

The figures are generated via matplotlib, which offers a rich set of plotting routines. ModelicaRes includes convenient functions to automatically pre-format and label some figures, like xy plots, Bode and Nyquist plots, and Sankey diagrams. ModelicaRes can be scripted or run from a Python interpreter with math and matrix functions from NumPy.

variable browser Sankey digarams of three tanks model

plot of Chua circuit example for modelicares.LinRes.nyquist()

The links below describe the components of ModelicaRes. The top-level module, modelicares, provides direct access to the most important classes and functions. Others must be accessed through their submodules. The modelicares.base submodule has general supporting functions. The modelicares.exps submodule has classes and functions to set up and manage simulation experiments. The modelicares.linres submodule has a class to load, analyze, and plot results from linearizing a model. The modelicares.simres submodule has classes to load, analyze, and plot simulation results. The modelicares.multi submodule has functions to load and plot results from multiple data files at once. The last submodule, modelicares.texunit, has functions to translate Modelica unit and displayUnit strings into LaTeX-formatted strings. Finally, the loadres script loads data files and provides a Python interpreter to help analyze them.

A PDF version of this documentation is available here. Updates to ModelicaRes may be available at the main project site. ModelicaRes is also listed in the Python Package Index (direct link). The development site is https://github.com/kdavies4/ModelicaRes.

Installation

An installable copy of this package can be downloaded from the main project site or the PyPI page. To install the package, first download and extract it. Then run the set up script (setup.py) from the base folder. On Windows, use the following command:

python setup.py install

On Linux, use:

sudo python setup.py install

The matplotlibrc file in the base folder has some recommended revisions to matplotlib‘s defaults. To use it, copy or move the file to the working directory or matplotlib‘s configuration directory. See http://matplotlib.org/users/customizing.html for details.

Credits

The main author is Kevin Davies. Kevin Bandy also helped in the development of this package. Third-party code has been included from Jason Grout (ArrowLine class), Jason Heeris (efficient base-10 logarithm), Richard Murray (python-control), and Joerg Raedler (method to expand a Modelica variable tree - from DyMat).

License terms

ModelicaRes is published under the terms of the BSD license (see LICENSE.txt). Please share any modifications you make (preferably on a Github fork from https://github.com/kdavies4/ModelicaRes) so that others may benefit from your work.

See also

The pysimulator, BuildingsPy, DyMat, and awesim projects provide related Python modules. pysimulator includes an elaborate GUI and supports the Functional Model Interface (FMI). BuildingsPy has a Tester class that can be used for unit testing. DyMat has functions to export Modelica simulation data to comma separated values (CSV), Gnuplot, MATLAB ®, and Network Common Data Form (netCDF). awesim provides tools to help run simulation experiments and organize the results.