1.11 released

The team is pleased to announce that 1.11 is now available for download. Some of the main highlights in this release are:

  • Runtime logging
  • Support for ModelicaError and assert
  • Support for ModelicaStandardTables in MSL
  • Improved compliance

Please refer to the release notes and compliance diagnostics for details. A binary distribution for Windows is available at the download page. 1.10 released

The team is pleased to announce that 1.10 is now available for download. Some of the main highlights in this release are:

  • Export of FMUs for Co-Simulation
  • Import of FMU 2.0b4 in PyFMI
  • Improved variable scaling in the CasADi collocation
  • Improved handling of measurement data in the CasADi collocation
  • Improved log format for FMUs
  • Improved Modelica compliance

Please refer to the release notes and compliance diagnostics for details. A binary distribution for Windows is available at the download page. 1.9 released

The team is proud to present 1.9. New key features includes:

  • Improved Modelica compliance, including support for external objects
  • Support for MSL CombiTables
  • Significant improvements in execution speed and memory consumption for the compiler - models with more than 100.000 equation can be compiled
  • Simulation of Co-simulation FMUs
  • Improvements to the CasADi-based collocation algorithm, including variable scaling based on simulation trajectories and support for minimum-time problems.
  • Support for Modelica 3.2

See the release notes and the compliance reports for details. A binary installer for Windows is available at the download page. 1.8 released release 1.8 is now available for download. The main highlights of this release are:
  • Improved Modelica compliance of the compiler front-end, including support for if equations and inner/outer declarations.
  • Optimized performance and memory utilization of the compiler front-end.
  • A new state selection algorithm with support for user defined state selections.
  • A new function inlining algorithm for conversion of algorithmic functions into equations. The algorithm is described in the paper Function Inlining in Modelica Models.
  • Improvements to the CasADi-based collocation optimization algorithm, including support for terminal constraints.
See the release notes and the compliance reports for details. A binary installer for Windows is available at the download page.

Join the tutorial at the 9th International Modelica Conference

At the upcoming 9th International Modelica Conference in Munich, September 3-5, there will be a tutorial based on
Dynamic Optimization and FMI Simulation with
Dynamic optimization is becoming a standard industrial technology to solve a wide range of industrial engineering problems. These include optimal control and model predictive control, model calibration and state estimation as well as design and sizing problems. In this tutorial, participants will get hands on experiences with formulating and solving engineering problems where simulation based on the FMI standard, dynamic optimization based on the Optimica extension and Python scripting are used as building blocks. During the tutorial, we will also discuss challenges and pitfalls in optimization of industrial processes, and we highlight modeling considerations for dynamic optimization. The open source platform is used in the tutorial.
Sign up at:
We are looking forward to see you in Munich in September! 1.7 released

We are proud to announce that release 1.7 is now available for download. The main highlights of this release are:

  • Improved support for hybrid systems, including friction models and ideal diodes. The improvements include solution of mixed systems of equations, which significantly strengthens the FMI-based simulation capabilities of
  • Support for tearing of equation systems. A graph-theoretical algorithm for computation of tearing variables of equation systems has been implemented, which enables faster simulation times of FMUs.
  • Support for external FORTRAN functions. This feature enables use of the LAPACK functions in the ModelicaStandard Library.
  • Support for function inlining. In order to simplify models containing functions, typically used in media libraries, inlining of function calls has been implemented. In particular, this feature is useful for simplification of models used for optimization.
  • Support for export of Modelica functions in stand-alone DLLs. This feature is useful for exporting Modelica functions, e.g., media functions into stand-alone DLLs (shared object files) for interfacing in third party tools.
  • Refactorization of the Python code: a new stand-alone package, PyFMI, is offered. Scripting and simulation of Functional Mock-Up Units (FMUs) in Python is of interest for many FMI-compliant tools. Therefore, the PyFMI package is now provided both as part of and as a stand-alone package.
  • A new dynamic optimization algorithm for DAEs implemented in Python based on collocation and CasADi has been implemented. The new algorithm provides significantly improved flexibility and performance.

