digital-brain/content/zettels/singular_value_decomposition.md

70 lines
3.4 KiB
Markdown
Raw Normal View History

2020-09-21 17:01:53 +02:00
+++
title = "Singular Value Decomposition"
author = ["Thomas Dehaeze"]
draft = false
+++
Tags
:
## SVD of a MIMO system {#svd-of-a-mimo-system}
2020-09-21 17:03:45 +02:00
This is taken from the book [Multivariable feedback control: analysis and design]({{< relref "skogestad07_multiv_feedb_contr" >}}).
2020-09-21 17:01:53 +02:00
We are interested by the physical interpretation of the SVD when applied to the frequency response of a MIMO system \\(G(s)\\) with \\(m\\) inputs and \\(l\\) outputs.
\begin{equation}
G = U \Sigma V^H
\end{equation}
\\(\Sigma\\)
: is an \\(l \times m\\) matrix with \\(k = \min\\{l, m\\}\\) non-negative **singular values** \\(\sigma\_i\\), arranged in descending order along its main diagonal, the other entries are zero.
\\(U\\)
: is an \\(l \times l\\) unitary matrix. The columns of \\(U\\), denoted \\(u\_i\\), represent the **output directions** of the plant. They are orthonormal.
\\(V\\)
: is an \\(m \times m\\) unitary matrix. The columns of \\(V\\), denoted \\(v\_i\\), represent the **input directions** of the plant. They are orthonormal.
The input and output directions are related through the singular values:
\begin{equation}
G v\_i = \sigma\_i u\_i
\end{equation}
So, if we consider an input in the direction \\(v\_i\\), then the output is in the direction \\(u\_i\\).
Furthermore, since \\(\normtwo{v\_i}=1\\) and \\(\normtwo{u\_i}=1\\), we see that **the singular value \\(\sigma\_i\\) directly gives the gain of the matrix \\(G\\) in this direction**.
The **largest gain** for any input is equal to the **maximum singular value**:
\\[\maxsv(G) \equiv \sigma\_1(G) = \max\_{d\neq 0}\frac{\normtwo{Gd}}{\normtwo{d}} = \frac{\normtwo{Gv\_1}}{\normtwo{v\_1}} \\]
The **smallest gain** for any input direction is equal to the **minimum singular value**:
\\[\minsv(G) \equiv \sigma\_k(G) = \min\_{d\neq 0}\frac{\normtwo{Gd}}{\normtwo{d}} = \frac{\normtwo{Gv\_k}}{\normtwo{v\_k}} \\]
We define \\(u\_1 = \bar{u}\\), \\(v\_1 = \bar{v}\\), \\(u\_k=\ubar{u}\\) and \\(v\_k = \ubar{v}\\). Then is follows that:
\\[ G\bar{v} = \maxsv \bar{u} ; \quad G\ubar{v} = \minsv \ubar{u} \\]
## SVD to pseudo inverse rectangular matrices {#svd-to-pseudo-inverse-rectangular-matrices}
2020-09-21 17:03:45 +02:00
This is taken from the book [Vibration Control of Active Structures - Fourth Edition]({{< relref "preumont18_vibrat_contr_activ_struc_fourt_edition" >}}).
2020-09-21 17:01:53 +02:00
The **Singular Value Decomposition** (SVD) is a generalization of the eigenvalue decomposition of a rectangular matrix:
\\[ J = U \Sigma V^T = \sum\_{i=1}^r \sigma\_i u\_i v\_i^T \\]
With:
- \\(U\\) and \\(V\\) orthogonal matrices. The columns \\(u\_i\\) and \\(v\_i\\) of \\(U\\) and \\(V\\) are the eigenvectors of the square matrices \\(JJ^T\\) and \\(J^TJ\\) respectively
- \\(\Sigma\\) a rectangular diagonal matrix of dimension \\(m \times n\\) containing the square root of the common non-zero eigenvalues of \\(JJ^T\\) and \\(J^TJ\\)
- \\(r\\) is the number of non-zero singular values of \\(J\\)
The pseudo-inverse of \\(J\\) is:
\\[ J^+ = V\Sigma^+U^T = \sum\_{i=1}^r \frac{1}{\sigma\_i} v\_i u\_i^T \\]
The conditioning of the Jacobian is measured by the **condition number**:
\\[ c(J) = \frac{\sigma\_{max}}{\sigma\_{min}} \\]
When \\(c(J)\\) becomes large, the most straightforward way to handle the ill-conditioning is to truncate the smallest singular value out of the sum.
This will have usually little impact of the fitting error while reducing considerably the actuator inputs \\(v\\).
<./biblio/references.bib>