Kalman滤波学习笔记一《绪论》
Kalman滤波学习笔记一《绪论》
学习笔记参考:《Kalman滤波基础及MATLAB仿真》北京航空航天大学出版社——王可东编著
1、任何传感器都存在确定性和随机测量误差;
2、两种获取物体状态的方法:积分推算法和直接测量法,前者的误差随工作时间发散;
3、误差分为确定性误差和随机误差,前者可以完全补偿,后者不可以,且只能从统计意义上认识;
4、估计的定义:基于测量结果,按照状态与其测量值之间的内在关系,确定状态统计量的过程;
5、估计的分类:预测、滤波和平滑;预测的精度最低,平滑的精度最高,滤波的精度介于两者之间;
6、预测:利用从初始时刻到当前时刻的所有测量结果,对未来某一时刻的状态进行估计的过程;
7、滤波:利用从初始时刻到当前时刻的所有测量结果,对当前时刻的状态进行估计的过程;
8、平滑:利用从初始时刻到当前时刻的所有测量结果,对过往某一时刻的状态进行估计的过程;
9、最优估计的定义:基于对状态的多个测量结果,按照某种最优准则,实现对状态的估计;
10、一个小例子:设对某一常量 进行两次独立无偏测量,试基于这两次测量结果给出对常量 的线性、无偏和最小方差的估计结果:
解:设两次测量值 分别为: 式中, 分别为两次测量的误差。由于两次测量都是无偏的,即 ,又 为常量,故 ,可得 ;同时,设: 又因为两次测量是独立的,即两次测量误差之间是不相关的,故有 。设 的估计值 ,按照线性假设,有: 式中, 为待定的线性加权系数。估计偏差为 ,基于无偏估计要求,有: 可得: 再考虑到估计偏差的方差最小,有: 上式通过对 求导可知最小均方估计误差为:
可以看到分配给测量精度高的值更大的权重,这也是符合常理的;
11、最优估计的一般过程:
①基于事物自身的某种规律,建立状态随时间的变化关系,称为“系统建模”;
②建立测量值与状态之间的变化关系,称为“量测建模”;
③对误差进行建模,其中包括系统误差和测量误差;
④基于某种最优准则构建最优估计算法;
12、小例子的MATLAB实现:设一辆汽车在一条公路上匀速直线行驶,速度为 。车上安装了BDS接收机,其测速误差是均值为 、标准差为 的高斯噪声;同时,车载测速仪的测速误差为均值为 、标准差为 的高斯噪声。试利用这两个车速测量结果,针对车速,设计一线性、无偏和估计偏差方差最小的估计算法,并画出其在 之内的速度估计偏差。
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)')
上一篇: 自动驾驶carla模拟器坐标系转换为icv坐标系[完整版源码]
下一篇: 线性查找算法