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

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

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

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

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

Kalman滤波学习笔记一《绪论:最优估计》_第1张图片
Kalman滤波学习笔记一《绪论:最优估计》_第2张图片

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

你可能感兴趣的:(Kalman滤波学习笔记一《绪论:最优估计》)