13

使用 OBD2 参数获取油耗 (MPG) 的最佳方法是什么。

下面的公式很简单但不是最准确的,任何其他公式都可以得到准确的估计。车速值以 Km/Hr 为单位,转换为英里乘以 0.621317。计算 MPG 将 MPH 除以 GPH。MPG 的最终数学表达式为:

汽油机用

MPG =VSS * 7.718/MAF

我想知道柴油机计算即时消耗。此外,我正在尝试根据 obd2 标准提供的参数独立于汽车模型来计算它。


一些链接可能对那些正在研究同一主题的人有用。

4

4 回答 4

10

这就是即时消费的公式。

如果要计算平均消耗量,请计算一段时间内使用的燃料总量,然后除以同期行驶的总距离。

更新:这就是应该的比率。除非你想熔化活塞或失去动力。除非您更改燃料类型,例如更改为 102 辛烷值汽油或乙醇,否则空气/燃料比不应更改。这个计算可能是你能得到的最准确的,除非你想让它变得非常复杂

  1. 包括来自所有六个 O2 传感器的读数,以验证是否发生了最佳燃烧,
  2. 考虑发动机温度(较冷的发动机允许更好的燃烧,因为它允许更密集的氧气进入进气歧管),
  3. 时间提前是否设置正确(您必须根据数据表检查)。
  4. 以及我遗漏的任何其他内容。

请注意,如果您正在为丰田工作:丰田有一个额外的传感器,可以实际测量注入发动机的燃料量。所以你可以读那个PID。但对于其他汽车,给定的公式是标准。

更新 2:一些常见的空燃比:

  1. 天然气:17.2
  2. 汽油:14.7
  3. 丙烷:15.5
  4. 乙醇:9
  5. 甲醇:6.4
  6. 氢气:34
  7. 柴油:14.6

您还需要考虑,当发动机处于高负载时,空燃比会向下变化。

于 2013-06-21T10:15:34.717 回答
2

如果您可以读取喷油器脉冲宽度并除以速度,您可以获得即时消耗。如果你有使用的总燃料和距离,你可以得到平均值。获取喷油器脉冲宽度是获取油耗的直接方法。它是实际喷射的燃油量(嗯,这是喷油器打开的时间,但此时计算喷射量很容易)。

于 2013-09-05T20:48:23.210 回答
1

有一个 OBDII 命令 (01 5E) 可以为您提供每小时的燃料消耗率。我让它与 C#/Xamarin 客户端一起工作,不确定 Java 吗?

如果这不可用,那么您可以使用 VSS 和 MAF 值来计算 l/100km:(3600 * MAF)/(9069.90 * VSS)。MPG 需要进一步调整,但这很简单。

此外,为了使速度值通用,将速度实现为一个类并公开英制和公制属性,如下所示(C#):

public Class VehicleSpeed 
{
public int MetricSpeed
{
    get
    {
        return metricSpeed;
    }
}

/// <summary>
/// <para>getImperialSpeed.</para>
/// </summary>
/// <returns> the speed in imperial units. </returns>
public float ImperialSpeed
{
    get
    {
        return ImperialUnit;
    }
}

/// <summary>
/// Convert from km/h to mph
/// </summary>
/// <returns> a float. </returns>
public float ImperialUnit
{
    get
    {
        return metricSpeed * 0.621371192F;
    }
}

如果你想随着时间的推移计算这个值,为什么不存储每个立即计算然后取平均值呢?

希望能帮助到你。

于 2017-01-15T01:57:20.090 回答
0

比燃料消耗的更详细推导(燃料流量的速度):

SFC 方程

然后,假设燃料密度为 0.75kg/l:

在此处输入图像描述

于 2019-03-17T21:02:47.930 回答