With the 1.7 release, we introduce compliance reports, where we provide diagnostics on what models in the Modelica Standard Library are supported. The purpose is to assist users in assessing the level of Modelica compliance in
For additional information, see the release notes. A binary installer for Windows is available at the download page.

Racing in Linköping

In a control course at Linköping University, a group of students have created a system for driving radio controlled racing cars around a track as fast as possible. The solution relies on image processing, a fail-safe system for avoiding crashes, and optimal track profiles computed by and Optimica. More information is available at the project web page. Start the new year by enjoying this piece of creative engineering! 1.6 released

We are pleased to announce that 1.6 is now available for download.
Highlights in 1.6

  • Derivative-free optimization of FMUs for parameter tuning
  • Index reduction to handle high-index DAEs
  • A pseudo spectral optimization algorithm
  • A graphical user interface for visualization of simulation and optimization results

The derivative-free optimization algorithm in enables users to calibrate dynamic models compliant with the Functional Mock-up Interface standard (FMUs) using measurement data. The new functionality offers flexible and easy to use Python functions for model calibration and relies on the FMU simulation capabilities of FMU models generated by or other FMI-compliant tools such as AMESim, Dymola, or SimulationX can be calibrated.

Pseudo spectral optimization methods, based on collocation, are now available. The algorithms relies on CasADi for evaluation of derivatives, first and second order, and IPOPT is used to solve the resulting non-linear program. Optimization of ordinary differential equations and multi-phase problems are supported. The algorithm has been developed in collaboration with Mitsubishi Electric Research Lab, Boston, USA, where it has been used to solve satellite navigation problems.

A Python-based graphical user interface for easy visualization of simulation and optimization results is a new addition to This is a feature has been frequently requested by users and we are therefore very pleased with this development.
For additional information, see the release notes. A binary installer for Windows is available at the download page. used for grade change optimization at Borealis

Borealis plant

Plastics manufacturer Borealis uses to develop a decision support system for grade changes. As competition gets fierce and prices on raw materials and products fluctuate, the ability to quickly respond to new market conditions is put into focus. In a collaboration with the departmens of Chemical Engineering and Automatic Control at Lund University, Borealis develops a model-based decision support system where Modelica-models for polyethylene production are optimized using the platform. Key technologies are model calibration and dynamic optimization of economic cost functions.  

The project is part of the Process Industrial Centre at Lund University (PIC-LU) and is funded by the Swedish Foundation for Strategic Research (Stiftelsen för Strategisk Forskning).

The project was recently reported in the Swedish journal Automation, see full article (used with permission).

Functional Mock-up Interface support in

One of strongest impressions from the 8th International Modelica Conference in Dresden was the overwhelming interest in the Functional Mock-up Interface (FMI). Several presentations and many discussions around the coffee tables centered around FMI-based applications and future extensions of FMI. 

As of version 1.5, import and export of Functional Mock-up Units (FMUs) is supported in The import feature can be used also with large scale FMUs from other FMI compliant tools such as Dymola and SimulationX, with simulation performance on par with what can be achieved natively with such tools. See the paper "Import and Export of Functional Mock-up Units in" for additional details.

The FMU import and export functionality in is easily accessible in the form of well tested and documented Python classes and functions. Simulation results are retrieved as Numpy arrays and can be analyzed, processed and visualized using standard Python functions. 

Compilation, loading and simulation of an FMU is performed by a few simple but powerful Python commands: 

# Import the function for compilation of models and the FMUModel class
from pymodelica import compile_fmu
from pyfmi import FMUModel

# Compile model
fmu_name = compile_fmu("VDP","")

# Load model
vdp = FMUModel(fmu_name)

# Simulate
res = vdp.simulate(final_time=10)

# Get the results
x1 = res['x1']
x2 = res['x2']
t  = res['time']

To try out the FMI features of by downloading the latest version from the Downloads page.

Syndicate content