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) 來幫助我們 透過量測輸出 來 估計 系統的內部狀態。這將會留待之後再作介紹。

5/03/2012

[隨機分析] How to solve SDE practically (5) - Stochastic Exponential

Again,這是這系列的第五篇,這次來看看一個稍微不一樣的例子

Example 1: Stochastic Exponential for Standard Brownian Motion
令 $\lambda \in \mathbb{R}$,考慮如下 Stochastic Process:
\[
X_t = 1 + \lambda \int_0^t X_s dB_s \ \ \ \ (*)
\]試求解上式。

Comment:
回憶在微分方程,
\[
g(t) = 1 + \lambda \int_0^t g(s) ds
\]我們有 Unique 的解且具備 Exponential 形式: $g(t) := e^{\lambda t}$ 。故可以想見式 $(*)$ 應該也有此 Exponential 的解的樣子。

Solution
首先將 $(*)$ 改寫成微分形式:
\[\begin{array}{l}
{X_t} = 1 + \lambda \int_0^t {{X_s}} d{B_s}\\
 \Rightarrow d{X_t} = \lambda {X_t}d{B_t}
\end{array}
\] 這邊我們直接求解 (這邊略過此SDE的 唯一性 與 存在性 檢驗,直接求解。)
 進一步改寫 $d{X_t} - \lambda {X_t}d{B_t} = 0$ 並且定義積分因子 (透過一點 trial and error):
\[{U_t}: = {e^{ - \lambda \int_0^t {d{B_s}}  + \frac{1}{2}{\lambda ^2}t}} = {e^{ - \lambda {B_t} + \frac{1}{2}{\lambda ^2}t}}
\]利用 Integration by part (Product rule) 計算 $d(X_t U_t)$:
\[
 d\left( {{X_t}{U_t}} \right) = {X_t}d\left( {{U_t}} \right) + {U_t}d\left( {{X_t}} \right) + d\left\langle {{U_t},{X_t}} \right\rangle  \ \ \ \ (\star)
\]其中
\[\left\{ \begin{array}{l}
d\left( {{U_t}} \right) = \frac{1}{2}{\lambda ^2}{U_t}dt - \lambda {U_t}d{B_t} + \frac{1}{2}{\lambda ^2}{U_t}dt\\
d\left\langle {{U_t},{X_t}} \right\rangle  = d{U_t} \cdot d{X_t} = \left( {\frac{1}{2}{\lambda ^2}{U_t}dt - \lambda {U_t}d{B_t} + \frac{1}{2}{\lambda ^2}{U_t}dt} \right)\lambda {X_t}d{B_t}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} =  - {\lambda ^2}{U_t}{X_t}dt
\end{array} \right.
\] 將上式代入 $(\star)$,我們得到
\[\begin{array}{l}
d\left( {{X_t}{U_t}} \right) = {X_t}\left( {{\lambda ^2}{U_t}dt - \lambda {U_t}d{B_t}} \right) + {U_t}\lambda {X_t}d{B_t} - {\lambda ^2}{U_t}{X_t}dt\\
 \Rightarrow d\left( {{X_t}{U_t}} \right) = 0
\end{array}
\] 現在將上式轉換回積分形式:
\[\begin{array}{l}
{X_t}{U_t} - {X_0}{U_0} = 0\\
 \Rightarrow {X_t}{U_t} = {X_0}\\
 \Rightarrow {X_t}{e^{ - \lambda {B_t} + \frac{1}{2}{\lambda ^2}t}} = {X_0}\\
 \Rightarrow {X_t} = {X_0}{e^{\lambda {B_t} - \frac{1}{2}{\lambda ^2}t}}\\
 \Rightarrow {X_t} = {e^{\lambda {B_t} - \frac{1}{2}{\lambda ^2}t}}\\
\end{array}
\] (注意到 $X_0=1, U_0=1$);現在我們用積分因子法找到了一組解 $X_t$,我們必須回頭測試此解確實滿足 SDE,利用 Ito Formula,計算
\[d{X_t} = \left( { - \frac{1}{2}{\lambda ^2}} \right){X_t}dt + \lambda {X_t}d{B_t} + \frac{1}{2}{\lambda ^2}{X_t}dt\]故
\[ \Rightarrow d{X_t} = \lambda {X_t}d{B_t}
\]亦即此為我們的SDE。故
\[
{X_t} = {e^{\lambda {B_t} - \frac{1}{2}{\lambda ^2}t}}
\]確實為 SDE的(唯一)解。此解被稱為 Stochastic Exponential。 $\square$

現在我們更進一步考慮如何拓展上述結果:
如果我們把 Standard Brownian Motion 替換成 Standard Process 上述結果是否仍能成立呢? 答案是肯定的,我們用下面這個例子說明 Stochastic Exponential 對 standard process 的情況:

