JModelica.org

Last updated
JModelica.org
Developer(s) Modelon AB
Stable release
2.10 / 22 March 2019;4 years ago (2019-03-22)
Repository trac.jmodelica.org/wiki
Written in C, Python, C++, Java
Operating system Linux, Windows and OS X
Type Dynamic simulation and optimization
License Proprietary
Website www.jmodelica.org

JModelica.org is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. [1] The platform is maintained and developed by Modelon AB in collaboration with academic and industrial institutions, notably Lund University and the Lund Center for Control of Complex Systems (LCCC). [2] The platform has been used in industrial projects with applications in robotics, [3] vehicle systems, [4] energy systems, [5] CO2 separation [6] and polyethylene production. [7]

The key components of the platform are:

JModelica.org supports the Modelica modeling language for modeling of physical systems. Modelica provides high-level descriptions of hybrid dynamic systems, which are used as a basis for different kinds of computations in JModelica.org including simulation, sensitivity analysis and optimization.

Dynamic optimization problems, including optimal control, trajectory optimization, parameter optimization and model calibration can be formulated and solved using JModelica.org. The Optimica extension [8] enables high-level formulation of dynamic optimization problems based on Modelica models. The mintOC project [9] provides a number of benchmark problems encoded in Optimica.

The platform promotes open interfaces for integration with numerical packages. The Sundials [10] ODE/DAE integrator suite, the NLP solver IPOPT and the AD package CasADi are examples of packages that are integrated into the JModelica.org platform.

JModelica.org is compliant with the Functional Mock-up Interface (FMI) standard and Functional Mock-up Units (FMUs), generated by JModelica.org or by another FMI-compliant tool, can be simulated in the Python environment.

An independent comparison between JModelica.org and the optimization systems ACADO Toolkit, [11] IPOPT, and CppAD, is provided in the report Open-Source Software for Nonlinear Constrained Optimization of Dynamic Systems. [12]

The Eclipse plug-in for editing of Modelica source code has been discontinued. [13]

On December 18, 2019, Modelon decided to move the JModelica.org source code from open to closed source. The last open-source release is available for download on request. Assimulo, PyFMI and FMI Library are now on GitHub. [14]

See also

Related Research Articles

<span class="mw-page-title-main">Optimal control</span> Mathematical way of attaining a desired output from a dynamic system

Optimal control theory is a branch of control theory that deals with finding a control for a dynamical system over a period of time such that an objective function is optimized. It has numerous applications in science, engineering and operations research. For example, the dynamical system might be a spacecraft with controls corresponding to rocket thrusters, and the objective might be to reach the Moon with minimum fuel expenditure. Or the dynamical system could be a nation's economy, with the objective to minimize unemployment; the controls in this case could be fiscal and monetary policy. A dynamical system may also be introduced to embed operations research problems within the framework of optimal control theory.

Model predictive control (MPC) is an advanced method of process control that is used to control a process while satisfying a set of constraints. It has been in use in the process industries in chemical plants and oil refineries since the 1980s. In recent years it has also been used in power system balancing models and in power electronics. Model predictive controllers rely on dynamic models of the process, most often linear empirical models obtained by system identification. The main advantage of MPC is the fact that it allows the current timeslot to be optimized, while keeping future timeslots in account. This is achieved by optimizing a finite time-horizon, but only implementing the current timeslot and then optimizing again, repeatedly, thus differing from a linear–quadratic regulator (LQR). Also MPC has the ability to anticipate future events and can take control actions accordingly. PID controllers do not have this predictive ability. MPC is nearly universally implemented as a digital control, although there is research into achieving faster response times with specially designed analog circuitry.

<span class="mw-page-title-main">Modelica</span> Computer Language for System Modeling

Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1400 generic model components and 1200 functions in various domains, as of version 4.0.0.

SNOPT, for Sparse Nonlinear OPTimizer, is a software package for solving large-scale nonlinear optimization problems written by Philip Gill, Walter Murray and Michael Saunders. SNOPT is mainly written in Fortran, but interfaces to C, C++, Python and MATLAB are available.

A surrogate model is an engineering method used when an outcome of interest cannot be easily measured or computed, so an approximate mathematical model of the outcome is used instead. Most engineering design problems require experiments and/or simulations to evaluate design objective and constraint functions as a function of design variables. For example, in order to find the optimal airfoil shape for an aircraft wing, an engineer simulates the airflow around the wing for different shape variables. For many real-world problems, however, a single simulation can take many minutes, hours, or even days to complete. As a result, routine tasks such as design optimization, design space exploration, sensitivity analysis and "what-if" analysis become impossible since they require thousands or even millions of simulation evaluations.

ASCEND is an open source, mathematical modelling chemical process modelling system developed at Carnegie Mellon University since late 1978. ASCEND is an acronym which stands for Advanced System for Computations in Engineering Design. Its main uses have been in the field of chemical process modelling although its capabilities are general.

Scicos is a graphical dynamical system modeler and simulator. The software’s purpose is to create block diagrams to model and simulate the dynamics of hybrid dynamical systems and compile these models into executable code. Applications include signal processing, systems control, queuing systems, and the study of physical and biological systems.

