Skip to main content

Framework software package for the Data-Driven Predictive Control (DPC) algorithm with visual examples.

Project description

Do DPC

Pipeline Status Documentation Status

The purpose of this code is to provide a Framework for Data-Driven Predictive Control (DPC) with illustrative examples.

Please visit the extensive documentation, kindly hosted on readthedocs.

Citing do-dpc

Please follow the instructions if you want to use do-dpc for published work.

Getting Started

This library utilizes the Mosek Solver. While it is possible to use any solver compatible with CVXPY, it is recommended to use Mosek for optimal performance. Please follow the installation instructions on the Mosek website to set it up.

To ensure a clean and isolated development environment, it is recommended to use Python's virtual environment (venv).

Linux / macOS

python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Windows

py -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt

Building the documentation

Navigate to the docs Folder:

cd docs

Create and activate a virtual environment:

python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Generate the documentation:

make html

Once the HTML files are created, you can serve them locally:

python -m http.server --directory build/html 8000

Open your browser and visit:

http://localhost:8000

Folder structure

The code contains the following files and folders:

do-dpc/
├── do_dpc/                      # Core Python source code for the DPC library
│   ├── control_utils/            # Utilities for control systems (PID, noise generators, etc.)
│   ├── dpc/                     # Core DPC algorithms and implementations
│   │   ├── dpc.py               # Main DPC implementation
│   │   ├── dpc_structs.py       # Data structures for DPC
│   ├── utils/                    # General utility modules (logging, path management, etc.)
├── docs/                         # Documentation files (Sphinx)
│   ├── build/                    # Build artifacts for generated documentation
│   ├── source/                   # Source files for documentation
│   │   ├── _static/              # Static assets (images, CSS, etc.)
│   │   ├── _templates/           # Templates for documentation structure
│   │   ├── dpc_methods/         # Documentation for different DPC methods
│   │   ├── getting_started/      # Guides and introductory documentation
│   │   ├── conf.py               # Sphinx configuration file
│   │   ├── index.rst             # Main entry point for documentation
│   ├── .readthedocs.yaml         # Configuration for Read the Docs
│   ├── Makefile                  # Makefile for building the documentation
│   ├── make.bat                  # Windows batch script for building documentation
├── tests/                        # Test suite for the DPC library
│   ├── fixtures/                 # Pytest fixtures for setting up test cases
│   ├── system_tests/             # System-level integration tests
│   ├── unit_tests/               # Unit tests for individual modules
├── .gitlab-ci.yml                # CI/CD pipeline configuration for GitLab
├── .pylintrc                     # Linter configuration for Python code
├── CITATION.cff                  # Citation file for academic references
├── confest.py                    # Pytest configuration file
├── LICENSE.txt                   # Licensing information
├── README.md
├── requirements.txt
└── setup.py                      # Setup script for packaging and installation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

do_dpc-1.0.0.tar.gz (76.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

do_dpc-1.0.0-py3-none-any.whl (96.7 kB view details)

Uploaded Python 3

File details

Details for the file do_dpc-1.0.0.tar.gz.

File metadata

  • Download URL: do_dpc-1.0.0.tar.gz
  • Upload date:
  • Size: 76.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for do_dpc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 01a692d793662cec2dbb9e08b46dbe62308b8f842e6bf9b221265823e2bd374b
MD5 016e5575ef6970305b9a2633bd723bdd
BLAKE2b-256 a9aff6674a8fb84a403a9d4dba5106dfe32a4de34f767fefcfe6225c990241f2

See more details on using hashes here.

File details

Details for the file do_dpc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: do_dpc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 96.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for do_dpc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a445bc5c2f7e12c81d3a184c60e21bd0d91db91df3f121b4f684b2df926e96ca
MD5 42f5ef522aea92a9dff525a5d40f0e45
BLAKE2b-256 c435379d4c1aae2da91ea95b9ddc20fb5fb5a72069deacef4d55da565a99eb51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page