在控制器设计中,U 是根据系统状态确定的,但实际系统中,某个状态可能是不可测的。于是我们需要通过根据系统的输入和输出来估算某个状态的值。这就是系统的观测器。
Luenberger Observer
实际系统的状态空间方程为:
X˙=AX+BUY=CX+DU(1)
假设X^ 为状态的估计值,Y^ 为输出的估计值,则有:
X^˙=AX^+BU+L(Y−Y^)Y^=CX^+DU(2)
我们需要寻找合适的矩阵L,使得估计值趋近于实际值。
首先整合式(2),得:
X^˙=(A−LC)X^+(B−LD)U+LY(3)
然后整合式(1),(3) 得:
X˙−X^˙=(A−LC)(X−X^)(4)
令误差Ex=X−X^,则有:
Ex˙=(A−LC)Ex(5)
要使误差Ex→0,则A−LC 的特征值应小于0。
从另一个角度理解,建立观测器相当于建立了一个新的反馈系统,使得误差趋近于0。
而L(Y−Y^) 就相当于把实际输出和估计输出的误差反馈给了状态的估计值。
可观测性
假设矩阵O=⎣⎢⎢⎢⎢⎡CCA⋮CAn−1⎦⎥⎥⎥⎥⎤,若Rank(O)=n,则系统是可观测的。具体推导过程参考系统的可控性。
分离原理
假设系统如式(1) 所示,且满足可控可观的条件,但是无法通过直接手段测量系统状态。那么:
- 我们可以设计观测器X^ 去估算系统状态
- 然后根据观测结果,设计控制器U=−KX^
- 令E=X−X^将状态反馈U 带入式(1) 可得:
X˙=AX−BKX^=(A−BK)X+BKE(6)
合并式(5),(6),可得:
[Ex˙X˙]=[A−LCBK0A−BK][ExX]=M[ExX](7)
而我们的目标就是让Ex,X 都趋近于0,即令矩阵M 的特征值有负实部。因为矩阵M 是三角矩阵,所以其特征值也是其主对角元素的特征值。
需要注意的是:
- 观测器的收敛速度应大于控制器的收敛速度
- 观测器可以是纯软件实现,可以简化控制系统的硬件设计
至此,现代控制理论的基本概念就已经全部涉及到了,之后可以再去看书或者实践一些练手项目了。