數字系統,之前用差分方程或 Z 變換傳遞函式表示,也可以使用狀態空間表示。處理模擬系統的所有相同技術都可以應用於數字系統,只是稍作修改。
對於數字系統,我們可以使用離散資料集編寫類似的方程
![{\displaystyle x[k+1]=Ax[k]+Bu[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/968e943803299b5d109c4f8c3c9f30267d4253a6)
![{\displaystyle y[k]=Cx[k]+Du[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4f519a3e55979d6f94be1a47fcec83f3b7c6d06f)
如果我們有一個連續時間狀態方程

我們可以推匯出上面討論的這個方程的數字版本。我們對我們的方程進行拉普拉斯變換

現在,取拉普拉斯逆變換,得到我們的時域系統,記住 (sI - A) 項的拉普拉斯逆變換是我們的狀態轉移矩陣 Φ

現在,我們在輸入上應用零階保持,使系統數字化。請注意,我們將起始時間 t0 = kT 設定為,因為我們只對系統在單個取樣週期內的行為感興趣


我們能夠從積分中移除 u(kT),因為它不依賴於 τ。我們現在定義一個新的函式 Γ,如下

將此新表示式代入我們的方程,並令 *t = (k + 1)T*,得到

現在 Φ(T) 和 Γ(T) 是常數矩陣,我們可以用新的名稱來表示它們。下標 *d* 表示它們是係數矩陣的數字版本


我們可以在我們的狀態方程中使用這些值,並轉換為我們的方括號表示法
![{\displaystyle x[k+1]=A_{d}x[k]+B_{d}u[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26016d81d915f56b27dbd4cd0d7cfe6ce4b90df0)
表現類似的連續系統和離散系統可以透過一組關係聯絡起來。毫不奇怪,離散系統和連續系統將具有不同的特性和不同的係數矩陣。如果我們認為離散系統與連續系統相同,只是它以取樣時間 T 進行取樣,那麼以下關係將成立。將模擬系統轉換為數字硬體使用的過程稱為離散化。我們已經對離散化做了簡單的介紹,但我們將在本章中更詳細地討論它。
離散化中最重要的是從連續時間對應物計算相關的係數矩陣。如果我們有連續系統 *(A,B,C,D)*,我們可以使用關係 *t = kT* 將狀態空間解轉換為取樣系統

![{\displaystyle x[k]=e^{AkT}x[0]+\int _{0}^{kT}e^{A(kT-\tau )}Bu(\tau )d\tau }](https://wikimedia.org/api/rest_v1/media/math/render/svg/0290cc2dd22a4d631c5ffb7823e1c121eb936743)
現在,如果我們想分析 *k+1* 項,我們可以再次求解方程
![{\displaystyle x[k+1]=e^{A(k+1)T}x[0]+\int _{0}^{(k+1)T}e^{A((k+1)T-\tau )}Bu(\tau )d\tau }](https://wikimedia.org/api/rest_v1/media/math/render/svg/994ce6bfa0f69053e517040b1b49e36dca2bf45f)
分離變數,並將積分分成兩部分,得到
![{\displaystyle x[k+1]=e^{AT}e^{AkT}x[0]+\int _{0}^{kT}e^{AT}e^{A(kT-\tau )}Bu(\tau )d\tau +\int _{kT}^{(k+1)T}e^{A(kT+T-\tau )}Bu(\tau )d\tau }](https://wikimedia.org/api/rest_v1/media/math/render/svg/78a27e93b69a568932afcbe78c7b92ceffd24575)
如果我們代入一個新的變數β = (k + 1)T + τ,並且我們看到以下關係
![{\displaystyle e^{AkT}x[0]=x[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/57de715a88e4511103163170154c005c2b07ca74)
我們得到最終結果
![{\displaystyle x[k+1]=e^{AT}x[k]+\left(\int _{0}^{T}e^{A\alpha }d\alpha \right)Bu[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c0b306d52dc9f7484b3eddeab936b347450df49b)
將此方程與我們的常規解進行比較,我們得到了一組將連續時間系統轉換為離散時間系統的關係。這裡,我們將使用“d”下標來表示離散系統的系統矩陣,並將使用“c”下標來表示連續系統的系統矩陣。
矩陣維度
A: p × p
B: p × q
C: r × p
D: r × q
|
|
|
|
如果 Ac 矩陣是非奇異的,那麼我們可以找到它的逆矩陣,並將 Bd 定義為

離散矩陣和連續矩陣之間的差異是由於描述我們系統的基礎方程不同。連續時間系統由線性微分方程表示,而數字系統由差分方程描述。差分方程中的高階項是訊號的延遲副本,而微分方程中的高階項是模擬訊號的導數。
如果我們有一個複雜的模擬系統,並且我們想在數字計算機中實現該系統,我們可以使用上述變換使我們的矩陣符合新的正規化。
由於離散系統的係數矩陣的計算方式與連續時間係數矩陣不同,並且由於這些矩陣在技術上代表不同的內容,因此在文獻中使用不同的變數來表示這些矩陣並不罕見。例如,以下變數經常用作A和B的替代


這些替換將為我們提供由有序四元組(Ω, R, C, D)定義的系統,用於表示我們的方程。
為了符號方便,我們將在本書的其餘部分使用字母A和B來表示這些矩陣。
我們可以為離散時間差分方程找到一個通用的時不變解。讓我們從建立一個模式開始。我們知道離散狀態方程
![{\displaystyle x[n+1]=Ax[n]+Bu[n]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6ff7ef6d6d0d9cf66bd77f029c79ae00aacd2fe0)
從時間n = 0開始,我們可以開始建立一個模式
![{\displaystyle x[1]=Ax[0]+Bu[0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b13570ff73e4dcab05275a001560428ac046f7cf)
![{\displaystyle x[2]=Ax[1]+Bu[1]=A^{2}x[0]+ABu[0]+Bu[1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aef6d8501f685e4229f05dc873b311321455754e)
![{\displaystyle x[3]=Ax[2]+Bu[2]=A^{3}x[0]+A^{2}Bu[0]+ABu[1]+Bu[2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a9b4ccefe6ab3870c5c6c73a1fb16b8a39a1d395)
經過一些代數技巧,我們可以將這個模式簡化為一個方程式
![{\displaystyle x[n]=A^{n}x[n_{0}]+\sum _{m=0}^{n-1}A^{n-1-m}Bu[m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c2c8499f4dbe367155c362de8c6869b58d17508b)
將此結果代入輸出方程,得到
![{\displaystyle y[n]=CA^{n}x[n_{0}]+\sum _{m=0}^{n-1}CA^{n-1-m}Bu[m]+Du[n]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/39753b5bea5015c84fd37e76f1dd23ce5907a8e0)
如果系統是時變的,我們有一個類似於連續時間情況的一般解
![{\displaystyle x[n]=\phi [n,n_{0}]x[n_{0}]+\sum _{m=n_{0}}^{n-1}\phi [n,m+1]B[m]u[m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6cc4013c8a7b8efc2ec527cf56a479cb0bd542c)
![{\displaystyle y[n]=C[n]\phi [n,n_{0}]x[n_{0}]+C[n]\sum _{m=n_{0}}^{n-1}\phi [n,m+1]B[m]u[m]+D[n]u[n]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ab9fe470f56a69b3ce90c24abc5b5a7417a07e00)
其中 φ,狀態轉移矩陣,與連續情況下的狀態轉移矩陣定義類似。但是,離散時間中的一些屬性是不同的。例如,狀態轉移矩陣的逆不需要存在,在許多系統中它是不存在的。
離散時間狀態轉移矩陣是以下方程的唯一解
![{\displaystyle \phi [k+1,k_{0}]=A[k]\phi [k,k_{0}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8978a0e548bc699235f2a84022527afb7e931e12)
其中必須滿足以下限制
![{\displaystyle \phi [k_{0},k_{0}]=I}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb91cf3310196bf8196363d58b0381a1f6b91aa1)
根據此定義,一個顯而易見的計算此狀態轉移矩陣的方法出現了
![{\displaystyle \phi [k,k_{0}]=A[k-1]A[k-2]A[k-3]\cdots A[k_{0}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/489960ef4b593f862d1992bec88965b65bed22d7)
或者,
![{\displaystyle \phi [k,k_{0}]=\prod _{m=1}^{k-k_{0}}A[k-m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f2c6298256e86709427e5220ca7661f3a2ef975)
MATLAB 是一款計算機程式,因此使用數字方法計算所有系統。MATLAB 函式 lsim 用於模擬具有指定輸入的連續系統。此函式透過呼叫 c2d 函式來工作,c2d 函式將系統 (A, B, C, D) 轉換為等效的離散系統。一旦系統模型被離散化,函式將控制權傳遞給 dlsim 函式,該函式用於模擬具有指定輸入的離散時間系統。
因此,像 MATLAB 這樣的模擬程式會受到離散化過程相關的舍入誤差的影響。