Was misst eigentlich ein Fahrradcomputer, um die Geschwindigkeit des Fahrrads zu berechnen?

Was misst eigentlich ein Fahrradcomputer, um die Geschwindigkeit des Fahrrads zu berechnen? Ist es die Zeit für eine Umdrehung $T$ oder ist es die Anzahl der Umdrehungen $n$ pro gegebener Zeit $t_0$?

Wenn der Radius des Rads $R$ ist, dann erhältst du die Geschwindigkeit des Fahrrads $v$ durch

$v = 2 \pi R /T$

im ersten Fall und durch

$v = 2\pi R n/t_0$ in der Sekunde.

Es mag wie ein winziger Unterschied erscheinen, aber ich interessiere mich wirklich für dieses Detail. Hoffe, jemand könnte dies klären und einige Referenzen geben.

Sie verwenden einen Algorithmus, um geringfügige Abweichungen zu "glätten". Der genaue Algorithmus ist irrelevant – die Ergebnisse sind die gleichen.
@DanielRHicks Welche Methode wird also verwendet? Hast du mehr Details?
Ich denke, das ist von Marke zu Marke unterschiedlich. Ich denke, sie messen mehrere Umdrehungen und berechnen daraus Geschwindigkeit / Entfernung. Ich vermute, dass zumindest einige die Anzahl der Umdrehungen basierend auf der Geschwindigkeit variieren, sodass sie unabhängig von der Geschwindigkeit etwa einmal pro Sekunde aktualisiert werden können.
Planen Sie, diese Informationen für ein Projekt zu verwenden, oder ist es nur reine Neugier?
@heltonbiker Ich unterrichte Physik in der High School. Es gibt nette Übungen in Schulbüchern, die Cyclocomputer als reale Beispiele im Zusammenhang mit rotierenden Körpern betrachten und Frequenz und Geschwindigkeit diskutieren ... Manchmal wird jedoch angenommen, dass ein Fahrradcomputer tatsächlich die Zeit für eine Umdrehung misst, und manchmal, dass sie es ist misst die Anzahl der Umdrehungen in einem bestimmten Zeitintervall. Ich möchte also etwas Hintergrundwissen darüber bekommen, wie es wirklich funktioniert (und nicht nur, wie es in der Theorie funktionieren könnte ). Trotzdem ist deine Antwort hilfreich!
Ich denke, dass es nicht erwünscht ist, diese Frage auch an physical.stackexchange und electronics.stackexchange zu posten. Gibt es jedoch eine andere akzeptierte Möglichkeit, Benutzer dieser Websites über diese Frage zu informieren? Ich bin mir nicht sicher, ob es eine gute Idee ist, es auf eine dieser Sites zu migrieren.
Das Hauptproblem von Fahrradcomputern ist: Was sie als aktuelle Geschwindigkeit anzeigen, ist in Wirklichkeit die Durchschnittsgeschwindigkeit eines kurzen letzten Zeitintervalls und niemals die tatsächliche Momentangeschwindigkeit. Beim Beschleunigen ist die angezeigte Geschwindigkeit immer kleiner als sie sollte, und beim Bremsen ist es umgekehrt, weil es eine Verzögerung gibt. Der einzige Weg, dies zu vermeiden, bestünde darin, Möglichkeiten bereitzustellen, kleinere Winkelverschiebungen des Rads kontinuierlich zu messen, anstatt nur ganze Umdrehungsinkremente.
Dies scheint eine reine mathematische Frage zu sein. Es gibt 3 Antworten unterschiedlicher Länge und Meinungen. Bei der letzten Zählung gibt es insgesamt 23 Kommentare. Komm schon Leute. Es sollte eine knappe Antwort geben.
@ user313 es ist absolut keine mathematische Frage. Die Frage geht davon aus, dass es eine Antwort gibt, die völlig falsch ist. Der Fahrradcomputer erhält ein Signal von einem Impuls pro Umdrehung. Die Frage erwähnt zwei Dinge, die Sie damit tun könnten, und erwähnt nicht die Filterung, die Sie benötigen, um eine einigermaßen stabile Antwort zu erhalten.

