顯示具有 State Space 標籤的文章。 顯示所有文章
顯示具有 State Space 標籤的文章。 顯示所有文章

7/08/2014

[線性系統] 控制性矩陣 與 非奇異轉換 (Controllability matrix & Non-singular transformation)

延續先前線性系統理論 對於非奇異轉換的討論,由於 轉移函數 用 State space 表示實現的方法並不唯一;e.g., controllable canonical form, observable canonical form, digonal form. 故現在我們再進一步審視此問題

給定轉移函數 $H(s)$,現考慮對此轉移函數的任兩種 狀態空間實現 $\Sigma$ 與 $\tilde \Sigma$
\[\left\{ \begin{array}{l}
\Sigma  = (A,B,C,D)\\
\tilde \Sigma  = (\tilde A,\tilde B,\tilde C,\tilde D)
\end{array} \right.\],亦即
\[
H(s) = H_{\Sigma }(s) = C(sI-A)^{-1}B + D \equiv  \tilde{C} (sI- \tilde A)^{-1} \tilde B + \tilde D = H_{\tilde{\Sigma }}(s)
\]

那麼我們想知道是否存在一個 $n \times n$ 的非奇異轉換矩陣 $T$ 使得 我們有映射 $\Sigma \rightarrow \tilde \Sigma$

由先前文章可知,$\tilde A = T A T^{-1}$,$\tilde B = TB$,$\tilde C = C T^{-1}$,$\tilde D = D$,現在觀察下式
\[\left\{ \begin{array}{l}
\tilde B = TB\\
\tilde A\tilde B = \left( {TA{T^{ - 1}}} \right)TB = TAB\\
{{\tilde A}^2}\tilde B = \left( {TA{T^{ - 1}}} \right)TAB = T{A^2}B\\
 \vdots \\
{{\tilde A}^{n - 1}}\tilde B = \left( {TA{T^{ - 1}}} \right)TAB = T{A^{n - 1}}B
\end{array} \right.
\] 我們可以看出上式中一些運算的規則,現在將其改寫為更簡潔的形式如下
\[\underbrace {\left[ {\begin{array}{*{20}{c}}
{\tilde B}&{\tilde A\tilde B}& \cdots &{{{\tilde A}^{n - 1}}\tilde B}
\end{array}} \right]}_{: = {C_{\tilde \Sigma }}} = T\underbrace {\left[ {\begin{array}{*{20}{c}}
{AB}&{{A^2}B}& \cdots &{{A^{n - 1}}B}
\end{array}} \right]}_{: = {C_\Sigma }}
\] 亦即 $C_{\tilde \Sigma}= T C_{\Sigma}$ . $(\star)$

上式 $C_{\Sigma}$ 與 $C_{\tilde \Sigma}$ 稱為 控制性矩陣 (Controllability matrix)。故 非奇異矩陣 $T$ 可透過上述關係得到。

注意到如果為單輸入單輸出 (SISO) 系統,且假設  $C_{\Sigma}$ 與 $C_{\tilde \Sigma}$ 為方陣。 $C_{\Sigma}$ 為 non-singular,則我們可以找到非奇異轉換矩陣 $T$
\[
T = C_{\tilde \Sigma}C_{\Sigma}^{-1}
\]

若 多輸入系統,則無法直接求解反矩陣,故我們需先使 $(\star)$ 左右變成方陣:
\[
\underbrace {{C_{\tilde \Sigma }}{C_\Sigma }^T}_{\underbrace {\left( {n \times nm} \right) \times \left( {mn\times n} \right)}_{n \times n}} = T\underbrace {{C_\Sigma }{C_\Sigma }^T}_{\underbrace {\left( {n \times nm} \right) \times \left( {mn \times n} \right)}_{n \times n}}
\]現在   ${{C_\Sigma }{C_\Sigma }}$ 為 non-singular,則我們可以找到非奇異轉換矩陣 $T$
\[
T = {C_{\tilde \Sigma }}{C_\Sigma }^T{\left( {{C_\Sigma }{C_\Sigma }^T} \right)^{ - 1}}
\]

故 我們知道如果要有 非奇異矩陣 $T$,則矩陣 $C_{\Sigma} C_{\Sigma }^T$ 必須非奇異,故我們有下列 Controllability Rank conditon:

Controllability Rank Condition
 $C_{\Sigma} C_{\Sigma }^T$ 為非奇異 若且為若 $\text{rank}{C_{\Sigma}} = n$


Comment:
1. 在 MATLAB中,給定動態系統 $A, B$ 矩陣,則我們可以使用  C = ctrb(A,B) 指令來直接幫助我們計算 Controllability Matrix, C,接著再用 rank(C) 指令確認此矩陣是否滿足我們的 Controllability Rank Condition ,如果滿足我們稱此系統為可控制(controllable)。

2. non-singular transform 不改變 Eigenvalues,亦即
\[eig\left( {TA{T^{ - 1}}} \right) = eig\left( A \right)
\]其中 $eig(\cdot)$ 表特徵值。
Proof
令 $T$ 為 nonsingular transformation matrix,且 $\lambda_i$ 為 $TAT^{-1}$ 矩陣對應的 eigenvalue,也就是說 $TAT^{-1}$ 的 eigenvalues 滿足 $\det(\lambda_i I - TAT^{-1}) =0$。故
\[\begin{array}{l}
\det \left( {{\lambda _i}I - TA{T^{ - 1}}} \right) = 0\\
 \Rightarrow \det \left( {{\lambda _i}T{T^{ - 1}} - TA{T^{ - 1}}} \right) = 0\\
 \Rightarrow \det \left( {T\left( {{\lambda _i}I - A} \right){T^{ - 1}}} \right) = 0\\
 \Rightarrow \det \left( T \right)\det \left( {{\lambda _i}I - A} \right)\det \left( {{T^{ - 1}}} \right) = 0
\end{array}\]由於 $T$ 為 nonsingular,故 $T^{-1}$ 存在且 $\det(T) \neq 0$,  $\det(T^{-1}) \neq 0$。故只有
\[
\det(\lambda_i I - A) =0
\]亦即 $\lambda_i$ 亦為 矩陣 $A$ 的 eigenvalue。 $\square$

[線性系統] 實現定理 與 非奇異轉換

這次要介紹 線性系統理論 中的一個重要結果:稱作實現理論 ( Realization Theory )

考慮一個轉移函數 $H(s)$ 可以將其由 狀態空間表示,我們記做 $\Sigma$。
其中
\[\Sigma : = \left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right.
\] 則我們有以下定義:
==============
Definition: Realization
令 $H(s)$ 為給定轉移函數,則我們說 其狀態空間 $\Sigma $  為 $H(s)$ 的實現 (Realization) 若下列條件成立:
\[
C(sI-A)^{-1}B + D = H(s)
\]
=============
Comments:
1. 上述 實現(Realization) 意指可以透過 實體電路 (e.g., OP放大器等) "實現" 狀態方程。
2. 設 $\sum = (A,B,C,D) $ 為 $H(s)$ 的實現,現在定義 $T$ 為任意 $n \times n$ 的非奇異矩陣 (non-singular matrix),則我們可以定義下列 新系統 以狀態空間表示:
\[
\tilde {\sum} = (\tilde A, \tilde B, \tilde C, \tilde D)
\]
其中 $\tilde A = TAT^{-1}$, $\tilde B = TB$, $\tilde C = CT^{-1}$, $\tilde D = D$。

那麼現在我們來看看此新系統的轉移函數為何?

\[\begin{array}{l}
\tilde C{(sI - \tilde A)^{ - 1}}\tilde B + \tilde D = C{T^{ - 1}}{(sI - TA{T^{ - 1}})^{ - 1}}TB + D\\
 \ \ \ \ \ \ \ \ = C{T^{ - 1}}{(sT{T^{ - 1}} - TA{T^{ - 1}})^{ - 1}}TB + D\\
  \ \ \ \ \ \ \ \ = C{T^{ - 1}}{\left( {T\left( {sI - A} \right){T^{ - 1}}} \right)^{ - 1}}TB + D\\
 \ \ \ \ \ \ \ \  = C{T^{ - 1}}\left( {T{{\left( {sI - A} \right)}^{ - 1}}{T^{ - 1}}} \right)TB + D\\
  \ \ \ \ \ \ \ \ = C{\left( {sI - A} \right)^{ - 1}}B + D \\
  \ \ \ \ \ \ \ \ = H(s)
\end{array}\]

上述結果告訴我們

1. 狀態空間表示 若透過 非奇異轉換 (Non-singular transformation),其轉移函數不變 (invariant)

2. 上式non-singular transformation 等價於 將系統以新的狀態變數 $z := T x$ 改寫。
由於 $z = Tx \Rightarrow \dot z = T\dot x \Rightarrow \dot x = {T^{ - 1}}\dot z$,故原系統狀態表示可改寫為
\[\begin{array}{l}
\left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
{T^{ - 1}}\dot z = A{T^{ - 1}}z + Bu\\
y = C{T^{ - 1}}z + Du
\end{array} \right.\\
 \Rightarrow \left\{ \begin{array}{l}
\dot z = \underbrace {TA{T^{ - 1}}}_{\tilde A}z + \underbrace {TB}_{\tilde B}u\\
y = \underbrace {C{T^{ - 1}}}_{\tilde C}z + \underbrace D_{\tilde D}u
\end{array} \right.
\end{array}\]

有了上述結果之後,我們知道同一系統的 任意狀態空間實現 都可透過 非奇異轉換 求得相同的轉移函數,那麼現在問題變成怎樣的轉移函數才可以被實現??

以下我們給出一個重要且簡潔的定理來回答這個問題:

=======================
Theorem: Realization Theorem
任意 proper (分母階數大於或者等於分子階數) 轉移函數皆為可實現 (realizable)。 
=======================

那麼問題變成已知 proper 轉移函數可以實現 (有狀態空間表示),那麼該如何實現呢? 我們用下面這個例子來說明:

現在考慮 轉移函數
\[
H(s) = \frac{b_m s^m + b_{m-1}s^{m-1} + ... + b_1 s^1 + b_0}{s^n + a_{n-1}s^{n-1} + a_{n-2}s^{n-2} + ... + a_1 s^1 + a_0} + r
\] 其中 $m < n$ (properness)

在不失一般性的情況,我們設 $m = n-1$,則我們由 Realization Theorem 可知 此轉移函數存在 狀態空間表示 (可以實現),故我們可寫成
\[\begin{array}{l}
A = \left[ {\begin{array}{*{20}{c}}
0&1&0&0& \cdots &0\\
0&0&1&0& \cdots &0\\
0&0&0&1&{0 \cdots }&0\\
 \vdots & \vdots &{}&\begin{array}{l}
0\\
 \vdots
\end{array}& \ddots & \vdots \\
0&0& \cdots & \cdots &0&1\\
{ - {a_0}}&{ - {a_1}}&{ - {a_2}}& \cdots &{ - {a_{n - 2}}}&{ - {a_{n - 1}}}
\end{array}} \right],B = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
0\\
 \vdots \\
0\\
1
\end{array}} \right]\\
C = \left[ {\begin{array}{*{20}{c}}
{{b_0}}&{{b_1}}&{{b_2}}& \cdots &{{b_{m - 1}}}&{{b_m}}
\end{array}} \right]\\
D = r
\end{array}\]
上式實現 稱為 可控典型式 (Controllable Canonical form)。

Comments:
1. 為何上述實現被稱為可控典型式?

觀察上式
\[\begin{array}{l}
\dot x = Ax + Bu = A\\
 \Rightarrow \dot x = \left[ {\begin{array}{*{20}{c}}
0&1&0&0& \cdots &0\\
0&0&1&0& \cdots &0\\
0&0&0&1&{0 \cdots }&0\\
 \vdots & \vdots &{}&{\begin{array}{*{20}{l}}
0\\
 \vdots
\end{array}}& \ddots & \vdots \\
0&0& \cdots & \cdots &0&1\\
{ - {a_0}}&{ - {a_1}}&{ - {a_2}}& \cdots &{ - {a_{n - 2}}}&{ - {a_{n - 1}}}
\end{array}} \right]x + B = \left[ {\begin{array}{*{20}{c}}
0\\
0\\
0\\
 \vdots \\
0\\
1
\end{array}} \right]u
\end{array}
\] 現在計算對應的特徵方程式 $\det( sI - A)$,我們可得
\[
\det(sI-A) = s^n + a_{n-1}s^{n-1} + ... + a_0
\] 現在如果我們讓控制力 $ u = Kx$亦即
\[u = \left[ {\begin{array}{*{20}{c}}
{{k_1}}&{{k_2}}& \cdots &{{k_n}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
 \vdots \\
{{x_n}}
\end{array}} \right]
\]則 受控制的動態系統可以改寫為
\[
\dot x = Ax + Bu = Ax + B(Kx ) = (A+BK)x
\]此時
\[\begin{array}{l}
 \Rightarrow A + BK = \left[ {\begin{array}{*{20}{c}}
0&1&0& \cdots &0\\
0&0&1&{0 \cdots }& \vdots \\
0&0&0& \ddots &0\\
 \vdots & \vdots &{}&0&1\\
{ - {a_0}}&{ - {a_1}}& \cdots & \cdots &{ - {a_{n - 1}}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
0\\
0\\
 \vdots \\
0\\
1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{k_1}}&{{k_2}}& \cdots &{{k_n}}
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}
\end{array}\begin{array}{*{20}{c}}
{}
\end{array}\begin{array}{*{20}{c}}
{}
\end{array}\begin{array}{*{20}{c}}
{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
0&1&0& \cdots &0\\
0&0&1&{0 \cdots }& \vdots \\
0&0&0& \ddots &0\\
 \vdots & \vdots &{}&0&1\\
{{k_1} - {a_0}}&{{k_2} - {a_1}}& \cdots & \cdots &{{k_n} - {a_{n - 1}}}
\end{array}} \right]
\end{array}\]上式可以發對每一個參數 $a_i, \forall i =0, ...,n$ 都有一個對應的控制力參數 $k_j, j=1,...,n$來與之調整,故對應的特徵方程 $\det(sI-(A+BK))$ 的特性根根 (亦即 poles)亦會被 $K$ 直接。此poles 的位置將直接影響到系統性能,故如果某動態系統可寫為可控典型式,則我們可透過上述的控制力 $u=Kx $ 直接改變每一個系統的特性根位置。

2.
在 MATLAB 中 由轉移函數轉成狀態空間實現,可以透過指令 tf2ss.m 來達成。在此不贅述

以下我們看個例子:

Example
考慮轉移函數
\[G(s) = \frac{Y(s)}{U(s)}= \frac{{{b_2}{s^2} + {b_1}{s^1} + {b_0}}}{{a_3^{}{s^3} + {a_2}{s^2} + {a_1}{s^1} + {a_0}}} + r
\]其中 $r$ 為常數。試求出 controllable canonical form:
Solution
注意到我們有額外的常數 $r$ 故可知 $D =r$ (此額外的項,表示輸入可直接影響輸出)

故我們只需專心在 strictly proper 的轉移函數部分即可。另外此例由於階數較低,我們可以用推導的方式求得 controllable canonical form。現在我們觀察轉移函數,並將其繪製成方塊圖

其中我們引入中繼函數 $X(s)$,則透過上圖我們可將轉移函數改寫回微分方程如下
\[\left\{ \begin{array}{l}
\frac{{X(s)}}{{U(s)}} = \frac{1}{{{s^3} + {a_2}{s^2} + {a_1}{s^1} + {a_0}}}\\
\frac{{Y(s)}}{{X(s)}} = {b_2}{s^2} + {b_1}{s^1} + {b_0}
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
{x^{\left( 3 \right)}} + {a_2}\ddot x + {a_1}\dot x + {a_0}x = u\\
{b_2}\ddot x + {b_1}\dot x + {b_0}x = y
\end{array} \right.\]現在我們定義狀態 $x: = {x_1},\dot x: = {x_2},\ddot x: = {x_3}$ 則上式改寫如下
\[\left\{ \begin{array}{l}
a_3^{}{x^{\left( 3 \right)}} + {a_2}\ddot x + {a_1}\dot x + {a_0}x = u\\
{b_2}\ddot x + {b_1}\dot x + {b_0}x = y
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
{{\dot x}_3} + {a_2}{x_3} + {a_1}{x_2} + {a_0}{x_1} = u\\
{b_2}{x_3} + {b_1}{x_2} + {b_0}{x_1} = y
\end{array} \right.\]且我們有 ${{\dot x}_1} = {x_2},\;{{\dot x}_2} = {x_3}$ 故我們可寫成
\[\begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array}\]如下
\[\left\{ \begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
{{{\dot x}_1}}\\
{{{\dot x}_2}}\\
{{{\dot x}_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0&1&0\\
0&0&1\\
{ - {a_0}}&{ - {a_1}}&{ - {a_2}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
0\\
0\\
1
\end{array}} \right]u\\
y = \left[ {\begin{array}{*{20}{c}}
{{b_0}}&{{b_1}}&{{b_2}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right]
\end{array} \right.\]上式即為 controllable canonical form。

現在合併先前我們的 $D=r$ 故可得最終表示為
\[\left\{ \begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
{{{\dot x}_1}}\\
{{{\dot x}_2}}\\
{{{\dot x}_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0&1&0\\
0&0&1\\
{ - {a_0}}&{ - {a_1}}&{ - {a_2}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
0\\
0\\
1
\end{array}} \right]u\\
y = \left[ {\begin{array}{*{20}{c}}
{{b_0}}&{{b_1}}&{{b_2}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] + ru \ \ \ \ \ \ \ \square
\end{array} \right.\]

上述可控典型式 與 實現定裡之間關係 我們會留待下一篇文章在做介紹。
[線性系統] Controllability Matrix

另外亦會對非奇異轉換矩陣 $T$ 的求得?? 也就是是否可以找到一個非奇異轉換矩陣 來幫助我們從一個狀態空間的實現 變成 另一個呢?? 做額外補充。

7/06/2014

[線性系統] 線性動態系統的表示法: 轉移函數 與 狀態空間表示

這次要介紹線性系統理論中對於動態系統的表示方法:
一般而言,線性動態系統 可以用 線性微分方程(O.D.E.) 來表達,但在控制理論中亦提供兩種不同的方法來表達動態系統:

一種稱為 轉移函數(transfer function) 表示法 (主要工具為 拉式轉換)
一種稱為 狀態空間(state space) 表示法 (主要工具為 矩陣線性代數)

那麼同一種 動態系統間,不同的表示法 可以互相等價轉換,現在我們先看個例子:

Example: Dynamic System to Transfer function
考慮下列動態系統微分方程
\[
\frac{{{d^3}y}}{{d{t^3}}} + 6\frac{{{d^2}y}}{{d{t^2}}} + 5\frac{{dy}}{{dt}} - 4y = u\left( t \right) + 2\frac{{du\left( t \right)}}{{dt}}
\] 那麼我們可以對其取拉式轉換(Laplace Transform) $\mathcal{L}(\cdot)$ 來求取轉移函數,亦即
\[\begin{array}{l}
{{\cal L}}\left\{ {\frac{{{d^3}y}}{{d{t^3}}} + 6\frac{{{d^2}y}}{{d{t^2}}} + 5\frac{{dy}}{{dt}} - 4y} \right\} = {{\cal L}}\left\{ {u\left( t \right) + 2\frac{{du\left( t \right)}}{{dt}}} \right\}\\
 \Rightarrow \left\{ \begin{array}{l}
{s^3}Y\left( s \right) - {s^2}y\left( 0 \right) - s{y^{\left( 1 \right)}}\left( 0 \right) - {y^{\left( 2 \right)}}\left( 0 \right)\\
 + 6\left( {{s^2}Y\left( s \right) - sy\left( 0 \right) - {y^{\left( 1 \right)}}\left( 0 \right)} \right)\\
 + 5\left( {sY\left( s \right) - y\left( 0 \right)} \right) \\
- 4Y\left( s \right)
\end{array} \right\} = \left\{ \begin{array}{l}
U\left( s \right)\\
 + 2\left( {sU\left( s \right) - u\left( 0 \right)} \right)
\end{array} \right\}
\end{array}
\] 上述中 $s$ 表示 微分器;反之 $s^{-1}$ 稱之為積分器。

現在考慮 $y^{(k)} =0, \forall k =0,1,2,...$ 且 $u(0) =0$ 亦即我們考慮整個動態系統的初始狀態為休止 (initially at rest),且亦無初始控制力,則上述拉式轉換式可得
\[\begin{array}{l}
{s^3}Y\left( s \right) + 6{s^2}Y\left( s \right) + 5sY\left( s \right) - 4Y\left( s \right) = U\left( s \right) + 2sU\left( s \right)\\
 \Rightarrow \left( {{s^3} + 6{s^2} + 5s - 4} \right)Y\left( s \right) = \left( {1 + 2s} \right)U\left( s \right)\\
 \Rightarrow \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \frac{{ 2s + 1}}{{{s^3} + 6{s^2} + 5s - 4}}
\end{array}
\] 我們稱上述 $H(s) := \frac{Y(s)}{U(s)}$ 為轉移函數 transfer function。接著除了 轉移函數表示法之外,我們亦可將其用矩陣的方式表示:這邊僅簡單介紹可控典型式(controllable canonical form):
考慮上述轉移函數
\[H\left( s \right) = \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \frac{{1 + 2s}}{{{s^3} + 6{s^2} + 5s - 4}}\]可將其改寫為以下狀態空間模型
\[\left\{ \begin{array}{l}
\dot x = Ax + Bu = \left[ {\begin{array}{*{20}{c}}
0&1&0\\
0&0&1\\
4&{ - 5}&{ - 6}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
0\\
0\\
1
\end{array}} \right]u\\
y = Cx = \left[ {\begin{array}{*{20}{c}}
1&2&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}}\\
{{x_2}}\\
{{x_3}}
\end{array}} \right]
\end{array} \right.\]

Comments:
1. 一般在 MATLAB中,建構轉移函數可以使用 tf(NUM,DEN) 指令,其中 NUM 表示分子係數,DEN表示分母係數:以上例而言,轉移函數透過 MATLAB 建構為

tf( [2 1], [1 6 5 -4])

2. 在MATLAB 中,如果已知轉移函數欲將其轉換到狀態空間模型 (亦即 欲得到 $A,B,C,D$ 矩陣) 有一個非常簡便的指令:[A,B,C,D] = tf2ss(NUM,DEN)



有了上述例子之後我們可以回頭看看 如何從 狀態空間模型 來 求得 轉移函數:

State-Space Method to Transfer Function

現在我們考慮狀態空間模型:
\[\left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right.
\]其中 $x$ 為 $n \times 1$狀態變數向量,$u$ 為 $m \times 1$ 控制力向量,$y$ 為 $r \times 1$ 輸出向量,$A$為 $n \times n$ 矩陣,$B$ 為 $n \times m$ 矩陣, $C$ 為 $r \times n$ 矩陣,$D$ 為 $r \times m $矩陣。

對上式取拉式轉換 $\cal{L}(\cdot)$ 並令初值為零,則可得
\[\left\{ \begin{array}{l}
sX\left( s \right) = AX\left( s \right) + BU\left( s \right)\\
Y\left( s \right) = CX\left( s \right) + DU\left( s \right)
\end{array} \right.
\]現在整理上式可得
\[\begin{array}{l}
\left\{ \begin{array}{l}
\left( {sI - A} \right)X\left( s \right) = BU\left( s \right)\\
Y\left( s \right) = CX\left( s \right) + DU\left( s \right)
\end{array} \right.\\
 \Rightarrow \left\{ \begin{array}{l}
X\left( s \right) = {\left( {sI - A} \right)^{ - 1}}BU\left( s \right)\\
Y\left( s \right) = CX\left( s \right) + DU\left( s \right)
\end{array} \right.\\
 \Rightarrow Y\left( s \right) = C{\left( {sI - A} \right)^{ - 1}}BU\left( s \right) + DU\left( s \right)\\
 \Rightarrow Y\left( s \right) = \left[ {C{{\left( {sI - A} \right)}^{ - 1}}B + D} \right]U\left( s \right)\\
 \Rightarrow \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \underbrace {C{{\left( {sI - A} \right)}^{ - 1}}B + D}_{H\left( s \right)}
\end{array}
\]上述 $H(s)$ 即為轉移函數

且注意到
\[ \Rightarrow \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \underbrace {C{{\left( {sI - A} \right)}^{ - 1}}B + D}_{H\left( s \right)} = C\frac{{adj\left( {sI - A} \right)}}{{\det \left( {sI - A} \right)}}B + D\]故 轉移函數 $H(s)$ 的分母等於 $\det (sI-A)$ 亦即 $\det(sI-A)=0$為系統特徵方程;且 $H(s)$ 的 pole 等於 $A$ 矩陣的 特徵值(eigenvalue)。


Comments:
1. 對線性動態系統而言,狀態空間表示法並非唯一 (故選取的 $A,B,C,D$ 矩陣稱為轉移函數的 實現 realization)。

2. 轉移函數 $H(s)$ 為唯一。亦即轉移函數具備不變性 (invariant).

3. 若 轉移函數 $H(s)$ 分母階數 $\ge$ 分子階數,我們稱此轉移函數為 proper。若 分母階數 $>$ 分子階數,則稱此轉移函數為 strictly proper。若 分母階數 $<$ 分子階數,稱此轉移函數為 improper。同理我們可直接對矩陣形式做判斷
\[ \Rightarrow \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \underbrace {C{{\left( {sI - A} \right)}^{ - 1}}B + D}_{H\left( s \right)}\]若 $D=0$,則 $H(s)$ 為 stirctly proper ;若 $D \neq  0$ 則 $H(s)$ 並非 strictly proper。

對於上述 comments 有興趣的讀者請閱讀
 [線性系統] Realization Theory and Non-singular Transformation




Example 1.: The simplest improper transfer function
\[
H(s) = s
\]亦即,若轉移函數為一 微分器 ,則此時分母為常數 $1$,階數為0階 小於 分子 $s$ 的一階。故為 improper transfer function。

Example 2
考慮系統
\[\left\{ \begin{array}{l}
\dot x = Ax + Bu = \left[ {\begin{array}{*{20}{c}}
{ - 0.1}&1\\
0&{ - 1}
\end{array}} \right]x + \left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right]u\\
y = Cx = \left[ {\begin{array}{*{20}{c}}
1&0
\end{array}} \right]x
\end{array} \right.
\](a) 試求 系統輸入輸出轉移函數。
(b) 若 $y(t) = 1 - {e^{ - t}}$ 且 $x(0)=0$ 試求對應的 $u(t)$。
Solution
(a):
\[\begin{array}{l}
\frac{{Y\left( s \right)}}{{U\left( s \right)}} = \underbrace {C{{\left( {sI - A} \right)}^{ - 1}}B + D}_{H\left( s \right)}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&0
\end{array}} \right]{\left( {\left[ {\begin{array}{*{20}{c}}
s&0\\
0&s
\end{array}} \right] - \left[ {\begin{array}{*{20}{c}}
{ - 0.1}&1\\
0&{ - 1}
\end{array}} \right]} \right)^{ - 1}}\left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right] + 0\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&0
\end{array}} \right]{\left[ {\begin{array}{*{20}{c}}
{s + 0.1}&{ - 1}\\
0&{s + 1}
\end{array}} \right]^{ - 1}}\left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&0
\end{array}} \right]\frac{1}{{\left( {s + 0.1} \right)\left( {s + 1} \right)}}\left[ {\begin{array}{*{20}{c}}
{s + 1}&1\\
0&{s + 0.1}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
1\\
1
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \frac{{s + 2}}{{\left( {s + 0.1} \right)\left( {s + 1} \right)}}
\end{array}\]
(b):由於 $y(t) = 1 - \frac{10}{9} e^{-t} + \frac{1}{9} e^{-10t}$ 對此取拉式轉換可得
\[y(t) = 1 - {e^{ - t}} \Rightarrow Y\left( s \right) = \frac{1}{s} - \frac{1}{{s + 1}}\]故由輸入與輸出關係
\[\begin{array}{l}
H\left( s \right) = \frac{{Y\left( s \right)}}{{U\left( s \right)}} = \frac{{s + 2}}{{\left( {s + 0.1} \right)\left( {s + 1} \right)}} \Rightarrow Y\left( s \right) = \frac{{s + 2}}{{\left( {s + 0.1} \right)\left( {s + 1} \right)}}U\left( s \right)\\
 \Rightarrow \frac{1}{s} - \frac{1}{{s + 1}} = \frac{{s + 2}}{{\left( {s + 0.1} \right)\left( {s + 1} \right)}}U\left( s \right)\\
 \Rightarrow U\left( s \right) = \frac{{\left( {s + 0.1} \right)\left( {s + 1} \right)}}{{s\left( {s + 2} \right)}} - \frac{{s + 0.1}}{{s + 2}}
\end{array}\]再取反拉式轉換即可求得所需結果。

7/29/2012

[線性系統] 動態方程式的求解(3) - LTV state equation- Total Solution

延續前篇文章 [線性系統] 動態方程式的求解(2) - LTV state equation- Homogeneous solution,這次要介紹線性時變 (Linear Time Varying, LTV ) 系統的狀態方程的全解。


考慮下列 LTV 動態系統
\[\left\{ {\begin{array}{*{20}{l}}
{{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)}\\
{{\bf{y}}\left( t \right) = {\bf{C}}\left( t \right){\bf{x}}\left( t \right) + {\bf{D}}\left( t \right){\bf{u}}\left( t \right)}
\end{array}} \right.
\] 且假設  ${\bf{A}}\left( t \right)$ 為 $n \times n$ 且矩陣中每一項元素 都為對時間 $t$ 連續函數。

Comment:
1. 上式中 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)}$ 稱為狀態方程 (State equation)
2. ${{\bf{y}}\left( t \right) = {\bf{C}}\left( t \right){\bf{x}}\left( t \right) + {\bf{D}}\left( t \right){\bf{u}}\left( t \right)}$ 稱為 輸出方程 (Output equation)

===================
Claim:
給定初始狀態 ${\bf{x}}\left( {{t_0}} \right)$ 與 輸入 ${{\bf{u}}\left( t \right)}$,則狀態方程 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)}$ 的解為
\[
{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \ \ \ \ (*)
\]其中  ${\bf{\Phi }}\left( {t,\tau } \right): = {\bf{X}}\left( t \right){{\bf{X}}^{ - 1}}\left( \tau  \right)$ 為 ${\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)$ 的 State Transition matrix 滿足\[\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right) = {\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right)\]且 初始條件為 ${\bf{\Phi }}\left( {{t_0},{t_0}} \right) = {\bf{I}}$。
===================

Proof:
首先證明 $(*)$ 滿足初始條件:
\[\begin{array}{l}
{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{x}}\left( {{t_0}} \right) = {\bf{\Phi }}\left( {{t_0},{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \underbrace {\int_{{t_0}}^{{t_0}} {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } }_{ = 0}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = {\bf{X}}\left( {{t_0}} \right){{\bf{X}}^{ - 1}}\left( {{t_0}} \right){\bf{x}}\left( {{t_0}} \right) = {\bf{Ix}}\left( {{t_0}} \right) = {\bf{x}}\left( {{t_0}} \right)
\end{array}\]接著我們證明 $(*)$ 確實滿足狀態方程。
\[\begin{array}{l}
{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \\
\frac{d}{{dt}}{\bf{x}}\left( t \right) = \frac{d}{{dt}}\left[ {{\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } } \right]\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = \frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \frac{\partial }{{\partial t}}\left[ {\int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } } \right]
\end{array}
\] 利用 Fundamental Theorem of Calculus:
\[\frac{\partial }{{\partial t}}\int_{{t_0}}^t {f\left( {t,\tau } \right)d\tau }  = \left. {f\left( {t,\tau } \right)} \right|_{\tau  = t}^{} + \int_{{t_0}}^t {\left( {\frac{\partial }{{\partial t}}f\left( {t,\tau } \right)} \right)d\tau }
\] 我們得知
\[\begin{array}{l}
{\bf{\dot x}}\left( t \right) = \frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) \\
\ \ \ \ \ \ \ \ \ \ \ + \left[ {{\bf{\Phi }}\left( {t,t} \right){\bf{B}}\left( t \right){\bf{u}}\left( t \right) + \int_{{t_0}}^t {\left( {\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)} \right)d\tau } } \right]\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = \frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + {\bf{\Phi }}\left( {t,t} \right){\bf{B}}\left( t \right){\bf{u}}\left( t \right) \\
\ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \  \ \ \  + \int_{{t_0}}^t {\left( {\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)} \right)d\tau }
\end{array}
\]再由 State Transition Matrix 定義 $\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right) = {\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right)$我們知道
\[\begin{array}{l}
{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + {\bf{\Phi }}\left( {t,t} \right){\bf{B}}\left( t \right){\bf{u}}\left( t \right) \\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ + \int_{{t_0}}^t {\left( {\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,\tau } \right)} \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + {\bf{\Phi }}\left( {t,t} \right){\bf{B}}\left( t \right){\bf{u}}\left( t \right)\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  + \int_{{t_0}}^t {{\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right)\underbrace {\left[ {{\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right)  + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } } \right]}_{ = {\bf{x}}\left( t \right)} \\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ + \underbrace {{\bf{X}}\left( t \right){{\bf{X}}^{ - 1}}\left( t \right)}_{ = {\bf{I}}}{\bf{B}}\left( t \right){\bf{u}}\left( t \right)\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)
\end{array}
\]

有了上述結果之後,我們便可以進一步求得 輸入輸出之間關係,將
\[
{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau } \] 帶回輸出方程 ${{\bf{y}}\left( t \right) = {\bf{C}}\left( t \right){\bf{x}}\left( t \right) + {\bf{D}}\left( t \right){\bf{u}}\left( t \right)}$,可得
\[\begin{array}{l}
 \Rightarrow {\bf{y}}\left( t \right) = {\bf{C}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} + {\bf{C}}\left( t \right)\int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)d\tau }  + {\bf{D}}\left( t \right){\bf{u}}\left( t \right)
\end{array}\]


7/28/2012

[線性系統] 動態方程式的求解(2) - LTV state equation- Homogeneous solution

這次要介紹線性時變 (Linear Time Varying, LTV ) 系統的狀態方程求解。

考慮下列 LTV 動態系統
\[\left\{ {\begin{array}{*{20}{l}}
{{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)}\\
{{\bf{y}}\left( t \right) = {\bf{C}}\left( t \right){\bf{x}}\left( t \right) + {\bf{D}}\left( t \right){\bf{u}}\left( t \right)}
\end{array}} \right.
\] 且假設  ${\bf{A}}\left( t \right)$ 為 $n \times n$ 且矩陣中每一項元素 都為對時間 $t$ 連續函數。

NOTE: 若上述對 ${\bf{A}}\left( t \right)$ 時變矩陣的連續性假設成立,則對任意初始狀態 ${\bf{x}}\left( {{t_0}} \right)$ 與任意輸入 ${{\bf{u}}\left( t \right)}$, 狀態方程有唯一解。
(Proof ommitted)

在我們進行求解之前,我們首先求解
\[
{{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}
\] 其中 ${\bf{A}}\left( t \right)$ 為 $n \times n$ 且每一個 entry 都為 對時間 $t$ 連續的函數。故對任意初始狀態 ${\bf{x}}_i\left( {{t_0}} \right)$  狀態方程存在唯一解 $ {{\bf{x}}_i}\left( t \right),\forall i = 1,2,...,n$ 。

我們可以將這些 $n$ 個解蒐集起來寫作矩陣形式如下:
\[{\bf{X}}\left( t \right): = \left[ {\begin{array}{*{20}{c}}
{{{\bf{x}}_1}\left( t \right)}&{{{\bf{x}}_2}\left( t \right)}& \cdots &{{{\bf{x}}_n}\left( t \right)}
\end{array}} \right]
\]由於 每一個 $ {{\bf{x}}_i}\left( t \right)$ 都滿足 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}$ 故我們有
\[{\bf{\dot X}}\left( t \right) = {\bf{A}}\left( t \right){\bf{X}}\left( t \right)
\]

現在我們給出下面的定義:
====================
Definition: (Fundamental Matrix)
若 ${\bf{X}}\left( {{t_0}} \right)$ 為 nonsingular 或者 $n$ 個初始狀態彼此之間為線性獨立,則時變矩陣 ${\bf{X}}\left( t \right)$ 稱作 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}$ 的 Fundamental matrix 。
====================
Comment:
Fundamental matrix 並無唯一表示式 (因為初始狀態可以任選).

接著我們定義 狀態轉移矩陣 (State Transition Matrix)

====================
Definition: (State Transition Matrix)
令 ${\bf{X}}\left( {{t}} \right)$ 為 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}$ 的 Fundamental matrix,則我們定義其對應的 狀態轉移矩陣 (State Transition Matrix) ${\bf{\Phi }}\left( {t,{t_0}} \right)$ 如下:
\[
{\bf{\Phi }}\left( {t,{t_0}} \right): = {\bf{X}}\left( t \right){{\bf{X}}^{ - 1}}\left( {{t_0}} \right)
\] 且 此狀態轉移矩陣 ${\bf{\Phi }}\left( {t,{t_0}} \right)$ 為 下列狀態方程的唯一解
\[\frac{\partial }{{\partial t}}{\bf{\Phi }}\left( {t,{t_0}} \right) = {\bf{A}}\left( t \right){\bf{\Phi }}\left( {t,{t_0}} \right)\]且 初始條件為 ${\bf{\Phi }}\left( {{t_0},{t_0}} \right) = {\bf{I}}$。
====================

====================
Theorem:
給定任意初始狀態 $t_0$,狀態方程 ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}$  的解為
\[{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {{t},{t_0}} \right){\bf{x}}\left( {{t_0}} \right)
\]====================
Proof: Omitted.

