顯示具有 線性系統 標籤的文章。 顯示所有文章
顯示具有 線性系統 標籤的文章。 顯示所有文章

4/25/2018

[訊號與系統] LTI系統輸入輸出關係由 Convolution 決定 - 從離散時間觀點

以下我們討論 為何 線性非時變 (Linear Time-Invariant, LTI) 系統 輸入與輸出關係 由 所謂的 convolution 表示。為了避免過多繁雜的數學,以下僅討論離散時間的情況。首先我們需要一些定義的幫助:

========================
Definition: Unit Impulse Function in Discrete-Time (Kronecker Delta)
我們說函數 $\delta: \mathbb{N} \to \{0,1\}$ 為 unit impulse function in discrete-time time 若 $\delta$ 滿足
\[\delta \left[ n \right] = \left\{ \begin{gathered}
  1,\;\;\;\;n = 0 \hfill \\
  0,\;\;\;\; o.w. \hfill \\
\end{gathered}  \right.
\]========================

========================
Definition: Impulse Response
給定任意系統配備輸入 $x[n]$ 與輸出 $y[n]$ 關係為 $y[n] = T\{x[n]\}$其中 $T$ 視為 operator (定義在某函數空間),若輸入為 $x[n]=\delta[n]$ 則 輸出
\[
h[n] := y[n] = T\{\delta[n]\}
\]稱為系統 $T$ 的 脈衝響應 (impulse response)
========================


========================
FACT: 任意離散訊號 $x[n]$ 可由 $\delta$ 做組合疊加,亦即
\[
x[n] = \sum_{k=-\infty}^{\infty}x[i] \delta[n-k]
\]========================
Proof: 證明顯然,在此不做贅述。$\square$



========================
Definition: Linear System
給定系統 $T$ 滿足以下輸入與輸出關係: $y_1[n]=T\{x_1[n]\}$ 且 $y_2[n] = T\{x_2[n]\}$。現在定義 $x[n] =ax_1[n] + bx_2[n]$ 其中 $a,b \in \mathbb{R}$則我們說系統 $T$ 為 linear 若下列條件成立
\[
y[n] = T\{x[n]\}
\]且 $y[n] = a y_1[n] + b y_2[n]$
========================

Remarks:
上述 系統 $T$  其實可看按作 泛函分析中的 operator。故線性系統 就是 泛函分析中的 線性算子 (linear operator)。



========================
Definition: Time-Invariant System
給定系統 $T$ 滿足以下輸入與輸出關係: $y[n]=T\{x[n]\}$。現在定義 $x[n] :=x[n-d]$  其中 $d \in \mathbb{N}$ 則我們說 $T$ 為 time-invariant 若下列條件成立
\[
y[n-d] = T\{x[n-d]\}
\]========================


有了以上定義的幫助,我們現在有辦法給出以下為何 LTI 系統的輸入輸出關係確實為 convolution。


========================
Theorem: LTI input-output Relationship is Governed by Convolution
給定 線性非時變 (LTI)系統 $L$ 滿足
\[
y[n] = L\{x[n]\}
\]其中 $L$ 為 linear operator,則
\[
y[n] = \sum_k h[k] x[n-k]
\]========================
Proof:
由於 任意 輸入 $x[n]$ 皆可被表為 脈衝函數的 組合:
\[
x[n] = \sum_{k = -\infty}^\infty x[k] \delta[n-k]
\]現在將此訊號作為LTI系統 $L$ 的輸入,則由於 $L$ 為 linear operator 我們有
\begin{align*}
  y[n] &= L\left\{ {x\left[ n \right]} \right\} \\
&= L\left\{ {\sum\limits_{k =  - \infty }^\infty  x [k]\delta [n - k]} \right\} \hfill \\
   &= \sum\limits_{k =  - \infty }^\infty  x[k] L\left\{ \delta [n - k] \right\}  \;\;\;\; (*)
\end{align*} 接著因為 $L$ 為 time-invariant 我們可進一步改寫
\[L\left\{ {\delta [n - k]} \right\} = h\left[ {n - k} \right] \;\;\;\; (**)
\]故由 $(*)$ 與 $(**)$ 可得
\[y[n] = \sum\limits_{k =  - \infty }^\infty  {x[k]h\left[ {n - k} \right]} \]即為所求。$\square$

Comments:
上述 \[
y[n] = \sum\limits_{k =  - \infty }^\infty  {x[k]h\left[ {n - k} \right]}
\]一般又稱作 $x[n]$ 與 $h[n]$ convolution sum。記作
\[
y[n] = x[n] * h[n]
\]

3/28/2016

[控制理論] 具有負實部特徵值之 LTV系統 並不保證系統穩定

考慮線性非時變 (Linear Time-Invariant, LTI)系統利用狀態空間表示:
\[
{\bf \dot x} = A {\bf x} + B {\bf u}
\] 回憶在大學部自動控制課程中,我們知道 LTI 系統穩定 的 充分必要條件 為系統矩陣 $A$ 之特徵值具有負實部 (或者等價論述為 極點 pole 落在 複數平面的左半面)。現在我們想問若 系統為 線性時變 (Linear Time-Varying, LTV)系統是否此條件依然成立?

答案是否定的,以下為一個極為出色的反例:考慮線性時變系統 ${\bf \dot x} = A(t) {\bf x} $ 其中
\[A\left( t \right): = \left[ {\begin{array}{*{20}{c}}
{ - 1}&{{e^{2t}}}\\
0&{ - 1}
\end{array}} \right]
\] 且給定初始狀態為 $x_1(0) = x_2(0)=1$ 則由於此系統 $A(t)$ 矩陣為三角矩陣,其特徵值為對角線元素,亦即 $\lambda_{1,2} = -1$,具有負實部。然而,若我們求解此 LTV 系統,亦即觀察
\[{\bf{\dot x}}\left( t \right) = \left[ {\begin{array}{*{20}{c}}
{ - 1}&{{e^{2t}}}\\
0&{ - 1}
\end{array}} \right]\left[ \begin{array}{l}
{x_1}\left( t \right)\\
{x_2}\left( t \right)
\end{array} \right] = \left[ \begin{array}{l}
 - {x_1}\left( t \right) + {e^{2t}}{x_2}\left( t \right)\\
 - {x_2}\left( t \right)
\end{array} \right]\]故我們可首先解得
\[\begin{array}{*{20}{l}}
{{{\dot x}_2}\left( t \right) =  - {x_2}\left( t \right)}\\
\begin{array}{l}
 \Rightarrow {x_2}\left( t \right) = {e^{ - t}}{x_2}\left( 0 \right)\\
 \Rightarrow {x_2}\left( t \right) = {e^{ - t}}
\end{array}
\end{array}
\]再將此 $x_2(t)$ 帶回 $\dot x_1(t)$ 式中,可求解 $x_1$ 如下
\[\begin{array}{*{20}{l}}
{{{\dot x}_1}\left( t \right) =  - {x_1}\left( t \right) + {e^{2t}}{x_2}\left( t \right)}\\
{ \Rightarrow {{\dot x}_1}\left( t \right) =  - {x_1}\left( t \right) + {e^{2t}}{e^{ - t}}}\\
{ \Rightarrow {x_1}\left( t \right) = {e^{ - t}}{x_1}\left( 0 \right) + \int_0^t {{e^{ - \left( {t - \tau } \right)}}{e^\tau }d\tau } }\\
{ \Rightarrow {x_1}\left( t \right) = {e^{ - t}} + {e^{ - \left( t \right)}}\int_0^t {{e^{2\tau }}d\tau } }\\
{ \Rightarrow {x_1}\left( t \right) = \frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}}
\end{array}\]故系統之解為
\[{{\bf{x}}\left( t \right) = \left[ \begin{array}{l}
{e^{ - t}}\\
\frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}
\end{array} \right]}\]但注意到若我們計算上述之狀態的 2-norm 且取極限 $t \to \infty$ 會發現
\[\begin{array}{l}
\mathop {\lim }\limits_{t \to \infty } \left\| {{\bf{x}}\left( t \right)} \right\| = \mathop {\lim }\limits_{t \to \infty } \left\| {\left[ \begin{array}{l}
{e^{ - t}}\\
\frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}
\end{array} \right]} \right\|\\
 = \mathop {\lim }\limits_{t \to \infty } {\left( {\left[ {\begin{array}{*{20}{c}}
{{e^{ - t}}}&{\frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}}
\end{array}} \right]\left[ \begin{array}{l}
{e^{ - t}}\\
\frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}
\end{array} \right]} \right)^{1/2}}\\
 = \mathop {\lim }\limits_{t \to \infty } {\left( {{e^{ - 2t}} + {{\left( {\frac{1}{2}{e^t} + \frac{1}{2}{e^{ - \left( t \right)}}} \right)}^2}} \right)^{1/2}} = \infty
