从嘈杂的测量中捕获燃料水平的合法大幅增加/下降

信息处理 卡尔曼滤波器
2022-02-23 10:02:15

我在卡车油箱中安装了一个燃油传感器。传感器测量油箱的当前油位(百分比)。然而,由于燃油在油箱中晃动,燃油液位波动很大——有时超过 10%。

我决定使用卡尔曼滤波器来预测实际油位,使用以下模型:

F(k+1) = F(k) - C
C = fuel consumed between k and k+1, which is estimated using
    the distance travelled between k and k+1 (measured using GPS),
    and the average fuel efficiency (fixed) of the lorry (e.g. 35 L/100km).

到目前为止,卡尔曼滤波器在卡车行驶和消耗燃料时工作得很好。但是,当发生两个模型未捕获的事件时,它会失败:

  • 加油(短时间内燃油油位大幅增加)
  • 燃油盗窃(短时间内燃油油位大幅下降)

您可以在下面的图表左侧看到一个示例,其中燃油油位的大幅下降(很可能是由于燃油盗窃)和燃油油位的大幅增加(由于加油)被卡尔曼滤波器平滑,因此信息丢失。在图表的右侧,卡车正在移动并消耗燃料,预测效果很好。

测量与预测

所以我的问题是,我如何平滑燃油液位的波动,同时捕捉加油和燃油盗窃事件?有任何想法吗?也许使用卡尔曼滤波器以外的其他东西?

1个回答

据推测,燃油盗窃和加油需要停止车辆并关闭发动机(?)。每次启动车辆时,重新设置系统以在启动时跟踪油箱中的燃油液位。比较“(之前)关闭时的燃料水平”与“启动时的燃料水平”可以告诉你发生了什么。

当然,即使在短暂停留期间,晃动也会持续存在。向传感器添加低通滤波器/积分器将改善瞬时读数。

如果采样速度足够快,在车辆行驶时获得燃油液位传感器信号的傅里叶变换会很有趣。根据您对燃油液位精度的规格,您可能会发现简单的低通滤波器/积分器在“抑制”信号的晃动效应方面可能同样有效。无论如何,这就是常见的“防晃动”模块的工作方式。

希望这可以帮助。