Antworten (4)

Die Antwort ist "beides, je nachdem". Die meisten aktuellen Fahrrad-Cycometer verwenden einen Reed-Schalter und einen Zeitgeber und messen die Zeit zwischen aufeinanderfolgenden Auslösungen des Schalters, wenn ein Magnet vorbeigeht. Ein Vorteil dieser Methode ist ihre Einfachheit und ihre geringen Kosten. Wenn der Magnet jedoch schlecht positioniert oder die Drehzahl des Rads zu hoch ist, kann der Reedschalter getäuscht werden, da es eine Weile dauert, bis sich der Reedschalter selbst zurücksetzt .

Ein weniger verbreiteter Ansatz (der von der alten Avocet-Tachometerlinie verwendet wird, einschließlich des ehrwürdigen und verehrten Avocet 50) verwendete eine Induktionsspule und einen Magnetring mit 20 kleinen Magneten, die um die Nabe herum angebracht waren. Die Induktionsspule konnte die Stromänderung schnell zählen. Sie können die Details dieses Ansatzes in der Avocet-Patentanmeldung für den 50 sehen, aber sein Designer hat einige der Eigenheiten dieses Ansatzes in diesem Usenet-Beitrag von 1994 diskutiert .

Obwohl diese beiden unterschiedlichen Methoden verwendet werden können, um die zur Berechnung der Geschwindigkeit erforderlichen Daten zu sammeln, können sich die genauen verwendeten Algorithmen von Gerät zu Gerät unterscheiden. Man kann dies daran erkennen, dass die Trittfrequenz oft berechnet wird. Fast alle Fahrradcomputer, die einen Trittfrequenzsensor haben, verwenden einen Reed-Schalter, da die Drehzahl der Kurbeln niedrig genug ist, um Reed-Schalter zurückzusetzen. Verschiedene Hersteller verwenden jedoch unterschiedliche Mittelungszeiträume, Zeitüberschreitungen, Verzögerungen und auslösende Ereignisse, bevor das Ergebnis angezeigt wird. Geschwindigkeitsberechnungen funktionieren ähnlich, und man kann gelegentlich den Beweis für diese Entscheidungen sehen, indem man Geschwindigkeits- und Trittfrequenzdaten untersuchtB. von Fahrradcomputern, die diese Werte speichern und nach der Fahrt herunterladen lassen. Hier ist zum Beispiel eine Grafik, die die Geschwindigkeitsaufzeichnung von drei verschiedenen Geräten zeigt, die für dieselbe Fahrt am selben Fahrrad montiert waren (ein PowerTap, ein Polar S710 und ein SRM Pro – das sind Leistungsmesser, aber hier konzentrieren wir uns nur auf der aufgezeichneten Geschwindigkeit). Jedes Gerät wurde auf den gleichen Radumfang eingestellt, aber die Histogramme zeigen, dass jedes leicht unterschiedliche Geschwindigkeiten speichert und meldet.

Geschwindigkeit, die von drei Geräten auf derselben Fahrt aufgezeichnet wurde

Einfach und beantwortet tatsächlich die vom OP formulierte Frage. +1

Stellen Sie sich einen Cyclocomputer als eine festverdrahtete Kombination aus einem Taschenrechner, einer Quarzuhr und einer dedizierten CPU vor, die mit einem Puffer arbeitet.

BEARBEITEN ZU EINEM PLAUSIBLEREN ALGORITHMUS:

Jedes Mal, wenn der Magnet den Reedschalter schließt, wird eine Anfrage an die Uhr gesendet, um einen Zeitstempel zu erfassen, ein zeitgestempeltes Ereignis wird an einen Puffer gesendet und der Radumfang wird zur aktuellen Entfernung und zum Kilometerzähler hinzugefügt.

Jedes Mal, wenn die CPU die aktuelle Geschwindigkeit aktualisiert, nimmt sie das erste und das letzte mit einem Zeitstempel versehene Ereignis aus dem Puffer, berechnet die Distanz (Radumfang multipliziert mit der Anzahl der Ereignisse minus eins) und teilt sie durch die berechnete verstrichene Zeit (letzter Zeitstempel minus erster Zeitstempel im Puffer), Anzeige der Geschwindigkeit und Löschen des Puffers.

