MCPcopy Index your code
hub / github.com/do-mpc/do-mpc

github.com/do-mpc/do-mpc @v5.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.1.1 ↗ · + Follow
613 symbols 2,632 edges 151 files 413 documented · 67% updated 8mo agov5.1.1 · 2025-10-31★ 1,41985 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Model predictive control python toolbox

Documentation Status Build Status PyPI version awesome

do-mpc is a comprehensive open-source toolbox for robust model predictive control (MPC) and moving horizon estimation (MHE). do-mpc enables the efficient formulation and solution of control and estimation problems for nonlinear systems, including tools to deal with uncertainty and time discretization. The modular structure of do-mpc contains simulation, estimation and control components that can be easily extended and combined to fit many different applications.

In summary, do-mpc offers the following features:

  • nonlinear and economic model predictive control
  • support for differential algebraic equations (DAE)
  • time discretization with orthogonal collocation on finite elements
  • robust multi-stage model predictive control
  • moving horizon state and parameter estimation
  • modular design that can be easily extended

The do-mpc software is Python based and works therefore on any OS with a Python 3.x distribution. do-mpc was originally developed by Sergio Lucia and Alexandru Tatulea at the DYN chair of the TU Dortmund lead by Sebastian Engell. The development is continued at the Chair of Process Automation Systems (PAS) of the TU Dortmund by Felix Brabender, Joshua Adamek, Felix Fiedler and Sergio Lucia.

Installation instructions

Installation instructions are given here.

Documentation

Please visit our extensive documentation, kindly hosted on readthedocs.

Citing do-mpc

If you use do-mpc for published work please cite it as:

F. Fiedler, B. Karg, L. Lüken, D. Brandner, M. Heinlein, F. Brabender and S. Lucia. do-mpc: Towards FAIR nonlinear and robust model predictive control. Control Engineering Practice, 140:105676, 2023

Please remember to properly cite other software that you might be using too if you use do-mpc (e.g. CasADi, IPOPT, ...)

Core symbols most depended-on inside this repo

set_variable
called by 128
do_mpc/model/_model.py
add_line
called by 75
do_mpc/graphics.py
update
called by 71
do_mpc/data.py
set_rhs
called by 69
do_mpc/model/_model.py
make_step
called by 53
examples/kite/wind_model.py
full
called by 44
do_mpc/tools/_structure.py
set_initial_guess
called by 43
do_mpc/estimator/_ekf.py
make_step
called by 27
do_mpc/opcua/_base.py

Shape

Method 425
Function 119
Class 68
Route 1

Languages

Python100%

Modules by API surface

do_mpc/differentiator/_nlpdifferentiator.py37 symbols
do_mpc/model/_model.py26 symbols
do_mpc/sysid/_onnxconversion.py24 symbols
do_mpc/estimator/_mhe.py24 symbols
do_mpc/controller/_mpc.py24 symbols
do_mpc/optimizer.py22 symbols
do_mpc/simulator.py21 symbols
do_mpc/approximateMPC/_ampc.py19 symbols
do_mpc/approximateMPC/_ampc_sampler.py17 symbols
do_mpc/approximateMPC/_trainer.py15 symbols
do_mpc/opcua/_base.py14 symbols
do_mpc/graphics.py13 symbols

For agents

$ claude mcp add do-mpc \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact