卡尔曼滤波
一、滤波效果展示
蓝色的波形是实际测得的数据,红色的波形是经 Kalman 滤波后的数据波形。
注:这里是实际应用激光测距传感器(TOF)vl53l0x 测得的距离数据。
二、简介
采用递归的方法解决线性滤波问题,只需要当前的测量值和前一个采样周期的估计值就能进行状态估计,需要的存储空间小,每一步的计算量小。
三、组成
1. 预测状态方程
(1)目的:
由 系统状态变量k-1时刻的最优值 和 系统输入 计算出k时刻的 系统预测值。
(2)方程:
(3)备注
①. X k-1|k-1 为k-1时刻的输出。
②. 当X为一维数据时,Fk的值是1。
③. 一维数据下(uk=0时):系统预测值 = 系统状态变量k-1时刻的最优值。
2. 预测协方差方程
(1)目的
根据 k-1时刻的系统协方差 预测 k时刻系统协方差。
(2)方程
(3)备注
①. 当X为一维数据时,Fk的值是1。
3. 卡尔曼增益方程
(1)目的
根据(k时刻) 协方差矩阵的预测值 计算 卡尔曼增益。
(2)方程
(3)备注
①. 当 Pk|k-1 为一个一维矩阵时,Hk 是1。
4. 跟新最优值方程(卡尔曼滤波的输出)
(1)目的
根据 状态变量的预测值 和 系统测量值 计算出 k时刻状态变量的最优值。
(2)方程
(3)备注
①. 当 Pk|k-1 为一个一维矩阵时,Hk 是1。
5. 更新协方差方程
(1)目的
为了求 k时刻的协方差矩阵。(为得到k+1时刻的卡尔曼输出值做准备)
(2)方程
(3)备注
①. 当 Pk|k-1 为一个一维矩阵时,Hk 是1。
四、C 程序代码实现
1. 参数列表
2. 代码实现(一维数据滤波)
实际参数是参照别人已经选好的参数,不过也可以自己改变参数,去观察波形的效果,体会每个参数对于滤波效果的影响,这里不详细介绍。
1 | //1. 结构体类型定义 |
五、发送波形到上位机显示
这里使用的是匿名的上位机 V65 版本,具体如何使用可以参考茶大的博客,并且茶大博客里面有上位机的下载地址。茶大博客地址:https://blog.csdn.net/wangjt1988/article/details/83684188
注:文章方程截图及参数来源于中科浩电。


把孤独当作晚餐
范茹
00:00
00:00
本文为作者原创文章,未经作者允许不得转载。