Skip to content

do-mpc

Sergio Lucia and Felix Fiedler / Chair of Process Automation Systems (PAS), TU Dortmund

do-mpc is a Python toolbox for nonlinear and robust model predictive control, moving horizon estimation, and simulation, with support for differential algebraic models and uncertainty.

Catalog updated ·

Overview

do-mpc provides tools for formulating and solving nonlinear control and estimation problems. Its central methods are model predictive control (MPC) and moving horizon estimation (MHE), including robust control approaches for problems involving uncertainty. For process-control work, it serves as a development toolbox rather than a ready-made controller for a particular plant: users work with their system model and control or estimation problem.

The documented architecture separates simulation, estimation, and control into components that can be combined and extended. Supported problem formulations include differential algebraic equations, while orthogonal collocation on finite elements provides a method for time discretization. At the workflow level, inputs are user-defined dynamic-system models and problem formulations; the corresponding results are control solutions, state or parameter estimates, and simulation results. The source excerpts do not specify exact input schemas, output formats, or component interfaces, so implementation details must be taken from the linked documentation.

The feature set includes nonlinear and economic MPC, robust multi-stage MPC, and moving horizon estimation of both states and parameters. These capabilities make do-mpc relevant to evaluating model-based process-control strategies and integrated simulation–estimation–control workflows. However, the supplied evidence contains no performance benchmarks, plant-specific validation, or demonstrated deployment outcomes. Although the README describes Python 3.x operating-system support, it provides no tested compatibility matrix. Installation requirements and application suitability should therefore be checked against the official documentation and a representative evaluation model.

Key Features

  • Formulation and solution of nonlinear and economic model predictive control problems.
  • Robust multi-stage MPC for control problems involving uncertainty.
  • Support for dynamic models expressed as differential algebraic equations.
  • Time discretization using orthogonal collocation on finite elements.
  • Moving horizon estimation of system states and parameters.
  • Separate simulation, estimation, and control components designed for combination and extension.

Use Cases

  • Suggested evaluation: compare nonlinear and economic MPC formulations for a representative dynamic process model.
  • Suggested evaluation: assess robust multi-stage MPC under selected uncertainty scenarios before considering a plant application.
  • Suggested evaluation: combine moving horizon state or parameter estimation with simulation and control to study an integrated model-based workflow.

How to Use

  1. Read the official README to identify whether nonlinear MPC, robust multi-stage MPC, or MHE matches the problem you intend to evaluate.
  2. Follow the installation instructions. Check the documented requirements for your environment rather than treating the README’s broad Python 3.x statement as a tested compatibility guarantee.
  3. Use the documentation to determine how to represent your dynamic model and configure the relevant components. For a differential algebraic model, inspect the documented formulation and time-discretization guidance.
  4. Plan a representative evaluation using the simulation, estimation, and control components needed for your task. Define uncertainty scenarios and assessment criteria separately from the toolbox’s documented capabilities.
  5. Examine the resulting control or estimation behavior before considering application-specific deployment. Consult the README’s citation guidance for published work and the repository licence for code-use obligations.

Related resources

PySINDy

Open Source

PySINDy is a Python package for inferring dynamical equations from measurement data using sparse system identification, with optional optimization methods for constrained and Bayesian regression.

Open sourcePython

Process Control · Digital Twins

GEKKO

Open Source

GEKKO is a Python modeling and optimization toolkit for differential algebraic systems, supporting process simulation, parameter estimation, mixed-integer optimization, and nonlinear predictive control.

Open sourcePython

Process Optimization · Process Control

SysIdentPy

Open Source

SysIdentPy is a Python toolkit for identifying nonlinear dynamic systems with NARMAX-family models, combining structure selection, parameter estimation, simulation and forecasting.

Open sourcePython

Process Control · Predictive Maintenance

Related guides

Workflows

Evaluating AI workflows for chemical engineering

Plan evaluations that separate process modelling, reaction optimisation and control. Define inputs, operating limits, time-aware validation and approval gates before considering operational use.