deepc#

DeePC Implementation.

This module implements Data-Enabled Predictive Control (DeePC) based on the methodology presented in:

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

DeePC

Implements DeePC based on DPC.

DeePCPredictorMatrices

DeePC does not have a predictor as it utilizes directly the Hankel matrices.

DeePCRegularizationMatrices

Stores precomputed regularization matrix for the DeePC controller.

DeePCSpecificParameters

Stores and validates specific parameters for the DeePC controller.