2015年4月17日 星期五

[系統理論] 線性系統的 Input/Output to State Stability

回憶在線性系統理論中,我們說 系統為可觀測 (observable) 則可以設計觀察器(observer)。但若今天考慮的是 非線性系統,我們是否能有類似的準則來告訴我們何時可以設計觀察器? 或者說是否能提供非線性系統 類比於系統觀察性( observability) 的條件呢?

答案是肯定的,在非線性系統裡面 我們可用 Incremental Input/output-to-state stability (i-IOSS) 來界定系統是否可觀察。 不過如果是只針對線性系統,則我們僅需要 IOSS 即可等價 observability;以下為定義:


=======================
Definition: Input/output-to-state stability (IOSS)
假設非線性系統 $x^+ = f(x,w); \;\; y=h(x)$ 為 input/output-to-state stable (IOSS) 若下列條件成立:
對任意 $x_0 \in \mathbb{R}^n$ 與 $k \ge 0$,存在 $\beta(\cdot) \in \mathcal{KL}$ 與 $\gamma_1(\cdot), \gamma_2(\cdot) \in \mathcal{K}$ 使得
\[
|x(k;x_0, {\bf w})| \le \beta(|x_0|,k) + \gamma_1(||{\bf w}||) + \gamma_2 (||{\bf y}||)
\]其中 $x(k;x_0,{\bf w})$ 為前述非線性系統 在時間 $k$ 與 初始條件 $x_0$ 輸入為 ${\bf w}$的解;另外 $||{\bf w}|| := \max_{j\ge 0} |w(j)|, ||{\bf y}|| := \max_{j\ge 0} |y(j)|$
=======================

那麼有了上述結果,我們應立即想到此定義對於原本線性系統是否有用? 現在我們看個例子:

Example
考慮離散時間 線性系統
\[\begin{array}{l}
{x^ + } = Ax + Gw\\
y = Cx
\end{array}\]試證若系統為 observable,則 系統為 Input-Output State Stable (IOSS)

Proof: 
回憶 IOSS 定義:
\[\left| {x\left( {k;{x_0}} \right)} \right| \le \beta \left( {|{x_0}|,k} \right) + {\gamma _1}\left( {||w||} \right) + {\gamma _2}\left( {||y||} \right)
\]其中 $\beta(\cdot) \in \mathcal{KL}$ 且 $\gamma_1(\cdot), \gamma_2(\cdot) \in \mathcal{K}$

