中北大学2011届毕业设计说明书
5 最优观测器的MATLAB实现
系统的Kalman滤波器就是最优观测器。对于带有系统噪声与量测噪声的实际系统,抑制或滤掉噪声对系统的干扰及影响,对系统的状态做出充分精确的估计。利用Kalman滤波器对系统进行最优控制是非常有效的。 5.1 连续时不变系统的Kalman滤波
给定系统的状态方程与量测方程分别为:
x?(t)?Ax(t)?Bu(t)?Gw(t) (5-1) y(t)?Cx(t)?Du(t)?Hw(t)?v(t) (5-2) 式中,x(k)为n维状态向量;u(k)为p维控制向量,y(t)为q维量测向量; A为n?n维非奇异矩阵,B为n?p维矩阵,G为n?p维常数矩阵,D为q?p维常数矩阵;
H为q?p维常数矩阵;假定w(t)为随机噪声干扰输入,它是零均值的p维白噪声过程;
假定为随机量测噪声,是零均值的q维白噪声过程。w(t)与v(t)两噪声过程均平稳且互不相关。即有:
E{w(t)}?0,对一切t?t0;E{v(t)}?0,对一切t?t0;E{w(t)w(?)?Q0?(t??),对一切t,??t0.T
此式中的Q0为常数矩阵(叫做模型噪声的协方差矩阵)。
E{w(t)w(?)?Q0?(t??),对一切t,??tT。
此式中的R0为常数矩阵(叫做量测噪声的协方差矩阵)。 E{w(t)wT(?)?0,对一切t,??t0
?(t)与~x(t)分别为状态向量估计值与状态向量的估计误差值,令xx(t)为状态向量的理
论值,则有:
~x(t)?x(t)?~x(t) (5-3) 除上述假设外,还假定{C,A}是完全可观测的。在这些假定均成立的条件下,使估计误差平方和的期望值最小(最小方差迹准则滤波估计)既有:
第23页 共39页
中北大学2011届毕业设计说明书
?T??J?E??x?t?x?t???min (5-4)
其最优估计器为:
???t??Ax??t??Bu?t??L???t????t??Bu?t??Ly?t? (5-5) x?y?t??Cx???A?LC?x式中
L?P0CR0T?1 (5-6)
其中P0为以下Riccati方程的解:
AP0?P0AT?GQ0GT?P0CTR0?1CP0?0 (5-7) 可以证明:Riccati方程的解P0就是估计误差的协方差,而此协方差的迹(trP0)即为误差方差。如是有:
??t?x?T?t???E?x?Tx??t?? (5-8) trP0?trE?x????5.2 Kalman滤波的MATLAB实现
在MATLAB的工具箱里提供了kalman??函数来求解系统的kalman滤波器,函数的调用格式为:
?Kest,L,P??Kalman?sys,Q,R,N?
?,C,D??,当模型有其中,输入参量sys为连续或离散系统带扰动的状态空间模型?A,B???BG?, D???DH?;Q为模型噪声的协方差矩阵;R为量测噪声的协方两个时,B差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项。输出参量Kest为Kalman滤波器的状态估计器,其状态方程如下:
????A?LC?x??t???B?LD?u?t??Ly?t? (5-9) x ?L??t???C??y??t??????x??t???E??x?D???u?t? (5-10) ?0?为Kalman滤波器的增益矩阵:P为对应的Riccati方程的解,即估计误差的协方差。 在MATLAB老版本的工具箱里,还提供了两个配合使用的函数lqe??与estim??来求
解系统的Kalman滤波器。函数lqe??的调用格式为:
第24页 共39页
中北大学2011届毕业设计说明书
?L,P,E??lqe?A,G,C,Q,R,N?
其中,输入参量A,G,C为系统式(18-46)与(18-47)中的对应参量;Q为模型噪声的协方差矩阵;R为量测噪声的协方差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项;输出参量L为Kalman滤波器的增益矩阵;P为对应的Riccati方程的解,即估计误差的协方差;E为估计器的闭环特征值。
函数estim??的调用格式为:
est?estim?sys,L?
这个函数用来生成连续系统的Kalman滤波器,即系统的状态估计器est。输入参量
sys为连续系统带扰动的状态空间模型,输入参量L为函数leq??求出的Kalman滤波器
的增益矩阵。
对于连续系统,用函数kalman??计算的Kalman滤波器的状态估计器kest与用函数
estim??求出的Kalman滤波器est,两者应相等。请看以下示例。
5.3 Kalman滤波的MATLAB实现示例
例【5-1】:已知单位负反馈连续系统的受控对象与校正装置的传递函数分别为: G0?s??1s2 ,Gc?s??18?s?1?s?10
试设计一个GUI界面,实现如下要求:
(1) 点击按钮“Kalman增益矩阵L”时,在列表框中显示系统Kalman滤波器的增益
矩阵L;
(2) 点击“系统估计误差的协方差P”按钮时,列表框中显示系统估计误差的协方差
P;
(3) 点击“Kalman最优滤波器”按钮时,列表框中显示系统Kalman(最优)滤波器
(a,b,c,d)。
解:
第一步:启动GUI工具箱以后,布置如图5.1所示的界面:
下述界面包含一个静态文本框控件、一个可编辑文本框、一个按钮组控件、三个按钮控件、一个列表框控件。
第25页 共39页
中北大学2011届毕业设计说明书
图5.1 Kalman最优滤波器GUI基本界面
第二步:对各控件进行属性设置,属性设置与例3.1类同,设置完成后得到图5.2界面。
图5.2 Kalman最优滤波器控制界面
第26页 共39页
中北大学2011届毕业设计说明书
第三步:界面的激活与回调函数的设计(见附录2)。其中激活界面如图5.3
图5.3 Kalman最优控制的激活界面
第四步:运行。输入以知矩阵,点击界面按钮“Kalman增益矩阵L”后显示如5.4界面
图5.4 Kalman滤波器的增益矩阵L
第27页 共39页