Neben den dauerhaft gespeicherten Variablen (aktuelle Entfernung, Höchstgeschwindigkeit usw.) arbeitet der Computer mit drei temporären Variablen: LAST_TIME, TEMP_TIME und TEMP_DISTANCE, die alle auf Null gesetzt sind. Die Funktion present_time(), die sich auf die Uhr bezieht, wird hier als Ressource abstrahiert, die auf Anfrage leicht verfügbar ist.

Jedes Mal, wenn der Reed-Schalter den Kontakt schließt, führt der Computer die folgenden Operationen aus:

TRIP_DISTANCE = TRIP_DISTANCE + WHEEL_CIRCUMFERENCE
if LAST_TIME is zero:
    LAST_TIME = present_time()
else:
    TEMP_TIME = TEMP_TIME + (present_time() - LAST_TIME)
    LAST_TIME = present_time()
    TEMP_DISTANCE = TEMP_DISTANCE + WHEEL_CIRCUMFERENCE

Jedes Mal, wenn der Computer den Bildschirm aktualisiert, führt er die folgenden Vorgänge aus:

CURRENT_SPEED = TEMP_DISTANCE / TEMP_TIME
TEMP_TIME = TEMP_DISTANCE = 0
AVERAGE_SPEED = TRIP_DISTANCE / TRIP_TIME
if CURRENT_SPEED > MAXIMUM_SPEED:
    MAXIMUM_SPEED = CURRENT_SPEED

Abschließend jedes Mal, wenn die Auto-Stopp-Funktion aktiviert wird (wenn das Fahrrad steht):

LAST_TIME = 0

Alle diese Operationen sind nicht nur rechnerisch trivial, sondern auch nahezu in Echtzeit, da sie in der integrierten Schaltung hardwareimplementiert sind.

Es lohnt sich, zwei Dinge zu berücksichtigen:

  1. Wenn der Computer mit der Auto-Start-/Auto-Stopp-Funktion arbeitet und das Rad zu lange braucht, um eine Umdrehung abzuschließen, wechselt die Geschwindigkeitsaktualisierungsfunktion in den Pausenmodus.
  2. Höchstwahrscheinlich haben diese Variablen eine Festkomma-/Ganzzahlnatur, das heißt, sie haben einen maximalen Wert. Für TEMP_TIME, das wahrscheinlich mit Mikrosekundenauflösung arbeitet, kann dies zu einem Variablenüberlauf führen, wenn zwischen Geschwindigkeitsaktualisierungen zu viel Zeit vergeht. Das impliziert eine Mindestgeschwindigkeit, um richtig zu arbeiten, abhängig von der Speichergröße und dem Zahlentyp dieser Variablen in der integrierten Schaltung.

Außerdem muss die Zeit zwischen den Umdrehungen gezählt werden, nicht die Anzahl der Umdrehungen während eines festen Zeitintervalls, da die Zeit ein kontinuierliches (Gleitkomma-)Maß und die Anzahl der Radumdrehungen ein diskretes (ganzzahliges) Maß ist. Wenn die zweite Option verwendet würde, würde die Geschwindigkeit immer auf den nächstmöglichen ganzzahligen Wert "gerundet", was außer bei sehr hohen Geschwindigkeiten zu falschen Ergebnissen führen würde.