\end{array}\]亦即系統狀態發散。

上述結果闡釋了對於 LTV 系統而言,負實部特徵值 (左半面極點) 不保證系統穩定。

2/19/2015

[控制理論] 離散線性系統的 追蹤 與 調節 問題

Setpoint Tracking
考慮離散線性系統
\[\left\{ \begin{array}{l}
x\left( {k + 1} \right) = Ax\left( k \right) + Bu\left( k \right)\\
y\left( k \right) = Cx\left( k \right)
\end{array} \right.\] $x \in \mathbb{R}^n, y \in \mathbb{R}^p, u \in \mathbb{R}^m$;一般而言,控制系統中常見的 追蹤(setpoint tracking)問題 (或稱 servo problem) 如下:
給定 setpoint  $y_{sp}$ (e.g., 步階訊號 or 常數),我們希望在系統達到穩態(steady-state) 之後,系統的輸出 $ y  = y_{sp} $。

若我們考慮給定的 setpoint $y_{sp} = 0$ 則稱此類問題為 regulation problem。

回憶在最佳控制理論中的 LQR 方法給予我們對於線性系統的 regulation 問題提供一組最佳解,故我們的想問是否能將此法應用在 一般的追蹤問題?

答案是肯定的,僅需引入 deviation variable 做基本 座標轉換 即可。

現在我們令 $y_{sp}$ 為 output setpoint,定義系統穩態時候的狀態 與 控制力為 $(x_s, u_s)$ 則線性系統方程可改寫為
\[\left\{ \begin{array}{l}
{x_s} = A{x_s} + B{u_s}\\
{y_s} = C{x_s}
\end{array} \right.\]注意到對於穩態時 我們希望 $y_s = y_{sp}$ 故 我們有 $y_{sp} = C x_s$ 現在我們將上式改寫為矩陣形式
\[\left\{ \begin{array}{l}
{x_s} = A{x_s} + B{u_s}\\
{y_{sp}} = C{x_s}
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{I - A}&{ - B}\\
C&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_s}}\\
{{u_s}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
{{y_{sp}}}
\end{array}} \right] \ \ \ \ (*)
\]上述矩陣方程有解 (亦即可以解出 $x_s, u_s$),且系統控制力無拘束,則我們可以定義 deviation variables 如下
\[\left\{ \begin{array}{l}
\tilde x\left( k \right): = x\left( k \right) - {x_s}\\
\tilde u\left( k \right): = u\left( k \right) - {u_s}
\end{array} \right.\]現在觀察
\[\begin{array}{l}
\tilde x\left( {k + 1} \right) = x\left( {k + 1} \right) - {x_s}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = Ax\left( k \right) + Bu\left( k \right) - \left( {A{x_s} + B{u_s}} \right)\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = A\left( {x\left( k \right) - {x_s}} \right) + B\left( {u\left( k \right) - {u_s}} \right)\\
 \Rightarrow \tilde x\left( {k + 1} \right) = A\tilde x\left( k \right) + B\tilde u\left( k \right)
\end{array}\]此表示我們的 deviation variable 仍然滿足原本給定的線性系統。且此時若考慮使用 deviation variable $\tilde{x}, \tilde{u}$ 則 我們的 setpoint tracking problem 被改寫為 regulation problem ;也就是說我們要找到一組 $\tilde{u}(k)$ 使得 $\tilde x(k) \to 0$ (此等價為 $x(k) \to x_s$,故 $C x(k) \to C x_s = y_{sp}$)。解完此 regulation problem 之後,真實的控制力 $u(k) = \tilde u(k) + u_s$。

Comment:
注意到上述論述建立在 $(n + p) \times (n + m)$ 的矩陣方程
\[\left\{ \begin{array}{l}
{x_s} = A{x_s} + B{u_s}\\
{y_{sp}} = C{x_s}
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{I - A}&{ - B}\\
C&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_s}}\\
{{u_s}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
{{y_{sp}}}
\end{array}} \right] \ \ \ \ (*)
\]有解。但何時才有解/與此解是否唯一的問題 我們並未解決 !! 以下我們將對此點進行討論。


對任意 setpoint $y_{sp}$, 上述矩陣方程 $(*)$ 有解 的充分條件為:$(*)$ 要有 linearly independent rows;亦即 $p \le m$ 也就是說我們需要 控制力的數目 $m$ 與 量測輸出的數目 $p$ 至少要相等)。但在實際情況上卻是常常相反,我們可能會獲得非常多的量測輸出數目 (因為裝了很多 sensor),但實際可以調控的變數卻少於 sensor 數目。為了要解決此問題,我們可選定某矩陣 $H$ 並引入新的 控制變數 $r \in \mathbb{R}^{n_c}$ 為 量測輸出的線性組合;亦即
\[
r := Hy
\]如此一來,若 $p > m$ 情況發生時,我們可選一部份的 輸出 $n_c \le m$ 作為控制變數 並且 對此引入的控制變數 $r$ 也給定所需的 setpoint $r_{sp}$。

另外若 $m > p$ (控制力數目 大於 量測輸出的數目) 時,則對某些 $H$ 與 $r_{sp}$,矩陣方程 $(*)$ 有解 但此時唯一性並不被保證,故我們會希望有唯一解,此時需要對 穩態控制力  $u_s$ 也給定 setpoint $u_{sp}$。


總和以上所述,我們可以建構以下 Steady-State Target Problem
========================
Steady-State Target Problem
考慮最佳化問題
\[
\min_{x_s, u_s} \frac{1}{2} (|u_s - u_{sp}|_{R_s}^2 + |y_s - y_{sp}|_{Q_s}^2)
\]subject to
\[\left\{ \begin{array}{l}
{x_s} = A{x_s} + B{u_s}\\
{y_{sp}} = C{x_s}
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
{I - A}&{ - B}\\
C&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_s}}\\
{{u_s}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
0\\
{{y_{sp}}}
\end{array}} \right]
\]與 $E u_s \le e$ 與 $F C x_s \le f$。其中 $R_s$ 為 正定矩陣。且對 控制變數的 setpoints $r_{sp}$,上述 target problem 為 feasible 。
========================

有了 steady-state 的解之後我們可以便可以求解 當初我們引入 deviation variable 的 regulation problem:
========================
Dynamic Regulation Problem
考慮以下 cost function
\[\begin{array}{l}
V\left( {\tilde x\left( 0 \right),{\bf{\tilde u}}} \right) = \frac{1}{2}\sum\limits_{k = 0}^{N - 1} {\left| {\tilde x\left( k \right)} \right|_Q^2 + \left| {\tilde u\left( k \right)} \right|_R^2} \\
s.t.\\
\tilde x\left( {k + 1} \right) = A\tilde x\left( k \right) + B\tilde u\left( k \right)
\end{array}\]其中 $\tilde x(0) = \hat x(k) - x_s$ (此初始條件表示  透過 steady-state $x_s$ 平移估計狀態 $\hat x$ 而得。);且所求得的 regulator 將會求解以下的 regulation problem
 \[\begin{array}{l}
\mathop {\min }\limits_{{\bf{\tilde u}}} V\left( {\tilde x\left( 0 \right),{\bf{\tilde u}}} \right)\\
s.t.\\
E\tilde u \le e - E{u_s}\\
FC\tilde x \le f - FC{x_s}
\end{array}\]===================
上述 regulation problem 的 optimal cost 為 $V^*(\tilde x(0))$ 且對應的控制力為 $\tilde {u}^0 (\tilde{x}(0))$



ref: J. B. Rawlings and D. Q. Mayne, "Model Predictive Control: Theory and Design"

2/15/2015

[線性系統] Hautus Lemma 與 控制性/可穩定性質

以下我們介紹 線性系統理論中關於 控制性的 重要結果
==========================
Lemma: Hautus Lemma for Controllability
我們稱一個離散線性系統
\[
x(k+1) = A x(k) + Bu(k)
\] 為 controllable 或稱 (A, B) controllable 若且唯若
\[
rank[\lambda I - A\;\; B] =n, \;\; \forall \lambda \in \mathbb{C}
\]其中 $\mathbb{C}$ 表示 任意 complex number 所形成的集合。
==========================
Proof. omitted.

Comments:
1. 上述 Lemma 等價為 矩陣 $[\lambda I - A\;\; B]$ 有 $n$ 個 independent rows (full row rank) 。

