User:Hubertus65/Modelon Impact

Modelon Impact is a Modelica-based, multi-domain modeling and simulation tool developed by Modelon AB. Modelon Impact is a cloud-native Modelica tool that uses the Functional Mock-up Interface as its execution API, and the Python (programming language) for scripting and is thus fully based on open standards and languages. It uses the Optimica Compiler Toolkit by Modelon AB as the compiler engine. The Optimica Compiler Toolkit is the commercial, continuously developed version of JModelica.org. The Optimica Compiler Toolkit is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic and stationary systems. 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). The platform has been used in industrial projects with applications in robotics, vehicle systems, energy systems, CO2 separation and polyethylene production.



Platform Architecture
The key components of the Modelon Impact platform are:
 * A browser-based user interface for model authoring, simulation, plotting, and post-processing optimized for the Google Chrome browser -- other Chromium (web browser) based browsers will probably also work.
 * The Optimica Compiler, a Modelica compiler for translating Modelica source code into C or XML code. The compiler also generates models compliant with the Functional Mock-up Interface standard.
 * A Python package for simulation of dynamic models, Assimulo . Assimulo provides interfaces to several state-of-the-art integrators and is used as a simulation engine in JModelica.org.
 * A Python package for simulation of Functional-Mockup-Units, PyFMI and user interaction. All parts of the platform are accessed from Python, including compiling and loading models, simulating, and optimizing.
 * Algorithms for solving large-scale dynamic optimization problems implementing local collocation methods on finite elements.
 * Algorithms for solving large-scale non-linear equation systems for steady-state engineering design problems.
 * Open-source APIs in Python and Javascript for building simulation web-apps and integration with other engineering software.

The Optimica Compiler 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 Modelon Impact including transient simulation, steady-state design and sizing, sensitivity analysis, and optimization.

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

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

Modelon Impact is compliant with the Functional Mock-up Interface (FMI) standard version 2.02, and Functional Mock-up Units (FMUs), generated by Modelon Impact or by another FMI-compliant tool, can be simulated in Modelon Impact.

An independent comparison between Optimica's predecessor JModelica.org and the optimization systems ACADO Toolkit, IPOPT, and CppAD, is provided in the report Open-Source Software for Nonlinear Constrained Optimization of Dynamic Systems.

Supported Modeling and Analysis Methods
Model-based_design

Systems_engineering

Differential-algebraic_system_of_equations

Ordinary_differential_equation

Optimal_control

Design_optimization

Engineering_optimization

Inverse_problem

Sensitivity_analysis

Partial_differential_equation

Included Libraries and tools
Project_Jupyter