跳到主要內容

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

這次要介紹 線性系統理論 中的一個重要結果:稱作實現理論 ( 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$ 的求得?? 也就是是否可以找到一個非奇異轉換矩陣 來幫助我們從一個狀態空間的實現 變成 另一個呢?? 做額外補充。

留言

這個網誌中的熱門文章

[數學分析] 什麼是若且唯若 "if and only if"

數學上的 if and only if  ( 此文不討論邏輯學中的 if and only if,只討論數學上的 if and only if。) 中文翻譯叫做  若且唯若 (or 當且僅當) , 記得當初剛接觸這個詞彙的時候,我是完全不明白到底是甚麼意思,查了翻譯也是愛莫能助,畢竟有翻跟沒翻一樣,都是有看沒有懂。 在數學上如果看到 if and only if  這類的句子,其實是表示一種 雙條件句 ,通常可以直接將其視為" 定義(Definition)" 待之,今天要分享的是這樣的一個句子如何用比較直觀的方法去看他 假設我們現在有 兩個邏輯陳述句 A 與  B. 注意到,在此我們不必考慮這兩個陳述句到底是什麼,想表達什麼,或者到底是否為真(true),這些都不重要。只要知道是兩個陳述即可。 現在,考慮新的陳述:  "A if and only if B" 好了,現在主角登場,我們可以怎麼看待這個句子呢? 事實上我們可以很直覺的把這句子拆成兩部分看待,也就是 "( A if B ) and ( A only if B )" 那麼先針對第一個部分  A if B  來看, 其實這句就是說  if B then A, 更直白一點就是 "if B is true, then A is also true".  在數學上等價可以寫為 "B implies A" .  或者更常用一個箭頭符號來表示 "B $\Rightarrow$  A"  現在針對第二個部分  A only if B 此句意指  "If B is not true, then A is also not true". 所以如果已知 A is true,  那麼按照上句不難推得 B is also true 也就是說  A only if B  等價為 "If A is true then B is also true". 同樣,也可以寫作   "A implies B"   或者用箭頭表示  "A   $\Rightarrow$     B".

[數學分析] 淺談各種基本範數 (Norm)

這次要介紹的是數學上一個重要的概念: Norm: 一般翻譯成 範數 (在英語中 norm 有規範的意思,比如我們說normalization就是把某種東西/物品/事件 做 正規化,也就是加上規範使其正常化),不過個人認為其實翻譯成 範數 也是看不懂的...這邊建議把 Norm 想成長度就好 (事實上norm是長度的抽象推廣), 也許讀者會認為好端端的長度不用,為何又要發明一個 norm 來自討苦吃?? 既抽象又艱澀。 事實上想法是這樣的: 比如說現在想要比較兩個數字 $3$ , $5$ 之間的大小,則我們可以馬上知道 $ 3 < 5 $;同樣的,如果再考慮小數與無理數如 $1.8753$ 與 $\pi$,我們仍然可以比較大小 $1.8753 < \pi = 3.1415...$ 故可以發現我們有辦法對 "純量" 做明確的比大小,WHY? 因為前述例子中 $3$, $5$, $1.8753$ or $\pi$ 其各自的大小有辦法被 "measure "! 但是如果是現在考慮的是一組數字 我們如何去measure 其大小呢?? 比如說 \[x:=[1, -2, 0.1, 0 ]^T \]上式的大小該是多少? 是 $1$? $-2$? $0.1$??? 再者如果更過分一點,我們考慮一個矩陣 \[A = \left[ {\begin{array}{*{20}{c}} 1&2\\ 3&4 \end{array}} \right] \],想要知道這個矩陣的大小又該怎麼辦?? 是 $1$ ? $2$ 還是 $4$ ?..其實現階段我們說不清楚。 也正是如此,可以發現我們確實需要新的 "長度" 的定義來幫助我們如何去 measure 矩陣/向量/甚至是函數的大小。 故此,我們首先定義甚麼是Norm,(也就是把 "長度" or "大小" 的本質抽離出來) ================== Definition: Norm 考慮 $V$ 為一個向量空間(Vector space),則我們說  Norm 為一個函數 $||\cdot|| : V \rightarrow \mathbb{R}$ 且滿足下列性質