我从OBD端口或GPS跟踪速度。它以英里/秒为单位。每次更新新速度时都会触发一个事件,如何检测到这个速度随时间的快速加速?例如,汽车以30英里每小时的速度行驶,并在几秒钟内突然加速到100?
此外,类似的情况也适用于苛刻的制动,速度下降过快。
答案 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次测量和它们之间的时间。
因此,如果您每秒进行一次测量,那么您只需测量测量值之间的差值,并将其作为加速度/减速度值。