我在卡车油箱中安装了一个燃油传感器。传感器测量油箱的当前油位(百分比)。然而,由于燃油在油箱中晃动,燃油液位波动很大——有时超过 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).
到目前为止,卡尔曼滤波器在卡车行驶和消耗燃料时工作得很好。但是,当发生两个模型未捕获的事件时,它会失败:
- 加油(短时间内燃油油位大幅增加)
- 燃油盗窃(短时间内燃油油位大幅下降)
您可以在下面的图表左侧看到一个示例,其中燃油油位的大幅下降(很可能是由于燃油盗窃)和燃油油位的大幅增加(由于加油)被卡尔曼滤波器平滑,因此信息丢失。在图表的右侧,卡车正在移动并消耗燃料,预测效果很好。
所以我的问题是,我如何平滑燃油液位的波动,同时捕捉加油和燃油盗窃事件?有任何想法吗?也许使用卡尔曼滤波器以外的其他东西?