Skip to main content

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

Metadata

Release files for do-dpc 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for do-dpc 1.0.0
File Size Uploaded
do_dpc-1.0.0.tar.gz 76.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for do-dpc 1.0.0
File Interpreter ABI Platform
do_dpc-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 173.2 kB

Release files / do_dpc-1.0.0.tar.gz

Download URL do_dpc-1.0.0.tar.gz
Size 76.5 kB
Tags Source
SHA-256 checksum
How to use checksums
01a692d793662cec2dbb9e08b46dbe62308b8f842e6bf9b221265823e2bd374b
BLAKE2b-256 checksum
How to use checksums
a9aff6674a8fb84a403a9d4dba5106dfe32a4de34f767fefcfe6225c990241f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Release files / do_dpc-1.0.0-py3-none-any.whl

Download URL do_dpc-1.0.0-py3-none-any.whl
Size 96.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a445bc5c2f7e12c81d3a184c60e21bd0d91db91df3f121b4f684b2df926e96ca
BLAKE2b-256 checksum
How to use checksums
c435379d4c1aae2da91ea95b9ddc20fb5fb5a72069deacef4d55da565a99eb51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page