From mintOC
Jump to: navigation, search

Advanced process monitor (APMonitor), is a modeling language for mixed integer and differential algebraic equations. It is a free web-service or locally installed service for solving this class of problems. APMonitor is suited for large-scale problems and allows solutions of 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.

Programming Language Integration

Julia, MATLAB, and Python are mathematical programming languages that have APMonitor integration through web-service APIs. The interfaces are built-in optimization toolboxes or modules to both load and process solutions of optimization problems. APMonitor is an object-oriented modeling language and optimization suite that relies on programming languages to load, run, and retrieve solutions. APMonitor models and data are compiled at run-time and translated into objects that are solved by an optimization engine such as APOPT (MINLP) or IPOPT (NLP). The optimization engine is not specified by APMonitor, allowing several different optimization engines to be switched out. The simulation or optimization mode is also configurable to reconfigure the model for dynamic simulation, nonlinear model predictive control, moving horizon estimation or general problems in mathematical optimization.

High Index DAEs

The highest order of a derivative that is necessary to return a DAE to ODE form is called the differentiation index. A standard way for dealing with high-index DAEs is to differentiate the equations to put them in index-1 DAE or ODE form with Pantelides algorithm. However, this approach can cause a number of undesirable numerical issues such as instability. While the syntax is similar to other modeling languages, APMonitor solves DAEs of any index without rearrangement or differentiation.


The APMonitor Python package can be installed with pip install APMonitor or from the following Python code.

# Install APMonitor
import pip

Similar interfaces are available for MATLAB and Julia with minor differences in APMonitor syntax between the languages. APMonitor is freely available as a web service or a locally installed web server for Linux or Windows.

Supported Problem Classes

  • Optimal Control Problems with ODEs or DAEs
  • Minimum Time Problems
  • Optimal Design
  • Model Calibration
  • Parameter Estimation


Dynamic optimization uses direct collocation solved with large-scale nonlinear programming solvers. APMonitor provides exact first and second derivatives of continuous functions to the solvers through automatic differentiation and in sparse matrix form.


Pages in category "APMonitor"

This category contains only the following page.