Nun, technisch gesehen ist die Zeit in der RTC eine ganze Zahl, aber es ist eine ganze Zahl, die sehr häufig inkrementiert wird, also ist sie so nah an einer kontinuierlichen, wie man hoffen könnte.
@DanielRHicks Du hast Recht. Was ich meinte, ist, dass TIME von Natur aus eine kontinuierliche Größe ist, während die Anzahl der Runden (gemessen durch einen Schalter) dies nicht ist, sondern nur in Schritten von vollen Umdrehungen zunimmt. Da die Zeit von Quarzgeräten in Mikrosekunden oder weniger gemessen wird, hat sie, wie Sie sagten, eine ausreichende Auflösung, um einer Gleitkommazahl zu entsprechen - zumindest unter Berücksichtigung der Anwendung der Messung von Fahrradgeschwindigkeiten.
Das klingt vernünftig. Es ist das Gegenteil (in Bezug auf diese Frage) von dem, was ich für wahr halte. Woher bekommen Sie Ihre Informationen? (FTR, ich bin interessiert, will keinen Streit anfangen oder was auch immer. Ich möchte nur wissen, ob ich falsch liege und wie ich sicher sein kann.)
@zenbike Eigentlich ist diese Erklärung eher eine Vermutung als ein tatsächliches Wissen, aber ich kenne mich ein bisschen mit Programmierung, Technik und Elektronik aus, und das wäre der "notwendige" Weg, es zu machen: da die Anzahl der Räder nicht kontinuierlich gemessen werden kann ( nur wenn der Reed-Schalter schließt), macht es notwendig, dass Sie die Zeit jeder Radumdrehung zählen und nicht die Anzahl der Umdrehungen in einem festen Zeitintervall, insbesondere wenn man bedenkt, dass Fahrradräder mit relativ niedriger Drehzahl drehen.
Schnelles Experiment: Drehen Sie Ihr Rad eine volle Umdrehung, so dass Ihr Fahrradsensorschalter 2x aktiviert wird. Erhalten Sie eine Anzeige für die Geschwindigkeit, auch nur vorübergehend? Meine nicht. Es erfordert die Aktivierung des Schalters 10-12 Mal, bevor die Geschwindigkeit berechnet werden kann. Mein Verständnis ist, dass dies daran liegt, dass ein Messwert für die 2-3-fache Länge der Aktualisierungsperiode erforderlich ist, bevor die anfängliche Berechnung verarbeitet werden kann. Wie spielt sich das ein? Übrigens, das könnte zu einem langen Gespräch werden. Sind Sie bereit, mir direkt eine E-Mail zu schreiben? Wenn ja, schicke ich dir eine E-Mail.
Da alles, was argumentiert wird, hypothetisch ist, glaube ich nicht, dass E-Mailing produktiv wäre, zumindest in dieser Hinsicht. Was ich weiß ist, dass die Auto-Start/Stopp-Funktion von Fahrradcomputern eine Mindestgeschwindigkeit benötigt, um zu funktionieren. Abgesehen davon denke ich, dass der Puffer, den ich erwähnt habe, voll sein könnte, bevor das Rad eine ganze Umdrehung beendet, wenn es zu langsam ist. Ich hatte eine Vetta mit einer sehr schnellen Bildwiederholfrequenz, die Mindestgeschwindigkeiten von weniger als 2 km/h zeigte. Meine Katzenaugen messen nur etwa 4 oder 5 km/h.
Ich bin mir nicht sicher, was Sie da sagen. Das scheint zu implizieren, dass Sie denken, dass Ihre eigene Theorie aufgrund der Puffergröße nicht praktikabel ist? Oder verstehe ich das falsch?
HB, als Programmierer, der manchmal an mechanischen Dingen arbeitet, denke ich, dass Ihr grundlegender Algorithmus ungefähr so ​​​​ist, wie er sein würde (obwohl ich es etwas anders machen würde). Aber das Netz-Netz ist, dass es keinen langfristigen "Fehler" geben würde (außer aufgrund einfacher Genauigkeitsprobleme). Der Algorithmus selbst kann leicht präzise sein.

Ein Fahrradcomputer misst die Anzahl der Umdrehungen und multipliziert sie mit dem Außenumfang von Rad und Reifen (oder einer engen Annäherung davon, je nachdem, wie es vom Benutzer eingerichtet wurde), um die für einen bestimmten Zeitraum gefahrene Strecke zu erhalten Zeit.

Es bleibt nur noch die Umrechnungsformel auf KMH oder MPH anzuwenden.

