Luenberger Observer线性观测器设计

观测器

1.观测器设计动机

  对于一个系统 x ˙ = A x + B u \dot{x} = Ax + Bu x˙=Ax+Bu  设计状态反馈 u = − k x u = -kx u=kx  通过设计 k k k可以保证系统的稳定性,但是前提是系统的状态 x x x可测。当系统的状态不可测的时候,就要设计观测器来观测系统的状态。
  观测器:根据系统的输入输出来估计系统的状态。

2.Luenberger Observer线性观测器

  对于一个控制系统 x ˙ = A x + B u y = C x + D u \dot{x} = Ax + Bu \\ y = Cx + Du x˙=Ax+Buy=Cx+Du   x ^ \hat{x} x^为系统的状态估计值, y ^ \hat{y} y^为系统的输出估计值,Luenberger观测器的形式为 x ^ ˙ = A x ^ + B u + L ( y − y ^ ) y = C x ^ + D u \dot{\hat{x}} = A\hat{x} + Bu + L(y - \hat{y}) \\y = C\hat{x} + Du x^˙=Ax^+Bu+L(yy^)y=Cx^+Du  对上式进行变形 x ^ ˙ = A x ^ + B u + L y − L C x ^ − L D u = ( A − L C ) x ^ + L y + ( B − L D ) u = ( A − L C ) x ^ + L C x + B u \begin{aligned} \dot{\hat{x}} &= A\hat{x} + Bu + Ly - LC\hat{x} -LDu \\ &= (A - LC)\hat{x} + Ly + (B - LD)u \\ &= (A - LC)\hat{x} + LCx +Bu \end{aligned} x^˙=Ax^+Bu+LyLCx^LDu=(ALC)x^+Ly+(BLD)u=(ALC)x^+LCx+Bu  令 e ˙ = x ˙ − x ^ ˙ \dot{e} = \dot{x} - \dot{\hat{x}} e˙=x˙x^˙ e ˙ = A x − ( A − L C ) x ^ − L C x = ( A − L C ) ( x − x ^ ) = ( A − L C ) e \begin{aligned}\dot{e} &= Ax -(A - LC)\hat{x} - LCx \\ &= (A - LC)(x - \hat{x}) \\&=(A-LC)e \end{aligned} e˙=Ax(ALC)x^LCx=(ALC)(xx^)=(ALC)e  通过合理的配置 L L L使得观测的误差 e e e趋近于0。

3.Example

  对于一个弹簧阻尼系统,状态量 z 1 = x z_1 = x z1=x表示位置,是可测的, z 2 = x ˙ z_2 = \dot{x} z2=x˙表示速度,不可观测,输出 y = z 1 y = z_1 y=z1可测。系统的状态方程可以表示为 [ z ˙ 1 z ˙ 2 ] = [ 0 1 − k m − B m ] [ z 1 z 2 ] + [ 0 1 m ] u y = [ 1 0 ] [ z 1 z 2 ] \left[ \begin{matrix} \dot{z}_1 \\ \dot{z}_2\end{matrix} \right] = \left[ \begin{matrix} 0 & 1 \\ -\frac{k}{m} & -\frac{B}{m} \end{matrix} \right]\left[ \begin{matrix} z_1 \\ z_2\end{matrix} \right] + \left[ \begin{matrix} 0 \\ \frac{1}{m} \end{matrix} \right]u \\ y = \left[ \begin{matrix} 1 & 0 \end{matrix} \right] \left[ \begin{matrix} z_1 \\ z_2 \end{matrix} \right] [z˙1z˙2]=[0mk1mB][z1z2]+[0m1]uy=[10][z1z2]  令 m = 1 , B = 0.5 , k = 1 m = 1,B = 0.5,k = 1 m=1,B=0.5,k=1得到系统的状态空间方程。 [ z ˙ 1 z ˙ 2 ] = [ 0 1 − 1 − 1 2 ] [ z 1 z 2 ] + [ 0 1 ] u y = [ 1 0 ] [ z 1 z 2 ] \left[ \begin{matrix} \dot{z}_1 \\ \dot{z}_2\end{matrix} \right] = \left[ \begin{matrix} 0 & 1 \\ -1 & -\frac{1}{2} \end{matrix} \right]\left[ \begin{matrix} z_1 \\ z_2\end{matrix} \right] + \left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]u \\ y = \left[ \begin{matrix} 1 & 0 \end{matrix} \right] \left[ \begin{matrix} z_1 \\ z_2 \end{matrix} \right] [z˙1z˙2]=[01121][z1z2]+[01]uy=[10][z1z2]   令 L = [ l 1 l 2 ] L = \left [ \begin{matrix} l_1 \\ l_2\end{matrix}\right] L=[l1l2] A − L C A-LC ALC可以表示为: A − L C = [ − l 1 1 − 1 − l 2 − 1 2 ] A-LC = \left[ \begin{matrix} -l_1 & 1 \\ -1-l_2 & -\frac{1}{2} \end{matrix} \right] ALC=[l11l2121]  如果想让系统趋近于零,则系统的特征值为负,假定系统的特征值 λ 1 = − 1 , λ 2 = − 1 \lambda_1 = -1,\lambda_2 = -1 λ1=1,λ2=1求得 L L L矩阵 L = [ 1.5 − 0.75 ] L = \left[ \begin{matrix} 1.5 \\ -0.75 \end{matrix}\right] L=[1.50.75],设计的观测器为 z ^ ˙ = [ − 1.5 1 − 0.25 − 0.5 ] z ^ + [ 0 1 ] u + [ 1.5 − 0.75 ] y \dot{\hat{z}} = \left[\begin{matrix} -1.5&1\\-0.25&-0.5\end{matrix}\right] \hat{z} + \left[ \begin{matrix} 0\\1 \end{matrix}\right]u + \left[ \begin{matrix} 1.5\\-0.75 \end{matrix}\right]y z^˙=[1.50.2510.5]z^+[01]u+[1.50.75]y   在simulink中搭建仿真模型。
模型搭建
  为了更好的展示估计效果,估计值初始设定为1,实际的值是0,结果如下:
估计效果
  参考B站:DR_CAN

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值