OBDII - 确定档位给定速度和 RPM

OBDII - determine gear given speed and RPM

我正在开发一个 Android 应用程序,我们在其中使用 OBDII 读取汽车的发动机参数。目前,我们正在驾驶汽车时实时获取速度 (kmh)、发动机的 RPM 和质量气流。 我们现在必须找到一种方法,如何使用我们能够从 OBDII 获得的这些参数来确定当前设置的档位。 我考虑过仅指定例如给定的 RPM 水平和给定的速度,汽车以特定档位行驶,但我认为它不会成功。

也许你们中的一些人在这个领域有一些经验 - 我会非常乐于助人!

没有任何先验物理知识(即不知道是否有任何公式可以根据一组输入参数计算齿轮),您可以利用数据挖掘领域。

您只需计算大量数据(包括齿轮!),然后检查是否可以找到包含您认为可能相关的频道的公式,该公式足够频繁地为您提供正确的齿轮(多久一次您的选择,可能是 90% 或 99%)。

除此之外,我想说很难找到适用于每辆车的输入参数(发动机转速、空气质量流量、km/h 中的速度)的公式。问题是,km/h 中的实际速度还取决于车轮尺寸等。而且我不知道是否所有变速器都使用相同的传动比(可能不是,因为我们有 5 档变速器和 6 档变速器)。因此,测量发动机的转速可能会导致车轮上的转速完全不同,每辆车的直径可能完全不同。

对于以后遇到同样问题的用户: 实际上,将当前速度除以当前 RPM 就足够了。通过这样做,以特定档位行驶,您将获得一个恒定值(+-一些小错误值)。

这意味着如果您的汽车有 5 个档位,您可以要求用户在每个档位上校准设备,这意味着当用户以特定档位行驶时(在哪个档位上无关紧要 RPM/speed level) 将当前速度除以当前 RPM 将为您提供一个恒定值。如果您使用不同 "levels" 的 RPM 和特定齿轮上的速度计算此常数,它会给您一些小错误值(假设错误为 0,001)。因此,例如,在 2 档时,您将获得常量 = 0,02 +- 0,001。在每个档位上定义这样一个常量值,您几乎可以肯定地通过将当前速度除以当前 RPM 并检查该值适合哪个档位的常量值(+-错误值)来对您当前驾驶的档位进行分类。

我测试过它 - 它工作得很好 ;)。