This repository contains an implementation of the improved Dynamic Mode Decomposition with Control (DMDC) algorithm, as described in the paper:
- Gyurhan Nedzhibov, "An Improved Approach for Implementing Dynamic Mode Decomposition with Control", Computation, 2023, 11(10), 201. DOI: 10.3390/computation11100201
The implementation focuses on the "mpc_controller" branch, which integrates DMDC with Model Predictive Control (MPC) for enhanced control of dynamical systems.
Dynamic Mode Decomposition with Control (DMDC) is a data-driven method for analyzing and modeling complex dynamical systems that are influenced by external control inputs. It extends the traditional Dynamic Mode Decomposition (DMD) by incorporating control signals, making it particularly useful for systems where external actuation plays a significant role.
This repository implements an improved version of DMDC, as proposed in the referenced paper. The key improvements include:
-
Computational Efficiency: The algorithm uses singular value decomposition (SVD) of lower-order matrices and reduces the number of matrix multiplications.
-
Simplified Structure: The resulting dynamic mode matrices have a simpler structure compared to the standard DMDC approach.
The original DMDC algorithm approximates the models to
Data Setup:
Singular Value Decomposition (SVD):
Compute truncated SVD of
where
-
$\tilde{U} \in \mathbb{R}^{(n+q) \times p}$ , -
$\tilde{\Sigma} \in \mathbb{R}^{p \times p}$ -
$\tilde{V} \in \mathbb{R}^{m \times p}$ -
$p$ is the truncation rank.
Approximate System Matrices:
where
-
$G = [A, B] \in \mathbb{R}^{n \times (n+q)}$ .
So we can split
Where:
-
$\tilde{U}_1 \in \mathbb{R}^{n \times p}$ , -
$\tilde{U}_2 \in \mathbb{R}^{q \times p}$ .
Then:
Reduced-Order Model:
We need to have some projection matrix, which is independent from the control input, to represent our dynamics system in a new space. We can take it from column space of matrix
where
Project matrices:
Dynamic Modes:
Compute eigenvalues
DMD modes:
The alternative DMDC algorithm simplifies computations using a pseudoinverse approach.
Pseudoinverse Approach:
Compute the Moore-Penrose pseudoinverse of
where
So the idea is taking different projection matrix to find reduced model. We can extract that matrix from the
We can rewrite the matrix
Then we have:
Also, we can compute reduced-Order SVD:
Compute SVD of
where
Then we can project the original transition matrix A into a new basis, defined by
Then the dynamics mode of the system in new basis are:
Compute eigenvalues
DMD modes:
This is an improved version of Alternative DMDc. We note that to compute the pseudo-inverse matrix, it is usually necessary to perform some decomposition of the augmented matrix
Compute SVD of
where
Compute pseudoinverse:
Lower-Dimensional SVD:
Let
Compute SVD of
where
Up to this point, we have obtained the projection matrix
Then the dynamics mode of the system in new basis are:
Compute eigenvalues
DMD modes:
-
Quoc-Viet Pham
-
Xuan-Phuc Nguyen
-
Swahibath Saad
-
Ali Mohsin Hussain
-
Talha Sajid
This project is licensed under the MIT License. See the LICENSE.md file for details. Contact For any questions, issues, or feedback, please contact:
Email: thexuanphuc@gmail.com


