Dieses Programm liest eine Datei aus einem Fahrrad-Leistungsmesser, und stellt sie als Chart.js-Diagramm dar. Dabei werden aus Geschwindigkeit und Masse der Luftwiderstand und Rollwiderstand berechnet; die entsprechenden Parameter beziehen sich auf Velomobile, können durch Anpassung aber auch für alle anderen Fahrzeuge verwendet werden.
Oder: Demo-Diagramm
Bedienung:
Datei hochladen, oder Demo-Datei anschauen. (Getestet v.a. mit Garmin-FIT-Dateien aus dem Wahoo Elemnt.)
Die Ordinate zeigt die Leistung in Watt an, die Abszisse die Entfernung in km.
Links oben kann man die Parameter-Ansicht aus- und einklappen.
Durch Klick auf die Legende kann man Datensätze ein- und ausschalten.
Zu den meisten Feldern gibt es Tooltips mit Erläuterungen.
Mit dem Mausrad kann man horizontal scrollen, und mit Pos1 und Ende an die Enden springen.
Mit Plus/Minus kann man zoomen.
URL-Parameter:
Parameter setzen, z.B. in diesem Beispiel
Datensätze ein-/ausblenden, z.B. in diesem Beispiel
Die Parameter-Tabelle einblenden, z.B. in diesem Beispiel (zusammen mit den anderen Einstellungen)
Tretleistung glätten; z.B. in diesem Beispiel => der Parameter avg_muscle gibt an, über wie viele Datenpunkte vorher und nachher gemittelt werden soll, z.B. 2 bedeutet mitteln über 5 Punkte (der eigentliche Datenpunkt + je zwei davor und danach)
=> Man kann diese Seite mit URL-Parametern aufrufen; diese bewirken zwar ohne Daten nichts, aber wenn man dann eine Datei auswählt, werden die Parameter ins Diagramm übernommen.
Funktionsweise: Die hochgeladene Datei wird serverseitig mit Hilfe von GPSBabel konvertiert, die Daten werden teils geglättet (s.u.), und als JSON-Datensatz ausgegeben. Die Leistungsberechnung erfolgt dann via JavaScript direkt im Browser, damit die Parameter dynamisch verändert werden können.
Dateiformat: Dieses Programm verwendet das Garmin-FIT-Format, wie es von vielen Leistungsmessern ezeugt wird, sowie das TCX-Format. GPX ist leider nicht möglich, da dort keine Leistungsdaten gespeichert werden können.
Datenintervall: Dieses Programm geht davon aus, dass die Daten jede Sekunde gespeichert sind. Zumindest ein konstanter zeitlicher Abstand ist nötig, da ansonsten sämtliche Berechnungen mit Gewichtungsfaktoren arbeiten müssten.
Datensätze:
Die rötlichen Farbflächen stehen für die Eingangsleistung, also Tretleistung, Gefälle und Ausrollen.
Die blauen Farbflächen stehen für die Ausgangsleistung, also Rollwiderstand, Luftwiderstand, Steigleistung, Beschleunigungsleistung und Bremsleistung.
Die Datensätze innerhalb einer Gruppe (Eingangs- oder Ausgangsleistung) werden gestapelt dargestellt; unten die trägeren Datensätze, und oben die volatileren. Die Gesamtleistung entspricht also jeweils der obersten Kurve.
Auch links im Parameter-Fenster beziehen sich die Prozentzahlen auf diese Gruppen: die rot hinterlegten Prozentzahlen auf die Eingangsleistung, die blau hinterlegten auf die Ausgangsleistung, und die grau hinterlegten auf die während des Tretens abgegebene Leistung (sowie die Gesamtbilanz aus Eingangs- und Ausgangsleistung).
Datenbearbeitung: Folgende Bearbeitungsschritte werden serverseitig durchgeführt:
Tretleistung wird über drei Sekunden gemittelt; da die Aufzeichnungsfrequenz nahe an der Trittfrequenz ist, würden die Werte sonst zu stark schwanken. So wird über mehrere Kurbelumdrehungen gemittelt.
Höhe wird bidirektional über jeweils 5 Sekunden exponentiell geglättet; da die GPS-Höhenmessung relativ ungenau ist, aber die Höhe auf befestigten Straßen nicht so kurzzeitig schwankt, ist das realistischer.
Der Steigungswinkel wird aus der Differenz der Höhendaten 5 Sekunden vorher und nachher berechnet; ansonsten wäre die Bezugsstrecke kurz und damit der Höhenunterschied der Endpunkte winzig, und mit deren Ungenauigkeit die Winkelberechnung entsprechend fehlerhaft.
Die Entfernung wird nicht geglättet; eine Glättung verändert nämlich weder das Diagramm noch die Statistik nennenswert.
Entsprechend wird auch die GPS-Geschwindigkeit nicht geglättet; eine Glättung ändert das Diagramm auch nur wenig.
Der Puls wird aus der Tretleistung berechnet, indem diese über 120 Sekunden exponentiell geglättet und um 10 Sekunden verschoben wird (d.h. bezieht sich auf das Zeitfenster 130–10 Sekunden vorher).
Formeln: Hier werden die selben Formeln wie bei Kreuzotter verwendet; eine Erläuterung dazu findet man in diesem Thread.
Antriebsverluste:
Bezogen auf die Tretleistung, d.h. bei 8% Antriebsverlusten bleiben 92% der Tretleistung für den Antrieb übrig.
Bei Kreuzotter wird eine andere Konvention verwendet; dort wird die benötigte Leistung um die Antriebsverluste erhöht, d.h. 8% Antriebsverluste bedeuten dort, dass 108% der Fahrtwiderstände als Tretleistung benötigt werden, bzw. von der Tretleistung 92.6% übrig bleiben. Diese Konvention erscheint mir aber weniger intuitiv.
Die Absolutwerte der Tretleistung (Diagramm, Tooltips) sind hier ohne Antriebsverluste dargestellt (d.h. die tatsächlich erbrachte Brutto-Tretleistung); dagegen sind sämtliche Prozentzahlen (links oben, Tooltips) mit Antriebsverlusten (d.h. es wird mit der Netto-Tretleistung verglichen).
Wertebereiche der Parameter (ungefähr):
Effektive Querschnittsfläche: Der Default-Wert von 0.05 m2 bezieht sich auf ein schnelleres Velomobil mit Haube. Mit z.B. Regentropfen auf der Karosserie dürfte dieser Wert ein Stück höher sein. Beispielwerte (siehe auch hier):
Aufrechtrad: cW = 1.2, A = 0.6 m2, cWA = 0.72 m2
Rennrad: cW = 0.85, A = 0.4 m2, cWA = 0.34 m2
Liegerad: cW = 0.75, A = 0.4 m2, cWA = 0.3 m2
Auto: cW = 0.3, A = 2 m2, cWA = 0.6 m2
normales Velomobil: cW = 0.125, A = 0.4 m2, cWA = 0.05 m2
Velomobil mit Rekordtrimm: cW = 0.075, A = 0.4 m2, cWA = 0.03 m2
Die Querschnittsfläche reicht bei Velomobilen von ca. 0.45 m2 (Quest, Mango, Milan GT) bis ca. 0.40 m2 (DF, Milan SL).
Rollwiderstandskoeffizient: Der Default-Wert von 0.005 bezieht sich auf schnelle Reifen mit Butyl-Schlauch bei trockenem, warmem Wetter. Bei mittelmäßigen Reifen kann dieser Wert bereits mehr als doppelt so hoch sein, bei Minusgraden ebenfalls erheblich höher. Bei mehreren unterschiedlichen Reifen ist dies der Durchschnittswert. Als dynamischer Rollwiderstandskoeffizient wird stets 0.1 genommen.
Antriebsverluste: Velomobil 8.25%, Liegerad 4.3%, Rennrad 2.5% (Beispielwerte von Kreuzotter, auf hiesige Konvention umgerechnet)
Fehler und Datenlücken:
GPS-Position: Die Strecke wird ausschließlich aus den GPS-Daten berechnet, d.h. Abschnitte ohne Empfang fehlen.
Geschwindigkeit: Wenn ein Geschwindigkeitssensor installiert ist, dann kommen die Daten meist aus diesem, d.h. die Geschwindigkeit hat dann nichts mit dem GPS-Empfang zu tun. Generell sollte ein Geschwindigkeitssensor bessere Geschwindigkeitsdaten liefern als ein GPS – v.a. sollten weniger Sprünge und Lücken vorhanden sein. Allerdings kann es auch Sensor-Probleme geben (z.B. Speichenmagnet verdreht, Funkverbindung schlecht); das äußert sich oft nicht durch Datenlücken, sondern fehlerhaften Daten. Daher wird im Diagramm gestrichelt auch die aus den GPS-Koordinaten berechnete Geschwindigkeit gezeigt, aber nicht für die Berechnung verwendet. (Wenn kein Geschwindigkeitssensor vorhanden ist, stammen beide Werte aus dem GPS, sind aber möglicherweise trotzdem unterschiedlich ermittelt.) Wo beide Kurven stark divergieren, sind die Berechnungen vermutlich falsch.
Höhe: Höhendaten sind oft lückenhaft oder ungenau, werden aber für die Berechnung von Luftdichte und Steigung benötigt. (Hier sind vor allem die Veränderungen interessant; die absolute Höhe ist oft recht ungenau, aber auch nicht so wichtig.) Wenn ein Datenwert fehlt, wird der letzte vorhandene Datenwert genommen. Wenn Datenwerte am Anfang fehlen, dann wird der erste vorhandene Datenwert genommen. Falls überhaupt keine Höhendaten vorhanden sind, wird eine Höhe von 250 m angenommen. Das bedeutet, wenn Datenlücken ersetzt werden, ist die Steigung dann immer null.
Temperatur: Diese wird ebenfalls aus den Eingabedaten entnommen, und Datenlücken werden auf gleiche Weise wie bei der Höhe gefüllt – entweder der letzte vorhandene oder der erste vorhandene Wert. Wenn überhaupt keine Temperatur angegeben ist, dann wird 20 °C angenommen.
Alle anderen Datenwerte (Geschwindigkeit, Tretleistung, Puls) ändern sich so schnell, dass es keine sinnvolle Voreinstellung bei Datenlücken gibt.