2. 也許讀者會好奇為何需要如此多 控制性 檢驗工具? 為什麼不使用 可控性矩陣(controllability matrix) 檢驗法就好? 事實上此 Hautus Lemma 主要是功用是大幅簡化 理論證明,但一般實際 檢驗 系統的 可控性 仍多仰賴 可控性矩陣(controllability matrix) 檢驗法。

3. 注意到上述條件需要檢驗 "任意" complex number $\lambda$ 此條件明顯過於嚴苛。不過我們可以注意到 若 $\lambda $ 並非為 $A$ 矩陣的特徵值,則 $rank[\lambda I - A\;\; B] =n$ 必然成立,故我們只需檢驗 $\lambda$ 為 $A$ 矩陣的特徵值部分即可。故

==========================
Lemma (Modified): Hautus Lemma for Controllability
一個離散線性系統
\[
x(k+1) = A x(k) + Bu(k)
\]為 controllable 或稱 (A,B) controllable 若且唯若
\[
rank[\lambda I - A\;\; B] =n, \;\; \forall \lambda \in eig(A)
\]==========================
Proof: omitted.


以下我們將討論拓展到 stabilizability。若現在我們將原本系統 $x(k+1) = A x(k) + Bu(k)$ 透過similar transformation (關於相似轉換細節請參閱 [線性系統] 控制性矩陣 與 非奇異轉換 (Controllability matrix & Non-singular transformation)) 轉成以下 partitioned system
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( {k + 1} \right)}\\
{{x_2}\left( {k + 1} \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{A_{11}}}&{{A_{12}}}\\
0&{{A_{22}}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( k \right)}\\
{{x_2}\left( k \right)}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{B_1}}\\
0
\end{array}} \right]u\left( k \right)\]其中 $(A_{11}, B_1)$ 為 controllable。上式又稱為 controllability canonical form。注意到若我們觀察此系統的 contorllability matrix
\[C = \left[ {\begin{array}{*{20}{c}}
{{B_1}}&{{A_{11}}{B_1}}&{{A_{11}}^2{B_1}}& \cdots &{{A_{11}}^n{B_1}}\\
0&0&0& \cdots &0
\end{array}} \right]\]由於 $(A_{11}, B_1)$ 為 controllable 故 controllability matrix $C$ 上排具有 $n_1$ 個 independent row。但是 $C$ 的 下排 $n_2$ rows 均為 $0$ ,故必定不滿足 full row rank test,此系統 uncontrollable。


Exercise: 試證 uncontrollable mode 為 $x_2(k)$。


儘管有 uncontrollable mode ,但我們可以退而求其次,若此 uncontrollable mode 為 stable,則我們仍可控制此系統,此類系統稱作 stabilizable。

===========
Definition: Stabilizability
考慮以下 partitioned system
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( {k + 1} \right)}\\
{{x_2}\left( {k + 1} \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{A_{11}}}&{{A_{12}}}\\
0&{{A_{22}}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( k \right)}\\
{{x_2}\left( k \right)}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{B_1}}\\
0
\end{array}} \right]u\left( k \right)\]其中 $(A_{11}, B_1)$ 為 controllable。若 $A_{22}$ 為 stable 則此 partitioned system 稱作 stabilizable。=========


接著我們可以拓展前述討論的 Hautus Lemma 到 Stabilizability 之中。
================
Lemma: (Hautus Lemma for Stabilizability)
一個離散線性系統
\[
x(k+1) = A x(k) + Bu(k)
\] 為 stabilizable 若且唯若
\[
rank[\lambda I - A\;\; B] =n, \;\; \forall |\lambda| \ge 1
\]================

Proof:
$(\Rightarrow)$ 假設系統 stabilizable,我們要證明  $rank[\lambda I - A\;\; B] =n, \;\; \forall |\lambda| \ge 1 $成立。

注意到 系統 stabilizable,故由 stabilizability 定義可知
考慮以下 partitioned system
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( {k + 1} \right)}\\
{{x_2}\left( {k + 1} \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{A_{11}}}&{{A_{12}}}\\
0&{{A_{22}}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( k \right)}\\
{{x_2}\left( k \right)}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{B_1}}\\
0
\end{array}} \right]u\left( k \right)\]其中 $(A_{11}, B_1)$ 為 controllable 且 $A_{22}$ 為 stable 。故我們有
 \[rank[\lambda I - A\;\;B] = rank\left[ {\begin{array}{*{20}{c}}
{\lambda I - {A_{11}}}&{ - {A_{12}}}&{{B_1}}\\
0&{\lambda I - {A_{22}}}&0
\end{array}} \right] \ \ \ \ \ (*)
\] 且 若我們觀察 矩陣 $[\lambda I - A_{11}\;\; B_1]$ 與 $[\lambda I - A_{22}]$ 的 row,可發現若 $|\lambda| \ge 1$ 則這些 rows 互為 independent。故由 Hautus Lemma for controllability 可知 ,對  $|\lambda| \ge 1$而言,$(*)$ 的 rows 為 independent 故  $rank[\lambda I - A\;\; B] =n, \;\; \forall |\lambda| \ge 1 $


$(\Leftarrow)$ 假設 $rank[\lambda I - A\;\; B] =n, \;\; \forall |\lambda| \ge 1 $成立,我們要證明 系統 stabilizable 。亦即 考慮以下 partitioned system
\[\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( {k + 1} \right)}\\
{{x_2}\left( {k + 1} \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{A_{11}}}&{{A_{12}}}\\
0&{{A_{22}}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_1}\left( k \right)}\\
{{x_2}\left( k \right)}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{B_1}}\\
0
\end{array}} \right]u\left( k \right)\]其中 $(A_{11}, B_1)$ 為 controllable 且 $A_{22}$ 為 stable 注意 partitioned system 為 controllability canonical form,故 $(A_{11}, B_1)$ 已為 controllable ,故我們僅須證明 $A_{22}$ 為 stable 。

由 假設 $rank[\lambda I - A\;\; B] =n, \;\; \forall |\lambda| \ge 1 $ 我們可知 對任意 $|\lambda| \ge 1 $,
\[rank[\lambda I - A\;\;B] = rank\left[ {\begin{array}{*{20}{c}}
{\lambda I - {A_{11}}}&{ - {A_{12}}}&{{B_1}}\\
0&{\lambda I - {A_{22}}}&0
\end{array}} \right]\]具有 independent rows 。此暗示了 上述矩陣下排 $[\lambda I - A_{22} ]$ 亦有 full row rank $\forall |\lambda| \ge 1$ 故 $A_{22}$ 的 eigenvalue 必 $<1$ 故 $A_{22} $ 為 stable。

2/07/2015

[最佳控制] 線性系統的最佳參數估計 - Kalman Filter (1)

此文章基於前篇 [最佳控制] 線性系統的最佳參數估計 - Kalman Filter (0);強烈建議讀者先參閱前篇再行閱讀此文。此文將利用 計算 probability density 方式來求解 Kalman filter。


考慮離散時間動態系統
\[
x(k+1) = Ax(k) + w(k);\;\; y(k) = Cx(k) + v(k)
\]且 $w \sim N(0,Q)$ 為製程雜訊 process noise 或稱 干擾 process disturbance;$v \sim N(0,R)$ 為量測雜訊 (measurement noise) ; $x(0) \sim N(\bar x(0), Q(0))$;$x \in \mathbb{R}^n, A \in \mathbb{R}^{n \times n}, C \in \mathbb{R}^{p \times n}, y \in \mathbb{R}^p$,Kalman filter 便是在試圖回答:假設狀態未知我們只能拿到量測輸出,則最佳的狀態估計該是如何?


First Step : $k=0$
假設 初始狀態 $x(0)$ 為 mean $\bar x(0)$ 且 convariance matrix $Q(0)$ 的 normal distrbuted 隨機向量,亦即
\[
x(0) \sim N(\bar x(0), Q(0))
\]接著獲得 初始 (受雜訊污染的) 量測輸出 $y(0)$ 滿足下式
\[
y(0) = C x(0) + v(0)
\]其中 $v(0) \sim N(0, R)$ 為 雜訊 (measurement noise)。

我們的目標:獲得 conditional density $p_{x(0)|y(0)}(x(0) | y(0))$ ,則我們的狀態估計 $\hat x$ 即可透過此 conditional density 求得
$$\hat x := \arg \max_x p_{x(0)|y(0)}(x(0) | y(0))$$

