Какой странный алгоритм усреднения использует мой велосипедный компьютер? - PullRequest
4 голосов
/ 20 июля 2009

Мой велокомпьютер может показывать мне различные цифры, такие как пройденное расстояние, прошедшее время, максимальная скорость, средняя скорость, текущая скорость и т. Д. У меня обычно настроено отображение текущей и средней скорости.

Вы можете сбросить расстояние и время (оба вместе) в любой точке; максимальная и средняя скорости рассчитываются с момента последнего сброса. Расстояние берется от датчика колеса (вы должны сначала откалибровать его, чтобы определить длину окружности вашего колеса), а время - от его собственных часов реального времени.

Теперь, довольно часто, пока я езжу на велосипеде, я буду намного превышать отображаемую среднюю скорость, и в то же время показанная средняя скорость будет снижаться. В качестве конкретного примера, этим вечером я ехал на велосипеде домой, и моя текущая скорость оставалась стабильной на уровне 19,5 миль в час; мой средний показатель составлял 12,6 миль в час, и когда я смотрел на него, он снизился до 12,5.

То, что я пытаюсь выяснить, это то, какой странный алгоритм усреднения, который он использует, может дать этот эффект. Я не могу поверить, что он делает какие-то необычные вещи, кроме общего расстояния / общего времени. Я предполагаю, что это должно быть какое-то округление / граничное условие, но я не могу понять, что. Есть предложения?

[Я спрашивал об этом в офисе на работе, но ни у кого не было никаких идей, кроме того, что я должен перестать беспокоиться о такого рода деталях! Эй, я должен думать о чем-то , когда я еду на велосипеде, это 9 миль в каждую сторону ...]

Ответы [ 6 ]

15 голосов
/ 20 июля 2009

Я собираюсь предположить, что он имеет историю определенного количества точек данных и отображает среднее значение по ним. С течением времени старые точки сбрасываются.

Если вы шли быстрее в точке, достаточно далеко назад, чтобы конец истории, то отталкивание от точки снизит ваше среднее значение.

6 голосов
/ 20 июля 2009

Это не скользящее среднее, оно должно быть средним за всю поездку, верно? По крайней мере, я всегда предполагал, что это делает моя.

Я тоже заметил этот эффект. Моя теория состоит в том, что и часы, и счетчик расстояния, которые он использует для среднего, имеют довольно низкое разрешение, поэтому иногда счетчик часов срабатывает, в то время как счетчик расстояния остается постоянным, и вы получаете провал. Например:

dist time   spd
8.5 40.1   12.72
8.5 40.2   12.69

Если они используют целочисленный процессор и фиксированную точку, усечение заставит падение выглядеть еще больше

5 голосов
/ 20 июля 2009

Это действительно мотивирующая техника.

3 голосов
/ 20 июля 2009

Возможно, он использует что-то похожее на алгоритм оценки оставшегося времени .

0 голосов
/ 20 июля 2009

Система должна производить выборку с некоторой (возможно, постоянной) скоростью.

Для вычисления скользящего среднего он хранит не более N точек данных.

Таким образом, чтобы обновить среднее значение, оно должно сбросить одну из своих сохраненных точек, чтобы получить новое среднее значение, и если точка отбрасывания была на быстрее , чем ваша текущая скорость, скользящее среднее упадет.

0 голосов
/ 20 июля 2009

Это время между поворотами колеса, но он может легко пропустить проход магнита над датчиком из-за неровности дороги или шума.
Таким образом, вы измеряете скорость, равную половине правильного значения для этой одной точки данных, затем она составляет скользящее среднее, так что плохая точка загрязняет скорость в течение следующих нескольких оборотов.

...