# Week 11 - Descrete-Time Modeling (Part 1)
# Descrete-Time Modeling
知道數位類比轉換的過程該怎麼處理之後,現在就可以試著把這個動態加入控制系統的分析當中。首先,先看一個比較簡單的系統:
![](https://i.imgur.com/qGTllJV.png)
加入數位控制器後,整個系統訊號的流程大致是:
1. 電腦下一個離散的輸出 $t_m(k)$
3. 這個離散的輸出透過 *D/A* 轉換,變成連續的訊號,傳給連續系統。
4. 連續系統接收後,動態改變。
5. 連續系統的回授經由 *A/D* ,轉換成離散的訊號,傳給處理器作為計算的參考(比如在這個例子中是速度 $\omega(k)$)
接下來,示範兩種處理這個系統的方法:第一個方法先做連續系統 Laplace 分析,然後加入 ZoH; 第二個方法則是查表。
## Method 1
> (這個詳細的過程在 handout-1 中。上課時教的過程大致的過程有 8 個步驟。但為了筆記方便有些步驟合併起來。
### Step 1 : 解連續系統
==解連續系統的行為(這其實包含 4 步:找到 DE、做保留初始條件的 Laplace 等等)。這邊最最最最最重要的是==做 Laplace 的時候要保留初始條件==。以馬達系統為例,假定輸入是力矩,輸出是角速度。則微分方程是:
$$
J\frac {d}{dt}\omega = T_m
$$
對微分方程進行拉普拉斯轉換:
$$
W (s) - \omega(0) = \frac {1}{J} T_m(s)
$$
因此:
$$
W(s) = \frac {1}{s} \omega(0) + \frac {1}{Js} T_m(s)
$$
在這邊都是在連續時間做的東西。接下來就要開始進到離散時間了。
### Step 2 : 加入 ZoH
==在 manipulated input 加入 zero order hold==。注意這邊==只有 manipulated input 需要加。其他不是 manipulated input 的就不要動!==。也就是令:
$$
T_m = T_{m, ZoH} = t_{mag, t=0} \cdot \frac {1}{s}
$$
這個概念其實是這樣:對連續系統看到的是 ZoH 作用後產生的連續訊號,一段一段分段討論。但其實等一下會發現:只要找出第一段,後面的就可以立刻找出來,所以只要找第一段,也就是 $[0, T]$ 的行為就好。
在 $[0, T]$ 的時間來說,系統看到的輸入,會是被 ZoH 之後的輸入,也就是:
$$
T_m = T_m(t = 0)\cdot \frac{1}{s}
$$
把他帶入之後,得到 Laplace 域的輸出是:
$$
W(s) = \frac {1}{s} \omega(0) + \frac {1}{Js^2}T_m(t = 0)
$$
而這個就是在 $t \in [0, T]$ 的時間內,系統的響應。
### Step 3 : 做 Inverse Laplace Transform
==做 inverse Laplace transform==:
$$
\omega(t) = \omega(0) + \frac {t}{J}T_m(t = 0) \quad \forall t \in [0, T]
$$
不過這東西現在只包含了那個 $[0, T]$ 之間的行為。不過這樣 sample 只做了一半,因為還有 $\omega$ 要處理。
### Step 4 : 觀察遞迴關係
==Find the sample instance==:把 $t = T$ 帶入,可以得到 $\omega(1T)$ 時候,系統的速度應該要是:
$$
\omega(1T) = \omega(0) + \frac {T}{J}T_m(0)
$$
### Step 5 : 找到差分方程
==遞迴推廣==:有了上面的結論之後,很容易可以推廣出:
$$
\omega(k) = \omega(k - 1) + \frac {T}{J}T_m(k - 1)
$$
其中 $\omega(k)$ 是指 $\omega(kT)$ ,但因為太懶惰了所以就只寫前面的整數。
接下來就可以用類似 DP 的方式找出響應:
```
w[2] = {W_NINT, 0};
n = 0;
while(1) {
++n;
w[0] = w[1];
w[1] += T / J * T(n);
}
```
## Method 2 : Z-Table
大致上的過程是:
1. 找到 $s$ domain 的轉移函數
2. 找到 sampled s-domain 的轉移函數
3. 找到 z-domain 的轉移函數
4. k-domain
### Step 1 : ODE
先做連續系統的轉移函數[1]:
$$
\frac {d\omega}{dt} = \frac {1}{J} t_m(t)
$$
### Step 2 : Laplace Transform Before Sampling
並且找出 Laplace Transform[2]:
$$
\frac {\bar\omega(s)}{T_m(s)}\bigg{|}_{B.S.} = \frac {1}{Js}
$$
### Step 3 : New System Dynamic with ZoH (Impulse -> ZoH)
然後把 ==impulse response 變成 ZoH 輸入,並且找到 ZoH 輸入下系統的動態==。這件事很重要!一定要用 ZoH Input (而不是 impulse response)。這件事情其實就是把「$輸入$」通通用「$ZoH \cdot 輸入$」代替。也就是令:
$$
\frac {\bar\omega(s)}{T_{m, ZoH}(s)} = NSD(s) = ZoH(s) \cdot \frac {1}{Js}
$$
因為:
$$
ZoH(s) = \frac {1 - e^{-sT}}{s}
$$
故:
$$
NSD(s) = (1 - e^{-sT})\frac {1}{Js^2}
$$
### Step 4 : Output Response Before Sample (by Z - table)
因此:
$$
\omega(t) =\mathcal L^{-1}\left[(1 - e^{-sT})\frac {1}{Js^2}\right]
$$
然後理論上應該要找出來 $\omega$ 之後 sample 他,然後從 sampled s domain 轉到 z-domain ... 。不過,如果有 z-table 的話,可以讓人生簡單一點。這個表大概像這樣:
![](https://i.imgur.com/L7YsmvM.png)
所以,現在我們要做的事情就是查表:
$$
\frac {\bar \omega(z)}{T_{m, ZoH}(s)} =\mathcal Z\left[(1 - e^{-sT})\frac {1}{Js^2}\right]
$$
這個表的用法是這樣:$z = e^{sT}$,然後剩下的就照上面查:
$$
\begin{align}
\mathcal Z\left[(1 - e^{-sT})\frac {1}{Js^2}\right] &= \mathcal Z\left[(1 - e^{-sT})\right] \mathcal Z\left[\frac {1}{Js^2}\right] \newline
&= (1 - z^{-1})\frac {1}{J}\frac {Tz^{-1}}{(1 - z^{-1})^2} \newline
&= \frac {1}{J} \frac {Tz^{-1}}{1 - z^{-1}}
\end{align}
$$
### Step 5 : Difference Equation in k-domain
因為現在已經有:
$$
\frac {\bar \omega(z)}{T_{m, ZoH}(s)} = \frac {1}{J} \frac {Tz^{-1}}{1 - z^{-1}}
$$
把他交叉相乘:
$$
\bar \omega(z) - z^{-1} \bar \omega(z) = \frac {T}{J} z^{-1}T_{m, ZoH} (z)
$$
然後因為 $z^{-1} = e^{-sT}$,表示延後一個 $T$,所以就是:
$$
\bar \omega(k) - \bar\omega(k - 1) = \frac {T}{J} T_{m, ZoH}(k - 1)
$$
然後就發現:這個跟之前做出來的方法是用一樣的!