Comments:
1. 若未知 $\bar x(0)$ 或者 $Q(0)$ 則我們通常選 $\bar x(0) :=0$ 且 $Q(0)$ 很大 來表示我們對初始狀態所知甚少 (noninformative prior)。
2. 若量測過程中受到大的雜訊,則我們會給予較大的 $R$。若量測過程十分精確沒有太多雜訊汙染我們的輸出 $y$ 則 $R$ 較小。
3. Conditional density 描述了在我們獲得 初始量測輸出 $y(0)$ 之後我們對於 $x(0)$ 的了解。


現在回歸我們的目標,究竟該如何推得 $p_{x(0)|y(0)}(x(0) | y(0))$ ?
首先考慮 $(x(0), y(0))$ 如下
\[\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{y\left( 0 \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{v\left( 0 \right)}
\end{array}} \right]
\]假設 $v(0)$ 與 $x(0)$ 彼此互為獨立。注意到  $x(0), v(0)$ 為 joint normal 亦即
\[\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{v\left( 0 \right)}
\end{array}} \right] \sim N\left( {\left[ {\begin{array}{*{20}{c}}
{\bar x\left( 0 \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{Q\left( 0 \right)}&0\\
0&{{R}}
\end{array}} \right]} \right)\]
上述 $[x(0) \;\; y(0)]$ 為  $[x(0) \;\; v(0)]$ 線性轉換 且 故我們可以馬上知道
\[\begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{y\left( 0 \right)}
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{\bar x\left( 0 \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{Q\left( 0 \right)}&0\\
0&R
\end{array}} \right]{{\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]}^T}} \right)\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{y\left( 0 \right)}
\end{array}} \right] \sim N\left( {\left[ {\begin{array}{*{20}{c}}
{\bar x\left( 0 \right)}\\
{C\bar x\left( 0 \right)}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{Q\left( 0 \right)}&0\\
0&R
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
I&{{C^T}}\\
0&I
\end{array}} \right]} \right)\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{y\left( 0 \right)}
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{\bar x\left( 0 \right)}\\
{C\bar x\left( 0 \right)}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{Q\left( 0 \right)}&{Q\left( 0 \right){C^T}}\\
{CQ\left( 0 \right)}&{CQ\left( 0 \right){C^T} + R}
\end{array}} \right]} \right)
\end{array}\]現在有了 $x(0), y(0)$ 的 joint density, 注意到此 joint density 為 normal,故若要計算 conditonal density of $x(0)$ given $y(0)$,亦即 $p_{x(0)|y(0)}(x(0)|y(0))$ ;則我們可以使用前述文章討論的 FACT 3 來求得,亦即
\[
p_{x(0)|y(0)}(x(0)|y(0)) = n(x(0), m, P)
\]其中
\[\left\{ {\begin{array}{*{20}{l}}
\begin{array}{l}
m = \bar x\left( 0 \right) + L\left( 0 \right)(y\left( 0 \right) - C\bar x\left( 0 \right))\\
L\left( 0 \right): = Q\left( 0 \right){C^T}\left( {CQ\left( 0 \right){C^T} + R} \right)_{}^{ - 1}
\end{array}\\
{P = Q\left( 0 \right) - Q\left( 0 \right){C^T}\left( {CQ\left( 0 \right){C^T} + R} \right)_{}^{ - 1}CQ\left( 0 \right)}
\end{array}} \right.\]則 optimal state estimation  $\hat x$ 及為 具有最大 conditional density 的 $x(0)$;對於 normal distribution 而言,此 $\hat x$ 剛好為 mean;故我們選 $\hat x(0) := m$;且上式中 $P := P(0)$ 表示獲得 量測輸出 $y(0)$ 之後的 variance

Next Step: State Prediction
考慮現在狀態從 $k=0$ 移動到 $k=1$,我們有
\[
x(1) = Ax(0) + w(0)
\]亦可將其寫成線性轉換型式:
\[x\left( 1 \right) = \left[ {\begin{array}{*{20}{c}}
A&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{w\left( 0 \right)}
\end{array}} \right]\]其中 $w(0) \sim N(0, Q)$ 為 系統干擾 (disturbance) 或稱 製程雜訊 (process noise)。若 狀態受到大的外部擾動,則可以想見 會有較大的 $Q$ convaraince matrix。同理若外部干擾較小則有較小的雜訊。

故我們目標:要計算 conditional density $p_{x(1)|y(0)}(x(1),y(0))$

現在我們需要 conditional on joint density $(x(0),w(0))$ given $y(0)$,假設 $w(0)$ 與 $x(0),v(0)$ 彼此互為獨立,則我們可寫
\[\left( {\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{w\left( 0 \right)}
\end{array}} \right]|y\left( 0 \right)} \right)\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{\hat x\left( 0 \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{P\left( 0 \right)}&0\\
0&Q
\end{array}} \right]} \right)\]故現在利用 前述文章討論的 FACT 3' 來求得  conditional density,亦即
 \[\begin{array}{l}
\left( {\left[ {\begin{array}{*{20}{c}}
{x\left( 0 \right)}\\
{w\left( 0 \right)}
\end{array}} \right]|y\left( 0 \right)} \right)\sim  N\left( {\left[ {\begin{array}{*{20}{c}}
{\hat x\left( 0 \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{P\left( 0 \right)}&0\\
0&Q
\end{array}} \right]} \right)\\
 \Rightarrow \left( {x\left( 1 \right)|y\left( 0 \right)} \right)\sim N\left( {\left[ {\begin{array}{*{20}{c}}
A&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{\hat x\left( 0 \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
A&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{P\left( 0 \right)}&0\\
0&Q
\end{array}} \right]{{\left[ {\begin{array}{*{20}{c}}
A&I
\end{array}} \right]}^T}} \right)\\
 \Rightarrow \left( {x\left( 1 \right)|y\left( 0 \right)} \right)\sim N\left( {A\hat x\left( 0 \right),AP\left( 0 \right){A^T} + Q} \right)
\end{array}\]故 conditional density 仍為 normal
\[
p_{x(1)|y(0)}(x(1)|y(0)) = n(x(1), \hat x^-(1), P^-(1))
\]其中
\[\left\{ \begin{array}{l}
{{\hat x}^ - }\left( 1 \right) = A\hat x\left( 0 \right)\\
{P^ - }\left( 1 \right) = AP\left( 0 \right){A^T} + Q
\end{array} \right.\]接著我們僅需 遞迴重複上述步驟 $k=2,3,4,...$ 即可。以下我們給出總結:

Summary
定義 量測輸出從初始 直到 時間 $k$ 則
\[
{\bf y}(k) := \{y(0),y(1),...,y(k)\}
\]在 時間 $k$ 時,conditional density with data ${\bf y}(k-1)$ 為 normal
\[
p_{x(k)| {\bf y}(k-1)}(x(k) | {\bf y}(k-1)) = n(x(k), \hat x^-(k),  P^-(k))
\]上述 mean 與 covariance matrix 有上標 $^-$ 號表示此估計為僅僅透過 量測 ${\bf y}(k-1)$ 的輸出,並未獲得 $k$ 時刻的量測輸出。 (表示用過去 $k-1$ 資料 預測 $k$ 的狀態! ) 注意到在 $k=0$,遞迴起始於 $\hat x^- (0) = \bar x(0)$ 與 $P^-(0) = Q(0)$。

接著我們會獲得 $y(k)$ 滿足
\[\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{y\left( k \right)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{v\left( k \right)}
\end{array}} \right]
\]上式表示線性轉換。由於 量測雜訊 $v(k)$ 與 $x(k)$ 以及 ${\bf y}(k-1)$ 彼此獨立,故我們有  density of $(x(k), v(k))$
\[\underbrace {\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{v\left( k \right)}
\end{array}} \right]}_{ = \left( {\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{v\left( k \right)}
\end{array}} \right]|{\bf{y}}\left( {k - 1} \right)} \right)}\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{{{\hat x}^ - }\left( k \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P^ - }\left( k \right)}&0\\
0&R
\end{array}} \right]} \right)\]透過線性轉換結果,可得
\[\begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{y\left( k \right)}
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{{\hat x}^ - }\left( k \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{P^ - }\left( k \right)}&0\\
0&R
\end{array}} \right]{{\left[ {\begin{array}{*{20}{c}}
I&0\\
C&I
\end{array}} \right]}^T}} \right)\\
 \Rightarrow \left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{y\left( k \right)}
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{{{\hat x}^ - }\left( k \right)}\\
{C{{\hat x}^ - }\left( k \right)}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P^ - }\left( k \right)}&{{P^ - }\left( k \right){C^T}}\\
{C{P^ - }\left( k \right)}&{C{P^ - }\left( k \right){C^T} + R}
\end{array}} \right]} \right)
\end{array}\]注意到 $\{{\bf y}(k-1), y(k)\} \equiv {\bf y}(k)$ 故利用 conditional density 結果可得
\[
p_{x(k)|{\bf y} (k)}(x(k)| {\bf y}(k)) = n(x(k), \hat x(k), P(k))
\]其中
\[\left\{ {\begin{array}{*{20}{l}}
\begin{array}{l}
\hat x\left( k \right) = {{\hat x}^ - }\left( k \right) + L\left( k \right)(y\left( k \right) - C{{\hat x}^ - }\left( k \right))\\
L\left( k \right) = {P^ - }\left( k \right){C^T}\left( {C{P^ - }\left( k \right){C^T} + R} \right)_{}^{ - 1}
\end{array}\\
{P\left( k \right) = {P^ - }\left( k \right) - {P^ - }\left( k \right){C^T}\left( {C{P^ - }\left( k \right){C^T} + R} \right)_{}^{ - 1}C{P^ - }\left( k \right)}
\end{array}} \right.\]現在我們用下列模型來預估 基於 $k$ 時刻量測值 預估 $k+1$ 時刻
\[x\left( {k + 1} \right) = \left[ {\begin{array}{*{20}{c}}
A&I
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{w\left( k \right)}
\end{array}} \right]\]由於 $w(k)$ 與 $x(k)$ 以及 $\bf y$$(k)$ 彼此獨立,故 joint density of $(x(k),w(k))$ 可寫為
\[\left[ {\begin{array}{*{20}{c}}
{x\left( k \right)}\\
{w\left( k \right)}
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{\hat x\left( k \right)}\\
0
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{P\left( k \right)}&0\\
0&Q
\end{array}} \right]} \right)\]故 conditional density 為
\[{p_{x\left( {k + 1} \right)|{\bf{y}}\left( k \right)}}\left( {x\left( {k + 1} \right)|{\bf{y}}\left( k \right)} \right) = n\left( {x\left( {k + 1} \right),{{\hat x}^ - }\left( {k + 1} \right),{P^ - }\left( {k + 1} \right)} \right)\]其中
\[\left\{ \begin{array}{l}
{{\hat x}^ - }\left( {k + 1} \right) = A\hat x\left( k \right)\\
{P^ - }\left( {k + 1} \right) = AP\left( k \right){A^T} + Q
\end{array} \right.\]

[最佳控制] 線性系統的最佳參數估計 Kalman Filter (0)- 預備知識

這次要介紹 Kalman filter 或稱 Optimal Linear State Estmator,以下我們將簡單介紹一些在下一篇文章需要使用的一些結果。

Preliminary
回憶若 $x$ 為 mean $m$ 且 variance $\sigma^2$ 的 Normal 隨機變數 則 我們表示為 $x \sim N(m, \sigma^2)$ 。其 probability density function 可記做
\[
\frac{1}{\sqrt{2 \pi} \sigma} \exp(\frac{-1}{2 \sigma^2}(x-m)^2)
\]現在若我們拓展上述結果到 多個隨機變數 (又稱 random vector 隨機向量) 的情況,令 $x$ 為Normal 隨機向量 記做
\[
x \sim N(m,P); \;\;
p_x(x) := n(x,m,P)
\]上述符號 表示 $x$ 為 normal distributed 且 mean vector $m$ 與 convariance matrix $P$。另外 $n(x,m,P)$ 表示 normal probability density function
\[\;n\left( {x,m,P} \right): = \frac{1}{{{{\left( {2\pi } \right)}^{n/2}}{{\left( {\det P} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left( {x - m} \right)}^T}{P^{ - 1}}\left( {x - m} \right)} \right)\]
Comment:
若 $x \in \mathbb{R}^n$ 則 mean vector $m \in \mathbb{R}^n$ 且 convariance matrix $P \in \mathbb{R}^{n \times n}$ 且為 實數 對稱 正定 矩陣 (正定條件用以確保 $P^{-1}$ 存在,使得上述的 probability density function 可以被定義)。若 $P$ 不為對 正定 我們稱為 singular normal distribution 或稱 degenerate normal

Example 
若 $n=2$ 則我們可以繪製 normal density function; 比如說
\[m = \left[ {\begin{array}{*{20}{c}}
0\\
0
\end{array}} \right];\begin{array}{*{20}{c}}
{}&{}
\end{array}{P^{ - 1}} = \left[ {\begin{array}{*{20}{c}}
{3.5}&{2.5}\\
{2.5}&{4.0}
\end{array}} \right]\]則我們可繪製


現在我們看幾個 之後會使用到的基本結果:

================
FACT 1: Joint independent normals
若隨機向量 $x  \sim N(m_x,P_x)$ 與 $y  \sim N(m_y,P_y)$ 為 normally distributed 且 彼此互為獨立,則其 joint density $p_{x,y}(x,y)$ 如下
\[
p_{x,y}(x,y) = p_{x}(x)p_{y}(y)=n(x,m_x,P_x) \cdot n(y,m_y,P_y)
\]且
\[\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right] \sim N\left( {\left[ {\begin{array}{*{20}{c}}
{{m_x}}\\
{{m_y}}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P_x}}&0\\
0&{{P_y}}
\end{array}} \right]} \right)\]================