下面我們看個例子看看給定狀態方程  ${{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right)}$  如何求出對應的 Fundamental matrix。以及 State Transition Matrix。

====================
Example
考慮下列狀態方程
\[{\bf{\dot x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]{\bf{x}}\left( t \right)
\]試求對應的 Fundamental matrix,State Transition Matrix,與 ${\bf{x}}\left( t \right)$。
====================

Solution:
由於 時變矩陣 ${\bf{A}}\left( t \right)$ 符合連續性假設,故我們有對任意初始狀態 ${\bf{x}}\left( {{t_0}} \right)$,存在唯一解。

現在我們觀察
\[{\bf{\dot x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]{\bf{x}}\left( t \right) \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{{\dot x}_1}\left( t \right)}\\
{{{\dot x}_2}\left( t \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( t \right)}\\
{{x_2}\left( t \right)}
\end{array}} \right]
\]亦即
\[\left\{ \begin{array}{l}
{{\dot x}_1}\left( t \right) = 0\\
{{\dot x}_2}\left( t \right) = t{x_1}\left( t \right)
\end{array} \right.
\]故給定初始時間 $t_0 =0$ 我們可求解 $x_1(t)$ 與 $x_2(t)$ 如下
\[\begin{array}{l}
{{\dot x}_1}\left( t \right) = 0\\
 \Rightarrow \int_0^t {d{x_1}\left( \tau  \right)}  = 0\\
 \Rightarrow {x_1}\left( t \right) = {x_1}\left( 0 \right)
\end{array}\]與
\[\begin{array}{l}
{{\dot x}_2}\left( t \right) = t{x_1}\left( t \right)\\
 \Rightarrow \int_0^t {d{x_2}\left( \tau  \right)}  = \int_0^t {\tau {x_1}\left( 0 \right)d\tau } \\
 \Rightarrow {x_2}\left( t \right) = {x_1}\left( 0 \right)\frac{{{t^2}}}{2} + {x_2}\left( 0 \right)
\end{array}
\]為了建構 Fundamental matrix,我們可任意選定 等同時變矩陣階數數目的初始狀態,在此例中由於 $\bf{A}$ 為 $2 \times 2$ 時變矩陣,故我們可任選兩個 線性獨立的 初始狀態 來建構 Fundamental matrix ${\bf{X}}\left( t \right)$,比如說選 ${\bf{x}}\left( 0 \right)=[1 \; 0]^T$ 與 ${\bf{x}}\left( 0 \right)=[0 \; 1]^T$,則我們有
\[\begin{array}{l}
{\bf{x}}\left( 0 \right) = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( 0 \right)}\\
{{x_2}\left( 0 \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1\\
0
\end{array}} \right]\\
 \Rightarrow {\bf{x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( t \right)}\\
{{x_2}\left( t \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( 0 \right)}\\
{{x_1}\left( 0 \right)\frac{{{t^2}}}{2} + {x_2}\left( 0 \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1\\
{\frac{{{t^2}}}{2}}
\end{array}} \right]
\end{array}
\]與
\[\begin{array}{l}
{\bf{x}}\left( 0 \right) = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( 0 \right)}\\
{{x_2}\left( 0 \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
1
\end{array}} \right]\\
 \Rightarrow {\bf{x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( t \right)}\\
{{x_2}\left( t \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{x_1}\left( 0 \right)}\\
{{x_1}\left( 0 \right)\frac{{{t^2}}}{2} + {x_2}\left( 0 \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
1
\end{array}} \right]
\end{array}
\] 由於 $[1 \; 0]^T$ 與 $[0 \; 1]^T$ 彼此線性獨立,故由 Fundamental matrix 的定義,我們確實得到了 一組 (不唯一) Fundamental Matrix 如下:
\[{\bf{X}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2}}}{2}}&1
\end{array}} \right]
\] 故由 State Transition Matrix 定義,我們可知
\[
{\bf{\Phi }}\left( {t,{t_0}} \right): = {\bf{X}}\left( t \right){{\bf{X}}^{ - 1}}\left( {{t_0}} \right)
\]其中
\[{{\bf{X}}^{ - 1}}\left( {{t_0}} \right) = {\left. {\frac{1}{1} \cdot \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{ - {t^2}}}{2}}&1
\end{array}} \right]} \right|_{t = {t_0}}} = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{ - {t_0}^2}}{2}}&1
\end{array}} \right]
\]故 State Transition Matrix 為
\[\begin{array}{l}
{\bf{\Phi }}\left( {{t},{t_0}} \right) = {\bf{X}}\left( t \right){{\bf{X}}^{ - 1}}\left( {{t_0}} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2}}}{2}}&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{ - {t_0}^2}}{2}}&1
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2} - {t_0}^2}}{2}}&1
\end{array}} \right]
\end{array}
\] 由前述 Theorem 可知,狀態方程 ${\bf{\dot x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]{\bf{x}}\left( t \right)$ 的解為
\[
{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {t,{t_0}} \right){\bf{x}}\left( {{t_0}} \right) = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2} - {t_0}^2}}{2}}&1
\end{array}} \right]{\bf{x}}\left( {{t_0}} \right) = \left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2}}}{2}}&1
\end{array}} \right]{\bf{x}}\left( 0 \right)
\]現在我們帶回驗證 上式 ${\bf{\Phi }}\left( {t,{t_0}} \right)$ 確實為 ,亦即對其微分
\[\begin{array}{l}
\frac{d}{{dt}}{\bf{x}}\left( t \right) = \frac{d}{{dt}}\left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2}}}{2}}&1
\end{array}} \right]{\bf{x}}\left( 0 \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]\underbrace {{{\left[ {\begin{array}{*{20}{c}}
1&0\\
{\frac{{{t^2}}}{2}}&1
\end{array}} \right]}^{ - 1}}{\bf{x}}\left( t \right)}_{{\bf{x}}\left( 0 \right)}\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
1&0\\
{ - \frac{{{t^2}}}{2}}&1
\end{array}} \right]{\bf{x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
0&0\\
t&0
\end{array}} \right]{\bf{x}}\left( t \right)
\end{array}
\]故得證。

