deepc#
DeePC Implementation.
This module implements Data-Enabled Predictive Control (DeePC) based on the methodology presented in:
Data-Enabled Predictive Control: In the Shallows of the DeePC
Regularized and Distributionally Robust Data-Enabled Predictive Control
The DeePC controller is a subclass of Data-Driven Predictive Control (DPC). It differs from other DPC methods by optimizing over a slack decision variable g of size (n_col, 1). As n_col ~ n_samples for large n_samples, the computational performance is directly impacted by n_samples. Leading to a computational complexity of \(O(n_{ ext{samples}}^2)\). With a large number of samples, performance degrades further due to memory limitations.
Performance Benchmark (MacBook Pro, Double Integrator)#
Number of Samples |
Total Simulation Time |
|---|---|
100 |
~1 second |
300 |
~10 seconds |
1000 |
~4 minutes |
Note
100 samples are generally insufficient for the double integrator when process and measurement noise are present.
Classes
Implements DeePC based on DPC. |
|
DeePC does not have a predictor as it utilizes directly the Hankel matrices. |
|
Stores precomputed regularization matrix for the DeePC controller. |
|
Stores and validates specific parameters for the DeePC controller. |