Advanced process monitor (APMonitor) is a modeling language for differential algebraic (DAE) equations. It is a free web-service or local server for solving representations of physical systems in the form of implicit DAE models. APMonitor is suited for large-scale problems and solves linear programming, integer programming, nonlinear programming, nonlinear mixed integer programming, dynamic simulation, moving horizon estimation, and nonlinear model predictive control. APMonitor does not solve the problems directly, but calls nonlinear programming solvers such as APOPT, BPOPT, IPOPT, MINOS, and SNOPT. The APMonitor API provides exact first and second derivatives of continuous functions to the solvers through automatic differentiation and in sparse matrix form.

The Gauss pseudospectral method (GPM), one of many topics named after Carl Friedrich Gauss, is a direct transcription method for discretizing a continuous optimal control problem into a nonlinear program (NLP). The Gauss pseudospectral method differs from several other pseudospectral methods in that the dynamics are not collocated at either endpoint of the time interval. This collocation, in conjunction with the proper approximation to the costate, leads to a set of KKT conditions that are identical to the discretized form of the first-order optimality conditions. This equivalence between the KKT conditions and the discretized first-order optimality conditions leads to an accurate costate estimate using the KKT multipliers of the NLP.

<span class="mw-page-title-main">Dymola</span>

Dymola is a commercial modeling and simulation environment based on the open Modelica modeling language.

<span class="mw-page-title-main">SimulationX</span> Software application

SimulationX is a CAE software application running on Microsoft Windows for the physical simulation of technical systems. It is developed and sold by ESI Group.

EMSO simulator is an equation-oriented process simulator with a graphical interface for modeling complex dynamic or steady-state processes. It is CAPE-OPEN compliant. EMSO stands for Environment for Modeling, Simulation, and Optimization. The ALSOC Project - a Portuguese acronym for Free Environment for Simulation, Optimization and Control of Processes -, which is based at the UFRGS, develops, maintains and distributes this object-oriented software. Pre-built models are available in the EMSO Modeling Library (EML). New models can be written in the EMSO modeling language or a user can embed models coded in C, C++ or Fortran into the simulation environment.

The Functional Mock-up Interface defines a standardized interface to be used in computer simulations to develop complex cyber-physical systems.

Wolfram System Modeler, developed by Wolfram MathCore, is a platform for engineering as well as life-science modeling and simulation based on the Modelica language. It provides an interactive graphical modeling and simulation environment and a customizable set of component libraries.

Simcenter Amesim is a commercial simulation software for the modeling and analysis of multi-domain systems. It is part of systems engineering domain and falls into the mechatronic engineering field.

OpenModelica is a free and open source environment based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium, a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of RISE SICS East AB in collaboration with Linköping University.

The GEKKO Python package solves large-scale mixed-integer and differential algebraic equations with nonlinear programming solvers. Modes of operation include machine learning, data reconciliation, real-time optimization, dynamic simulation, and nonlinear model predictive control. In addition, the package solves Linear programming (LP), Quadratic programming (QP), Quadratically constrained quadratic program (QCQP), Nonlinear programming (NLP), Mixed integer programming (MIP), and Mixed integer linear programming (MILP). GEKKO is available in Python and installed with pip from PyPI of the Python Software Foundation.

References

  1. Johan Åkesson, Karl-Erik Årzén, Magnus Gäfvert, Tove Bergdahl, Hubertus Tummescheit: "Modeling and Optimization with Optimica and JModelica.org—Languages and Tools for Solving Large-Scale Dynamic Optimization Problem". Computers and Chemical Engineering, 34:11, pp. 1737-1749, November 2010.
  2. "Lund Center for Control of Complex Systems (LCCC)".
  3. Björn Olofsson, Henrik Nilsson, Anders Robertsson, Johan Åkesson:"Optimal Tracking and Identification of Paths for Industrial Robots". In Proc. 18th World Congress of the International Federation of Automatic Control (IFAC), Milano, Italy, August 2011.
  4. Tomas Gustafsson: "Computing the Ideal Racing Line Using Optimal Control". Linköping University, 2008
  5. Francesco Casella, Filippo Donida, Johan Åkesson: "Object-Oriented Modeling and Optimal Control: A Case Study in Power Plant Start-Up". In Proc. of 18th World Congress of the International Federation of Automatic Control (IFAC), August 2011.
  6. Johan Åkesson, R Faber, Carl Laird, Katrin Prölss, Hubertus Tummescheit, Stéphane Velut, Yu Zhu: "Models of a post-combustion absorption unit for simulation, optimization and non-linear model predictive control schemes". In 8th International Modelica Conference, March 2011.
  7. Per-Ola Larsson, Johan Åkesson, Staffan Haugwitz, Niklas Andersson: "Modeling and Optimization of Grade Changes for Multistage Polyethylene Reactors". In Proc. of 18th World Congress of the International Federation of Automatic Control (IFAC), September 2011.
  8. Johan Åkesson: "Optimica—An Extension of Modelica Supporting Dynamic Optimization". In In 6th International Modelica Conference 2008, Modelica Association, March 2008.
  9. "The mintOC project".
  10. "The Sundials project".
  11. "The ACADO Toolkit project".
  12. Rune Brus: "Open-Source Software for Nonlinear Constrained Optimization of Dynamic Systems". Technical University of Denmark, Department of Informatics and Mathematical Modeling, Scientific Computing. 2010.
  13. "Remove Eclipse Plugins".
  14. "JModelica Closed Source Announcement". Archived from the original on 13 February 2020. Retrieved 13 February 2020.