Example 2: Stochastic Exponential for Standard Process
定義 $Y_t$ 為 Standard process 亦即
\[
Y_t := Y_0 + \int_0^t a(\omega, s) ds + \int_0^t b(\omega,s) dB_s, \ \ 0 \leq t \leq T
\]其中 $a(\cdot, \cdot)$ 與 $b(\cdot, \cdot)$ 為 adapted, measurable processes 且滿足以下積分條件:
\[
\int_0^T |a(\omega,s)|ds + \int_0^T |b(\omega,s)|^2 ds < \infty \ \text{almost surely}
\] 現在試求 $Z_t$ 滿足
\[
Z_t = 1 + \lambda \int_0^t Z_s dY_s
\]
Solution
在求解之前我們可以猜測此SDE對應的解的形式應該仍保留 Stochastic Exponential 的樣子。不過我們為了統一性,我們仍使用積分因子法求解:

首先改寫上述 $Z_t$ 為 微分形式
\[\begin{array}{l}
{Z_t} = 1 + \lambda \int_0^t {{Z_s}} d{Y_s}\\
 \Rightarrow d{Z_t} = \lambda {Z_t}d{Y_t}\\
 \Rightarrow d{Z_t} - \lambda {Z_t}d{Y_t} = 0
\end{array}\]
定義積分因子如下:
\[{U_t}: = {e^{ - \lambda \int_0^t {d{Y_s}}  + \frac{1}{2}{\lambda ^2}{{\left\langle Y \right\rangle }_t}}} = {e^{ - \lambda {Y_t} + \frac{1}{2}{\lambda ^2}{{\left\langle Y \right\rangle }_t}}}
\]利用 Integration by part 計算
\[d\left( {{Z_t}{U_t}} \right) = {Z_t}d\left( {{U_t}} \right) + {U_t}d\left( {{Z_t}} \right) + d\left\langle {{U_t},{Z_t}} \right\rangle
\]其中
\[\left\{ \begin{array}{l}
d\left( {{U_t}} \right) =  - \lambda {U_t}d{Y_t} + \frac{1}{2}{\lambda ^2}{U_t}d{\left\langle Y \right\rangle _t} + \frac{1}{2}{\lambda ^2}{U_t}d{\left\langle Y \right\rangle _t}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} =  - \lambda {U_t}d{Y_t} + {\lambda ^2}{U_t}d{\left\langle Y \right\rangle _t}\\
d{Z_t} = \lambda {Z_t}d{Y_t}\\
d\left\langle {{U_t},{Z_t}} \right\rangle  = d{U_t}d{Z_t} = \left( { - \lambda {U_t}d{Y_t} + {\lambda ^2}{U_t}d{{\left\langle Y \right\rangle }_t}} \right)\lambda {Z_t}d{Y_t}\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} =  - {\lambda ^2}{U_t}{Z_t}d{Y_t}d{Y_t} =  - {\lambda ^2}{U_t}{Z_t}d{\left\langle Y \right\rangle _t}
\end{array} \right.
\] 將上式代入 $d(Z_t U_t)$ 可得
\[\begin{array}{l}
d\left( {{Z_t}{U_t}} \right) = {Z_t}d\left( {{U_t}} \right) + {U_t}d\left( {{Z_t}} \right) + d\left\langle {{U_t},{Z_t}} \right\rangle \\
 \Rightarrow d\left( {{Z_t}{U_t}} \right) = {Z_t}\left( { - \lambda {U_t}d{Y_t} + {\lambda ^2}{U_t}d{{\left\langle Y \right\rangle }_t}} \right) + {U_t}\lambda {Z_t}d{Y_t} - {\lambda ^2}{U_t}{Z_t}d{\left\langle Y \right\rangle _t}\\
 \Rightarrow d\left( {{Z_t}{U_t}} \right) = 0
\end{array}
\]現在轉換為積分形式
\[\begin{array}{l}
{Z_t}{U_t} - {Z_0}{U_0} = 0\\
 \Rightarrow {Z_t}{U_t} = {Z_0}\\
 \Rightarrow {Z_t}{e^{ - \lambda {Y_t} + \frac{1}{2}{\lambda ^2}{{\left\langle Y \right\rangle }_t}}} = 1\\
 \Rightarrow {Z_t} = {e^{\lambda {Y_t} - \frac{1}{2}{\lambda ^2}{{\left\langle Y \right\rangle }_t}}}
\end{array}
\] 故我們求得一個對 $Z_t$ 的解,現在對其進行驗證測試其確實滿足SDE:利用 Ito Formula 計算 $dZ_t$ 可得
\[\begin{array}{l}
d{Z_t} = \lambda {Z_t}d{Y_t} - \frac{1}{2}{\lambda ^2}{Z_t}d{\left\langle Y \right\rangle _t} + \frac{1}{2}{\lambda ^2}{Z_t}d{\left\langle Y \right\rangle _t}\\
 \Rightarrow d{X_t} = \lambda {Z_t}dY
\end{array}\]亦即 此解
\[
{Z_t} = {e^{\lambda {Y_t} - \frac{1}{2}{\lambda ^2}{{\left\langle Y \right\rangle }_t}}}
\]確實滿足SDE,故為此即為 SDE的 解。




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

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