許多系統內部狀態無法直接觀測,因此無法進行狀態反饋。我們可以嘗試設計一個單獨的系統,稱為 **觀測器** 或 **估計器**,嘗試複製工廠狀態向量的值,但以可觀察的方式用於狀態反饋。一些文獻稱這些元件為“觀測器”,儘管它們並不嚴格直接觀察狀態。相反,這些裝置使用數學關係來嘗試確定狀態的估計值。因此,我們將使用術語“估計器”,儘管這些術語可以互換使用。
存在多種觀測器結構,包括卡爾曼、滑模、高增益、Tau、擴充套件、三次和線性觀測器。為了說明觀測器設計的原理,考慮一個線性觀測器,用於估計線性系統的狀態。請注意,我們知道工廠的 *A*、*B*、*C* 和 *D* 矩陣,因此我們可以在估計器中使用這些精確的值。我們知道系統的輸入,我們知道系統的輸出,我們擁有系統的系統矩陣。我們不一定知道的是工廠的初始條件。估計器試圖做的是使估計狀態向量快速地接近實際狀態向量,然後映象實際狀態向量。我們使用以下系統來構建觀測器


*L* 是我們定義的矩陣,它將幫助將誤差驅動為零,因此將估計值驅動為狀態的實際值。我們透過取工廠輸出和估計器輸出之間的差來做到這一點。
為了使估計器狀態接近工廠狀態,我們需要定義一個新的附加狀態向量,稱為 *狀態誤差訊號*
. 我們將此誤差訊號定義為

及其導數

我們可以證明誤差訊號將滿足以下關係



我們知道,如果矩陣 *(A - LC)* 的所有特徵值的實部都為負,那麼
當
.
這
表示,當時間趨於無窮大時,工廠狀態
與觀測器估計狀態
之間的差異會逐漸消失。
我們有兩個方程
![{\displaystyle e_{x}[k+1]=(A-LC)e_{x}[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8389bf180c839fb302a5267b3b8b739acb65df1)
![{\displaystyle x[k+1]=(A-BK)x[k]+BK\cdot e_{x}[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/05dd25a083705c254c9d36961bb36537ac8dc5a4)
我們可以將它們組合成一個方程組來表示整個系統
![{\displaystyle {\begin{bmatrix}e_{x}[k+1]\\x[k+1]\end{bmatrix}}={\begin{bmatrix}A-LC&0\\+BK&A-BK\end{bmatrix}}{\begin{bmatrix}e_{x}[k]\\x[k]\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0944e171d660d396ee867f5ec22eb2b88d0c9cd7)
我們可以使用分離原理輕鬆找到特徵方程。我們將這個數字系統的Z變換,並取係數矩陣的行列式來找到特徵方程。整個系統的特徵方程是:(記住眾所周知的
)

請注意,大矩陣的行列式可以分解成兩個較小行列式的乘積。第一個行列式顯然是估計器的特徵方程,第二個行列式顯然是工廠的特徵方程。還要注意,我們可以獨立地設計L 和K矩陣。
值得一提的是,如果系統的階數為n,則此特徵方程(全階狀態觀測器加上原始系統)將變為2n階,因此根的個數是原始系統的兩倍。
您應該選擇L矩陣,以便儘快將誤差訊號驅動為零。估計器的瞬態響應,即誤差大約達到零所需的時間,應該明顯短於被控物件的瞬態響應。根據經驗法則,估計器的極點應該至少比被控物件的極點快 2-6 倍。我們從經典控制的研究中知道,為了使極點更快,我們需要
- S域
- 將它們移開虛軸(在左半平面!)。
- Z域
- 將它們移近原點。
請注意,在這些情況下,估計器的更快極點對系統的影響較小,我們說被控物件的極點支配了系統的響應。可以使用Ackerman 公式的對偶來計算估計器增益L,用於選擇狀態反饋控制器的增益K

其中Q是被控物件的觀測性矩陣,αe是您估計器的特徵方程。
這可以使用以下命令在 MATLAB 中計算
可以使用此
MATLAB 命令執行此操作
acker
L=acker(A', C', K)';
其中 L 是估計器增益,K 是估計器的極點。
一旦我們有了L和K矩陣,我們就可以將它們組合成一個用於狀態反饋和零輸入情況的單個複合系統方程
![{\displaystyle {\begin{bmatrix}x[n+1]\\{\bar {x}}[n+1]\end{bmatrix}}={\begin{bmatrix}A&-BK\\LH&A-BK-LH\end{bmatrix}}{\begin{bmatrix}x[n]\\{\bar {x}}[n]\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b87389d7375abd932c034231338144254782f988)
![{\displaystyle u[n]=-K{\bar {x}}[n]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2ad57098c2013b35ae8c0832f3d60ea42d9c9106)
對該離散系統進行 Z 變換並求解輸入輸出關係,得到
![{\displaystyle {\frac {U(z)}{Y(z)}}=-K[zI-A+BK+LC]^{-1}L}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb21c2df7ac6adb9ac9f40a7991019e54710f735)
請注意,這不是傳遞函式,因為輸入在分數的頂部,輸出在底部。為了從該方程獲得傳遞函式,我們需要對兩邊取逆。然後,該逆的行列式將是複合系統的特徵方程。
請注意,此方程使我們能夠推匯出產生特定輸出的系統輸入。這在以後將很有用。
在許多系統中,至少一個狀態變數可以被直接測量,或者可以從輸出輕鬆計算出來。當C矩陣在每個系統輸出中只有一個非零項時,就會發生這種情況。
如果一個或多個狀態變數可以被直接測量或觀察,則該系統只需要一個降階觀測器,即一個階數低於被控物件的觀測器。降階觀測器可以估計不可測量的狀態,並且可以使用直接反饋路徑來獲取可測量的狀態值。