Kalman滤波学习笔记一《绪论:最优估计》

牧云@^-^@ 提交于 2020-01-12 03:53:47

Kalman滤波学习笔记一《绪论:最优估计》

学习笔记参考:《Kalman滤波基础及MATLAB仿真》北京航空航天大学出版社——王可东编著

1、任何传感器都存在确定性随机测量误差
2、两种获取物体状态的方法:积分推算法直接测量法,前者的误差随工作时间发散
3、误差分为确定性误差随机误差,前者可以完全补偿,后者不可以,且只能从统计意义上认识;
4、估计的定义:基于测量结果,按照状态与其测量值之间的内在关系,确定状态统计量的过程;
5、估计的分类:预测滤波平滑;预测的精度最低,平滑的精度最高,滤波的精度介于两者之间
6、预测:利用从初始时刻到当前时刻的所有测量结果,对未来某一时刻的状态进行估计的过程;
7、滤波:利用从初始时刻到当前时刻的所有测量结果,对当前时刻的状态进行估计的过程;
8、平滑:利用从初始时刻到当前时刻的所有测量结果,对过往某一时刻的状态进行估计的过程;
9、最优估计的定义:基于对状态的多个测量结果,按照某种最优准则,实现对状态的估计;
10、一个小例子:设对某一常量 xx 进行两次独立无偏测量,试基于这两次测量结果给出对常量 xx 的线性、无偏和最小方差的估计结果:
    解:设两次测量值 z1,z2z_1,z_2 分别为:{z1=x+v1z2=x+v2\begin{cases} z_1 = x + v_1\\ z_2 = x + v_2 \end{cases}         式中,v1,v2v_1,v_2 分别为两次测量的误差。由于两次测量都是无偏的,即 E(z1)=E(z2)=E(x)E(z_1) = E(z_2) = E(x),又 xx 为常量,故 E(x)=xE(x) = x,可得         E(v1)=E(v2)=0E(v_1) = E(v_2) = 0;同时,设:{E(v12)=σ12E(v22)=σ22\begin{cases} E(v_1^{2}) = \sigma_1^{2}\\ E(v_2^{2}) = \sigma_2^{2} \end{cases}        又因为两次测量是独立的,即两次测量误差之间是不相关的,故有 E(v1v2)=0E(v_1v_2) = 0。设 xx 的估计值 x^\hat{x},按照线性假设,有:x^=k1z1+k2z2\hat{x} = k_1z_1 + k_2z_2        式中,k1,k2k_1,k_2 为待定的线性加权系数。估计偏差为 x~=x^x\tilde{x} = \hat{x} - x,基于无偏估计要求,有:E[x~]=E[k1(x+v1)+k2(x+v2)x]=(k1+k21)E(x)=(k1+k21)x=0E\lbrack \tilde{x} \rbrack = E\lbrack k_1(x+v_1)+k_2(x+v_2)-x \rbrack = (k_1+k_2-1)E(x)=(k_1+k_2-1)x=0        可得:k1+k21=0k_1 + k_2-1=0        再考虑到估计偏差的方差最小,有:E[x~2]=k12σ12+(1k1)2σ22E\lbrack \tilde{x}^{2} \rbrack = k_1^{2}\sigma_1^{2}+(1-k_1)^{2}\sigma_2^{2}        上式通过对 k1k_1 求导可知最小均方估计误差为:E(x~2)min=(1σ12+1σ22)1E(\tilde{x}^{2})_{min} = (\frac {1} {\sigma_1^{2}}+\frac {1} {\sigma_2^{2}})^{-1} x~=(σ22σ12+σ22)z1+(σ12σ12+σ22)z2\tilde{x} = (\frac {\sigma_2^{2}} {\sigma_1^{2}+\sigma_2^{2}})z_1+(\frac {\sigma_1^{2}} {\sigma_1^{2}+\sigma_2^{2}})z_2

        可以看到分配给测量精度高的值更大的权重,这也是符合常理的;
11、最优估计的一般过程:
       ①基于事物自身的某种规律,建立状态随时间的变化关系,称为“系统建模”;
       ②建立测量值与状态之间的变化关系,称为“量测建模”;
       ③对误差进行建模,其中包括系统误差测量误差
       ④基于某种最优准则构建最优估计算法
12、小例子的MATLAB实现:设一辆汽车在一条公路上匀速直线行驶,速度为 30m/s30m/s。车上安装了BDS接收机,其测速误差是均值为 00、标准差为 0.1m/s0.1m/s 的高斯噪声;同时,车载测速仪的测速误差为均值为 00、标准差为 0.5m/s0.5m/s 的高斯噪声。试利用这两个车速测量结果,针对车速,设计一线性、无偏和估计偏差方差最小的估计算法,并画出其在 100s100s 之内的速度估计偏差。

MATLAB代码如下

clear all; close all;
N = 100;    %运行时间
x = 30 * ones(N,1);    %被估计对象
sigma1 = 0.1; sigma2 = 0.5;    %噪声方差
v1 = sigma1 * randn(N,1); v2 = sigma2 * randn(N,1);    %模拟正态分布的白噪声
z1 = x + v1; z2 = x + v2;    %发生测量值
w1 = sigma1^2/(sigma1^2 + sigma2^2);
w2 = sigma2^2/(sigma1^2 + sigma2^2);
x_est = w1 * z2 + w2 * z1;
figure(1)
plot(1:N,x_est,'k*-',1:N,x,'k',1:N,z1,'ks-',1:N, z2,'ko-');
legend('估计值','真值','测量值1','测量值2');
xlabel('时间(s)');ylabel('速度(m/s)')
figure(2)
plot(1:N,x_est-x,'k*-',1:N,v1,'k',1:N,v2,'ko-');
legend('估计误差','测量误差1','测量误差2')
xlabel('时间(s)');ylabel('速度误差(m/s)')

课后习题
1、设对某一常量 xx 进行三次独立无偏测量,试基于这三次测量结果给出对常量 xx 的线性、无偏、最小方差估计结果。
2、某溶液中物质浓度以指数方式随时间降低。t1,t2t_1,t_2 时刻溶液浓度的带干扰量测方程为:zi=x0eti+vi(i=1,2)z_i=x_0e^{-t_i}+v_i(i=1,2)      其中,viv_i 均值为零,方差为 σi2\sigma_i^{2} 。求初始浓度 x0x_0 的无偏最小方差估计及对应的估计方差。
3、在笔记第10条的例子中,若 E(v1v2)=ρσ1σ2E(v_1v_2)=\rho\sigma_1\sigma_2 ,其它对应条件相同,求最优估计。
4、将笔记第10条的例子推广至 nn 次测量的情况,基本假设相同。
参考答案如下:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!