APMonitor

Advanced process monitor (APMonitor) is a modeling language for differential algebraic (DAE) equations.

[1] It is a free web-service or local server for solving representations of physical systems in the form of implicit DAE models.

[4] 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.

Julia, MATLAB, Python are mathematical programming languages that have APMonitor integration through web-service APIs.

The GEKKO Optimization Suite is a recent extension of APMonitor with complete Python integration.

APMonitor models and data are compiled at run-time and translated into objects that are solved by an optimization engine such as APOPT or IPOPT.

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.

As a first step in solving the problem, a mathematical model is expressed in terms of variables and equations such as the Hock & Schittkowski Benchmark Problem #71[5] used to test the performance of nonlinear programming solvers.

Once the APMonitor package is installed, it is imported and the apm_solve function solves the optimization problem.

Similar interfaces are available for MATLAB and Julia with minor differences from the above syntax.

Extending the capability of a modeling language is important because significant pre- or post-processing of data or solutions is often required when solving complex optimization, dynamic simulation, estimation, or control problems.

The highest order of a derivative that is necessary to return a DAE to ODE form is called the differentiation index.

While the syntax is similar to other modeling languages such as gProms, APMonitor solves DAEs of any index without rearrangement or differentiation.

[6] As an example, an index-3 DAE is shown below for the pendulum motion equations and lower index rearrangements can return this system of equations to ODE form (see Index 0 to 3 Pendulum example).

Many physical systems are naturally expressed by differential algebraic equation.

Some of these include: Models for a direct current (DC) motor and blood glucose response of an insulin dependent patient are listed below.

They are representative of differential and algebraic equations encountered in many branches of science and engineering.