Anweisungen:

  1. Messen Sie den Umfang des Rads in Millimetern, idealerweise mit der hier beschriebenen Rollout-Methode . Wandeln Sie das Millimetermaß des Rads in Zoll um, indem Sie es durch 25,4 dividieren. (25,4 mm = 1 Zoll) Teilen Sie durch 12, um den Umfang in Fuß zu erhalten.

  2. Berechnen Sie die Radumdrehungen pro Meile, indem Sie 5.280 durch den Reifenumfang in Fuß teilen.

  3. Berechnen Sie die Geschwindigkeit pro Minute, indem Sie die Radgeschwindigkeit durch die Reifenumdrehungen pro Meile teilen. Wenn beispielsweise die Radgeschwindigkeit 300 U/min beträgt, bewegt sich der Beispielreifen mit 0,446 Meilen pro Minute.

  4. Multiplizieren Sie die Geschwindigkeit in Meilen pro Minute mit 60, um die Geschwindigkeit in Meilen pro Stunde (mph) umzurechnen.

  5. Multiplizieren Sie mit 1,609344, um die Geschwindigkeit in km/h zu erhalten.

    Beispiel:

  • Radumfang = 2105 mm
  • 2105 / 25,4 = 82,8740157 Zoll circ.
  • 82,8740157 Zoll Umfang / 12 = 6,90616798 Fuß umkreisen.
  • 5280 / 6.90616798 Fuß Umf. = 764,533967 Radumdrehungen, um eine Meile zurückzulegen
  • 350 U/min / 764,533967 = 0,45779523 Meilen pro Minute
  • 0,45779523 Meilen pro Minute x 60 = 27,4677135 Meilen pro Stunde
  • 27,4677135 Meilen pro Stunde x 1,609344 = 44,205 Kilometer pro Stunde

In diesem Beispiel ist „350“ eine Variable, die der Fahrradcomputer mithilfe eines Magnetsensors zählt. Die meisten Fahrradcomputer aktualisieren die Berechnung zwischen einmal pro Sekunde und einmal alle 5 Sekunden.

Gute mathematische Erklärung hier.

Vielen Dank. Es misst also die Anzahl der Umdrehungen pro Sekunde (oder je nach Modell pro 5 Sekunden) und nicht die Zeit, die für eine Umdrehung benötigt wird? Das Problem ist nicht, die Drehzahl aus der Drehzahl zu berechnen oder Einheiten umzurechnen (übrigens komme ich aus Deutschland, wo nur metrische Einheiten verwendet werden).
Und ich lebe in Dubai, wo nur metrische Einheiten verwendet werden. Die meisten Fahrradcomputer bieten beide Optionen und verwenden diese Berechnungsmethode. Ihre Frage war, ob der Fahrradcomputer die Radumdrehungen in einer bestimmten Zeit oder die Zeit für eine Umdrehung misst. Die Antwort ist Ersteres, aber Sie müssen Letzteres aus Ersterem berechnen, um die Geschwindigkeit pro Stunde zu erhalten. Gibt es einen besseren Weg, das deutlich zu machen?
Ja das ist die Frage. Hast du dafür eine Referenz? Für mich scheinen beide Methoden vernünftig zu sein, Sie könnten eine feste Zeit nehmen, sagen wir 2 Sekunden, und die Anzahl der Umdrehungen zählen (das wird tatsächlich verwendet, wie Sie sagten) oder Sie könnten die Zeit für eine Umdrehung messen. Wissen Sie, warum letzteres nicht verwendet wird? Auch hier besteht das Problem wirklich nicht darin, Dinge zu berechnen, sobald Sie die Messungen haben (das ist ein Grund, warum ich die Formeln in meine Frage aufgenommen habe, um zu zeigen, dass dies nicht das Problem ist ...)
"Was misst eigentlich ein Fahrradcomputer , um die Geschwindigkeit des Fahrrads zu berechnen?" ist die Frage, die ich zu beantworten versuchte. Mit möglicherweise übermäßiger Erklärung ... Keine Referenzen, aber das ist, was getan wird. Ich weiß das, weil ich seit 10 Jahren einen Fahrradservice leite und diese Rollout-Methode notwendig ist, um eine genaue Geschwindigkeitsmessung zu erhalten. Sie könnten den anderen Weg gehen, aber ich weiß, dass dies verwendet wird.
Was den Grund betrifft, denke ich nur, weil Sie jede Sekunde aktualisieren müssten, wenn Sie die Zeit pro Umdrehung messen. Die Messung der Anzahl der Umdrehungen ermöglicht eine einigermaßen genaue Anzeige mit geringerer Rechenleistung und weniger Batterieverbrauch, da Sie nur einmal alle 5-10 Sekunden aktualisieren müssen . Und erst seit kurzem sind Fahrradcomputer wirklich zu Computern mit wirklicher Leistung geworden...
Ich denke, dass die dritte Variable, der Umfang des Rades, in Ihren Überlegungen fehlt. Es spielt keine Rolle, wie Sie die Drehung als Zeit oder Entfernung berechnen, wenn Sie den Umfang genau haben. Im Wesentlichen lösen Sie die Gleichung nur für eine andere Variable. Aber ich weiß, dass sie in der Praxis die Anzahl der Umdrehungen zählen.