================
FACT 2: Linear Transformation of a normal
若 $x \sim N(m, P)$ 且 $y$ 為 $x$ 的線性轉換;亦即對任意矩陣 $A$, $y = Ax$ 則
\[
y \sim N(Am , APA^T)
\]================

================
FACT 3: Conditional of a joint normal
若 $x,y$ 為 jointly normal distributed (no independent assumption)
\[\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right]\sim N\left( {\left[ {\begin{array}{*{20}{c}}
{{m_x}}\\
{{m_y}}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)\]則 conditional density of $x$ given $y$ 仍為 Normal 亦即
\[
(x|y) \sim N(m,P)
\]其 probability density function 為 $ p_{x|y} (x|y) = n(x,m,P)$ 其中 conditional mean vector $m$ 與 conditional convariance matrix $P$ 分別為
\[\begin{array}{l}
m = {m_x} + {P_{xy}}P_y^{ - 1}(y - {m_y})\\
P = {P_x} - {P_{xy}}P_y^{ - 1}{P_{yx}}
\end{array}\]================
注意到上式中 conditional mean $m$ 為 random vector (depends on $y$) 。

Proof:
回憶 conditional density of $x$ given y 定義
\[
p_{x|y}(x,y) := \frac{p_{x,y}(x,y)}{p_y(y)}
\]注意到 $(x,y)$ 為 joint normal 故我們有
\[\small \begin{array}{l}
{p_y}\left( y \right): = \frac{1}{{{{\left( {2\pi } \right)}^{{n_y}/2}}{{\left( {\det {P_y}} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left( {y - {m_y}} \right)}^T}{P_y}^{ - 1}\left( {y - {m_y}} \right)} \right)\\
{p_{x,y}}\left( {x,y} \right): = \frac{1}{{{{\left( {2\pi } \right)}^{\left( {{n_x} + {n_y}} \right)/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right]}^T}{{\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]}^{ - 1}}\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right]} \right)
\end{array}\]亦即
\[\begin{array}{l}
{p_{x|y}}\left( {x|y} \right) = \frac{{{p_{x,y}}\left( {x,y} \right)}}{{{p_y}\left( y \right)}}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \frac{{\frac{1}{{{{\left( {2\pi } \right)}^{\left( {{n_x} + {n_y}} \right)/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right]}^T}{{\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]}^{ - 1}}\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right]} \right)}}{{\frac{1}{{{{\left( {2\pi } \right)}^{{n_y}/2}}{{\left( {\det {P_y}} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left( {y - {m_y}} \right)}^T}{P_y}^{ - 1}\left( {y - {m_y}} \right)} \right)}}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} = \frac{{{{\left( {\det {P_y}} \right)}^{1/2}}\exp \left( { - \frac{1}{2}\left( {{{\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right]}^T}{{\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]}^{ - 1}}\left[ {\begin{array}{*{20}{c}}
{x - {m_x}}\\
{y - {m_y}}
\end{array}} \right] - {{\left( {y - {m_y}} \right)}^T}{P_y}^{ - 1}\left( {y - {m_y}} \right)} \right)} \right)}}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}
\end{array}\]注意到若我們取 $P:= P_x - P_{xy}P_y^{-1}P_{yx}$ 則 利用 Matrix inversion Lemma 可知
\[{\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]^{ - 1}} = \left[ {\begin{array}{*{20}{c}}
{{P^{ - 1}}}&{ - {P^{ - 1}}{P_{xy}}P_y^{ - 1}}\\
{ - P_y^{ - 1}{P_{yx}}{P^{ - 1}}}&{P_y^{ - 1} + P_y^{ - 1}{P_{yx}}{P^{ - 1}}{P_{xy}}P_y^{ - 1}}
\end{array}} \right]\]將此結果帶回我們可得
\[\begin{array}{l}
{p_{x|y}}\left( {x|y} \right) = \frac{{{p_{x,y}}\left( {x,y} \right)}}{{{p_y}\left( y \right)}}\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{{{{\left( {\det {P_y}} \right)}^{1/2}}\exp \left( { - \frac{1}{2}\left( \begin{array}{l}
{\left( {x - {m_x}} \right)^T}{P^{ - 1}}\left( {x - {m_x}} \right) - 2{\left( {y - {m_y}} \right)^T}P_y^{ - 1}{P_{yx}}{P^{ - 1}}\left( {x - {m_x}} \right)\\
\begin{array}{*{20}{c}}
{}&{}
\end{array} + {\left( {y - {m_y}} \right)^T}\left( {P_y^{ - 1}{P_{yx}}{P^{ - 1}}{P_{xy}}P_y^{ - 1}} \right)\left( {y - {m_y}} \right)
\end{array} \right)} \right)}}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{{{{\left( {\det {P_y}} \right)}^{1/2}}\exp \left( { - \frac{1}{2}\left( {{{\left[ {{{\left( {x - {m_x}} \right)}^T} - {P_{xy}}P_y^{ - 1}\left( {y - {m_y}} \right)} \right]}^T}{P^{ - 1}}\left[ {{{\left( {x - {m_x}} \right)}^T} - {P_{xy}}P_y^{ - 1}\left( {y - {m_y}} \right)} \right]} \right)} \right)}}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}\\
\begin{array}{*{20}{c}}
{}&{}&{}
\end{array} = \frac{{{{\left( {\det {P_y}} \right)}^{1/2}}\exp \left( { - \frac{1}{2}\left( {{{\left[ {\left( {x - {m_x}} \right) - {P_{xy}}P_y^{ - 1}\left( {y - {m_y}} \right)} \right]}^T}{P^{ - 1}}\left[ {\left( {x - {m_x}} \right) - {P_{xy}}P_y^{ - 1}\left( {y - {m_y}} \right)} \right]} \right)} \right)}}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}
\end{array}\]接著令 $m := m_x + P_{xy} P_y^{-1}(y-m_y)$ 可得
\[{p_{x|y}}\left( {x|y} \right) = \frac{{{p_{x,y}}\left( {x,y} \right)}}{{{p_y}\left( y \right)}} = \frac{{{{\left( {\det {P_y}} \right)}^{1/2}}\exp \left( { - \frac{1}{2}{{\left( {x - m} \right)}^T}{P^{ - 1}}\left( {x - m} \right)} \right)}}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)}^{1/2}}}}\]注意到
\[\det \left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right] = \det {P_y}\det P\]故可得
\[{p_{x|y}}\left( {x|y} \right) = \frac{1}{{{{\left( {2\pi } \right)}^{{n_x}/2}}{{\left( {\det P} \right)}^{1/2}}}}\exp \left( { - \frac{1}{2}{{\left( {x - m} \right)}^T}{P^{ - 1}}\left( {x - m} \right)} \right) = n(x,m,P) \ \ \ \ \ \square
\]