7/13/2012

[線性系統] 狀態回授控制 (0)

這次要介紹線性系統理論中的最重要也最實際的部分,稱為 狀態回授控制 (State Feedback Control)。一般而言一個動態系統在製造完畢之後,雖具有一定的性能,但對於設計者或者使用者而言,此性能可能遠遠不及需求。這時設計者可以額外設計 "控制器(Controller)" 或稱 補償器 (Compensator) (可能是透過電路實現或者軟體)來調整動態系統致所需性能目標。

上述提及的 控制器 我們用一個 控制律 $u(t)$ 描述。

基本想法是透過給定 狀態回授控制律 $u(t) = Kx(t)+ v(t)$ 並由使用者自行設計 增益矩陣 $K$ 來達成我們的控制目標。

現在 考慮動態系統以狀態空間表示如下
\[\left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right.
\]其中 $x$ 為 $n \times 1$ (內部)系統狀態,$u$ 為 $m \times 1$ 控制力, $y$ 為 $r \times 1$ 量測輸出。

現在定義 狀態回授控制律(state feedback control law) 如下
\[
u = K x+  v
\] 其中 $K$ 為 $m \times n$ 回授增益矩陣(gain matrix),此矩陣為設計者依需求設計。$v$ 稱為額外輸入(auxiliary input)或稱參考命令。

