Luenberger狀態觀測器
狀態觀測器 (英語:State observer )是控制理論 中配合受控體的系統,在已知受控體架構的情形下,可以根據受控體的輸入及輸出而估測其內部的狀態 ,是許多實務應用的基礎。
許多的控制理論都會假設可以知道系統的狀態,例如利用全狀態回授 來穩定線性系統的例子。不過許多系統都無法直接量測到實際的狀態,只能用狀態對輸出的影響來間接估計狀態。像隧道中的車輛就是一個例子。車輛在隧道中的速度不易直接量測,只可以用隧道中的實際狀態來估計。假如系統可觀測 ,可以從輸出配合狀態觀測器來完全估測系統的狀態。
針對線性系統的狀態觀測器,最常用的是線性觀測器、滑動模式觀測器 ,也有在線性觀測器中加入立方項的觀測器。以下會說明線性觀測器的結構。
線性非時變離散系統的狀態方程式如下:
x
(
k
+
1
)
=
A
x
(
k
)
+
B
u
(
k
)
{\displaystyle x(k+1)=Ax(k)+Bu(k)}
y
(
k
)
=
C
x
(
k
)
+
D
u
(
k
)
{\displaystyle y(k)=Cx(k)+Du(k)}
在時間
k
{\displaystyle k}
時,
x
(
k
)
{\displaystyle x(k)}
是系統狀態,
u
(
k
)
{\displaystyle u(k)}
是輸入,
y
(
k
)
{\displaystyle y(k)}
是輸出。狀態方程式提到系統目前的輸出以及未來的狀態是由目前狀態以及目前輸入所決定。若系統有可觀測性 ,可以用系統輸出
y
(
k
)
{\displaystyle y(k)}
來調整狀態觀測器的狀態。
受控體的觀測器模型可以用上式來推導,也可以加入額外的項,確保觀測器在持續收到系統的輸入及輸出時,其狀態可以收斂到受控體的狀態。可以將系統的輸出減去觀測器的輸出,再乘以矩陣
L
{\displaystyle L}
,再加到狀態觀測器的方程式中,以產生如下式定義的Luenberger觀測器。其中的狀態觀測器的變數會加上hat:
x
^
(
k
)
{\displaystyle {\hat {x}}(k)}
和
y
^
(
k
)
{\displaystyle {\hat {y}}(k)}
,以區隔實際系統的變數。
x
^
(
k
+
1
)
=
A
x
^
(
k
)
+
L
[
y
(
k
)
−
y
^
(
k
)
]
+
B
u
(
k
)
{\displaystyle {\hat {x}}(k+1)=A{\hat {x}}(k)+L\left[y(k)-{\hat {y}}(k)\right]+Bu(k)}
y
^
(
k
)
=
C
x
^
(
k
)
+
D
u
(
k
)
{\displaystyle {\hat {y}}(k)=C{\hat {x}}(k)+Du(k)}
觀測器漸近收斂的條件是觀測器誤差
e
(
k
)
=
x
^
(
k
)
−
x
(
k
)
{\displaystyle e(k)={\hat {x}}(k)-x(k)}
在
k
→
∞
{\displaystyle k\rightarrow \infty }
時,可以收斂到0。此離散系統的Luenberger觀測器漸近收斂的條件是矩陣
A
−
L
C
{\displaystyle A-LC}
的特徵值都在單位圓內。
因為控制的需求,觀測器的輸出除了作為觀測器的輸入,也會透過增益矩陣
K
{\displaystyle K}
,成為受控體的輸入。
u
(
k
)
=
−
K
x
^
(
k
)
{\displaystyle u(k)=-K{\hat {x}}(k)}
觀測器的方程式會變成:
x
^
(
k
+
1
)
=
A
x
^
(
k
)
+
L
(
y
(
k
)
−
y
^
(
k
)
)
−
B
K
x
^
(
k
)
{\displaystyle {\hat {x}}(k+1)=A{\hat {x}}(k)+L\left(y(k)-{\hat {y}}(k)\right)-BK{\hat {x}}(k)}
y
^
(
k
)
=
C
x
^
(
k
)
−
D
K
x
^
(
k
)
{\displaystyle {\hat {y}}(k)=C{\hat {x}}(k)-DK{\hat {x}}(k)}
或是
x
^
(
k
+
1
)
=
(
A
−
B
K
)
x
^
(
k
)
+
L
(
y
(
k
)
−
y
^
(
k
)
)
{\displaystyle {\hat {x}}(k+1)=\left(A-BK\right){\hat {x}}(k)+L\left(y(k)-{\hat {y}}(k)\right)}
y
^
(
k
)
=
(
C
−
D
K
)
x
^
(
k
)
{\displaystyle {\hat {y}}(k)=\left(C-DK\right){\hat {x}}(k)}
因為控制理論中的分離原理 ,可將估測器以及控制器分開設計, 因此可以選擇
K
{\displaystyle K}
和
L
{\displaystyle L}
,以達到系統的整體穩定性。根據經驗法則,會選擇觀測器
A
−
L
C
{\displaystyle A-LC}
的極點,使其比系統
A
−
B
K
{\displaystyle A-BK}
極點快十倍以上。
連續系統中的觀測器和離散系統中的類似。會選擇觀測器增益
L
{\displaystyle L}
使連續系統誤差可以漸近收斂到0(當
A
−
L
C
{\displaystyle A-LC}
為赫維茲矩陣 時會成立)
針對連續時間線性系統
x
˙
=
A
x
+
B
u
,
{\displaystyle {\dot {x}}=Ax+Bu,}
y
=
C
x
+
D
u
,
{\displaystyle y=Cx+Du,}
其中
x
∈
R
n
,
u
∈
R
m
,
y
∈
R
r
{\displaystyle x\in \mathbb {R} ^{n},u\in \mathbb {R} ^{m},y\in \mathbb {R} ^{r}}
,觀測器類似以上離散系統的例子:
x
^
˙
=
A
x
^
+
B
u
+
L
(
y
−
y
^
)
{\displaystyle {\dot {\hat {x}}}=A{\hat {x}}+Bu+L\left(y-{\hat {y}}\right)}
.
y
^
=
C
x
^
+
D
u
,
{\displaystyle {\hat {y}}=C{\hat {x}}+Du,}
觀測器誤差
e
=
x
−
x
^
{\displaystyle e=x-{\hat {x}}}
會滿足下式
e
˙
=
(
A
−
L
C
)
e
{\displaystyle {\dot {e}}=(A-LC)e}
.
若
[
A
,
C
]
{\displaystyle [A,C]}
有可觀測性 ,可以適當選擇觀測器增益
L
{\displaystyle L}
,以調整矩陣
A
−
L
C
{\displaystyle A-LC}
的特徵值。另外,也可以使矩陣
A
−
L
C
{\displaystyle A-LC}
為赫維茲矩陣 ,讓觀測器誤差
e
(
t
)
{\displaystyle e(t)}
可以漸近收斂到0。
若觀測器增益
L
{\displaystyle L}
很高,線性的Luenberger觀測器會很快收斂,但大增益會造成峰值現象(peaking phenomenon),初始的觀測器誤差會非常大,在實際使用上不安全[ 1] 。因此,會用非線性高增益觀測技術,可以快速收斂,又沒有峰值現象。例如可以在觀測器中使用滑動模式控制 技術(滑動模式觀測器 ),使觀測器在有量測誤差的情形下,在有限時間內使觀測器狀態誤差變成零,其他有誤差的狀態,其行為會類似峰值減弱後的Luenberger觀測器。滑動模式觀測器類似卡尔曼滤波 ,有較理想的抗雜訊能力[ 2] [ 3] 。
另一種作法是用多觀測器(multi observer),可以顯著的改善暫態,抑制觀測器的過沖。多觀測器可以適用在所有適用高增益的系統[ 4] 。
針對非線性系統 ,最常用的是高增益狀態觀測器、滑動模式觀測器 以及擴展觀測器。
為了說明非線性系統中的狀態觀測器,先考慮以下的無輸入非線性系統:
x
˙
=
f
(
x
)
{\displaystyle {\dot {x}}=f(x)}
其中
x
∈
R
n
{\displaystyle x\in \mathbb {R} ^{n}}
,也假設有量測輸出
y
∈
R
{\displaystyle y\in \mathbb {R} }
如下
y
=
h
(
x
)
.
{\displaystyle y=h(x).}
有許多設計觀測器的非近似式作法。以下提到的觀測器也可以適用於有輸入的系統
x
˙
=
f
(
x
)
+
B
(
x
)
u
,
{\displaystyle {\dot {x}}=f(x)+B(x)u,}
y
=
h
(
x
)
,
{\displaystyle y=h(x),}
.
Krener和Isidori[ 5] ,以及Krener和Respondek[ 6] 有針對狀態觀測器的研究,若存在可線性化的轉換(微分同胚 ,類似回授線性化 )
z
=
Φ
(
x
)
{\displaystyle z=\Phi (x)}
,使新變數的系統方程如下
z
˙
=
A
z
+
ϕ
(
y
)
,
{\displaystyle {\dot {z}}=Az+\phi (y),}
y
=
C
z
.
{\displaystyle y=Cz.}
Luenberger觀測器可以設計為
z
^
˙
=
A
z
^
+
ϕ
(
y
)
−
L
(
C
z
^
−
y
)
{\displaystyle {\dot {\hat {z}}}=A{\hat {z}}+\phi (y)-L\left(C{\hat {z}}-y\right)}
.
轉換後變數
e
=
z
^
−
z
{\displaystyle e={\hat {z}}-z}
的觀測器誤差可以滿足同一個方程式
e
˙
=
(
A
−
L
C
)
e
{\displaystyle {\dot {e}}=(A-LC)e}
.
Gauthier、Hammouri和Othman[ 7]
and Hammouri and Kinnaert[ 8] 已證明,若存在變換
z
=
Φ
(
x
)
{\displaystyle z=\Phi (x)}
,使系統可以轉換為以下的型式
z
˙
=
A
(
u
(
t
)
)
z
+
ϕ
(
y
,
u
(
t
)
)
,
{\displaystyle {\dot {z}}=A(u(t))z+\phi (y,u(t)),}
y
=
C
z
,
{\displaystyle y=Cz,}
則觀測器可以設計如下
z
^
˙
=
A
(
u
(
t
)
)
z
^
+
ϕ
(
y
,
u
(
t
)
)
−
L
(
t
)
(
C
z
^
−
y
)
{\displaystyle {\dot {\hat {z}}}=A(u(t)){\hat {z}}+\phi (y,u(t))-L(t)\left(C{\hat {z}}-y\right)}
,
其中
L
(
t
)
{\displaystyle L(t)}
是時變的觀測器增益。
Ciccarella、Dalla Mora和Germani[ 9] 有提供更進階以及一般性的結果,只需要簡單的規律性(regularity)假設,不需要非線性的轉換,證明觀測狀態可以全域收斂到實際狀態。
多觀測器(Multi observer)是高增益觀測器的擴展,由一個觀測器到多個觀測器一起使用,可以讓多個模型同時作用。多觀測器會分為二層:一層包括了多個高增益觀測器,有相關同一組狀態旳不同的估測量,第二層決定第一層各估測量的權重。此演算法很容易實現,其中也沒有微分等有危險性的運算[ 4] 。多觀測器的概念最早曾應用在適應控制中,用來取得資訊[ 10] 。
假設高增益觀測器有n+1個
x
k
^
˙
(
t
)
=
A
x
k
^
(
t
)
+
B
ϕ
0
(
x
^
(
t
)
,
u
(
t
)
)
−
L
(
y
k
^
(
t
)
−
y
(
t
)
)
{\displaystyle {\dot {\hat {x_{k}}}}(t)=A{\hat {x_{k}}}(t)+B\phi _{0}({\hat {x}}(t),u(t))-L({\hat {y_{k}}}(t)-y(t))}
y
k
^
(
t
)
=
C
x
k
^
(
t
)
{\displaystyle {\hat {y_{k}}}(t)=C{\hat {x_{k}}}(t)}
其中
k
=
1...
n
+
1
{\displaystyle k=1...n+1}
是觀測器的編號。第一層的觀測器包括了相同的增益
L
{\displaystyle L}
,但其啟始狀態
x
k
(
0
)
{\displaystyle x_{k}(0)}
不同。在第二層中會將所有
x
k
(
t
)
{\displaystyle x_{k}(t)}
(
k
=
1...
n
+
1
{\displaystyle k=1...n+1}
)觀測器的結果合併為一個,以得到單一狀態向量的估測值
y
k
^
(
t
)
=
∑
k
=
1
n
+
1
α
k
(
t
)
x
k
^
(
t
)
{\displaystyle {\hat {y_{k}}}(t)=\sum \limits _{k=1}^{n+1}\alpha _{k}(t){\hat {x_{k}}}(t)}
其中
α
k
∈
R
{\displaystyle \alpha _{k}\in \mathbb {R} }
是加權因子。這些因子會改變,以提供第二層的估測用,並且提昇觀測器的效果。
假設
∑
k
=
1
n
+
1
α
k
(
t
)
ξ
k
(
t
)
=
0
{\displaystyle \sum \limits _{k=1}^{n+1}\alpha _{k}(t)\xi _{k}(t)=0}
且
∑
k
=
1
n
+
1
α
k
(
t
)
=
1
{\displaystyle \sum \limits _{k=1}^{n+1}\alpha _{k}(t)=1}
其中
ξ
k
∈
R
n
×
1
{\displaystyle \xi _{k}\in \mathbb {R} ^{n\times 1}}
是某向量,會和第
k
{\displaystyle k}
個估測器的誤差
e
k
(
t
)
{\displaystyle e_{k}(t)}
有關。
經過轉換,可以得到以下的線性回歸問題
[
−
ξ
n
+
1
(
t
)
]
=
[
ξ
1
(
t
)
−
ξ
n
+
1
(
t
)
…
ξ
k
(
t
)
−
ξ
n
+
1
(
t
)
…
ξ
n
(
t
)
−
ξ
n
+
1
(
t
)
]
T
[
α
1
(
t
)
⋮
α
k
(
t
)
⋮
α
n
(
t
)
]
{\displaystyle [-\xi _{n+1}(t)]=[\xi _{1}(t)-\xi _{n+1}(t)\dots \xi _{k}(t)-\xi _{n+1}(t)\dots \xi _{n}(t)-\xi _{n+1}(t)]^{T}{\begin{bmatrix}\alpha _{1}(t)\\\vdots \\\alpha _{k}(t)\\\vdots \\\alpha _{n}(t)\end{bmatrix}}}
根據上式,有可能估算
α
k
(
t
)
{\displaystyle \alpha _{k}(t)}
。為了要建構流形,需要映射
m
:
R
n
→
R
n
{\displaystyle m:\mathbb {R} ^{n}\rightarrow \mathbb {R} ^{n}}
在
ξ
k
(
t
)
=
m
(
e
k
(
t
)
)
{\displaystyle \xi _{k}(t)=m(e_{k}(t))}
之間,並且保證可以用可量測的訊號來計算
ξ
k
(
t
)
{\displaystyle \xi _{k}(t)}
。
首先要從觀測器誤差中消除
α
k
(
t
)
{\displaystyle \alpha _{k}(t)}
的峰值現象
e
σ
(
t
)
=
∑
k
=
1
n
+
1
α
k
(
t
)
e
k
(
t
)
{\displaystyle e_{\sigma }(t)=\sum \limits _{k=1}^{n+1}\alpha _{k}(t)e_{k}(t)}
.
將
η
k
(
t
)
=
y
^
k
(
t
)
−
y
(
t
)
{\displaystyle \eta _{k}(t)={\hat {y}}_{k}(t)-y(t)}
針算
n
{\displaystyle n}
的微分,可以找到以下的值
ξ
k
(
t
)
{\displaystyle \xi _{k}(t)}
ξ
k
(
t
)
=
[
1
0
0
⋯
0
C
L
1
0
⋯
0
C
A
L
C
L
1
⋯
0
C
A
2
L
C
A
L
C
L
⋯
0
⋮
⋮
⋮
⋱
C
A
n
−
2
L
C
A
n
−
3
L
C
A
n
−
4
L
⋯
1
]
[
∫
t
−
t
d
t
n
−
1
⋯
∫
t
−
t
d
t
η
k
(
τ
)
d
τ
⋮
η
(
t
)
−
η
(
t
−
(
n
−
1
)
t
d
)
]
{\displaystyle \xi _{k}(t)={\begin{bmatrix}1&0&0&\cdots &0\\CL&1&0&\cdots &0\\CAL&CL&1&\cdots &0\\CA^{2}L&CAL&CL&\cdots &0\\\vdots &\vdots &\vdots &\ddots \\CA^{n-2}L&CA^{n-3}L&CA^{n-4}L&\cdots &1\end{bmatrix}}{\begin{bmatrix}\int \limits _{t-t_{d}}^{t}{{n-1} \atop \cdots }\int \limits _{t-t_{d}}^{t}\eta _{k}(\tau )d\tau \\\vdots \\\eta (t)-\eta (t-(n-1)t_{d})\end{bmatrix}}}
其中
t
d
>
0
{\displaystyle t_{d}>0}
是某時間常數。
ξ
k
(
t
)
{\displaystyle \xi _{k}(t)}
和
η
k
(
t
)
{\displaystyle \eta _{k}(t)}
和其積分有關,因此可以應用在控制系統上。
而且
α
k
(
t
)
{\displaystyle \alpha _{k}(t)}
是在估測律中指定,因此此流形可以量測。第二層
α
^
k
(
t
)
{\displaystyle {\hat {\alpha }}_{k}(t)}
,其中
k
=
1
…
n
+
1
{\displaystyle k=1\dots n+1}
是用來估測
α
k
(
t
)
{\displaystyle \alpha _{k}(t)}
係數。其映射誤差定義為
e
ξ
(
t
)
=
∑
k
=
1
n
+
1
α
^
k
(
t
)
ξ
k
(
t
)
{\displaystyle e_{\xi }(t)=\sum \limits _{k=1}^{n+1}{\hat {\alpha }}_{k}(t)\xi _{k}(t)}
其中
e
ξ
(
t
)
∈
R
n
×
1
,
α
^
k
(
t
)
∈
R
{\displaystyle e_{\xi }(t)\in \mathbb {R} ^{n\times 1},{\hat {\alpha }}_{k}(t)\in \mathbb {R} }
。若係數
α
^
(
t
)
{\displaystyle {\hat {\alpha }}(t)}
等於
α
k
(
t
)
{\displaystyle \alpha _{k}(t)}
,映射誤差
e
ξ
(
t
)
=
0
{\displaystyle e_{\xi }(t)=0}
。因此可用上式來計算
x
^
{\displaystyle {\hat {x}}}
,因為流形的特形,可以減少峰值現象。所創建的映射提供估測過程中許多的彈性。甚至可以在第二層估計
x
(
t
)
{\displaystyle x(t)}
的值,以計算狀態
x
{\displaystyle x}
[ 4]
邊界觀測器(Bounding observers)[ 11] 或區間觀測器(Interval observers)[ 12] [ 13] 是一組特殊的觀測器,會同時提供一個狀態的二個估測值,分別是真實值的上限和下限。真實值會在上下限估測範圍內。
邊界範圍在實際應用上非常重要[ 14] [ 15] ,可以知道每一個估測的精準度。
在數學上,若適當的選擇
L
{\displaystyle L}
,可以用二種Luenberger觀測器來達到正向系統 特性[ 16] :一個是上限
x
^
U
(
k
)
{\displaystyle {\hat {x}}_{U}(k)}
(在沒有雜訊及不確定性 的情形下,確保在
k
→
∞
{\displaystyle k\rightarrow \infty }
時,
e
(
k
)
=
x
^
U
(
k
)
−
x
(
k
)
{\displaystyle e(k)={\hat {x}}_{U}(k)-x(k)}
在零以上收斂到零),另一個是下限
x
^
L
(
k
)
{\displaystyle {\hat {x}}_{L}(k)}
(確保在
k
→
∞
{\displaystyle k\rightarrow \infty }
時,
e
(
k
)
=
x
^
L
(
k
)
−
x
(
k
)
{\displaystyle e(k)={\hat {x}}_{L}(k)-x(k)}
在零以下收斂到零)。因此
x
^
U
(
k
)
≥
x
(
k
)
≥
x
^
L
(
k
)
{\displaystyle {\hat {x}}_{U}(k)\geq x(k)\geq {\hat {x}}_{L}(k)}
恆成立。
^ Khalil, H.K., Nonlinear Systems 3rd, Upper Saddle River, NJ: Prentice Hall, 2002 [2021-02-19 ] , ISBN 978-0-13-067389-3 , (原始内容存档 于2017-07-25)
^ Utkin, Vadim; Guldner, Jürgen; Shi, Jingxin, Sliding Mode Control in Electromechanical Systems, Philadelphia, PA: Taylor & Francis, Inc., 1999, ISBN 978-0-7484-0116-1
^ Drakunov, S.V., An adaptive quasioptimal filter with discontinuous parameters, Automation and Remote Control, 1983, 44 (9): 1167–1175
^ 4.0 4.1 4.2 Bernat, J.; Stepien, S., Multi modelling as new estimation schema for High Gain Observers, International Journal of Control, 2015, 88 (6): 1209–1222, Bibcode:2015IJC....88.1209B , S2CID 8599596 , doi:10.1080/00207179.2014.1000380
^ Krener, A.J.; Isidori, Alberto, Linearization by output injection and nonlinear observers, System and Control Letters, 1983, 3 : 47–52, doi:10.1016/0167-6911(83)90037-3
^ Krener, A.J.; Respondek, W., Nonlinear observers with linearizable error dynamics, SIAM Journal on Control and Optimization, 1985, 23 (2): 197–216, doi:10.1137/0323016
^ Gauthier, J.P.; Hammouri, H.; Othman, S., A simple observer for nonlinear systems applications to bioreactors, IEEE Transactions on Automatic Control, 1992, 37 (6): 875–880, doi:10.1109/9.256352
^ Hammouri, H.; Kinnaert, M., A New Procedure for Time-Varying Linearization up to Output Injection, System and Control Letters, 1996, 28 (3): 151–157, doi:10.1016/0167-6911(96)00022-9
^ Ciccarella, G.; Dalla Mora, M.; Germani, A., A Luenberger-like observer for nonlinear systems, International Journal of Control, 1993, 57 (3): 537–556, doi:10.1080/00207179308934406
^ Narendra, K.S.; Han, Z. A new approach to adaptive control using multiple models. International Journal of Adaptive Control and Signal Processing. August 2012, 26 (8): 778–799. ISSN 1099-1115 . doi:10.1002/acs.2269 .
^ 存档副本 (PDF) . [2021-02-19 ] . (原始内容存档 (PDF) 于2015-05-06).
^ 存档副本 (PDF) . [2021-02-19 ] . (原始内容存档 (PDF) 于2016-03-04).
^ 存档副本 . [2021-02-19 ] . (原始内容存档 于2020-03-19).
^ 存档副本 (PDF) . [2021-02-19 ] . (原始内容存档 (PDF) 于2020-05-18).
^ Hadj-Sadok, M.Z.; Gouzé, J.L. Estimation of uncertain models of activated sludge processes with interval observers. Journal of Process Control. 2001, 11 (3): 299–310. doi:10.1016/S0959-1524(99)00074-8 .
^ Ait Rami, M., Tadeo, F., Helmke, U. (2011),
"Positive observers for linear positive systems, and their implications",
International Journal of Control 84
Sontag, Eduardo, Mathematical Control Theory: Deterministic Finite Dimensional Systems. Second Edition, Springer, 1998, ISBN 0-387-98489-5