如果要推導 最佳估測器 我們需要上述結果衍生:

================
FACT 1': Joint independent normals
若 $p_{x|z} (x|z) = n(x, m_x, P_x)$ 為 normal ,令 $y \sim N(m_y, P_y)$ 且 與 $x,z$ 彼此獨立 則 conditional joint density of $(x,y)$ given $z$ 為
\[{p_{x,y|z}}\left( {\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right]|z} \right) = n\left( {\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{m_x}}\\
{{m_y}}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P_x}}&0\\
0&{{P_y}}
\end{array}} \right]} \right)\]================

================
FACT 2': Linear Transformation of a Normal
若 $p_{x|z}(x|z)=  n(x,m, P)$ 且 $y$ 為 $x$ 的線性轉換;亦即 $y = Ax$ 則
\[{p_{y|z}}(y|z) = n(y,Am,AP{A^T})\]================

================
FACT 3': Conditional of a joint normal
若 $x,y$ 為 jointly normal distributed (no independent assumption)
\[{p_{x,y|z}}\left( {\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right]|z} \right) = n\left( {\left[ {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{m_x}}\\
{{m_y}}
\end{array}} \right],\left[ {\begin{array}{*{20}{c}}
{{P_x}}&{{P_{xy}}}\\
{{P_{yx}}}&{{P_y}}
\end{array}} \right]} \right)\]則 conditional density of $x$ given $y,z$ 仍為 Normal ,記為
\[
p_{x|y,z} (x|y,z) = n(x,m,P)
\]其中 conditional mean vector $m$ 與 conditional convariance matrix $P$ 分別為
\[\begin{array}{l}
m = {m_x} + {P_{xy}}P_y^{ - 1}(y - {m_y})\\
P = {P_x} - {P_{xy}}P_y^{ - 1}{P_{yx}}
\end{array}\]
================

Proof:
由 conditional density of $x$ given $y,z$ 定義可知
\[{p_{x|y,z}}\left( {x|y,z} \right) = \frac{{{p_{x,y,z}}\left( {x,y,z} \right)}}{{{p_{y,z}}\left( {y,z} \right)}}\]現在對等號右方 分子分母同乘 $p(z)$ 可得
\[\begin{array}{l} {p_{x|y,z}}\left( {x|y,z} \right) = \frac{{{p_{x,y,z}}\left( {x,y,z} \right)}}{{{p_{y,z}}\left( {y,z} \right)}}\\ \begin{array}{*{20}{c}} {}&{}&{} \end{array} = \frac{{{p_{x,y,z}}\left( {x,y,z} \right)}}{{{p_z}\left( z \right)}}\frac{{{p_z}\left( z \right)}}{{{p_{y,z}}\left( {y,z} \right)}}\\ \begin{array}{*{20}{c}} {}&{}&{} \end{array} = {p_{x,y|z}}\left( {x,y|z} \right) \cdot \frac{1}{{{p_{y|z}}\left( {y|z} \right)}} \end{array}\]則由先前 FACT 3 可計算 $p(y,z)$ 並且帶入 $p(x,y|z)$ 即可求得所求。$\square$


 ref: J. B. Rawlings and D. Q. Mayne, "Model Predictive Control: Theory and Design".

1/15/2015

[線性系統] 離散時間系統的可觀察性質 (Observability)

考慮 離散時間 線性非時變 (Discrete Time Linear Time Invariant, DT-LTI)系統
\[\begin{array}{l}
x(k + 1) = Ax(k)\\
y(k) = Cx(k)
\end{array}\] $x \in \mathbb{R}^n, y \in \mathbb{R}^p$。

我們說上述系統為 可觀察 (observable) 或稱 $(A,C)$ 可觀察 若下列條件成立:
存在 常數 $N < \infty$ ,使得對任意 初始狀態 $x(0)$ 而言,可用 $N$ 組量測輸出 $\{y(0), y(1),...,y(N-1)\}$  uniquely 決定該初始狀態 $x(0)$。

Comment
1. 上述定義可類比 可控制性條件,

2. 事實上若我們無法透過 $n$ 組 量測輸出 來區別 $x(0)$ 則就算給額外再多的量測輸出 e.g., $N>n$ 組 仍無法區別 $x(0)$。(此結果可由 Cayley-Hamilton Theorem 證明。)

以下我們看個 unobservable 的例子
上方的方塊圖 顯示了 子系統 $G(z)$ 的狀態 無法從輸出 $Y(z)$ 觀察到。 (圖中的 $(z)$ 表示對原系統做 Z-transform。)



觀察性基本問題:
透過 sensor 所量測到的輸出 $y$ 是否足夠讓我們找出系統 初始狀態 $x(0)$ uniquely?

