kb:driven_response

Driven response

For a SISO LTI DT state-space system:

$$ \mathbf{q}[n+1] = \mathbf{A}\mathbf{q}[n] + \mathbf{b}x[n] $$ $$ y[n] = \mathbf{c}^T\mathbf{q}[n] + dx[n] $$

The state matrix $\mathbf{A}$ can be written as:

$$ \mathbf{A} = \mathbf{V}\mathbf{\Lambda}\mathbf{V}^{-1} $$

where

$$ \mathbf{V} = \begin{bmatrix} \mathbf{v}_1 | \mathbf{v}_2 | \dots | \mathbf{v}_L \end{bmatrix} $$

  • $\mathbf{V}$ is a matrix whose columns are the eigenvectors of $\mathbf{A}$.

$$ \mathbf{\Lambda} = \begin{bmatrix} \lambda_1 & & & 0 \\ & \lambda_2 & & \\ & & \ddots & \\ 0 & & & \lambda_L\end{bmatrix} $$

  • $\mathbf{V}$ is a diagonal matrix whose entries are the eigenvalues of $\mathbf{A}$.

Then, we can rewrite the state evolution equation:

$$ \mathbf{q}[n+1] = \mathbf{A}\mathbf{q}[n] + \mathbf{B}x[n] $$ $$ = \mathbf{V}\mathbf{\Lambda}\mathbf{V}^{-1}\mathbf{q}[n] + \mathbf{B}x[n] $$

We can define a new vector $\mathbf{r}[n]$:

$$ \mathbf{r}[n] = \mathbf{V}^{-1}\mathbf{q}[n] $$

The state evolution equation can be rearranged to describe the evolution of $\mathbf{r}[n]$:

$$ \mathbf{r}[n+1] = \mathbf{V}^{-1}\mathbf{q}[n+1] = \mathbf{\Lambda}\mathbf{r}[n] + \underbrace{\mathbf{V}^{-1}\mathbf{b}}_{\mathbf{\beta}}x[n] $$

$$ \mathbf{r}[n+1] = \mathbf{\Lambda}\mathbf{r}[n] + \mathbf{\beta}x[n] $$

This means that, for $i=1$ to $L$:

$$ r_i[n+1] = \lambda_i r_i[n] + \beta_i x[n] $$

because $\mathbf{\Lambda}$ is a diagonal matrix. This is nice because the components of $\mathbf{r}[n]$ are now evolving independently.

This means that we can write an closed-form solution for $r_i[n]$ for any $n$.

$$ r_i[n] = \underbrace{(\lambda_i^n)r_i[0]}_{ZIR} + \underbrace{\sum_{k=1}^{n} \lambda_i^{k-1} \beta_i x[n-k]}_{ZSR}, n \geq 1 $$

We can also write the output equation in terms of $\mathbf{r}[n]$.

$$ y[n] = \mathbf{c}^T\mathbf{q}[n] + dx[n] $$ $$ y[n] = \underbrace{\mathbf{c}^T\mathbf{V}}_{\mathbf{\xi}^T}\mathbf{r}[n] + dx[n] = \mathbf{\xi}^T \mathbf{r}[n] + dx[n] $$

This means that:

$$ y[n] = \left(\sum_{i=1}^{L} \xi_i r_i[n]\right) + dx[n] = \xi_1 r_1[n] + \xi_2 r_2[n] + \dots + \xi_L r_L[n] + dx[n] $$

We can easily write the Z-transform of each $r_i[n]$ and sum them (with the feed-forward $d$) to find the transfer function $H(z)$.

$$ r_i[n+1] = \lambda_i r_i[n] + \beta_i x[n] \leftrightarrow R_i(z) = \frac{\beta_i}{z-\lambda_i}X(z)$$

$$ Y(z) = \underbrace{\left[ \left( \sum_{i=1}^{L} \xi_i \frac{\beta_i}{z - \lambda_i} \right) + d \right] }_{H(z)} X(z) $$

For a SISO linear CT state-space system:

$$ \dot{\mathbf{q}}(t) = \mathbf{A}\mathbf{q}(t) + \mathbf{b}x(t) $$ $$ y(t) = \mathbf{c}^T\mathbf{q}(t) + dx(t) $$ The state matrix $\mathbf{A}$ can be written as:

$$ \mathbf{A} = \mathbf{V}\mathbf{\Lambda}\mathbf{V}^{-1} $$

where