將上述控制律帶回動態系統可得
\[\begin{array}{l}
\left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
\dot x = Ax + B\left( {Kx + v} \right)\\
y = Cx + D\left( {Kx + v} \right)
\end{array} \right.\\
 \Rightarrow \left\{ \begin{array}{l}
\dot x = \left( {A + BK} \right)x + Bv\\
y = \left( {C + DK} \right)x + Dv
\end{array} \right.
\end{array}
\]
Comment:
1. 若系統開迴路可控制,則經過狀態回授之後仍為可控制。

2. 狀態回授控制只改動系統 pole 並不改變系統的 zero。

3. 狀態回授之後的閉迴路系統可能不可觀察。原因為 若我們使用狀態回授移動系統 pole 使其與系統的 zero 產生極零點對消,則由於 極零點對消會損失系統控制性或者觀察性,但由於系統為可控制,故只能損失觀察性。

4. 若系統可控制,則存在一個 nonsingular transformation $X = TZ$ 將原系統轉為 可控典型式(controllable canonical form)。



現在我們看下面這個重要的結果:

==========================
Theorem: 
考慮動態系統
\[\left\{ \begin{array}{l}
\dot x = Ax + Bu\\
y = Cx + Du
\end{array} \right.
\]與狀態回授控制律 $u = Kx +v$,其中 $K$ 為 $m \times n$ 回授增益矩陣(gain matrix),若 $(A,B)$ 為一組可控制配對,則  $A+BK$ 的 特徵根 eigenvalues 可以被任意配置。
==========================


Comments
1. 狀態回授控制 只 改變系統特性根(characteristic roots, or eigenvalues)或稱極點(poles),並不改變零點 (zeros);注意! 此陳述僅在系統可控制情況之下才成立。若系統不可控制則 至少有一個 pole 無法被任意改變位置。

2. 動態系統狀態的性能特性 (含穩定性) 可由配置極點位置決定。

3. 不可控制系統表示 轉移函數發生 pole-zero cancellation。在此情況之下任何回授控制器都無法處理。

Example: Practical Approach of using State-Feedback 
考慮線性系統\[\dot x = Ax + Bu = \left[ {\begin{array}{*{20}{c}}
0&6&1\\
1&{ - 1}&0\\
0&0&{ - 1}
\end{array}} \right]x + \left[ {\begin{array}{*{20}{c}}
1\\
0\\
{ - 1}
\end{array}} \right]u\]定義 狀態回授控制律 $u = -K^T x + v$ 其中 $K^T = [k_1\;\;k_2\;\;k_3]$,試求 $u$ 使得系統閉迴路 eigenvalues 落在 $-1 \pm j1$ 與 $-1$ 。

Solution
首先由於我們希望系統閉迴路 eigenvalues 落在 $-1 \pm j1$ 與 $-1$ ,故我們可先計算希望的系統閉迴路特性方程
\[\Delta \left( s \right): = \left( {s - \left( { - 1 + j} \right)} \right)\left( {s - \left( { - 1 - j} \right)} \right)\left( {s + 1} \right) = {s^3} + 3{s^2} + 4s + 2 \ \ \ \ \ (*)
\]現在觀察加入控制器 $u=Kx+v$之後系統之狀態空間表示為
\[\begin{array}{l}
\dot x = Ax + Bu = Ax + B\left( { - {K^T}x + v} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \left( {A - B{K^T}} \right)x + Bv

\end{array}
\]故我們可計算其對應的特徵方程式
\[\begin{array}{l}
\Delta \left( s \right) = \det \left( {sI - A + B{K^T}} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \det \left( {\left[ {\begin{array}{*{20}{c}}
s&0&0\\
0&s&0\\
0&0&s
\end{array}} \right] - \left[ {\begin{array}{*{20}{c}}
0&6&1\\
1&{ - 1}&0\\
0&0&{ - 1}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
1\\
0\\
{ - 1}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{k_1}}&{{k_2}}&{{k_3}}
\end{array}} \right]} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \det \left( {\left[ {\begin{array}{*{20}{c}}
{s + {k_1}}&{ - 6 + {k_2}}&{ - 1 + {k_3}}\\
{ - 1}&{s + 1}&0\\
{ - {k_1}}&{ - {k_2}}&{s + 1 - {k_3}}
\end{array}} \right]} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {s^3} + \left( {{k_1} - {k_3} + 2} \right){s^2} + \left( {{k_1} + {k_2} - {k_3} - 5} \right)s + \left( {6{k_3} - 6} \right)
\end{array}\]現在比較 $(*)$ 與 $(\star)$ 的係數即可求得所需的控制器參數 $k_1,k_2,k_3$
\[\left\{ \begin{array}{l}
{k_1} - {k_3} + 2 = 3\\
{k_1} + {k_2} - {k_3} - 5 = 4\\
6{k_3} - 6 = 2
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
{k_1} = 7/3\\
{k_2} = 8\\
{k_3} = 4/3
\end{array} \right.\]

事實上,狀態回授是基於系統內部狀態做回授控制,但事實上內部狀態並不容易測量,大多數動態系統只能測量到輸出 $y$ 的部分,此時該怎麼辦呢?

我們需要 狀態觀測器 (State Observer) 來幫助我們 透過量測輸出 來 估計 系統的內部狀態。這將會留待之後再作介紹。

4/13/2012

[線性規劃] Discrete Time Dynamic System Linear Programming

這次要介紹的是如何把一個 有拘束條件 離散時間的動態系統
透過 線性規劃問題來求解。

考慮 離散時間系統的狀態空間表示(state space representation):
\[
x(k+1) = A x(k) + B u(k), \ \ \ \ \text{given $x(0)$}
\]其中 $x(k) \in \mathbb{R}^n$ 表系統狀態, $u(k)$ 表控制力。

接著我們考慮一些實際的情況:

1. 我們希望系統狀態 隨著時間流逝 與 控制力的幫助,可以在某個時間點達到某個 指定的目標狀態 $x^1$,亦即考慮 終止狀態 $x(N) := x^1$
2. 由於我們是透過控制力來幫助我們讓系統狀態逐步移動到 指定的目標狀態,考量到一班情況,控制力的出力大小須受到一定程度拘束(不可以有無限大的控制力),亦即
 \[
|u(k)| \leq M \Leftrightarrow -M \leq u(k) \leq M
\]

現在我們定義目標成本函數 (cost function)
\[
J(u) = \displaystyle \sum_{k=0}^{N-1} | u(k)|
\]

Comments:
1. 上述目標為 讓 控制力最小。簡單來說就是要 可以達到目標狀態的情況下 盡可能省力 (可以想像成要要開車 從 A 到 B地點,且盡可能省油。)

2. 上述cost function 最多只能是 取絕對值 (儘管是非線性但可透過一些技巧將其轉換成LP問題),超過  一般 2階 (or 以上)的 cost function,比如
\[
J(u) = \displaystyle \sum_{k=0}^{N-1} | u(k)|^2
\]不可使用 Linear Programming。因為上述cost function 不再是線性! 。Forget LP in this case..

故我們手上有了一個標準的最佳化問題:
\[\begin{array}{l}
\min J\left( u \right) = \sum\limits_{k = 0}^{N - 1} {\left| {u\left( k \right)} \right|} \\
s.t.\\
\begin{array}{*{20}{c}}
{}
\end{array}x(k + 1) = Ax(k) + Bu(k)\\
\begin{array}{*{20}{c}}
{}
\end{array}x(N): = {x^1}\\
\begin{array}{*{20}{c}}
{}
\end{array}|u(k)| \le M
\end{array}
\]

首先注意到因為我們的成本函數是對 $u(k)$ 最小化,故上式中的拘束應改寫成由 $u(k)$表示:
故我們先改寫 目標狀態拘束 $x(N) = x^1$ 用 $u(k)$ 表示:

怎麼做呢!? 由 離散時間系統的狀態方程
\[
x(k+1) = A x(k) + B u(k), \ \ \ \ \text{given $x(0)$}
\]我們可以進行 跌代求解如下:
\[\begin{array}{l}
x(1) = Ax(0) + Bu(0)\\
x(2) = Ax(1) + Bu(1) = A\left[ {Ax(0) + Bu(0)} \right] + Bu(1)\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = {A^2}x(0) + ABu(0) + Bu(1)\\
x(3) = Ax(2) + Bu(2) = A\left[ {{A^2}x(0) + ABu(0) + Bu(1)} \right] + Bu(2)\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = {A^3}x(0) + {A^2}Bu(0) + ABu(1) + Bu(2)\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} \vdots \\
x(N) = {A^N}x(0) + {A^{N - 1}}Bu(0) +  \cdots  + ABu(N - 2) + Bu(N - 1)\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = {A^N}x(0) + \sum\limits_{k = 0}^{N - 1} {{A^{N - 1 - k}}Bu(k)}
\end{array}
\]又因為 $x(N) := x^1$,故我們得到
\[\begin{array}{l}
{x^1} = {A^N}x(0) + \sum\limits_{k = 0}^{N - 1} {{A^{N - 1 - k}}Bu(k)} \\
 \Rightarrow {x^1} - {A^N}x(0) = \left[ {\begin{array}{*{20}{c}}
{{A^{N - 1}}B}&{{A^{N - 2}}B}& \cdots &{{A^1}B}&{{A^0}B}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{u(0)}\\
{u(1)}\\
 \vdots \\
{u(N - 1)}
\end{array}} \right]
\end{array}
\] 由於上式左方 $x^1$ 與 $x(0)$ 已給定,故我們可以聯合上式與 控制力拘束條件 $ |u(k)| \leq M$,將其改寫成LP問題:

對於每一個固定的 $N$,求解 進行求解 LP問題:
\[\begin{array}{l}
\min J\left( u \right) = \sum\limits_{k = 0}^{N - 1} {\left| {u\left( k \right)} \right|} \\
s.t.\\
\left\{ \begin{array}{l}
\begin{array}{*{20}{c}}
{}
\end{array}{x^1} - {A^N}x(0) = \left[ {\begin{array}{*{20}{c}}
{{A^{N - 1}}B}&{{A^{N - 2}}B}& \cdots &{{A^1}B}&{{A^0}B}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{u(0)}\\
{u(1)}\\
 \vdots \\
{u(N - 1)}
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}
\end{array}|u(k)| \le M
\end{array} \right.
\end{array}\]


1/21/2012

[線性系統] 離散時間狀態空間模型 與其解

一般若需要將控制系統透過 電腦 實現控制力 或者 對連續時間系統進行取樣,則我們稱此類系統為 電腦控制系統 或稱 數位控制系統。這次我們要介紹如何從連續時間模型 將其 透過適當的數學操作,從而獲得其對應的離散化的模型。

現在考慮有限維 線性非時變 連續時間狀態空間模型如下:
\[\left\{ \begin{array}{l}
\dot x\left( t \right) = A_cx\left( t \right) + B_cu\left( t \right);\begin{array}{*{20}{c}}
{}&{}
\end{array}x\left( 0 \right) = {x_0}\\
y\left( t \right) = C_c x\left( t \right) + D_cu\left( t \right)
\end{array} \right. \ \ \ \ \ \ \ \ \ (\star)
\]注意到上述狀態空間模型含有微分項 $\dot x$,若我們想要透過電腦實現微分方程,則我們需將其進行 離散化(Discretization)
\[\dot x\left( t \right): = \mathop {\lim }\limits_{\Delta  \to 0} \frac{{x\left( {t + \Delta } \right) - x\left( t \right)}}{\Delta }\]則前述連續時間的狀態方程 $(\star)$ 可表為
\[\begin{array}{l}
\dot x\left( t \right) = {A_c}x\left( t \right) + {B_c}u\left( t \right)\\
 \Rightarrow x\left( {t + \Delta } \right) - x\left( t \right) = {A_c}x\left( t \right)\Delta  + {B_c}u\left( t \right)\Delta \\
 \Rightarrow x\left( {t + \Delta } \right) = x\left( t \right) + {A_c}x\left( t \right)\Delta  + {B_c}u\left( t \right)\Delta
\end{array}\]前述的 $\Delta$ 一般在實現上稱為取樣時間 (sampling time),且對 $k \in \mathbb{Z}$, $t := k \Delta$,我們可改寫
\[\begin{array}{l}
\left\{ {\begin{array}{*{20}{l}}
{x\left( {k\Delta  + \Delta } \right) = \left( {I + {A_c}\Delta } \right)x\left( {k\Delta } \right) + {B_c}u\left( {k\Delta } \right)\Delta }\\
{y\left( {k\Delta } \right) = {C_c}x\left( {k\Delta } \right) + {D_c}u\left( {k\Delta } \right)}
\end{array}} \right.\\
 \Rightarrow \left\{ {\begin{array}{*{20}{l}}
{x\left( {\left( {k + 1} \right)\Delta } \right) = \left( {I + {A_c}\Delta } \right)x\left( {k\Delta } \right) + {B_c}u\left( {k\Delta } \right)\Delta }\\
{y\left( {k\Delta } \right) = {C_c}x\left( {k\Delta } \right) + {D_c}u\left( {k\Delta } \right)}
\end{array}} \right.
\end{array}\]上式現在可以很容易地透過 MATLAB 實現。

更進一步,若考慮 $u(t)$ 也透過電腦計算而得,再透過數位類比轉換 (Digital-Analog converter ) 或 零階保持(Zero-Order Hold),則 $u(t)$ 將會是 piecewise constant 。也就是說對任意 $t$ 滿足 $k\Delta \le t < (k+1) \Delta$,我們的控制力可定義為
$$u(t) := u(k \Delta) := u(k) \;\;\; \forall k=0,1,2,...$$ 此時控制力 $u(k)$ 將只會在 取樣點 $k\Delta$ 上有變動,且在取樣點上,我們連續時間系統的解仍然成立,故對於 $t = k \Delta$ ,我們可定義狀態方程的解
\[\begin{array}{*{20}{l}}
{x\left( k \right): = x\left( {k\Delta } \right) = {{\left. {x\left( t \right)} \right|}_{t = k\Delta }}}\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {{\left. {\left( {{e^{{A_c}t}}{x_0} + \int_0^t {{e^{{A_c}\left( {t - \tau } \right)}}} Bu\left( \tau  \right)d\tau } \right)} \right|}_{t = k\Delta }}}\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {e^{{A_c}k\Delta }}{x_0} + \int_0^{k\Delta } {{e^{{A_c}\left( {k\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau }
\end{array}
\]且 對於 $t = (k+1) \Delta$ 而言,我們亦可定義
\[\small \begin{array}{*{20}{l}}
{x\left( {k + 1} \right): = x\left( {\left( {k + 1} \right)\Delta } \right) = {{\left. {x\left( t \right)} \right|}_{t = \left( {k + 1} \right)\Delta }}}\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {{\left. {\left( {{e^{{A_c}t}}{x_0} + \int_0^t {{e^{{A_c}\left( {t - \tau } \right)}}} Bu\left( \tau  \right)d\tau } \right)} \right|}_{t = \left( {k + 1} \right)\Delta }}}\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {e^{{A_c}\left( {k + 1} \right)\Delta }}{x_0} + \int_0^{\left( {k + 1} \right)\Delta } {{e^{{A_c}\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau }\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {e^{{A_c}\left( {k + 1} \right)\Delta }}{x_0} + \int_0^{k\Delta } {{e^{{A_c}\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau  + \int_{k\Delta }^{\left( {k + 1} \right)\Delta } {{e^{{A_c}\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau }\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {e^{{A_c}\Delta }}\underbrace {\left[ {{e^{{A_c}k\Delta }}{x_0} + \int_0^{k\Delta } {{e^{{A_c}\left( {k\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau } \right]}_{ = x\left( k \right)} + \int_{k\Delta }^{\left( {k + 1} \right)\Delta } {{e^{{A_c}\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau }\\
{\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {e^{{A_c}\Delta }}x\left( k \right) + \int_{k\Delta }^{\left( {k + 1} \right)\Delta } {{e^{{A_c}\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau \;\;\;\;\;(**)}
\end{array}\]現在若令新的變數 $\alpha : = \left( {k + 1} \right)\Delta  - \tau $ 則 $(**)$ 可被改寫為
\[ \begin{array}{l}
x\left( {k + 1} \right) = {e^{A\Delta }}x\left( k \right) + \int_{\left( k \right)\Delta }^{\left( {k + 1} \right)\Delta } {{e^{A\left( {\left( {k + 1} \right)\Delta  - \tau } \right)}}} Bu\left( \tau  \right)d\tau \\
 \Rightarrow x\left( {k + 1} \right) = {e^{A\Delta }}x\left( k \right) + \left( {\int_0^\Delta  {{e^{A\alpha }}} d\alpha } \right)Bu\left( k \right)
\end{array}\]注意到上式中第二行 $u(k)$ 被提到積分外面是因為 $u(t)$ 在 $k\Delta \le t < (k+1)\Delta$ 之間為 constant。

故總結上式,我們有
\[\left\{ \begin{array}{l}
x\left( {k + 1} \right) = \underbrace {{e^{{A_c}\Delta }}}_Ax\left( k \right) + \underbrace {\left( {\int_0^\Delta  {{e^{{A_c}\alpha }}} d\alpha } \right)B}_Bu\left( k \right)\\
y\left( k \right) = Cx\left( k \right) + Du\left( k \right)
\end{array} \right.\] 上式即稱為對應的 零階自保持的 有限維 線性非時變 離散時間狀態空間模型 。

若 $A_c$ 反矩陣存在,則上述的 $B$ 矩陣 可更進一步計算如下,
\[\begin{array}{l}
B = \left( {\int_0^\Delta  {{e^{{A_c}\alpha }}d\alpha } } \right)B\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = \left( {\int_0^\Delta  {\left( {I + {A_c}\alpha  + \frac{{{{\left( {{A_c}\alpha } \right)}^2}}}{{2!}} + ...} \right)d\alpha } } \right)B\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = \left( {\int_0^\Delta  {\left( I \right)d\alpha }  + \int_0^\Delta  {\left( {{A_c}\alpha } \right)d\alpha }  + \int_0^\Delta  {\left( {\frac{{{{\left( {{A_c}\alpha } \right)}^2}}}{{2!}}} \right)d\alpha }  + ...} \right)B\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = \left( {I\Delta  + {A_c}\frac{{{\Delta ^2}}}{2} + {A_c}^2\frac{{{\Delta ^3}}}{{3!}} + ...} \right)B\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = \left( {\sum\limits_{k = 1}^\infty  {{A_c}^{k - 1}\frac{{{\Delta ^k}}}{{k!}}} } \right)B\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} = \left( {{A_c}^{ - 1}\sum\limits_{k = 1}^\infty  {\frac{{{{\left( {{A_c}\Delta } \right)}^k}}}{{k!}}} } \right)B = \left( {{A_c}^{ - 1}\left( {{e^{{A_c}\Delta }} - I} \right)} \right)B
\end{array}\]


現在我們可以開始求解離散化的狀態空間方程
\[\left\{ {\begin{array}{*{20}{l}}
{x\left( {k + 1} \right) = Ax\left( k \right) + Bu\left( k \right)}\\
{y\left( k \right) = Cx\left( k \right) + Du\left( k \right)}
\end{array}} \right.\]首先觀察
\[\left\{ \begin{array}{l}
x\left( 1 \right) = Ax\left( 0 \right) + Bu\left( 0 \right)\\
x\left( 2 \right) = Ax\left( 1 \right) + Bu\left( 1 \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {A^2}x\left( 0 \right) + ABu\left( 0 \right) + Bu\left( 1 \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {A^2}x\left( 0 \right) + \sum\limits_{j = 0}^1 {{A^{1 - j}}Bu\left( j \right)} \\
x\left( 3 \right) = Ax\left( 2 \right) + Bu\left( 2 \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {A^3}x\left( 0 \right) + {A^2}Bu\left( 0 \right) + ABu\left( 1 \right) + Bu\left( 2 \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = {A^3}x\left( 0 \right) + \sum\limits_{j = 0}^2 {{A^{2 - j}}Bu\left( j \right)} \\
 \vdots
\end{array} \right.\]故
\[x\left( k \right) = {A^k}x\left( 0 \right) + \sum\limits_{j = 0}^{k - 1} {{A^{k - 1 - j}}Bu\left( j \right)} \]


8/02/2011

[線性系統] 淺談動態系統的可控制性(1)

一般而言基礎控制理論中有三大重要性質
  1. 可控制性 (controllability)
  2. 可觀測性 (observability)
  3. 穩定性 (stability)

這次主要是介紹 動態系統 的 可控制性(Controllability)。

考慮 $n$ 個狀態 且 $p$ 組輸入的狀態方程
\[{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)
\]其中 ${\bf A}(t)$ 為 $n \times n$ 時變矩陣,${\bf B}(t)$ 為 $n \times p$ 時變矩陣。

控制性的基本想法如下:
若系統某狀態 $\bf x$ 可以透過某對應的控制力 $\bf u$ 來影響 (在有限時間 $t$ 中從任意狀態 $x_0$ 被移動到指定狀態 $x(t)$),則我們稱此狀態為可控制。

由於輸出方程與系統控制性無關,我們這邊只考慮狀態方程。

以下先給出對於線性非時變系統 其 系統可控制性的定義

=====================
Definition: (Controllability for LTI system)
我們稱狀態方程
\[
{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)
\] 或者一組 $\left( {{\bf{A,B}}} \right)$ 為在時刻 $t_0$ 可控制(controllable),若下列條件成立:
對任意初始狀態 ${\bf{x}}\left( t_0 \right) = {\bf x}_0$ 與 終止狀態 ${\bf x}_1$,存在時刻 $t_1 \ge t_0$ 與 一組輸入訊號 ${\bf u}(t)$ 使得可以在有限時間 $t_1$ 內將 ${{\bf{x}}_0}$ 送至 ${{\bf{x}}_1}$。反之我們稱此 $\left( {{\bf{A,B}}} \right)$ 不可控制 (uncontrollable)。
======================

那麼該如何檢驗控制性? 我們給初以下方法:
======================
Theorem: Controllability and Controllability Matrix Test
考慮 $n$ 階 LTI System 表為
\[
{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)
\] 我們說 系統為 完全狀態可控制 若且為若 下列控制性矩陣(controllability matrix)
\[
\mathcal{C} :=[{\bf B}\;\; {\bf AB}\;\; {\bf A}^2{\bf B}\;\;...\;\; {\bf A}^{n-1}{\bf B}]
\]為 full rank 。(亦即 $\text{rank}({\cal C}) = n$)
======================
Comment: 若 $\text{rank}({\cal C}) = n -1$ 則表示系統有1個狀態不可控;若 $\text{rank}({\cal C}) = n -2$ 表系統有2個狀態不可控;以此類推;若 $\text{rank}({\cal C}) = 0$ 表系統所有狀態不可控。

另外我們還有另一個等價的方法可以檢驗控制性:
不過在介紹之前我們需要先介紹 線性獨立 (linearly independent) 的時間函數 $f_i(t)$ 以及如何判別一組時間函數是否彼此為線性獨立:

======================
Definition: (Linear independence of time functions)
考慮 $f_1(t), f_2(t), ..., f_n(t)$ 為連續函數。我們說此組連續函數為彼此 線性相依 (linear dependent) 若下列條件成立:
存在一組不全為零的純量 $\alpha_1, \alpha_2, ..., \alpha_n$ ,使得
\[
\alpha_1 f_1(t) + \alpha_2 f_2(t) + ... + \alpha_n f_n(t) = 0, \; \forall t \in [t_0,t_1]
\]反之,此組 $f_1(t), f_2(t), ..., f_n(t)$ 稱為彼此線性獨立(linear independent) (此時 所有的係數 $\alpha_i =0$)。
=====================

=====================
Theorem: 
給定 $t_0$ 為初始時刻,$t_1$ 為終止時刻,現在定義
\[
{\bf F}\left( t \right): = \left[ {\begin{array}{*{20}{c}}
{{f_1}\left( t \right)}\\
{{f_2}\left( t \right)}\\
 \vdots \\
{{f_n}\left( t \right)}
\end{array}} \right]
\] 與
\[
{\bf W}(t_1) := \int_{t_0}^{t_1} {\bf F}(\tau) {\bf F}^T(\tau) d \tau,
\]則 $f_i$ 在區間 $[t_0,t_1]$ 之間彼此互為線性獨立 若且為若 $W(t_1)$ 為 nonsingular 矩陣。
=====================

Proof:
首先證明 $(\Rightarrow)$
利用歸謬法(Suppose toward to contradiction),假設 $W(t_1)$ 為 singular。則 $W(t_1)$ 有線性相依的行或者列向量,故存在一組不全為零的向量 $\alpha$ 使得
\[\alpha^T {\bf W}(t_1) \alpha=0,
\]亦即
\[\begin{array}{l}
{\alpha ^T}{\bf{W}}({t_1})\alpha  = 0\\
 \Rightarrow {\alpha ^T}{\bf{W}}({t_1})\alpha  = {\alpha ^T}\left( {\int_{{t_0}}^{{t_1}} {{\bf{F}}(\tau ){{\bf{F}}^T}(\tau )} d\tau } \right)\alpha  = 0\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \int_{{t_0}}^{{t_1}} {\underbrace {{\alpha ^T}{\bf{F}}(\tau )}_{: = {\bf{\xi }}\left( \tau  \right)}\underbrace {{{\bf{F}}^T}(\tau )\alpha }_{: = {{\bf{\xi }}^T}\left( \tau  \right)}} d\tau  = 0\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \int_{{t_0}}^{{t_1}} {{\bf{\xi }}\left( \tau  \right){{\bf{\xi }}^T}\left( \tau  \right)} d\tau  = \int_{{t_0}}^{{t_1}} {{{\left\| {{\bf{\xi }}\left( \tau  \right)} \right\|}^2}} d\tau  = 0\\
 \Rightarrow {\left\| {{\bf{\xi }}\left( \tau  \right)} \right\|^2} = 0 \Rightarrow {\bf{\xi }}\left( \tau  \right) = 0 \Rightarrow {\alpha ^T}{\bf{F}}(\tau ) = 0
\end{array}
\]
亦即我們有 $f_i$ 之間彼此線性相依。此結果與原本 $f_i$ 線性獨立的假設矛盾。

接著證明 $(\Leftarrow)$
同樣採用歸謬法,假設 $f_i$ 彼此線性相依,故我們知道存在一組不全為零的純量 $\alpha_i, \; i=1,2,...,n$ 使得 $\sum_i \alpha_i f_i =0$。我們可將此結果可寫成向量形式
\[
\alpha^T {\bf F}(t) =0
\]其中 $\alpha^T :=[\alpha_1\;\alpha_2\;...\;\alpha_n]$。現在我們觀察矩陣 ${\bf{W}}({t_1})$,並且對其左邊乘上向量 $\alpha^T$可得
\[\begin{array}{l}
{\alpha ^T}{\bf{W}}({t_1}) = {\alpha ^T}\left( {\int_{{t_0}}^{{t_1}} {{\bf{F}}(\tau ){{\bf{F}}^T}(\tau )} d\tau } \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \int_{{t_0}}^{{t_1}} {\underbrace {{\alpha ^T}{\bf{F}}(\tau )}_{ = 0}{{\bf{F}}^T}(\tau )} d\tau  = 0\\
 \Rightarrow {\alpha ^T}{\bf{W}}({t_1}) = 0
\end{array}
\]上式暗示了 ${\bf{W}}({t_1})$ 矩陣為 Singular,此結果與假設 ${\bf{W}}({t_1})$ 為 nonsingular 矩陣矛盾。

至此證畢。$\square$


那麼現在讓我們回到 線性時變 狀態方程
\[{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)
\]我們知道此狀態方程的解為
\[{\bf{x}}\left( t \right) = {\bf{\Phi }}\left( {{t_1},{t_0}} \right){\bf{x}}\left( {{t_0}} \right) + \int_{{t_0}}^t {{\bf{\Phi }}\left( {t,\tau } \right){\bf{B}}\left( \tau  \right){\bf{u}}\left( \tau  \right)} d\tau
\]其中 ${\bf \Phi}(t,\tau)$ 稱作狀態轉移矩陣 (State transition matrix)。

那麼我們現在便可以把控制性與之前所討論的線性獨立性質聯合再一起,我們將此結果記做下面的重要定理。

======================
Theorem: (Controllability criterion for LTV system)
我們稱 線性時變(LTV) 狀態方程
\[{\bf{\dot x}}\left( t \right) = {\bf{A}}\left( t \right){\bf{x}}\left( t \right) + {\bf{B}}\left( t \right){\bf{u}}\left( t \right)
\]為 在時刻 $t_0$可控制 若且為若 存在一時刻 $t_1 \ge t_0$ 使得 矩陣 ${\bf \Phi(t,\tau)}B(\tau)$ 在區間 $[t_0, t_1]$ 之間 具有線性獨立的 行向量 (row vectors);或者等價地說,下列 $n \times n$矩陣
\[{\bf{W}}({t_1}): = \int_{{t_0}}^{{t_1}} {{\bf{\Phi }}\left( {{t_1},\tau } \right){\bf{B}}\left( \tau  \right){{\bf{B}}^T}\left( \tau  \right){{\bf{\Phi }}^T}\left( {{t_1},\tau } \right)} d\tau \]為 nonsingular。
=====================

Comment
1. 上述矩陣\[{\bf{W}}({t_1}): = \int_{{t_0}}^{{t_1}} {{\bf{\Phi }}\left( {{t_1},\tau } \right){\bf{B}}\left( \tau  \right){{\bf{B}}^T}\left( \tau  \right){{\bf{\Phi }}^T}\left( {{t_1},\tau } \right)} d\tau \]稱作 Controllability Grammian。

2. 上述定理亦可適用於 LTI system。我們將定理記做下面

======================
Theorem: (Controllability criterion for LTI system)
考慮系統為 LTI,其狀態方程
\[{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)\]為可控制 若且為若 對任意 $t>0$,下列矩陣
\[{\bf{W}}(t): = {\int_{\rm{0}}^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{B}}{{\bf{B}}^T}\left( {{e^{{\bf{A}}\left( {t - \tau } \right)}}} \right)} ^T}d\tau \]為 nonsingular。
=====================

3. 關於狀態轉移矩陣相關議題,請參考BLOG相關文章
[線性系統] 動態方程式的求解(1) - LTI state equation
[線性系統] 動態方程式的求解(2) - LTV state equation- Homogeneous solution
[線性系統] 動態方程式的求解(3) - LTV state equation- Total Solution



7/17/2011

[線性系統] 動態方程式的求解(1) - LTI state equation

延續上篇,這次我們要介紹 線性非時變系統 (Linear Time-Invariant (LTI) System) 的求解。

考慮 LTI 動態系統的 狀態空間表示:
\[\left\{ {\begin{array}{*{20}{l}}
{{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)}\\
{{\bf{y}}\left( t \right) = {\bf{Cx}}\left( t \right) + {\bf{Du}}\left( t \right)}
\end{array}} \right.
\]其中 $\bf{A}(\cdot), \bf{B}(\cdot), \bf{C}(\cdot),$ 與 $\bf{E}(\cdot)$ 為 $n \times n, n \times p, q \times n,$ 與 $q \times p$  常數矩陣。


我們的目標: 求解 $\bf{x}(t)$。

在求解之前我們需要一些 exponential function ${e^{  {\bf{A}}t}}$的 FACTs:
首先回憶若令 $\bf A = a$ 亦即不再是矩陣而是一個常數 $a$,則 $e^{at}$ 具有 Taylor series 如下
\[{e^{at}}: = 1 + at + \frac{{{a^2}{t^2}}}{{2!}} + ... + \frac{{{a^n}{t^n}}}{{n!}} + ...\]故若現在讓 $a$ 變回矩陣 $\bf A$ 則我們有
\[{e^{{\bf{A}}t}}: = {\bf{I}} + {\bf{A}}t + \frac{1}{{2!}}{{\bf{A}}^2}{t^2} + ... + \frac{1}{{n!}}{{\bf{A}}^n}{t^n} + ...
\]那麼下面幾個性質,讀者可以使用上述定義直接驗證。
=====================
FACT 1: Inverse property
\[
{e^{  {\bf{A}}t}}{e^{ - {\bf{A}}t}} = \bf{I}.
\]FACT 2: Identity matrix
\[
e^{\bf{0}} = \bf{I}.
\]FACT 3: Derivative property
\[\frac{d}{{dt}}{e^{{\bf{A}}t}} = {\bf{A}}{e^{{\bf{A}}t}} = {e^{{\bf{A}}t}}{\bf{A}}.
\]=====================

有了上述的 FACT,我們現在可以開始求解 LTI 動態系統,不過求解之前我們先試著計算看看 $e^{{\bf A}{t}}$ 該怎麼計算  (這邊我們採用定義求解法,之後會用更直接的方法求解)。

-----------
Example 1
考慮矩陣
\[{\bf{A}}: = \left[ {\begin{array}{*{20}{c}}
0&1\\
0&0
\end{array}} \right]\]試求 ${e^{{\bf{A}}t}} = ?$
-----------

Solution
由 ${e^{{\bf{A}}t}} $ 定義可知
\[\begin{array}{l}
{e^{{\bf{A}}t}}: = {\bf{I}} + {\bf{A}}t + \frac{1}{{2!}}{{\bf{A}}^2}{t^2} + ... + \frac{1}{{n!}}{{\bf{A}}^n}{t^n} + ...\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&0\\
0&1
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
0&1\\
0&0
\end{array}} \right]t + \frac{1}{{2!}}\underbrace {{{\left[ {\begin{array}{*{20}{c}}
0&1\\
0&0
\end{array}} \right]}^2}}_{ = {\bf{0}}}{t^2} + ...\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \left[ {\begin{array}{*{20}{c}}
1&t\\
0&1
\end{array}} \right]. \ \ \ \ \ \ \square
\end{array}\]

現在我們可以開始推導完整的 LTI 系統的狀態方程解,首先 考慮狀態方程
\[
{{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)}
\] 對上式左右同乘 ${e^{{-\bf{A}}t}}$ 可得
\[\begin{array}{l}
{e^{ - {\bf{A}}t}}{\bf{\dot x}}\left( t \right) = {e^{ - {\bf{A}}t}}{\bf{Ax}}\left( t \right) + {e^{ - {\bf{A}}t}}{\bf{Bu}}\left( t \right)\\
 \Rightarrow {e^{ - {\bf{A}}t}}{\bf{\dot x}}\left( t \right) - {e^{ - {\bf{A}}t}}{\bf{Ax}}\left( t \right) = {e^{ - {\bf{A}}t}}{\bf{Bu}}\left( t \right)
\end{array}
\]觀察上式,我們可得
\[\frac{d}{{dt}}\left( {{e^{ - {\bf{A}}t}}{\bf{x}}\left( t \right)} \right) = {e^{ - {\bf{A}}t}}{\bf{Bu}}\left( t \right)
\]現在對兩邊同取積分從 $0$ 到 $t$ ,可得
\[\begin{array}{l}
\int_0^t {d\left( {{e^{ - {\bf{A}}t}}{\bf{x}}\left( t \right)} \right)}  = \int_0^t {{e^{ - {\bf{A}}\tau }}{\bf{Bu}}\left( \tau  \right)d\tau } \\
 \Rightarrow {e^{ - {\bf{A}}t}}{\bf{x}}\left( t \right) - {\bf{x}}\left( 0 \right) = \int_0^t {{e^{ - {\bf{A}}\tau }}{\bf{Bu}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{x}}\left( t \right) = {e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + {e^{{\bf{A}}t}}\int_0^t {{e^{ - {\bf{A}}\tau }}{\bf{Bu}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{x}}\left( t \right) = {e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } \ \ \ \ (*)
\end{array}
\] 現在我們回頭檢驗上式 $(*)$ 確實為 我們狀態方程的解,我們首先檢驗其確實符合初始條件,亦即當 $t=0 $時,${\bf{x}}\left( t \right) = {\bf{x}}\left( 0 \right)$

現令 $t = 0$,我們可得
\[\begin{array}{l}
{\bf{x}}\left( t \right) = {e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{x}}\left( 0 \right) = {e^{{\bf{A}}0}}{\bf{x}}\left( 0 \right) = {\bf{Ix}}\left( 0 \right) = {\bf{x}}\left( 0 \right)
\end{array}
\]故滿足初始條件,現在我們來檢驗 $(*)$ 滿足 狀態方程 ${{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)}$,
故現在對 $(*)$ 微分可得
\[\frac{d}{{dt}}{\bf{x}}\left( t \right) = \frac{d}{{dt}}\left[ {{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } } \right]
\]由 Fundamental Theorem of Calculus,我們可知
\[\frac{\partial }{{\partial t}}\int_{{t_0}}^t {f\left( {t,\tau } \right)d\tau }  = \left. {f\left( {t,\tau } \right)} \right|_{\tau  = t}^{} + \int_{{t_0}}^t {\left( {\frac{\partial }{{\partial t}}f\left( {t,\tau } \right)} \right)d\tau }
\]故
\[\begin{array}{l}
\frac{d}{{dt}}{\bf{x}}\left( t \right) = \frac{d}{{dt}}\left[ {{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } } \right]\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \frac{d}{{dt}}\left[ {\int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } } \right]\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + {e^{{\bf{A}}\left( {t - t} \right)}}{\bf{Bu}}\left( t \right) + \int_0^t {\left( {\frac{d}{{dt}}{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)} \right)d\tau } \\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + {\bf{Bu}}\left( t \right) + \int_0^t {{\bf{A}}{e^{{\bf{A}}\left( t \right)}}{e^{{\bf{A}}\left( { - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } \\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{A}}\underbrace {\left[ {{e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } } \right]}_{{\rm{ = }}{\bf{x}}\left( t \right)} + {\bf{Bu}}\left( t \right)\\
 \Rightarrow {\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)
\end{array}
\] 故得證 $(*)$ 即稱為 LTI 狀態方程的解。

我們將上述結果紀錄在下方:
考慮 LTI 動態系統的 狀態方程:
\[{\bf{\dot x}}\left( t \right) = {\bf{Ax}}\left( t \right) + {\bf{Bu}}\left( t \right)
\]其解為
\[{\bf{x}}\left( t \right) = {e^{{\bf{A}}t}}{\bf{x}}\left( 0 \right) + \int_0^t {{e^{{\bf{A}}\left( {t - \tau } \right)}}{\bf{Bu}}\left( \tau  \right)d\tau } \]


那麼現在問題變成,如果我們拓展LTI系統到線性時變 (Linear Time Varying, LTV) 系統,則上述方法是否仍然可行?
答案是 "否定" 的,故我們需要令求其他方法來幫助我們,在下一篇文章我們將會介紹線性時變 (LTV) 系統的狀態方程該如何求解:
[線性系統] 動態方程式的求解(2) - LTV state equation, Fundamental Matrix, and State Transition Matrix

7/14/2011

[線性系統] 動態方程式的求解(0) - Review 1st ODE, DE, & $e^{At}$

在求解動態方程是之前,我們先回顧一下基本 一階常微分方程的求解:

Example 1
試求解
\[
\dot {x} = a x, \ x(t_0) = x_0
\]其中 $a$ 為常數。
Solution
利用變數分離法:
\[\begin{array}{*{20}{l}}
{\frac{d}{{dt}}x\left( t \right) = ax\left( t \right)}\\
{ \Rightarrow \int_{{t_0}}^t {\frac{1}{{x\left( \tau  \right)}}dx\left( \tau  \right)}  = \int_{{t_0}}^t {ad\tau } }\\
{ \Rightarrow \left. {\ln \left( {x\left( \tau  \right)} \right)} \right|_{{t_0}}^t = a\left( {t - {t_0}} \right)}\\
{ \Rightarrow \ln \left( {x\left( t \right)} \right) - \ln \left( {x\left( {{t_0}} \right)} \right) = a\left( {t - {t_0}} \right)}\\
{ \Rightarrow \ln \left( {\frac{{x\left( t \right)}}{{{x_0}}}} \right) = a\left( {t - {t_0}} \right)}\\
{ \Rightarrow x\left( t \right) = {x_0}{e^{a\left( {t - {t_0}} \right)}}}. \ \ \ \ \square
\end{array}
\]

Example 2
試求解
\[
\dot {x} = a x + bu, \ x(t_0) = x_0
\]其中 $a, b \neq 0$ 為常數。
Solution
上式為標準一階常微分方程,一般而言,微分方程的解可分為兩個部分
  1. 自由響應 (free response)又稱 零輸入響應(zero input response) ;亦即令 $u(t) = 0$ 所求得的解
  2. 外力響應 (forced response) 又稱 零狀態響應 (zero state response);亦即令 $x(t_0) = 0$所求得的解
整個解 $x(t) $  = 自由響應 + 外力響應;

故首先求解 自由響應  ,令 $u=0$,我們得到
\[
\dot {x} = a x , \ x(t_0) = x_0
\]
Example 1,我們知道對於 $\dot{x} = ax$ 的微分方程,其對應的解為 $x(t) = x_0e^{a(t-t_0)}$。

現在我們求解外力響應:令 $x(t_0) = 0$
故我們可以猜對於 $\dot {x} = a x + bu$ ,其解具有下列型態:
\[
 x(t) = e^{at} F(t) \ \ \ \ (*)
\] 其中 函數 $F(t)$ 待定。
現在將上式 待入微分方程 $\dot{x} = ax + bu$ 之中我們得到
\[\begin{array}{l}
 a{e^{at}}F(t) + {e^{at}}\dot F(t) = a{e^{at}}F(t) + bu\\
 \Rightarrow {e^{at}}\dot F(t) = bu
\end{array}\] 現在我們可求解 $F(t)$ 如下
\[\begin{array}{l}
\frac{{dF(t)}}{{dt}} = {e^{ - at}}bu\left( t \right)\\
 \Rightarrow \int_{{t_0}}^t {dF(\tau )}  = \int_{{t_0}}^t {{e^{ - a\tau }}bu\left( \tau  \right)d\tau } \\
 \Rightarrow F(t) - F\left( {{t_0}} \right) = \int_{{t_0}}^t {{e^{ - a\tau }}bu\left( \tau  \right)d\tau } \\
 \Rightarrow F(t) = \int_{{t_0}}^t {{e^{ - a\tau }}bu\left( \tau  \right)d\tau }  + F\left( {{t_0}} \right) \ \ \ \ (\star)
\end{array}
\] 注意到 $x(t_0)=0$,故由 $(*)$ 我們亦可知
\[
 x(t) = e^{at} F(t) \Rightarrow  x(t_0) = e^{at_0} F(t_0) \Rightarrow 0 = e^{at_0} F(t_0)
\]由於 $e^{a t_0} \neq 0$,故 $ F(t_0) = 0$,所以 $(\star)$ 變成:
\[
F(t) = \int_{{t_0}}^t {{e^{ - a\tau }}bu\left( \tau  \right)d\tau }
\] 又因為我們原本由 $(*)$ 定義為 $ x(t) = e^{at} F(t)$,故外力響應 為
\[
x(t) =\int_{{t_0}}^t {{e^{a\left( {t - \tau } \right)}}bu\left( \tau  \right)d\tau }
\]

現在將 自由響應 與 外力響應合併起來,即可求得整個 一階常微分方程的總解
\[ x(t) =  x_0e^{a(t-t_0)} + \int_{{t_0}}^t {{e^{a\left( {t - \tau } \right)}}bu\left( \tau  \right)d\tau }.  \ \ \ \ \square \]


Example 3
試求解 下列一階 時變(time-varying) 微分方程
\[
\dot{x} = a(t) x(t), \ x(t_0) =x_0
\]
Solution
同 Example 1,我們可將其改寫並利用變數分離法求解
\[\begin{array}{l} \frac{d}{{dt}}x\left( t \right) = a(t)x(t)\\ \Rightarrow \frac{1}{{x(t)}}dx\left( t \right) = a(t)dt\\ \Rightarrow \int_{{t_0}}^t {\frac{1}{{x(\tau )}}dx\left( \tau \right)} = \int_{{t_0}}^t {a(\tau )d\tau } \\ \Rightarrow \ln \left. {x(\tau )} \right|_{{t_0}}^t = \int_{{t_0}}^t {a(\tau )d\tau } \\ \Rightarrow \ln x(t) - \ln x({t_0}) = \int_{{t_0}}^t {a(\tau )d\tau } \\ \Rightarrow \ln \frac{{x(t)}}{{x({t_0})}} = \int_{{t_0}}^t {a(\tau )d\tau } \\ \Rightarrow x(t) = {x_0}{e^{\int_{{t_0}}^t {a(\tau )d\tau } }} \end{array}
\]

有了上述的三個例子,我們現在可以把目標轉向 矩陣形式:亦即 $n$ 維 動態方程的求解:

考慮 $n$ 維 線性 時變 動態方程 (Linear Time-varying dynamical equation)
\[
\left\{ \begin{array}{l}
{\bf{\dot x}}\left( t \right){\bf{ = A}}\left( t \right){\bf{x}}\left( t \right){\bf{ + B}}\left( t \right){\bf{u}}\left( t \right)\\
{\bf{y}}\left( t \right){\bf{ = C}}\left( t \right){\bf{x}}\left( t \right){\bf{ + D}}\left( t \right){\bf{u}}\left( t \right)
\end{array} \right.
\] 其中 $\bf{A}(\cdot), \bf{B}(\cdot), \bf{C}(\cdot),$ 與 $\bf{E}(\cdot)$ 為 $n \times n, n \times p, q \times n,$ 與 $q \times p$  在時刻 $t$ 定義在 $(-\infty, \infty)$ 的 實數 連續函數矩陣

上式的求解需要一些數學工具的幫忙,我們首先介紹特殊矩陣函數 $e^{\bf{A}(t)}$:

首先回憶指數函數 $e^{\lambda t}$ 可由 Taylor Series 無窮級數展開:
\[
e^{\lambda t} = 1 + \lambda t + \frac{\lambda^2 t}{2!} + ... + \frac{\lambda^n t^n}{n!}+...
\]同樣的若現在考慮常數矩陣 ${\bf{A}}$,由 Caley-Hamilton Theorem ,我們亦可將 ${e^{{\bf{A}}(t)}}$ 透過類似 Taylor Series 無窮級數展開將其表為:
\[
{e^{{\bf{A}}{t}}} = {\bf{I}} + t{\bf{A}} + \frac{t}{{2!}}{{\bf{A}}^2} + ... + \frac{{{t^n}}}{{n!}}{{\bf{A}}^n} + ... = \sum\limits_{k = 0}^\infty  {\frac{{{t^k}}}{{k!}}{{\bf{A}}^k}}
\]

現在先看幾個性質:
1.  $e^{\bf{0}} = \bf {I} $。
(Proof: 由上述無窮級數展開令 $\bf{A} = 0$)

2. ${e^{{\bf{A}}({t_1} + {t_2})}} = {e^{{\bf{A}}({t_1})}}{e^{{\bf{A}}({t_2})}}$
 (Proof: 由上述無窮級數展開令 $t = t_1 + t_2$ 即可得證)

3.  ${\left[ {{e^{{\bf{A}}t}}} \right]^{ - 1}} = {e^{ - {\bf{A}}t}}$
Proof:
由上述性質2,令 $t_2 = -t_1$,我們可得
\[{e^{{\bf{A}}({t_1} - {t_1})}} = {e^{{\bf{A}}({t_1})}}{e^{ - {\bf{A}}({t_1})}} = {e^{{\bf{A}} \cdot 0}} = {e^{\bf{0}}} = {\bf{I}}
\] 由反矩陣定義,可知 ${\left[ {{e^{{\bf{A}}t}}} \right]^{ - 1}} = {e^{ - {\bf{A}}t}}$。

4. $\frac{d}{{dt}}{e^{{\bf{A}}t}} = {\bf{A}}{e^{{\bf{A}}t}} = {e^{{\bf{A}}t}}{\bf{A}} $

有了上述性質之後我們便可以開始討論狀態方程求解
[線性系統] 動態方程式的求解(1) - LTI state equation

8/29/2010

[線性系統] 對角化 與 Eigenvalues and Eigenvectors

首先我們給出相關定義

============================
Definition (Eigenvalue and Eigenvector)
設 $A$ 為 $n \times n$ 方陣,若存在一非零向量 $x \in \mathbb{R}^n$ (or $\in \mathbb{C}^n$) 與 純量 $\lambda \in \mathbb{R}^1$ (or $\in \mathbb{C}^1$)滿足
\[
Ax = \lambda x
\]則我們稱 $\lambda$ 為 $A$ 的 特徵值 (eigenvalue) 且 $x$ 為 $A$對應於 $\lambda $ 的特徵向量(eigenvector)。
============================
Comments:
1. 上述定義中 $Ax = \lambda x$ 又稱 eigenvalue-eigenvector 關係: $( \lambda I - A)x =0$,注意! $0$ 為 零向量!!。
2. 若 $A$ 為 $n \times n$ 方陣,則我們稱下式
\[\det (\lambda I - A)\]為 $A$ 矩陣的 特徵多項式(characteristic polynomial) 且 $\det(\lambda I -A)=0$ 為特徵方程(characteristic equation)。

現在考慮 LTI 系統 (但無考慮外力 $u=0$) 以狀態空間表示
\[
\dot {x} = Ax,
\]其中 $x$ 為 $n \times 1$ 狀態向量,$A$ 為 $n \times n$ 常數矩陣。現在對上式取拉式轉換 且令初值為零,
\[sX\left( s \right) = AX\left( s \right) \Rightarrow \left( {sI - A} \right)X\left( s \right) = 0
\] 亦即對上述系統而言,其解特徵方程 (characteristic polynomial) 可寫為
\[
\det( s I - A) =0
\]且 特徵方程式的根 即為 eigenvalue。


對角化 (Diagonalization)

考慮  $A$ 為 $n$ 階方陣 ,且 $A$ 與 一個 對角矩陣(diagonal matrix) $ \Lambda$ 相似 (亦即有相同的 eigenvalue),則稱此 $A$ 矩陣為可對角化 (diagonalizable);亦即存在一個 non-singular transformation matrix $T$ 使得
\[
\Lambda = T^{-1}AT
\]

FACT: 若 $n$ 階方陣 $A$ 為可對角化(Diagonalizable),則必須具備 $n$個線性獨立的 eigenvector。
Proof: omitted
NOTE: $n$個線性獨立的 eigenvector 具有 $n$ 個對應的 相異 eigenvalue


由於矩陣的對角化可借助 eigenvalue 與 eigenvector 來達成,且依照 eigenvalue 的不同情況(共有三種情況)會有所各自不同的衍生討論,我們將各種情況總結如下:
  1. 矩陣 $A$ 具有 相異特徵值 (distinct eigenvalues)
  2. 矩陣 $A$ 具有 重複特徵值 (repeated eigenvalues)
  3. 矩陣 $A$ 具有 複數特徵值 (complex eigenvalues)

以下我們逐項討論:

Case I: 相異特徵值 (Distinct eigenvalues)
考慮  $A$ 為 $n \times n$ 方陣,其特性方程
\[
\det(\lambda_iI - A) =0, \; \forall i
\]且 $\lambda_1 \neq \lambda_2 \neq ... \neq \lambda_n$。那麼對於 第 i 個 eigenvalue $\lambda_i$而言,其對應的 eigenvector 定為 $v_i$,且滿足 eigenvalue-eigenvector 關係
\[({\lambda _i}I - A){v_i} = 0\]那麼對任意 $i$ 而言,我們有
\[({\lambda _i}I - A){v_i} = 0 \Rightarrow {\lambda _i}{v_i} = A{v_i}\]亦即
\[ \Rightarrow \left\{ \begin{array}{l}
{\lambda _1}{v_1} = A{v_1}\\
{\lambda _2}{v_2} = A{v_2}\\
 \vdots \\
{\lambda _n}{v_n} = A{v_n}
\end{array} \right.
\]現在將上述結果寫成矩陣形式:
\[\begin{array}{*{20}{l}}
{\left[ {\begin{array}{*{20}{c}}
{{\lambda _1}{v_1}}&{{\lambda _2}{v_2}}& \cdots &{{\lambda _n}{v_n}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{A{v_1}}&{A{v_2}}& \cdots &{A{v_n}}
\end{array}} \right]}\\
{ \Rightarrow \underbrace {\left[ {\begin{array}{*{20}{c}}
{{v_1}}&{{v_2}}& \cdots &{{v_n}}
\end{array}} \right]}_{n \times n}\underbrace {\left[ {\begin{array}{*{20}{c}}
{{\lambda _1}}&0& \cdots &0\\
0&{{\lambda _2}}&{}& \vdots \\
 \vdots &{}& \ddots &0\\
0& \cdots &0&{{\lambda _n}}
\end{array}} \right]}_{n \times n} = A\underbrace {\left[ {\begin{array}{*{20}{c}}
{{v_1}}&{{v_2}}& \cdots &{{v_n}}
\end{array}} \right]}_{n \times n}}
\end{array}\]令 $T: = \left[ {\begin{array}{*{20}{c}}
{{v_1}}&{{v_2}}& \cdots &{{v_n}}
\end{array}} \right]$ 且
\[
\Lambda := {\left[ {\begin{array}{*{20}{c}}
{{\lambda _1}}&0& \cdots &0\\
0&{{\lambda _2}}&{}& \vdots \\
 \vdots &{}& \ddots &0\\
0& \cdots &0&{{\lambda _n}}
\end{array}} \right]}
\]則我們有
\[\begin{array}{l}
T\Lambda  = AT \Rightarrow \Lambda  = {T^{ - 1}}AT
\end{array}\]若 $T$ 為 nonsingular (i.e., $T$ 有 $n$ 個線性獨立的 row or columns 亦即 eigenvectors 之間彼此線性獨立)。

那麼現在我們證明 $T$ 確實為 nonsingular matrix。
Proof
用歸納法:令 $n=2$ 對任意兩個 eigenvector $v_i, v_j$ 而言,我們要證明此兩者為線性獨立,亦即由線性獨立的定義,對下式
\[
\alpha_i v_i + \alpha_j v_j =0 \ \ \ \ (*)
\]其係數 $\alpha_i = \alpha_j =0$。

故現在觀察 $(*)$ 式,兩邊同乘 $(\lambda_i I - A)$
\[\begin{array}{l}
{\alpha _i}\underbrace {({\lambda _i}I - A){v_i}}_{ = 0\begin{array}{*{20}{c}}
{}
\end{array}by\begin{array}{*{20}{c}}
{}
\end{array}def.} + {\alpha _j}({\lambda _i}I - A){v_j} = 0\\
 \Rightarrow {\alpha _j}({\lambda _i}I - A){v_j} = 0\\
 \Rightarrow {\alpha _j}({\lambda _i}I - A - {\lambda _j}I + {\lambda _j}I){v_j} = 0\\
 \Rightarrow {\alpha _j}({\lambda _i}I - {\lambda _j}I + \left( {{\lambda _j}I - A} \right)){v_j} = 0\\
 \Rightarrow {\alpha _j}\left( {{\lambda _i}I - {\lambda _j}I} \right){v_j} + \underbrace {{\alpha _j}\left( {{\lambda _j}I - A} \right){v_j}}_{ = 0\begin{array}{*{20}{c}}
{}
\end{array}by\begin{array}{*{20}{c}}
{}
\end{array}def.} = 0\\
 \Rightarrow {\alpha _j}\left[ {\left( {{\lambda _i} - {\lambda _j}} \right)I} \right]{v_j} = 0
\end{array}\]又因為 $\lambda_i \neq \lambda_j$ (因為我們假設相異特徵值),且特徵向量 $ v_j \neq 0$ 故必然 $\alpha_j = 0$。
同理可推至 $n$個情況,這邊留給讀者自行證明。 $\square$


透過以上討論我們知道對相異 eigenvalue的情況必定存在 nonsingular matrix $T$ 使得 $A$ 可被對角化 (亦即由 彼此線性獨立 eigenvector 建構 $T$ 矩陣),但若我們有矩陣並不具有 $n$ 個獨立 eigenvector 該怎麼辦呢?  這個情況將會發生在 $A$ 矩陣有重根的時候:


Case II: 重複特徵值 (Repeated eigenvalues) 
考慮矩陣 $A$ 為 $n \times n$ 矩陣且具有 $m$ 個重複特徵值,亦即
\[
\lambda_1 = \lambda_2 = ... = \lambda_m
\]那麼這些重複的特徵值仍必須滿足特徵方程,亦即我們有
\[
\det(\lambda_m I - A) =0
\]且由於出現重根,在此情況下我們不再具有 $n$ 個線性獨立的 eigenvectors;故我們想知道到底剩下幾個 eigenvector 仍是線性獨立,故我們計算 rank: 若
\[
\text{rank}\{ \lambda_m I - A\} =i
\] 則 我們具有 $n -i$ 個 對應於 $\lambda_m$ 的線性獨立 eigenvectors。

重根的情況其實頗為複雜,現在我們看一些例子:

Example 1
\[A: = \left[ {\begin{array}{*{20}{c}}
{{\lambda _m}}&0&0\\
0&{{\lambda _m}}&0\\
0&0&{{\lambda _m}}
\end{array}} \right]\]此時 $A$ 矩陣具有三重根  $\lambda_m$ ,且 $\text{rank} \{\lambda_m I - A \} =0$ 故此三重根 $\lambda_m$ 會對應 $3 - 0 = 3$ 個各自獨立的 eigenvectors。

Example 2
\[A: = \left[ {\begin{array}{*{20}{c}}
{{\lambda _m}}&0&0\\
0&{{\lambda _m}}&1\\
0&0&{{\lambda _m}}
\end{array}} \right]\]此時 $A$ 矩陣具有三重根  $\lambda_m$ ,但 $\text{rank} \{\lambda_m I - A \} = 1$ 故此三重根 $\lambda_m$ 會對應 $3 - 1 = 2$ 個各自獨立的 eigenvectors。

Example 2
\[A: = \left[ {\begin{array}{*{20}{c}}
{{\lambda _m}}&1&0\\
0&{{\lambda _m}}&1\\
0&0&{{\lambda _m}}
\end{array}} \right]\]此時 $A$ 矩陣具有三重根  $\lambda_m$ ,但 $\text{rank} \{\lambda_m I - A \} = 2$故此三重根 $\lambda_m$ 會對應 $3 - 2 = 1$ 個各自獨立的 eigenvectors。


那麼當矩陣 $A$ 不具備足夠的線性獨立 eigenvector 時,我們需引入新的概念,稱作廣義特徵向量(Generalized eigenvector)。且 eigenvector 與 generalized eigenvector 可以建構一個
 non-singular matrix $T$ 使得 $J:= T^{-1}AT$ 且我們稱此 $J$ 矩陣為 Jordan matrix。
=============================
Definition: Generalized eigenvector
我們稱向量 $v$ 為 矩陣 $A$ 對應於 eigenvalue, $\lambda$ 的 rank $k$ 廣義特徵向量(generalized eigenvector) 若下列條件成立
\[\left\{ \begin{array}{l}
{\left( {\lambda I - A} \right)^k}v = 0\\
{\left( {\lambda I - A} \right)^{k - 1}}v \ne 0
\end{array} \right.
\]其中 $k$ 為矩陣 $A$ 的重根數目
=============================
NOTE: $k=1$ 即為原本的 eigenvalue 與 eigenvector。 (無重根)


Example
試求 $A$ 矩陣的 Jordan matrix 。
\[A = \left[ {\begin{array}{*{20}{c}}
1&1&2\\
0&1&3\\
0&0&2
\end{array}} \right]
\]
Solution
首先求解 $A$ 矩陣對應的 eigenvalue:注意由於此矩陣為上三角矩陣,eigenvalue 直接就是對角線元素。或者讀者亦可由特徵方程 $\det(\lambda I - A) =0$ 可解得 $\lambda_i = 1,1,2, \;\; i=1,2,3$ (雙重根 $\lambda_1 = \lambda_2 = 1$)。

我們可先計算單根 $\lambda_3 = 2$ 部分對應的 eigenvector :由 eigenvalue-eigenvector 關係
\[\begin{array}{l}
\left( {{\lambda _3}I - A} \right){v_3} = 0\\
 \Rightarrow \left( {2\left[ {\begin{array}{*{20}{c}}
1&0&0\\
0&1&0\\
0&0&1
\end{array}} \right] - \left[ {\begin{array}{*{20}{c}}
1&1&2\\
0&1&3\\
0&0&2
\end{array}} \right]} \right){v_3} = 0\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
1&{ - 1}&{ - 2}\\
0&1&{ - 3}\\
0&0&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{v_{31}}}\\
{{v_{32}}}\\
{{v_{33}}}
\end{array}} \right] = 0\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{31}}}\\
{{v_{32}}}\\
{{v_{33}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
5\\
3\\
1
\end{array}} \right]
\end{array}\]接著我們回頭對付重根 $( \lambda_1 = \lambda_2 = 1)$,先計算 $\text{rank}\{ \lambda_1 I - A\} = \text{rank}\{ \left[ {\begin{array}{*{20}{c}}
0&{ - 1}&{ - 2}\\
0&0&{ - 3}\\
0&0&{ - 1}
\end{array}} \right] = 2 \}$ 故重根對應的線性獨立 eigenvector 數目為 $3 - 2 = 1$。我們先求此 eigenvector:
\[\begin{array}{*{20}{l}}
{\left[ {\begin{array}{*{20}{c}}
0&{ - 1}&{ - 2}\\
0&0&{ - 3}\\
0&0&{ - 1}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}\\
{{v_{13}}}
\end{array}} \right] = 0}\\
{ \Rightarrow \left\{ {\begin{array}{*{20}{l}}
{ - {v_{12}} - 2{v_{13}} = 0}\\
{ - 3{v_{13}} = 0}\\
{ - {v_{13}} = 0}
\end{array}} \right. \Rightarrow \left\{ {\begin{array}{*{20}{l}}
{{v_{12}} = 0}\\
{{v_{13}} = 0}
\end{array}} \right.}
\end{array}\]三個未知數,兩條方程式,故 $v_{11}$ 為自由變數,令 $v_{11} =1 $ 可得 $\lambda_m$ 對應的一組 eigenvector 為
\[\left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}\\
{{v_{13}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{\rm{1}}\\
{\rm{0}}\\
{\rm{0}}
\end{array}} \right]\]接著我們利用此eigenvector 產生 generalized eigenvector 且滿足
\[\begin{array}{l}
\left( {{\lambda _2}I - A} \right){v_2} =  - {v_1}\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
0&{ - 1}&{ - 2}\\
0&0&{ - 3}\\
0&0&{ - 1}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{v_{21}}}\\
{{v_{22}}}\\
{{v_{23}}}
\end{array}} \right] =  - \left[ {\begin{array}{*{20}{c}}
1\\
0\\
0
\end{array}} \right]\\
 \Rightarrow \left\{ \begin{array}{l}
 - {v_{22}} - 2{v_{23}} =  - 1\\
{v_{23}} = 0
\end{array} \right. \Rightarrow \left\{ \begin{array}{l}
{v_{22}} = 1\\
{v_{23}} = 0
\end{array} \right.
\end{array}\]故我們選 $v_{22} = 1$ 亦即
\[\left\{ {\begin{array}{*{20}{l}}
{{\lambda _1} = 1 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}\\
{{v_{13}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{\rm{1}}\\
{\rm{0}}\\
{\rm{0}}
\end{array}} \right];{\lambda _2} = 1 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{21}}}\\
{{v_{22}}}\\
{{v_{23}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{\rm{0}}\\
{\rm{1}}\\
{\rm{0}}
\end{array}} \right]}\\
{{\lambda _3} = 2 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}\\
{{v_{13}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{\rm{5}}\\
{\rm{3}}\\
{\rm{1}}
\end{array}} \right]}
\end{array}} \right.\]故其 nonsingular transformation matrix
\[T = \left[ {\begin{array}{*{20}{c}}
1&0&5\\
0&1&3\\
0&0&1
\end{array}} \right]\]
 Jordan matrix
\[
J = T^{-1} A T =\left[ {\begin{array}{*{20}{c}}
1&1&0\\
0&1&0\\
0&0&2
\end{array}} \right]
\]

Case III: Complex eigenvalues
考慮 $A$ 為 $2 \times 2$ 方陣,其特性方程滿足
\[
\det(\lambda_i - A) = 0
\]且 eigenvalue $\lambda = \sigma + j \omega$ 為 complex number 。

由上述可知 eigenvalue-eigenvector 關係
\[
(\lambda I - A) v_i =0
\] eigenvalue 為 complex value,其對應的 eigenvector $v_i$ 亦為 complex vector。

Example
考慮矩陣
\[A = \left[ {\begin{array}{*{20}{c}}
a&b\\
{ - b}&a
\end{array}} \right]\]$a,b \in \mathbb{R}, b \ne 0$。則我們可對此矩陣先求 eigenvalue,利用特性方程式可知
\[\begin{array}{l}
\det \left( {\lambda I - A} \right) = 0 \Rightarrow \det \left( {\left[ {\begin{array}{*{20}{c}}
{\lambda  - a}&{ - b}\\
b&{\lambda  - a}
\end{array}} \right]} \right) = 0\\
 \Rightarrow {\left( {\lambda  - a} \right)^2} + {b^2} = 0\\
 \Rightarrow {\lambda ^2} - 2a\lambda  + \left( {{a^2} + {b^2}} \right) = 0\\
 \Rightarrow \lambda  = a \pm jb
\end{array}\]現在我們求對應的 eigenvectors:

對 ${\lambda _1} = a + jb$ 我們可計算其 eigenvector 為
\[\begin{array}{l}
\left( {{\lambda _1}I - A} \right){v_1} = 0 \Rightarrow \left( {\left( {a + jb} \right)I - A} \right){v_1} = 0\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{\left( {a + jb} \right) - a}&{ - b}\\
b&{\left( {a + jb} \right) - a}
\end{array}} \right]{v_1} = 0\\
 \Rightarrow b\left[ {\begin{array}{*{20}{c}}
j&{ - 1}\\
1&j
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}
\end{array}} \right] = 0\\
 \Rightarrow \left\{ \begin{array}{l}
j{v_{11}} - {v_{12}} = 0\\
{v_{11}} + j{v_{12}} = 0
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
1\\
j
\end{array}} \right]
\end{array}\]
接著對 ${\lambda _2} = a - jb$
\[\begin{array}{l}
\left( {{\lambda _2}I - A} \right){v_2} = 0 \Rightarrow \left( {\left( {a - jb} \right)I - A} \right){v_2} = 0\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{\left( {a - jb} \right) - a}&{ - b}\\
b&{\left( {a - jb} \right) - a}
\end{array}} \right]{v_2} = 0\\
 \Rightarrow b\left[ {\begin{array}{*{20}{c}}
{ - j}&{ - 1}\\
1&{ - j}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}
\end{array}} \right] = 0\\
 \Rightarrow \left\{ \begin{array}{l}
 - j{v_{11}} - {v_{12}} = 0\\
{v_{11}} - j{v_{12}} = 0
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{{v_{11}}}\\
{{v_{12}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
j\\
1
\end{array}} \right]
\end{array}\]故 nonsingular transformation matrix $T$ 為
\[T = \left[ {\begin{array}{*{20}{c}}
1&j\\
j&1
\end{array}} \right]\]且
\[\begin{array}{l}
{T^{ - 1}}AT = {\left[ {\begin{array}{*{20}{c}}
1&j\\
j&1
\end{array}} \right]^{ - 1}}\left[ {\begin{array}{*{20}{c}}
a&b\\
{ - b}&a
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
1&j\\
j&1
\end{array}} \right] = \frac{1}{2}\left[ {\begin{array}{*{20}{c}}
1&{ - j}\\
{ - j}&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
a&b\\
{ - b}&a
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
1&j\\
j&1
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{1}{2}\left[ {\begin{array}{*{20}{c}}
1&{ - j}\\
{ - j}&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{a + bj}&{aj + b}\\
{ - b + aj}&{ - bj + a}
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{1}{2}\left[ {\begin{array}{*{20}{c}}
{\left( {a + bj} \right) - j\left( { - b + aj} \right)}&{aj + b - j\left( { - bj + a} \right)}\\
{ - j\left( {a + bj} \right) - b + aj}&{ - j\left( {aj + b} \right) - bj + a}
\end{array}} \right]\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{1}{2}\left[ {\begin{array}{*{20}{c}}
{2a + 2jb}&0\\
0&{2a - 2jb}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{a + jb}&0\\
0&{a - jb}
\end{array}} \right]
\end{array}\]


[Claude] 國小數學加減乘除法計算小遊戲:數學怪獸大亂鬥

心血來潮用 Anthropic Claude Opus 4.6 做的簡單國小數學乘除法計算小遊戲,感嘆AI工具之強大與便利。原本可能要耗時幾天的工作轉眼就完成,時代的巨輪確實在飛速轉動。  數學怪獸大亂鬥(Math Monster Brawl)對戰的國小數學 加減乘除 小遊戲連結...