為何我們關心 初始狀態? 因為一但有初始狀態則其餘任意時刻狀態均可透過狀態方程求解獲得。亦即 給定 $x(0)$ 則
\[\left\{ \begin{array}{l}
x(1) = Ax(0)\\
x(2) = {A^2}x(0)\\
...\\
x\left( N \right) = {A^N}x\left( 0 \right)
\end{array} \right.\]故若給定初始狀態 $x(0)$ 則其餘任意時刻狀態 $x(1), x(2),...,x(N)$均可透過狀態方程 $x(k+1) = Ax(k)$ 獲得。

但現在我們僅給定 $y(0),...,y(N)$ 亦即我們僅知道
\[ \Rightarrow \left\{ \begin{array}{l}
y(0) = Cx(0)\\
y(1) = Cx(1) = CAx(0)\\
y(2) = Cx(2) = C{A^2}x(0)\\
...\\
y\left( N \right) = C{A^N}x\left( 0 \right)
\end{array} \right.\]或者更進一步改寫成矩陣形式
\[\left[ {\begin{array}{*{20}{c}}
{y(0)}\\
{y(1)}\\
 \vdots \\
{y(N)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
C\\
{CA}\\
 \vdots \\
{C{A^N}}
\end{array}} \right]x\left( 0 \right)\] 想問是否可從這些 $\{y(0),...,y(N)\}$ 回推 $x(0)$ (uniquely!)。 如果可以我們稱系統可觀察,若不行我們稱系統不可觀察。

Comment:
回憶在線性代數中,我們說 $Ax = b$ 解存在 若且唯若 $A$ 有 indepenent row (此對應 controllabilility problem);若我們說 $Ax = b$ 有唯一解 (注意 唯一不保證存在!!),若且為若 $A$ 有 independent column (此對應 observability problem)。

故我們要求觀察性矩陣 $O$ ( 其維度 $\dim(O) = Np  \times n$)
\[O = \left[ {\begin{array}{*{20}{c}}
C\\
{CA}\\
 \vdots \\
{C{A^N}}
\end{array}} \right]\] 有 independent column。由 Caley-Hamilton Theorem ,我們可僅考慮 $n$ 個量測輸出,則我們有
\[\left[ {\begin{array}{*{20}{c}}
{y(0)}\\
{y(1)}\\
 \vdots \\
{y(n - 1)}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
C\\
{CA}\\
 \vdots \\
{C{A^{n - 1}}}
\end{array}} \right]x\left( 0 \right)\]故觀察性矩陣 $O$ ( 其維度 $\dim(O) = np  \times n$)
\[O = \left[ {\begin{array}{*{20}{c}}
C\\
{CA}\\
 \vdots \\
{C{A^{n - 1}}}
\end{array}} \right]\]需要有 full column rank $n$ 我們總結 可觀察性的測試如下:

Theorem: Observability Rank Test
若系統 $(A,C)$ 為 observable 若且唯若 $rank(O) = n$。

同樣的我們也有 Hautus Lemma for observability

Lemma: Hautus Lemma for observability
一個系統為 observable 若且唯若 對任意 $\lambda \in \mathbb{C}$,
\[rank\left[ {\begin{array}{*{20}{c}}
{\lambda I - A}\\
C
\end{array}} \right] = n\]
注意到上述 Lemma 中,若 $\lambda \notin eig(A)$,則前面 $n$ rows 為 linearly independent ,故我們可已不用檢驗整個複數平面 $\lambda \in \mathbb{C}$,僅僅需要檢驗 $\lambda \in eig(A)$ 的部分即可。故我們得到以下修正引理:

Lemma: Modified Hautus Lemma
一個系統為 observable 若且唯若 對任意 $\lambda \in eig(A)$,
\[rank\left[ {\begin{array}{*{20}{c}}
{\lambda I - A}\\
C
\end{array}} \right] = n\]







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}\]再取反拉式轉換即可求得所需結果。

12/24/2013

[控制理論] 線性化(Linearization)

這次要跟大家介紹的是 線性化 (Linearization) 的概念,讀者建議須先具備基本 Taylor Series 概念,如果不熟悉的讀者可先參閱 [微積分] 泰勒展開式 與 泰勒級數 。

為何要做線性化?
其實線性化的動機很簡單,主要是因為一般在分析動態系統的時候,大部分系統行為都是呈現非線性(EX: 電路系統(二極體 I/V curve),倒單擺、撓性機構、機器人、生物細胞、金融模型...),但這些非線性行為會有一個大的困難,就是難以直接求解其動態行為。且發展成熟的線性系統理論沒有辦法(有效的)應用在上面,但如果能夠透過一些假設/機制,我們可以把原本非線性的系統轉成線性系統,如此一來原本沒辦法使用的線性系統理論便可以派上用場!!

如何做線性化?
至於實際如何做到對任意 非線性函數 (e.g., $\sin, \cos, \exp, x^n$, ...)線性化呢? 簡單來說,就是採用切線 (微分) 的概念,如果我們對關心的某一點對該點取導數,則我們可以得到一條對該點的切線,此切線可以在某種程度上用來近似 該點附近的函數行為。

https://controls.engin.umich.edu/wiki/index.php/LinearizingODEs


----- 以下進入正題 ----

若用數學來描述非線性的系統可以寫成
\[
\dot x(t) = f(x)
\]其中 $x(t) \in \mathbb{R}^n$ 稱作系統狀態(state variable) (這邊考慮 $n$ 維空間,故有 $n$ 個系統狀態變數); $\dot x(t)$ 為系統狀態的一階導數; $f$ 為用以描述動態系統的任意函數

在此我們考慮系統狀態為 $n$ 階。意思就是有 $n$ 個不同的系統狀態,記做  $x \in \mathbb{R}^n$


在介紹線性化之前,我們得先介紹 "平衡點(equilibrium point)"

=====================
Definition: Equilibrium point
若 $f(\bar{x})=0$ ,則系統狀態 $\bar{x} \in \mathbb{R}^n$ 被稱作 平衡點(equilibrium point)。
=====================

Comments
由上述定義可以推知,如果 $x(0)=\bar{x}$ ,則 $x(t)=\bar{x}, \forall t \geq 0$ ;
也就是說一旦 在最一開始( $t=0$ )的時候,系統就處在平衡點的狀態,則對任意時刻 $t \geq 0$,系統狀態會持續處在平衡點的狀態。

====================
Definition: 穩定平衡點 (Stable equilibrium point)
平衡點若被稱為穩定的,或稱 穩定平衡點(stable equilibrium point),則其必須滿足 在任意時刻 之狀態 $x(t)$ 都需收斂到平衡點 $\bar{x}$,亦即
\[
x(t) \rightarrow \bar{x}
\](  $|| x(0)-\bar{x} ||$ 為足夠小 )
反之,若不收斂則稱為 不穩定的平衡點(unstable equilibrium) 其中
 \[
|| x(0)-\bar{x} || := \left ( \displaystyle \sum_{i} (x_i(0)-\bar{x}_i)^2 \right )^{\frac{1}{2}}\] 為 2-norm
==================

Comments:
上述定義指明 所謂的 穩定平衡點是指 考慮 任意時刻的狀態 $x(t), \forall t$,若此狀態都會回到 某個平衡點 $\bar{x}$ 則我們說他是一個 穩定的平衡點。

在介紹完平衡點之後,我們便可介紹所謂的 線性化,誠如先前所說,線性化的基本概念是微分,所以在此我們會假設動態系統充分可微(smooth),故我們可以進行 泰勒展開 (微分近似)。

=================
線性化(Linearization):
注意:我們僅對 穩定平衡點 做線性化。(不穩定的平衡點亦可線性化只是實際用處不大)

現在我們回頭考慮 $n$ 階非線性系統
\[
\dot x(t) = f(x)
\]其系統狀態 $x(t)$ 可表為 平衡點狀態 $\bar{x}$ 加上 狀態(小擾動)增量( $\Delta x(t)$ );注意。在此我們假設擾動 $\Delta x$ 不能太大。
\[
x(t) = \bar{x} + \Delta x(t)
\]則我們可寫下
\[
f_1 (x) = f_1 (x+\Delta x)\]
若此 $f$ 為 平滑函數(smooth) (也就是說可以對其做泰勒展開),則我們可改寫上式如下:

對 $f_1$ 可寫出其泰勒展開式 (對 $0$ 點展開)

$\Rightarrow f_1(x) = f_1(\bar{x}) + \frac{\partial f_1}{\partial x_1}|_{x=\bar{x}} \Delta x_1  + ... + \frac{\partial f_1}{\partial x_n}|_{x=\bar{x}} \Delta x_n + H.O.T$ ....(1)

同樣的,我們也可以對 $f_2...f_n$ 展開。

$\Rightarrow f_2(x) = f_2(\bar{x}) + \frac{\partial f_2}{\partial x_1}|_{x=\bar{x}} \Delta x_1  + ... + \frac{\partial f_2}{\partial x_n}|_{x=\bar{x}} \Delta x_n + H.O.T.$

$\vdots$

$\Rightarrow f_n(x) = f_n(\bar{x}) + \frac{\partial f_n}{\partial x_1}|_{x=\bar{x}} \Delta x_1  + ... + \frac{\partial f_n}{\partial x_n}|_{x=\bar{x}} \Delta x_n + H.O.T$

其中 $H.O.T$ 表示 高階項(Higher Order Terms)

然後因為增量 $\Delta x_1, \Delta x_2...$ 假設為很小的擾動,在高階項的影響可被忽略

現在,回憶我們手邊有的狀態
\[
x(t) = \bar{x} + \Delta x(t)\]
對上式兩邊對時間微分,可得
\[
\dot x(t) = \Delta \dot x(t)\]
再者,因為我們知道 系統為 $\dot x(t) = f(x)$, 由式 (1) 我們可以帶入泰勒展開到 $f(x)$ 之中,最後整理可得線性化之後的 增量(擾動)系統
\[
 \Delta \dot x(t) = A \cdot \Delta x(t)  \ \ \ \  (2) \]
其中 $A$ 為矩陣其第 (i,j) 元素由下式表示
\[
a_{ij} = \frac{\partial f_i}{\partial x_j}|_{x=\bar{x}}\]

上式 $(2)$ 即稱為 線性化後的動態系統。由於此為線性,故所有的線性系統理論 (eigenvalue, controllability, observability) 便可以在其上進行討論




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/14/2012

[線性系統] 動態系統 輸入-輸出描述

這次要介紹 動態系統的 輸入與輸出描述方法 (Input-Output Description) 或稱 I-O 關係,一般而言 一個 I-O 關係 事實上便是給定對 某動態系統 輸入與輸出之間的 "數學" 關係。


在討論 輸入輸出關係 之前,我們必須要對我們感興趣的動態系統 (這邊主要討論線性系統) 做些適當的假設:

在給定輸入之前 ( 亦即輸入為 0 ),系統必須為 "靜止" at rest ,此類系統稱為 鬆弛系統 (relaxed system),且 給定輸入之後,其對應的系統輸出 必須完全 由給定輸入決定 (無其他輸入源)。我們才能有效建立合理的 I-O關係。

現在令 $y$ 為量測輸出(measurement output), $u$ 為輸入 (input)。一般對於一個 鬆弛系統的 I-O 關係可簡單表為
\[
y= H u
\]其中 系統為 $H$。

在上式中我們可以想像 系統  $H$ 為一個 黑盒子 (black-box),亦即我們不清楚系統怎麼運作,但我們能做的就是盡可能給予各種不同的輸入 $u$,來 測量 對應的輸出 $y$。並且試圖找出 輸入 與輸出的關係 以合理描述系統的特性。


那麼由於這邊我們討論的主角系統為線性系統,故我們必須先給出什麼是線性系統的嚴格定義:

====================
Definition: Linear Relaxed System
一個 鬆弛系統 被稱為 線性 Linear 若且為若 對任意輸入向量 $u_1$ 與 $u_2$ 與 任意純量 $\alpha_1$ 與 $\alpha_2$ 具有下列線性關係
\[
H(\alpha_1 u_1 + \alpha_2 u_2) = \alpha_1 Hu_1 + \alpha_2 H u_2
\]====================

comments :
1. 上述線性關係可視為 如果我們把一個輸入 $\alpha_1 u_1 + \alpha_2 u_2$ 輸入到系統 $H$ 之中,則此結果等價於各別
輸入 $\alpha_1 u_1$ 與 $ \alpha_2  u_2$ 到系統 $H$ 之中再將結果疊加起來。 此性質稱為重疊原理 (superposition principle) 或者線性關係的 加法性(additivity) 與 齊次性(homogeneity)。
2. 線性系統必為 Relaxed System。反之則否。
3.


在我們討論 鬆弛系統的 I-O關係之前,我們需要先介紹一個重要的函數: Dirac delta function 或稱 Impulse function

定義 $\delta_{\Delta}(t - t_1)$ 為 Pulse function 如下
\[{\delta _\Delta }(t - {t_1}): = \left\{ \begin{array}{l}
0,\begin{array}{*{20}{c}}
{}
\end{array}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{if}}\begin{array}{*{20}{c}}
{}
\end{array}t < {t_1}\\
1/\Delta ,\begin{array}{*{20}{c}}
{}
\end{array}{\rm{if}}\begin{array}{*{20}{c}}
{}
\end{array}{t_1} \le t < {t_1} + \Delta \\
0,\begin{array}{*{20}{c}}
{}
\end{array}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{if}}\begin{array}{*{20}{c}}
{}
\end{array}t \ge {t_1} + \Delta
\end{array} \right.
\]  下圖顯示了 Pulse function

