About JModelica.org
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 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 1.9 released
Submitted by jakesson on Fri, 2013-03-01 21:22The JModelica.org team is proud to present JModelica.org 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.
JModelica.org 1.8 released
-
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.
Join the JModelica.org tutorial at the 9th International Modelica Conference
Submitted by jakesson on Mon, 2012-05-21 11:46At the upcoming 9th International Modelica Conference in Munich, September 3-5, there will be a tutorial based on JModelica.org:
Dynamic Optimization and FMI Simulation with JModelica.org
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 JModelica.org is used in the tutorial.
Sign up at: https://www.modelica.org/events/modelica2012
We are looking forward to see you in Munich in September!
JModelica.org 1.7 released
Submitted by jakesson on Sat, 2012-02-04 22:03We are proud to announce that JModelica.org 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 JModelica.org.
- 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 JModelica.org 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 JModelica.org 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 JModelica.org.
For additional information, see the release notes. A binary installer for Windows is available at the download page.
Racing in Linköping
Submitted by jakesson on Tue, 2012-01-03 00:08In 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 JModelica.org and Optimica. More information is available at the project web page. Start the new year by enjoying this piece of creative engineering!
JModelica.org 1.6 released
Submitted by jakesson on Thu, 2011-10-13 17:57We are pleased to announce that JModelica.org 1.6 is now available for download.
Highlights in JModelica.org 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 JModelica.org 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 JModelica.org. FMU models generated by JModelica.org 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 JModelica.org. 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.
JModelica.org used for grade change optimization at Borealis
Submitted by jakesson on Fri, 2011-07-29 09:21
Plastics manufacturer Borealis uses JModelica.org 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 JModelica.org 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 JModelica.org
Submitted by jakesson on Mon, 2011-03-28 18:46One 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 JModelica.org. 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 JModelica.org" for additional details.
The FMU import and export functionality in JModelica.org 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","VDP.mo")
# 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 JModelica.org by downloading the latest version from the Downloads page.
JModelica.org goes to Dresden
Submitted by jakesson on Wed, 2011-03-02 20:59The 8th International Modelica Conference in Dresden, March 20-22 2011, is a great opportunity to learn more about JModelica.org.
- Tutorial: Dynamic Optimization of Modelica Models with JModelica.org and Optimica. Sunday March 20, 3:00pm-6:00pm. (Sign up when you register for the conference.)
- Vendor session: March 21, 5:20pm-6:05pm.
- Paper: Integration of ACADO Toolkit and CasADi in JModelica.org. Monday March 21, 2:15pm.
- Paper: Import and Export of Functional Mock-up Units in JModelica.org. Monday March 21, 4:00pm.
- Paper: Improving Newton's method for Initialization of Modelica models. Monday March 21, 11:05am.
- Paper: Models of a post-combustion absorption unit for simulation, optimization and non-linear model predictive control schemes. Monday March 21, 11:05am.
Modelon will also have an exhibition where you may come to meet members of the JModelica.org development team.
See you all in Dresden!

Recent comments
1 week 2 days ago
1 week 5 days ago
1 week 5 days ago
2 weeks 15 hours ago
2 weeks 17 hours ago
2 weeks 20 hours ago
2 weeks 21 hours ago
2 weeks 21 hours ago
2 weeks 4 days ago
2 weeks 5 days ago