BMP180气压传感器波动过大的解决方案

news/2024/10/30 17:26:19/

BMP180由于其价格原因,静止状态气压数值波动挺大的,就是用最高精度误差也是不小。针对这个误差大的问题,我一直倾向于使用数学方式来进行补偿。
个人的解决方案如下:

使用一阶卡尔曼滤波来对得到的数据进行滤波,以尽可能的排除误差,提高精度

网络上的一阶卡尔曼滤波很多的,我选用的是单函数版本的(忘了是哪里看到的了……效果很不错,如果原作者看到了请记得联系我,我会添上引用与来源),可以使其静止精度基本上可以达到ms5611原始水平,气压的值可在0.01mbar稳定。
使用的卡尔曼滤波代码如下:

double KalmanFilter(const double ResrcData,double ProcessNiose_Q,double MeasureNoise_R)
{static double x_last;static double p_last;double R = MeasureNoise_R;double Q = ProcessNiose_Q;double x_mid = x_last;double x_now;double p_mid ;double p_now;double kg;   x_mid=x_last; //x_last=x(k-1|k-1),x_mid=x(k|k-1)p_mid=p_last+Q; //p_mid=p(k|k-1),p_last=p(k-1|k-1),Q=噪声kg=p_mid/(p_mid+R); //kg为kalman filter,R为噪声x_now=x_mid+kg*(ResrcData-x_mid);//估计出的最优值p_now=(1-kg)*p_mid;//最优值对应的covariance      p_last = p_now; //更新covariance值x_last = x_now; //更新系统状态值return x_now;               
}

参数我选择的是10,300,数据更新速度20hz,没经过特别的选参,但随意的选参就能达到很好的效果我觉得这个很有调试的价值,但经过滤波后其实时性会受到影响,所以并不是十分适合运用在需要快速得到当前气压的情况(如四轴,个人意见,更新速度足够快我认为也不是不行,但效果肯定没MS5611再加上滤波效果好了)


http://www.ppmy.cn/news/155017.html

相关文章

EQ均衡器中的G 、Q、FC与截止频率知识

最近在一个项目中,与客户的声学工程师关于EQ频响测试有过疑问,也顺便复习了一下关于EQ调试过程中一些参数的意义。 起因如下,一般在TV产品中,声学会调试两组PEQ参数应对不同的场景,桌面模式和壁挂模式,顾名…

RK3326 android10.0(Q) 横屏方案修改

开机logo横屏 U-boot logo 显示的两张图片是 kernel 根目录下的 logo.bmp 和 logo_kernel.bmp,如果 需要更换,用同名的**横屏 bmp **替换掉,重新编译 kernel 附:不一定要两张图片,可以只要一张,如果只有一…

【强化学习】噪声深度Q网络(Noisy DQN)求解倒立摆问题 + Pytorch代码实战

文章目录 一、倒立摆问题介绍二、噪声深度Q网络简介三、详细资料四、Python代码实战4.1 运行前配置4.2 主要代码4.3 运行结果展示4.4 关于可视化的设置 一、倒立摆问题介绍 Agent 必须在两个动作之间做出决定 - 向左或向右移动推车 - 以使连接到它的杆保持直立。 二、噪声深…

I \ Q信号、IFI \ IFQ信号、差分信号、单端信号知识总结

1. IQ信号: (1)IQ信号即同相正交信号,I为in-phase,Q为quadrature,与I的相位相差了90度。 (2)因为信号在传输的时候需要的是单一信道、单一频率,因此在最早的通讯技术中…

CARLA平台+Q-learning的尝试(gym-carla)

接触强化学习大概有半年了,也了解了一些算法,一些简单的算法在gym框架也实现了,那么结合仿真平台Carla该怎么用呢?由于比较熟悉gym框架,就偷个懒先从这个开始写代码。 项目地址:https://github.com/cjy1992…

关于Q格式

2010-12-03 22:36 【转】DSP的Q格式讲解 在应用DSP时,其实硬件一般都问题不大,主要的是软件,是算法!下面的关于DSP运算的精华但愿有些价值! 一 DSP定点算数运算 1 数的定标 在定点D…

【强化学习】深度Q网络(DQN)求解倒立摆问题 + Pytorch代码实战

文章目录 一、倒立摆问题介绍二、深度Q网络简介三、详细资料四、Python代码实战4.1 运行前配置4.2 主要代码4.3 运行结果展示4.4 关于可视化的设置 一、倒立摆问题介绍 Agent 必须在两个动作之间做出决定 - 向左或向右移动推车 - 以使连接到它的杆保持直立。 二、深度Q网络简…

【强化学习】竞争深度Q网络(Dueling DQN)求解倒立摆问题 + Pytorch代码实战

文章目录 一、倒立摆问题介绍二、竞争深度Q网络简介三、详细资料四、Python代码实战4.1 运行前配置4.2 主要代码4.3 运行结果展示4.4 关于可视化的设置 一、倒立摆问题介绍 Agent 必须在两个动作之间做出决定 - 向左或向右移动推车 - 以使连接到它的杆保持直立。 二、竞争深…