注意到 $\delta_{\Delta}(t- t_1)$ 面積為1,如果我們令 $\Delta \rightarrow 0$ 則可得
\[
\mathop {\lim }\limits_{\Delta  \to 0} {\delta _\Delta }(t - {t_1}): = \delta (t - {t_1})
\] 上式稱為 單位脈沖函數 Unit-Impulse function 或稱 Dirac-delta function

Comment:
任意分段連續 (piecewise continuous) 輸入函數 $u(t)$ 可以透過一連串的 pulse function 來近似;亦即我們可以將任意分段連續輸入 $u$ 寫為
\[
 u = \sum_i u(t_i) \delta_{\Delta}(t - t_i) \Delta
\]
如下圖所示



因此我們有如下關係:
\[
\int_{-\infty}^{\infty} \delta(t- t_1) dt = 1
\] 且 對在 $t_1$ 連續的任意函數 $f$ ,我們有
\[
\int_{-\infty}^{\infty} f(t)\delta(t- t_1) dt = f(t_1)
\]

有了上述 Impulse response 的想法,我們可以開始發展對 鬆弛線性系統的數學模型

考慮一個鬆弛線性系統的 近似 輸入輸出 關係如下
\[
y = H u
\] 則其中 $u = \sum_i u(t_i) \delta_{\Delta}(t - t_i) \Delta$,故
\[y = H\left( {\sum\limits_i u ({t_i}){\delta _\Delta }(t - {t_i})\Delta } \right) \Rightarrow y = \sum\limits_i {Hu} ({t_i}){\delta _\Delta }(t - {t_i})\Delta
\] 現在令 $\Delta \rightarrow 0$,則上式中的 近似的 $y$ 會逼近真實輸出,且 summation 會逼近積分,且 pulse function $\delta_{\Delta}(t - t_i)$ 會逼近 $\delta(t - t_1)$
\[
y = \int_{ - \infty }^\infty  {Hu(\tau )\delta (t - \tau )d\tau }  \ \ \ \ (\star)
\] 注意到若 對所有 $\tau$,已知 $H \delta( t- \tau)$,則所有的輸出都可以由上式計算出來。

我們現在定義 $H \delta (t - \tau ) := g(t, \tau)$,注意到 $g$ 有雙變數,其中 第二個變數 $\tau$ 表示在 $\tau$ 時刻 delta-function,另外第一個變數 $t$ 則為在時刻 $t$ 輸出被量測到。由於 $g(t, \tau)$ 為脈衝函數的系統響應(亦即如果 $u = \delta(t-\tau)$),我們稱之為脈衝響應 ( Impulse response)。故可將 $\star$ 改寫為
\[
y(t) = \int_{ - \infty }^\infty  g (t,\tau )u(\tau )d\tau
\] 也就是說對一個 relaxed linear 系統,其輸出可完全由上式積分決定,其中 $g(t, \tau)$ 為系統脈衝響應。

現在我們問一個問題:
給定任意系統在時刻 $t_0$,如何得知此系統已經為 relaxed?
想法如下:如果沒有輸入的時候,系統必須也沒有輸出,則我們就說此系統為 relaxed。我們將此結果改寫成下面定理:

===================
Theorem (How to determine the relaxedness of a given system)
考慮一個系統由脈衝響應表示
\[
y(t) = \int_{-\infty}^{\infty} g(t,\tau) u(\tau) d \tau
\]我們稱此系統在時刻 $t_0$ 為 relaxed,若且唯若 $u_{[t_0, \infty)} =0\Rightarrow y_{[t_0, \infty)} \equiv 0$
===================


Ref:
[1] Chi-Tsong Chen, Linear System Theory and Practice 2nd.
[2] Alan V. Oppenheim, Alan S. Willsky, with S. Hamid, Signal and Systems (2nd)

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

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