由於系統為 observable,我們可以設計觀察器,故我們可改寫系統方程如下
\[\begin{array}{l}
{x^ + } = Ax + Gw\\
 \Rightarrow {x^ + } = Ax + Gw + Ly - Ly\\
 \Rightarrow {x^ + } = \left( {A - LC} \right)x + Gw + Ly
\end{array}\]其中 $ L$ 觀測器的增益矩陣, 且由於系統為 observable,故 $(A-LC)$ 為穩定矩陣;亦即 $eig(A-LC) < 1$ 。現在我們求解 $x(k)$ 如下:
\[\begin{array}{l}
\left| {x\left( k \right)} \right| = \left| {{{\left( {A - LC} \right)}^k}{x_0} + \sum\limits_{j = 0}^{k - 1} {{{\left( {A - LC} \right)}^{k - 1 - j}}\left( {Gw\left( j \right) + Ly\left( j \right)} \right)} } \right|\\
\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} \le \left| {{{\left( {A - LC} \right)}^k}} \right|\left| {{x_0}} \right| + \sum\limits_{j = 0}^{k - 1} {\left| {{{\left( {A - LC} \right)}^{k - 1 - j}}Gw\left( j \right)} \right|} \\
\begin{array}{*{20}{c}}
{}&{}&{}&{}&{}&{}&{}&{}
\end{array} + \sum\limits_{j = 0}^{k - 1} {\left| {{{\left( {A - LC} \right)}^{k - 1 - j}}Ly\left( j \right)} \right|}
\end{array}\]現在回憶下列結果 (Horn and Johnson, 1985, p.299):對 $c>0$,
\[\left| {{{\left( {A - LC} \right)}^k}} \right| \le c{\lambda ^k};\begin{array}{*{20}{c}}
{}&{}
\end{array}\mathop {\max }\limits_i \left| {ei{g_i}\left( A - LC \right)} \right| < \lambda  < 1
\]故可知
\[\begin{array}{*{20}{l}}
{\left| {x\left( k \right)} \right| \le c{\lambda ^k}\left| {{x_0}} \right| + c{\lambda ^{k - 1}}\sum\limits_{j = 0}^{k - 1} {{\lambda ^{ - j}}\left| {Gw\left( j \right)} \right|}  + c{\lambda ^{k - 1}}\sum\limits_{j = 0}^{k - 1} {{\lambda ^{ - j}}\left| {Lw\left( j \right)} \right|} }\\
{\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} \le c{\lambda ^k}\left| {{x_0}} \right| + c\left| G \right|\left\| w \right\|\frac{{1 - {\lambda ^k}}}{{1 - \lambda }} + c\left| L \right|\left\| y \right\|\frac{{1 - {\lambda ^k}}}{{1 - \lambda }}}\\
{\begin{array}{*{20}{c}}
{}&{}&{}&{}
\end{array} \le c{\lambda ^k}\left| {{x_0}} \right| + c\left| G \right|\left\| w \right\|\frac{1}{{1 - \lambda }} + c\left| L \right|\left\| y \right\|\frac{1}{{1 - \lambda }}}
\end{array}\]故我們可取
\[\left\{ \begin{array}{l}
\beta \left( {|{x_0}|,k} \right): = c{\lambda ^k}\left| {{x_0}} \right|\\
{\gamma _1}\left( {||w||} \right): = c\left| G \right|\left\| w \right\|\frac{{ {1 }}}{{1 - \lambda }}\\
{\gamma _2}\left( {||y||} \right){\rm{: = }}c\left| L \right|\left\| y \right\|\frac{{{1 }}}{{1 - \lambda }}
\end{array} \right.\]最後我們僅需檢驗 $\beta(\cdot) \in \mathcal{KL}$, 且 $ \gamma_1(\cdot), \gamma_2(\cdot) \in \mathcal{K}$。 $\square$


事實上上述例子可以推廣成如下重要結果:

===================
Theorem: IOSS in linear system is equivalent to detectability
考慮離散時間 線性系統
\[\begin{array}{l}
{x^ + } = Ax + Gw\\
y = Cx
\end{array}\]此系統為 detectable 若且為若 系統為 IOSS
===================
Proof: omitted

2015年4月13日 星期一

[Mathematica] FinancialData 函數擷取股價資料

利用 Mathematica 中的 FinancialData 函數 擷取股價資料

關於 FinancialData[] 函數的功能 這邊簡單介紹如下:
FinancialData 可用以檢索美國債卷、選擇權、共同基金、指數與股價、貨幣匯率及各種相關金融證卷資訊。另外若需存取 美國公司股價可透過指派該公司的 ticker:e.g., NYSE:GE, ...等等;且關於 FinancialData 可檢索的股價時間包含 "Day", "Week", "Month", "Year";更多細節請參閱以下 官方 Wolfram 網址
https://reference.wolfram.com/language/ref/FinancialData.html

以下為使用 FinancialData 擷取股價的一些例子:
 (注意:使用者須備有 Mathematica 6 以後的版本才能使用 FinancialData函數與其相關功能。)

Example 1: 繪製 IBM 自 2013年 至 2015 年 "每月" 股價:

Example 2: 繪製 IBM 自 2000 年 至 2015 年 "每年" 股價:



Example 3: 繪製 IBM 自 2000 年 1 月 1 日 以來的股價:


Example 4: 同時繪製 IBM 與 Morgan Stanley (MS) 自 2000 年以來的股價