从C#中的速度检测不良驾驶行为

时间:2018-06-13 08:54:20

标签: c# gps obd-ii

我从OBD端口或GPS跟踪速度。它以英里/秒为单位。每次更新新速度时都会触发一个事件,如何检测到这个速度随时间的快速加速?例如,汽车以30英里每小时的速度行驶,并在几秒钟内突然加速到100?

此外,类似的情况也适用于苛刻的制动,速度下降过快。

2 个答案:

答案 0 :(得分:2)

加速是速度的第一个衍生物。您必须计算速度增加/减少的时间,可能是直接样本。

反映评论我详细说明: 您可以在每秒钟内以实际速度进行回调。您必须计算呼叫之间的速度差异,即以英里/秒为单位的加速度^ 2。将此加速结果(最好用当前速度和时间戳打包)保存在列表中。在此之后保持当前速度为下一秒。

private double LastSpeedSample;
private void OnNewSample(object sender, SampleEventArgs e) {

    double Acceleration = LastSpeedSample - e.Speed;
    // Pack and save calculated value
    LastSpeedSample = e.Speed;
}

答案 1 :(得分:0)

加速度可以英里/秒/秒或英里/秒^ 2来衡量。 您可以只测量2次测量之间的差异,并根据这些测量值计算加速度。例如,如果你在2秒内从每秒2到5英里。这意味着你的加速度为1.5英里/秒^ 2。或者,如果你以每秒5到2英里的速度行驶,尼特是-1.5英里/秒^

所以你需要两件事:

2次测量和它们之间的时间。

因此,如果您每秒进行一次测量,那么您只需测量测量值之间的差值,并将其作为加速度/减速度值。