$$ \mathbf{V} = \begin{bmatrix} \mathbf{v}_1 | \mathbf{v}_2 | \dots | \mathbf{v}_L \end{bmatrix} $$

  • $\mathbf{V}$ is a matrix whose columns are the eigenvectors of $\mathbf{A}$.

$$ \mathbf{\Lambda} = \begin{bmatrix} \lambda_1 & & & 0 \\ & \lambda_2 & & \\ & & \ddots & \\ 0 & & & \lambda_L\end{bmatrix} $$

  • $\mathbf{V}$ is a diagonal matrix whose entries are the eigenvalues of $\mathbf{A}$.

Then, we can rewrite the state evolution equation:

$$ \dot{\mathbf{q}}(t) = \mathbf{A}\mathbf{q}(t) + \mathbf{B}x(t) $$ $$ = \mathbf{V}\mathbf{\Lambda}\mathbf{V}^{-1}\mathbf{q}(t) + \mathbf{B}x(t) $$

Again, the state variables can be transformed into modal coordinates $r_i$, which evolve independently of each other.

$$ \mathbf{r}(t) = \mathbf{V}^{-1}\mathbf{q}(t) $$

They can be described by the following evolution equation.

$$ \dot{r_i}(t) = \lambda_i r_i(t) + \beta_i x(t), i = 1, \dots, L $$

The output can be described by:

$$ y(t) = (\sum_{i=1}^{L}\xi_i r_i(t)) + dx(t) = \xi_1 r_1(t) + \xi_2 r_2(t) + \dots + \xi_L r_L(t) + dx(t) $$

where:

$$ \mathbf{\xi} = \mathbf{c}^T \mathbf{V} = \begin{bmatrix} \underbrace{\mathbf{c}^T \mathbf{v}_1 }_{\xi_1}| \dots | \underbrace{\mathbf{c}^T\mathbf{v}_L}_{\xi_L} \end{bmatrix} $$

The closed-form solution can be written as:

$$ r_i(t) = \underbrace{e^{\lambda_i} r_i(0)}_{\mathrm{ZIR}} + \underbrace{\int_0^t e^{\lambda_i \tau} \beta_i x(t-\tau) d\tau}_{\mathrm{ZSR}} $$

The ZSR (zero-state response/driven response) can be written as a convolution of the time-domain transfer function and the input:

$$ (h_i \ast x)(t) $$

$$ h_i(t) = e^{\lambda_i} \beta_i u(t) $$

In terms of modal coordinates:

$$ \dot{r}_i(t) = \lambda_i r_i(t) + \beta_i x(t) \leftrightarrow R_i(s) = \frac{\beta_i}{s - \lambda_i} X(s) $$

$$ y(t) = \left[\sum_{i=1}^{L} \xi_i (\lambda_i r_i(t) + \beta_i x(t))\right] + dx(t)$$ $$ Y(s) = \underbrace{\left[\left(\sum_{i=1}^{L} \xi_i \frac{\beta_i}{s - \lambda_i} \right) + d \right]}_{H(s)} X(s) $$

In terms of state-space matrices:

$$ Y(s) = \underbrace{[\mathbf{c}^T (s\mathbf{I} - \mathbf{A})^{-1} \mathbf{b} + d]}_{H(s)} X(s) $$

Any modes that are unreachable or unobservable are hidden from the I/O transfer function.

In this example:

$$ H(z) = \frac{z+1}{z^2+3z+1} = \frac{z+1}{(z+1)(z+2)} = \frac{1}{z+2} $$

There is a hidden mode at $z=-1$.

An unreachable mode is a mode of the system that cannot be excited by any input.

If $\beta_j = 0$, then the $j$th mode is unreachable.

As a reminder, $\mathbf{\beta} = \mathbf{V}^{-1}\mathbf{b}$. This means that $\mathbf{\beta}$ is dependent on the eigenvectors of the state matrix $\mathbf{A}$ and the input vector $\mathbf{b}$.

An unobservable mode does not have any effect on the output.

If $\xi_k = 0$, then the $k$th mode is unobservable.

As a reminder, $\mathbf{\xi} = \mathbf{c}^T\mathbf{V}$. This means that $\mathbf{\xi}$ is dependent on the eigenvectors of the state matrix $\mathbf{A}$ (again) and the output vector $\mathbf{c}$.

  • kb/driven_response.txt
  • Last modified: 2024-04-30 04:03
  • by 127.0.0.1