Ich habe eingebettete Systeme entwickelt, um die Geschwindigkeit mehrmals zu messen. (Kein Fahrradcomputer, aber dasselbe für Lokomotiven.) Ihre Frage ist einfach zu beantworten.

"Ist es die Zeit für eine Umdrehung $T$ oder ist es die Anzahl der Umdrehungen $n$ pro gegebener Zeit $t_0$"

Sie haben zwei Variablen, Zeit und Anzahl der Umdrehungen. Ein Computer kann die Zeit sehr genau messen. Ein Computer kann Umdrehungen nicht annähernd so genau messen. (Es gibt nur nicht sehr viele davon, da sie langsam auftreten, sodass Sie in jedem festgelegten Zeitraum mit Teilumdrehungen umgehen müssen.) Basierend auf dem, was genauer gemessen werden kann, möchten Sie die Zeitdauer messen braucht, um eine Umdrehung zu machen. Sie können die Zeit ganz einfach auf die Mikrosekunde genau messen, von dem Moment an, in dem Ihr Sensor den Beginn einer Umdrehung erkennt, bis zum nächsten Auslösen desselben Sensors.

Beachten Sie auch, dass Fahrradcomputer extrem stromsparende Geräte sind. Sie erwarten, eine Knopfbatterie in einen zu stecken und ihn jahrelang laufen zu lassen. Je schneller die Softwareroutinen laufen, desto mehr Strom verbrauchen sie. Sie haben also eine schnelle Routine, die Zeit zu zählen. Die zweite Routine läuft nur, wenn sie ein Signal vom Radsensor sieht. Es greift den aktuellen Timerwert und speichert ihn. Eine langsamer laufende Hintergrundroutine nimmt diese Zeitintervalle und verwendet den Umfang, um eine Geschwindigkeit zu berechnen.

Die berechneten Geschwindigkeiten werden in einem Rollpuffer gespeichert, wo Sie einen digitalen Tiefpassfilter auf diese Geschwindigkeiten anwenden, um sie zu glätten. (Addieren Sie zum Beispiel die aktuelle Geschwindigkeit zur vorherigen Geschwindigkeit, teilen Sie sie durch 2, und das ist die angezeigte Geschwindigkeit. In der Praxis verwenden Sie einen komplizierteren Filter mit mehr Punkten.)

Die Radsensoren müssen schneller laufen können, als man vermuten würde. Meine Fahrradcomputer konnten schon immer Geschwindigkeiten über 40 km/h messen. Ich gehe davon aus, dass sie bis zu 60 km/h schnell werden können. Das heißt bei einem 700x25 Reifen kann der Radsensor 12 - 13 Umdrehungen pro Sekunde bei 60mph machen. Ich habe es auch seit einiger Zeit nicht mehr bewertet, aber Reed-Sensoren müssen viel teurer sein als Hall-Effekt-Sensoren. Reed-Sensoren verwenden teure Metalle (Silber oder Wismut oder ???) , können unzuverlässig sein, mögen kein schnelles Schalten und erzeugen elektronisches Rauschen.

Die Antwort auf Ihre Frage lautet also, Sie möchten die Zeit messen, die jede Umdrehung dauert , nicht die Anzahl der Umdrehungen in einem festgelegten Zeitraum.