About JModelica.org

JModelica image

JModelica.org is an extensible Modelica-based open source platform for optimization, simulation and analysis of complex dynamic systems. The main objective of the project is to create an industrially viable open source platform for simulation and optimization of Modelica models, while offering a flexible platform serving as a virtual lab for algorithm development and research. As such, JModelica.org provides a platform for technology transfer where industrially relevant problems can inspire new research and where state of the art algorithms can be propagated from academia into industrial use. JModelica.org is a result of research at the Department of Automatic Control, Lund University, and is now maintained and developed by Modelon AB in collaboration with academia. 

JModelica.org is distributed under the GPL v.3 license approved by the Open Source Initiative.

JModelica.org at a glance:

  • Model your systems using the object-oriented and equation-based language Modelica
  • Solve your complex simulation and optimization problems using state of the art numerical algorithms
  • Automate your work in the Python scripting environment
  • Visualize your results  

JModelica.org is compliant with the Modelica Standard Library.

Mission statement

To offer a community-based, free, open source, accessible, user and application-oriented Modelica environment for optimization and simulation of complex dynamic systems, built on well-recognized technology and supporting major platforms.


If you use JModelica.org in your work, please give a reference to the project by citing the paper: Modeling and Optimization with Optimica and JModelica.org-Languages and Tools for Solving Large-Scale Dynamic Optimization Problem.

Main features


Simulation of dynamic systems is a standard engineering tool that is used extensively in a wide range of domains. Simulation is commonly used to assert the performance of new product or plant designs, evaluation of control designs, or as a means to explore possibilities for system improvements. JModelica.org supports the Modelica language which is developed specifically with simulation of complex heterogeneous systems in mind. Modelica supports object oriented, equation-based modeling of systems containing both continuous and discrete dynamics. Accordingly, involved physical phenomena such as friction and hystereses may be modeled as part of a dynamic model. JModelica.org supports the Functional Mock-up Interface standard (1.0 and 2.0, Model exchange and Co-simulation) for exporting and importing simulation models. JModelica.org is compliant with the Modelica Standard Library.

Optimal control

Many engineering problems may be cast as optimal control problems, where an objective is minimized subject to a dynamic model and constraints. The objective is commonly expressed as to minimize time, energy or an economic measure of performance, whereas the constraints typically reflects safety requirements or actuator limitation. Examples of optimal control problems include finding the acceleration and steering angle profiles that bring a racing car around a track in the shortest possible time and computation of raw material feeds for changing the product grade in plastics manufacturing plants while minimizing off-spec production. JModelica.org supports formulation of optimal control problems based on Modelica models through the Optimica extension. Optimica simplifies the task of setting up complicated optimization problems by offering an intuitive modeling environment complementing Modelica. The user's specification for the optimization problem is then automatically translated and solved by efficient numerical algorithms. Solution of optimal control problems may also be used as a building block in on-line optimization schemes such as Model Predictive Control and Moving Horizon Optimization.

Parameter estimation and model calibration

Object-oriented models constructed from first principles commonly contain a large number of physical parameters, some of which may not be entirely known. While densities, masses and physical plant dimensions may be found in tables or easily measured, heat transfer coefficients and moments of inertia may be difficult to find precise values for. Model calibration is therefore often necessary in order to obtain a model whose response is sufficiently close to that of the real system. Typically, model calibration is performed by collecting data from the real system and then using some mechanism, manual or automatic, to tune uncertain parameters until a satisfactory match between data and model response is obtained. Model calibration problems are readily formulated in Optimica and are solved by the same efficient algorithms as optimal control problems.

Use cases

The JModelica.org platform is intended to be used to solve a wide range of model-based optimization problems and is useful in a number of common scenarios:

  • You have come up with a dynamic model for a physical system but are unsure of some of its parameters, e.g. heat transfer coefficients. You do have data, but the task of tuning the unknown parameter until a good fit is obtained is tedious. Using the JModelica.org platform you can formulate an optimization problem that minimizes the deviation between the model response and your data.
  • You are developing a new product and need to investigate the influence of key design parameters on energy consumption and material cost. Such problems are often cast as optimization problems.
  • You try to tune a controller for a complex dynamic system. There are several specifications that the controller need to fulfill both in terms of performance and robustness in different operating conditions. JModelica.org enables you to formulate and solve optimization problems capturing the trade-off between multiple specifications and requirements.
  • You need to find optimal transitions for a dynamic process, where transition time, energy consumption, and raw material utilization is to be minimized. Such problems are conveniently cast as optimal control problems.
  • You are developing an on-line optimizing controller, for example a non-linear Model Predictive Controller. A key part of the strategy is then to solve a finite horizon optimal control problem.


JModelica.org is and will remain an open source project. The code base is provided under standard licenses approved by the Open Source Initiative. JModelica.org is subject to dual licensing and Modelon offers complementing commercial licenses, both for end-users and for OEM scenarios, see the OPTIMICA Compiler Toolkit for more information.