4

我的自行车电脑可以显示各种数字,例如行驶距离、经过时间、最大速度、平均速度、当前速度等。我通常将其设置为显示当前和平均速度。

您可以随时重置距离和时间(两者一起);自上次重置以来计算最大和平均速度。距离来自车轮传感器(您必须首先校准它以告诉它车轮的周长),时间来自其自己的实时时钟。

现在,当我骑自行车时,我经常会以远高于显示的平均速度行驶,但显示的平均速度会下降。举个具体的例子,今天晚上我骑自行车回家,我目前的速度稳定在 19.5 英里/小时。我的平均时速显示为 12.6 英里/小时,当我看着它时,它向下点击到 12.5。

我正在努力解决的是它使用什么样的奇异平均算法可以产生这种效果。除了总距离/总时间之外,我无法相信它会做任何花哨的事情。我想这一定是某种舍入/边界条件,但我不知道是什么。有什么建议么?

[我在工作的办公室里问过这个问题,但除了我应该停止担心这些细节之外,没有人有任何想法!嘿,我骑自行车时必须考虑一些事情,单程9英里......]

4

6 回答 6

15

我猜它有一定数量的数据点的历史并显示它们的平均值。随着时间的推移,旧的点被推开。

如果你在足够远的地方走得更快,以至于历史结束,推开一个点会降低你的平均水平。

于 2009-07-20T18:33:26.113 回答
6

这不是一个运行平均值,它应该是整个行程的平均值,对吧?至少那是我一直认为我正在做的事情。

我也注意到了这个效果。我的理论是,它用于平均值的时钟和距离计数器的分辨率都相当低,所以有时时钟计数器会滴答作响,而距离计数器保持稳定,你就会下降。例如:

dist time   spd
8.5 40.1   12.72
8.5 40.2   12.69

如果他们使用整数处理器和定点,截断会使下降看起来更大

于 2009-07-20T19:33:56.413 回答
4

这真的是一种激励技巧。

于 2009-07-20T18:40:23.447 回答
3

它可能使用类似于剩余时间估计算法的东西。

于 2009-07-20T18:34:50.680 回答
0

这是车轮旋转之间的时间,但由于道路颠簸或噪音,它很容易错过磁铁在传感器上方的通过。
因此,您测量该数据点的正确值一半的速度,然后进行运行平均,以便坏点污染接下来几圈的速度。

于 2009-07-20T18:43:41.380 回答
0

系统需要以某种(可能是恒定的)速率进行采样。

为了计算移动平均值,它最多只存储 N 个数据点。

因此,为了更新平均值,它必须删除其存储的点之一以获得新的平均值,如果下降的点您当前的速度快,则移动平均线会下降。

于 2009-07-20T19:17:13.187 回答