do-mpc

Model predictive control python toolbox

https://github.com/do-mpc/do-mpc

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary

Keywords

mhe-es
Last synced: 6 months ago · JSON representation ·

Repository

Model predictive control python toolbox

Basic Info
  • Host: GitHub
  • Owner: do-mpc
  • License: lgpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage: https://www.do-mpc.com/
  • Size: 88.1 MB
Statistics
  • Stars: 1,208
  • Watchers: 27
  • Forks: 196
  • Open Issues: 90
  • Releases: 0
Topics
mhe-es
Created almost 11 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

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, ...)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: do-mpc
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - orcid: 'https://orcid.org/0000-0003-3490-1256'
    given-names: Felix
    family-names: Fiedler
    email: felix.fiedler@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
  - given-names: 'Benjamin '
    family-names: Karg
    email: benjamin.karg@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0000-0002-9779-3101'
  - given-names: Lukas
    family-names: Lüken
    email: lukas.lueken@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0009-0004-5599-8282'
  - given-names: Dean
    family-names: Brandner
    email: dean.brandner@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0000-0003-1500-7064'
  - given-names: Moritz
    family-names: Heinlein
    email: moritz.heinlein@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0000-0002-2476-5919'
  - given-names: Felix
    family-names: Brabender
    email: felix.brabender@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0009-0007-0737-5998'
  - given-names: Sergio
    family-names: Lucia
    email: sergio.lucia@tu-dortmund.de
    affiliation: >-
      Chair of Process Automation Systems, TU Dortmund
      University
    orcid: 'https://orcid.org/0000-0002-3347-5593'
identifiers:
  - type: doi
    value: 10.1016/j.conengprac.2023.105676
    description: The DOI of the encompassing paper.
repository-code: 'https://github.com/do-mpc/do-mpc'
url: 'https://www.do-mpc.com/en/latest/index.html'
abstract: >-
  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.
keywords:
  - Nonlinear model predictive control
  - Learning-based control
  - Robust control
license: LGPL-3.0
preferred-citation:
  type: article
  authors:
  - family-names: "Fiedler"
    given-names: "Felix"
    orcid: "https://orcid.org/0000-0003-3490-1256"
  - family-names: "Karg"
    given-names: "Benjamin "
    orcid: "https://orcid.org/0000-0002-9779-3101"
  - family-names: "Lüken"
    given-names: "Lukas"
    orcid: "https://orcid.org/0009-0004-5599-8282"
  - family-names: "Brandner"
    given-names: "Dean"
    orcid: "https://orcid.org/0000-0003-1500-7064"
  - family-names: "Heinlein"
    given-names: "Moritz"
    orcid: "https://orcid.org/0000-0002-2476-5919"
  - family-names: "Brabender"
    given-names: "Felix"
    orcid: "https://orcid.org/0009-0007-0737-5998"
  - family-names: "Sergio"
    given-names: "Lucia"
    orcid: "https://orcid.org/0000-0002-3347-5593"
  doi: "10.1016/j.conengprac.2023.105676"
  journal: "Control Engineering Practice"
  month: 11
  title: "do-mpc: Towards FAIR nonlinear and robust model predictive control"
  volume: 140
  year: 2023

GitHub Events

Total
  • Create event: 2
  • Release event: 2
  • Issues event: 10
  • Watch event: 226
  • Issue comment event: 14
  • Push event: 19
  • Pull request review comment event: 1
  • Pull request review event: 1
  • Pull request event: 33
  • Fork event: 16
Last Year
  • Create event: 2
  • Release event: 2
  • Issues event: 10
  • Watch event: 226
  • Issue comment event: 14
  • Push event: 19
  • Pull request review comment event: 1
  • Pull request review event: 1
  • Pull request event: 33
  • Fork event: 16

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 4
  • Total pull requests: 18
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 8 days
  • Total issue authors: 4
  • Total pull request authors: 6
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.11
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 18
  • Average time to close issues: N/A
  • Average time to close pull requests: 8 days
  • Issue authors: 2
  • Pull request authors: 6
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.11
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • guest-oo (3)
  • jeff-hykin (2)
  • frapaoli (1)
  • skazaniyk (1)
  • MohammedUzairKhan (1)
  • gerhardadler (1)
  • TeoGoddet (1)
  • lamin574 (1)
  • profxavr (1)
  • ZeArteaga (1)
  • xqb-python (1)
  • 4flixt (1)
  • pswpswpsw (1)
  • ArtemJDS (1)
  • JoshuaAda (1)
Pull Request Authors
  • Mrfeli01 (10)
  • davidzanger (4)
  • JoshuaAda (4)
  • naskarsourjya (3)
  • DeanBrandner (2)
  • zhenwe1ma (1)
  • bunkerhill (1)
  • smjsadam (1)
Top Labels
Issue Labels
Support (9) enhancement (5) Documentation (3)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 5,441 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 11
  • Total versions: 25
  • Total maintainers: 1
pypi.org: do-mpc
  • Versions: 25
  • Dependent Packages: 3
  • Dependent Repositories: 11
  • Downloads: 5,441 Last month
  • Docker Downloads: 0
Rankings
Docker downloads count: 2.1%
Dependent packages count: 2.4%
Average: 3.6%
Dependent repos count: 4.4%
Downloads: 5.4%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/pythonpublish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/pythontest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite