状态观测器

状态观测器（State observer）是控制理论中配合受控体的系统，在已知受控体架构的情形下，可以根据受控体的输入及输出而估测其内部的状态，是许多实务应用的基础。

许多的控制理论都会假设可以知道系统的状态，例如利用全状态回授来稳定线性系统的例子。不过许多系统都无法直接量测到实际的状态，只能用状态对输出的影响来间接估计状态。像隧道中的车辆就是一个例子。车辆在隧道中的速度不易直接量测，只可以用隧道中的实际状态来估计。假如系统可观测，可以从输出配合状态观测器来完全估测系统的状态。

## 典型的观测器模型

针对线性系统的状态观测器，最常用的是线性观测器、滑动模式观测器，也有在线性观测器中加入立方项的观测器。以下会说明线性观测器的结构。

### 离散系统

线性非时变离散系统的状态方程式如下：

$$x(k+1) = A x(k) + B u(k)$$

$$y(k) = C x(k) + D u(k)$$

在时间$k$时，$x(k)$是系统状态，$u(k)$是输入，$y(k)$是输出。状态方程式提到系统目前的输出以及未来的状态是由目前状态以及目前输入所决定。若系统有可观测性，可以用系统输出$y(k)$来调整状态观测器的状态。

受控体的观测器模型可以用上式来推导，也可以加入额外的项，确保观测器在持续收到系统的输入及输出时，其状态可以收敛到受控体的状态。可以将系统的输出减去观测器的输出，再乘以矩阵$L$，再加到状态观测器的方程式中，以产生如下式定义的伦伯杰（Luenberger）观测器。其中的状态观测器的变数会加上hat: $\hat{x}(k)$和 $\hat{y}(k)$，以区隔实际系统的变数。

$$\hat{x}(k+1) = A \hat{x}(k) + L \left[y(k) - \hat{y}(k)\right] + B u(k)$$

$$\hat{y}(k) = C \hat{x}(k) + D u(k)$$

观测器渐近收敛的条件是观测器误差$e(k) = \hat{x}(k) - x(k)$在$k \rightarrow \infty$时，可以收敛到0。此离散系统的伦伯杰观测器渐近收敛的条件是矩阵$A - LC$的特征值都在单位圆内。

因为控制的需求，观测器的输出除了作为观测器的输入，也会透过增益矩阵$K$，成为受控体的输入。

$$u(k)= -K \hat{x}(k)$$

观测器的方程式会变成：

$$\hat{x}(k+1) = A \hat{x}(k) + L \left(y(k) - \hat{y}(k)\right) - B K \hat{x}(k)$$

$$\hat{y}(k) = C \hat{x}(k) - D K \hat{x}(k)$$

或是

$$\hat{x}(k+1) = \left(A - B K \right) \hat{x}(k) + L \left(y(k) - \hat{y}(k)\right)$$

$$\hat{y}(k) = \left(C - D K\right) \hat{x}(k)$$

因为控制理论中的分离原理，可将估测器以及控制器分开设计, 因此可以选择$K$和$L$，以达到系统的整体稳定性。根据经验法则，会选择观测器$A-LC$ 的极点，使其比系统$A-BK$极点快十倍以上。

### 连续系统

连续系统中的观测器和离散系统中的类似。会选择观测器增益$L$使连续系统误差可以渐近收敛到0（当$A-LC$为赫维兹矩阵时会成立）

针对连续时间线性系统

$$\dot{x} = A x + B u,$$

$$y = C x + D u,$$

其中$x \in \mathbb{R}^n, u \in \mathbb{R}^m ,y \in \mathbb{R}^r$，观测器类似以上离散系统的例子：

$\dot{\hat{x}} = A \hat{x}+ B u + L \left(y - \hat{y}\right)$.

$$\hat{y} = C \hat{x} + D u,$$

观测器误差$e=x-\hat{x}$会满足下式

$\dot{e} = (A - LC) e$.

若$[A,C]$有可观测性，可以适当选择观测器增益$L$，以调整矩阵$A-LC$的特征值。另外，也可以使矩阵$A-LC$为赫维兹矩阵，让观测器误差$e(t)$可以渐近收敛到0。

### 峰值现象以及其他的观测器技术

若观测器增益$L$很高，线性的伦伯杰观测器会很快收敛，但大增益会造成峰值现象（peaking phenomenon），初始的观测器误差会非常大，在实际使用上不安全。因此，会用非线性高增益观测技术，可以快速收敛，又没有峰值现象。例如可以在观测器中使用滑动模式控制技术（滑动模式观测器），使观测器在有量测误差的情形下，在有限时间内使观测器状态误差变成零，其他有误差的状态，其行为会类似峰值减弱后的伦伯杰观测器。滑动模式观测器类似卡尔曼滤波，有较理想的抗噪声能力。

另一种作法是用多观测器（multi observer），可以显著的改善暂态，抑制观测器的过冲。多观测器可以适用在所有适用高增益的系统。

## 非线性系统的状态观测器

针对非线性系统，最常用的是高增益状态观测器、滑动模式观测器以及扩展观测器。

为了说明非线性系统中的状态观测器，先考虑以下的无输入非线性系统：

$$\dot{x} = f(x)$$

其中$x \in \mathbb{R}^n$，也假设有量测输出$y \in \mathbb{R}$如下

$$y = h(x).$$

有许多设计观测器的非近似式作法。以下提到的观测器也可以适用于有输入的系统

$$\dot{x} = f(x) + B(x) u,$$

$y = h(x),$ .

### 线性化误差动态系统

Krener和Isidori，以及Krener和Respondek有针对状态观测器的研究，若存在可线性化的转换（微分同胚，类似回授线性化）$z=\Phi(x)$，使新变数的系统方程如下

$$\dot{z} = A z+ \phi(y),$$

$$y = Cz.$$

伦伯杰观测器可以设计为

$\dot{\hat{z}} = A \hat{z}+ \phi(y) - L \left(C \hat{z}-y \right)$.

转换后变数$e=\hat{z}-z$的观测器误差可以满足同一个方程式

$\dot{e} = (A - LC) e$.

Gauthier、Hammouri和Othman and Hammouri and Kinnaert已证明，若存在变换$z=\Phi(x)$，使系统可以转换为以下的型式

$$\dot{z} = A(u(t)) z+ \phi(y,u(t) ),$$

$$y = Cz,$$

则观测器可以设计如下

$\dot{\hat{z}} = A(u(t)) \hat{z}+ \phi(y,u(t) ) - L(t) \left(C \hat{z}-y \right)$,

其中$L(t)$是时变的观测器增益。

Ciccarella、Dalla Mora和Germani有提供更进阶以及一般性的结果，只需要简单的规律性（regularity）假设，不需要非线性的转换，证明观测状态可以全域收敛到实际状态。

## 多观测器

多观测器（Multi observer）是高增益观测器的扩展，由一个观测器到多个观测器一起使用，可以让多个模型同时作用。多观测器会分为二层：一层包括了多个高增益观测器，有相关同一组状态旳不同的估测量，第二层决定第一层各估测量的权重。此算法很容易实现，其中也没有微分等有危险性的运算。多观测器的概念最早曾应用在适应控制中，用来取得资讯。

<image>

- Multi Observer Schema

假设高增益观测器有n+1个

$$\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))$$ $$\hat{y_k}(t) = C \hat{x_k}(t)$$

其中$k = 1...n + 1$是观测器的编号。第一层的观测器包括了相同的增益$L$，但其启始状态$x_k(0)$不同。在第二层中会将所有$x_k(t)$（$k = 1...n + 1$）观测器的结果合并为一个，以得到单一状态向量的估测值

$$\hat{y_k}(t) = \sum\limits_{k=1}^{n+1} \alpha_k(t) \hat{x_k}(t)$$

其中$\alpha_k \in \mathbb{R}$是加权因子。这些因子会改变，以提供第二层的估测用，并且提升观测器的效果。

假设

$$\sum\limits_{k=1}^{n+1} \alpha_k(t) \xi_k(t) = 0$$

且

$$\sum\limits_{k=1}^{n+1} \alpha_k(t) = 1$$

其中$\xi_k \in \mathbb{R}^{n \times 1}$是某向量，会和第$k$个估测器的误差$e_k(t)$有关。

经过转换，可以得到以下的线性回归问题

$$[- \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}$$

根据上式，有可能估算$\alpha_k (t)$。为了要建构流形，需要映射$m: \mathbb{R}^{n} \rightarrow \mathbb{R}^{n}$在$\xi_k (t) = m(e_k(t))$之间，并且保证可以用可量测的讯号来计算$\xi_k (t)$。

首先要从观测器误差中消除$\alpha_k(t)$的峰值现象

$e_{\sigma}(t) = \sum\limits_{k=1}^{n+1} \alpha_k(t) e_k(t)$.

将$\eta_k(t)=\hat y_k (t) - y(t)$针算$n$的微分,可以找到以下的值$\xi_k(t)$

$$\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-t_d} {{n-1} \atop \cdots} \int\limits^t_{t-t_d} \eta_k(\tau) d\tau\\ \vdots \\ \eta(t) - \eta(t-(n-1)t_d) \end{bmatrix}$$

其中$t_d > 0$是某时间常数。$\xi_k(t)$和$\eta_k(t)$和其积分有关，因此可以应用在控制系统上。

而且$\alpha_k(t)$是在估测律中指定，因此此流形可以量测。第二层$\hat\alpha_k(t)$，其中$k = 1 \dots n + 1$是用来估测$\alpha_k(t)$系数。其映射误差定义为

$$e_\xi(t) = \sum\limits_{k=1}^{n+1} \hat\alpha_k(t) \xi_k(t)$$

其中$e_\xi(t) \in \mathbb{R}^{n \times 1}, \hat\alpha_k(t) \in \mathbb{R}$。若系数$\hat\alpha(t)$等于$\alpha_k(t)$，映射误差$e_\xi(t) = 0$。因此可用上式来计算$\hat x$，因为流形的特形，可以减少峰值现象。所创建的映射提供估测过程中许多的弹性。甚至可以在第二层估计$x(t)$的值，以计算状态$x$

## 边界观测器

边界观测器（Bounding observers）或区间观测器（Interval observers）是一组特殊的观测器，会同时提供一个状态的二个估测值，分别是真实值的上限和下限。真实值会在上下限估测范围内。

边界范围在实际应用上非常重要，可以知道每一个估测的精准度。

在数学上，若适当的选择$L$，可以用二种伦伯杰观测器来达到正向系统特性：一个是上限$\hat{x}_U(k)$（在没有噪声及不确定性的情形下，确保在$k \rightarrow \infty$时，$e(k) = \hat{x}_U(k) - x(k)$在零以上收敛到零），另一个是下限$\hat{x}_L(k)$（确保在$k \rightarrow \infty$时，$e(k) = \hat{x}_L(k) - x(k)$在零以下收敛到零）。因此$\hat{x}_U(k) \ge x(k) \ge \hat{x}_L(k)$恒成立。