打印

卡尔曼滤波在解决气体传感器报警阀值点不稳定的应用

[复制链接]
675|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 会笑的星星 于 2020-4-3 10:22 编辑

在设计气感传感器时,由于受到成本限制,我们有时只能牺牲性能,选择一款相对便宜的传感器。但是便宜的传感器一个问题就是不够稳定,容易受到一些因素的影响导致报警阀值点不稳定,也就是说哪怕环境的气体浓度不变,传感器的输出值会因为某些原因出现不稳定现象,导致气体传感器一时提早报警一时又可能延后报警。要解决这个问题,卡尔曼滤波或许是一种解决方案,下面分析一下为什么卡尔曼滤波可能可以解决这个问题。

之前我在一篇**(卡尔曼滤波在检测气体浓度中的应用)中说过,卡尔曼滤波器的作用在于根据传感器的输出值计算出一个估计值,然后把这个估计值做为真实值。卡尔曼滤波器的方程由两部分构成,一个是预估值计算,另一个是利用传感器的输出修正预估值,并把这个修正后的预估值做为真实值,如下两个方程所示。


预估值方程组。其中方程1等式左边就是预估值,方程2中Q表示预估值方差(衡量预估值的波动性)。


预估值修正方程组。其中方程1中的R表示传感器方差(衡量传感器输出的波动性),方程2等式左边是经过传感器输出(yk)修正的估计值。

上述两个方程组的其他参数含义在“卡尔曼滤波在检测气体浓度中的应用”这篇**中提过,这里不再详述,有兴趣的读者需要看一下那篇**(见文末链接)。

为了简单起见,让上述方程中的系数A、B、C 全部取1,从而两个方程组简化为如下所示。

预估值方程组

预估值修正方程组

从预估值修正方程组的方程2看出,当传感器方差R很大时,卡尔曼增益Kr ≈ 0,此时,该方程组方程2的预估值修正结果^xk 完全取决于预测值。这也符合我们的常识,如果传感器越不稳定,那么他的方差肯定越大,他的结果就越不可靠,此时我们更相信自己的预测值。

同理,当R≈0时(传感器非常稳定),卡尔曼增益Kr 1,此时^xk = yk,。这意味着当传感器很稳定,那么卡尔曼滤波器的预测结果更偏向于传感器的值。这同样符合我们的常识。

综上可以看出,卡尔曼滤波器有一个天然属性,那就是哪个可靠就更相信哪个。如果传感器更可靠(R < Q),那么就更相信传感器,如果预测值更可靠(Q < R),那么就更相信预测值。根据这个原理,如果我们使用的气体传感器报警阀值点常常有较大的波动性,我们就可以考虑使用卡尔曼滤波器,因为卡尔曼滤波器的输出结果(^xk)在这种情况下将更偏向于以预测值为主。这造成的结果就是即使气体传感器的输出结果波动性较大,但是卡尔曼滤波器的输出结果(^xk)却不会受到很大影响,从而减轻因为传感器的不稳定导致报警阀值点不稳定的现象

我使用Python对这个想法做了仿真,仿真结果表明,在传感器的方差R远远大于预估值方差Q时(R = 2500,Q = 25,A = B = C = 1),卡尔曼滤波的结果(^xk)相比传感器输出更为稳定,这在一定程度上说明使用卡尔曼滤波对解决气体传感器报警阀值点不稳定的现象是有一定的用处。

当然,上述只是一个仿真的结果,是否能真正解决问题还需要经过实际的检验。这里只是提出一个看似可行的方法,有机会的话可以考虑在实际中测试与应用。



卡尔曼滤波在检测气体浓度中的应用:
https://bbs.21ic.com/icview-2893794-1-1.html

使用特权

评论回复

相关帖子

沙发
会笑的星星|  楼主 | 2020-4-3 10:21 | 只看该作者

使用特权

评论回复
板凳
叶春勇| | 2020-4-3 19:58 | 只看该作者
不知是哪位高人,研究的很深呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

96

帖子

15

粉丝