Developer(s) | Modelon AB |
---|---|
Stable release | 2.10 / 22 March 2019 |
Repository | trac |
Written in | C, Python, C++, Java |
Operating system | Linux, Windows and OS X |
Type | Dynamic simulation and optimization |
License | Proprietary |
Website | www |
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]
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.
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.
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.
Dymola is a commercial modeling and simulation environment based on the open Modelica modeling language.
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.
APOPT is a software package for solving large-scale optimization problems of any of these forms:
Pyomo is a collection of Python software packages for formulating optimization models.
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.