Essen nach Belastung, nicht nach Uhr — so funktioniert Smart Fueling in WattLog
Jeder Radfahrer kennt den Rat: alle 45 Minuten essen. Jeder, der schon einmal eine harte Intervalleinheit gefahren ist, weiß auch, dass er nicht stimmt. Ein 60-minütiges Schwellentraining verbrennt mehr Kohlenhydrate als eine 90-minütige Erholungsrunde, und ein Timer kann beides nicht auseinanderhalten. Der Moment, in dem du merkst, dass du hättest essen sollen, ist der Moment, in dem es zu spät ist: Du steckst mitten im Intervall, die Hände am Lenker, und der Hungerast kommt zwanzig Minuten später.
Ich entwickle WattLog allein: eine Trainingsplattform mit Live-Sensordaten, strukturierten Workouts, die einen Smart Trainer im ERG-Modus steuern, und simulierten GPX-Strecken. Es gab bereits die Einstellung „erinnere mich alle X Minuten ans Essen“, und trotzdem habe ich immer wieder vergessen zu essen — weil die Erinnerung nichts damit zu tun hatte, wie hart ich fuhr. So habe ich sie durch etwas ersetzt, das genau das berücksichtigt.
Das Signal liegt schon auf der Leitung
Ein Powermeter oder Smart Trainer meldet die Watt mehrmals pro Sekunde. Leistung mal Zeit ist mechanische Arbeit in Kilojoule, und im Radsport gibt es einen praktischen Zufall. Trainierte Radfahrer wandeln Nahrungsenergie mit einem Wirkungsgrad von etwa 18–26 % in Arbeit an den Pedalen um [1], und eine kcal sind 4,184 kJ. Bei rund 24 % Wirkungsgrad heben sich beide Faktoren auf, also kostet 1 kJ Arbeit an den Pedalen etwa 1 kcal Nahrungsenergie. Das ist eine Näherung: Der Wirkungsgrad unterscheidet sich zwischen Fahrern und steigt mit der Leistung [1, 2], der tatsächliche Faktor verschiebt sich also etwas in die eine oder andere Richtung. Die Rechnung im Detail steht im Beitrag Kilojoule auf dem Trainer verbrennen. In meiner Analyse nach der Fahrt war das schon drin. Nur während der Fahrt stand es nicht zur Verfügung.
Der Kern der Engine ist deshalb ein Akkumulator im serverseitigen Session-Manager. Jeder Leistungswert addiert die seit dem letzten Wert geleistete Arbeit (Trapezintegration), wobei die Lücke zwischen zwei Werten auf 5 Sekunden begrenzt ist, damit ein Bluetooth-Aussetzer keine Energie erfindet. Überschreitet die Summe eine Schwelle (standardmäßig 400 kJ, pro Athlet einstellbar), bekommt der Fahrer die Aufforderung zu essen. Der Zustand liegt in denselben Redis-gestützten Session-Metadaten wie der Rest einer Live-Fahrt. Ein Neuladen der Seite oder ein Wechsel auf einen anderen API-Worker macht also dort weiter, wo es aufgehört hat, statt den Balken auf null zu setzen.
Diese erste Version war schnell fertig und schon besser als der Timer. Sie lag aber immer noch auf interessante Weise daneben.
Nicht jedes Kilojoule ist gleich
400 kJ im lockeren Grundlagentempo und 400 kJ an der Schwelle sind dieselbe Arbeit, kosten aber nicht denselben Treibstoff. Die Sportphysiologie nennt das „Crossover“: Bei niedriger Intensität ist Fett der Hauptbrennstoff, mit steigender Intensität verschiebt sich der Körper in Richtung Kohlenhydrate, die bei harten Belastungen dominieren [3]. Isotopen-Tracer-Studien an Radfahrern zeigen dasselbe Bild im Detail: Die Oxidation von Muskelglykogen und Blutglukose steigt mit jeder Intensitätsstufe, während die Fettoxidation bei mittlerer Leistung ihren Höhepunkt erreicht und dann sinkt [4, 5]. Ein Balken, der rohe Kilojoule zählt, warnt an harten Tagen zu spät und nervt an lockeren.
Die Lösung ist eine Kurve: der Kohlenhydratanteil an der Energie als Funktion der Intensität relativ zur FTP. Ich verwende eine stückweise lineare Kurve mit etwa 45 % bei 55 % der FTP, 65 % bei 75 %, 80 % bei 95 % und über 90 % oberhalb der FTP. Um klar zu sagen, woher diese Zahlen stammen: Sie sind meine eigene Näherung, geformt nach Richtung und ungefährer Größenordnung der genannten Studien, keine Werte aus einer einzelnen Arbeit. Diese Studien messen die Intensität relativ zur VO2max oder zur Maximalleistung, nicht zur FTP — die Zuordnung ist also eine technische Schätzung. Die Kilojoule jedes Messwerts werden dann mit diesem Anteil relativ zu einer moderaten Referenzbelastung gewichtet:
Treibstoffbalken += kJ_Zuwachs × Gewicht
Zwei Eigenschaften sind dabei wichtig. Erstens ist das Gewicht bei moderater Belastung genau 1, die Schwelle behält also ihre Bedeutung und bestehende Einstellungen ändern ihr Verhalten nicht stillschweigend. Zweitens lässt sich ohne FTP die Intensität nicht beurteilen, deshalb fällt der Balken auf ungewichtete Kilojoule zurück, statt zu raten. In der Praxis füllt eine Fahrt bei 96 % der FTP den Balken jetzt mehr als 30 % schneller als dieselbe Arbeit bei 56 %. Wer seine FTP nicht kennt, beginnt am besten mit einem FTP-Test.
Der Balken zeigt Gramm, nicht Kilojoule. Fahrer denken in „ein Gel“ oder „etwa 30 g“, nicht in kJ. Die Schwelle wird daher als Kohlenhydratportion angezeigt (400 kJ sind unter denselben Annahmen etwa 30 g), und die Anzeige während der Fahrt lautet „18 / 30 g“.
Die Details, die es mitten im Intervall brauchbar machen
Eine korrekte Zahl reicht nicht, wenn der Hinweis im falschen Moment kommt. Der größte Teil der Arbeit floss in die Frage, wann sich die App meldet:
- Keine harte Belastung unterbrechen. Wird die Schwelle überschritten, während der Fahrer über 105 % der FTP fährt, wird der Hinweis zurückgehalten und erst angezeigt, wenn die Leistung sinkt. Das ist ein Zustandsflag, das beim Überschreiten gesetzt wird, keine Live-Prüfung
Leistung > 1,05 × FTP— die naive Version ließ das Banner bei jedem Pedaltritt eines harten Intervalls flackern. - Vor der Schwelle warnen, nicht erst an ihr. Bei 75 % wird der Balken bernsteinfarben und eine Nachricht sagt, dass man Essen bereitlegen soll; bei 100 % heißt es „jetzt essen“, und der Hinweis wiederholt sich alle 100 kJ, solange er ignoriert wird. Die Hinweise laufen über denselben Kanal wie die Nachrichten des Trainers: das Nachrichtenpanel, ein Toast auf dem Handy, ein Ton und eine Sprachansage, wenn Sprachhinweise aktiviert sind.
- Auf Strecken vorausschauen. Auf einer simulierten GPX-Strecke scannt die Engine beim Start das Höhenprofil und markiert einen Punkt 0,5 km vor jedem Anstieg mit 4 % oder mehr, der auf mindestens einen Kilometer flache Straße folgt. Das ist der letzte ruhige Moment zum Essen, bevor es bergauf geht.
- Still sein, wo man nicht essen kann. Bei Abfahrten steiler als −5 % und Anstiegen steiler als 12 % werden alle Essenshinweise zurückgehalten. Wer eine Abfahrt hinunterschießt, braucht kein Pop-up.
- Ein Tipp, beliebiges Essen. Der Button hieß anfangs „+Gel“, als wären Gels die einzig richtige Antwort. Jetzt heißt er „+Portion“ und zieht eine Portion vom Defizit ab, statt es auf null zu setzen. Wer zwei Portionen im Rückstand ist und einmal isst, schuldet also noch eine.
Die Gelände-Vorausschau hat den Fehler hervorgebracht, über dessen Entdeckung durch die Tests ich mich am meisten freue. Ein Wegpunkt, der innerhalb einer Ruhezone passiert wurde, wurde übersprungen, blieb aber in der Liste. Da die Auslösebedingung „zwischen vorheriger und aktueller Position passiert“ lautete, konnte er nie wieder feuern: Der Hinweis ging still verloren. Die Korrektur löst einen ausstehenden Wegpunkt im ersten Takt nach dem Ende der Ruhezone aus und fasst mehrere passierte Wegpunkte zu einem Hinweis zusammen, damit kein veralteter später allein auftaucht.
Vor der Fahrt: was einpacken
Die andere Hälfte der Verpflegung passiert zu Hause. Vor jeder Einheit, die länger als eine Stunde dauert, zeigt die Vorbereitungsseite jetzt eine Karte mit den Kohlenhydraten und der Flüssigkeit, die man mitnehmen sollte — ohne einen Trainer zu verbinden oder etwas zu starten.
Bei einem strukturierten Workout kommt die Energie direkt aus dem Plan: Zielwatt jedes Abschnitts mal seine Dauer ergibt die exakten Kilojoule, die Normalized Power liefert die Intensität, und dieselbe Kohlenhydratkurve wird auf jeden Abschnitt angewendet. Ein Workout aus harten Antritten und lockeren Pausen braucht mehr Kohlenhydrate als eine gleichmäßige Fahrt mit derselben Durchschnittsleistung, und die Schätzung bildet das ab.
Für eine GPX-Strecke gibt es keinen Plan, also nutze ich das physikalische Modell, auf dem die Trainersimulation ohnehin beruht: Für jeden 50-m-Abschnitt wird die Leistung berechnet, die nötig ist, um die angenommene Geschwindigkeit gegen Schwerkraft, Rollwiderstand und Luftwiderstand zu halten — mit Fahrergewicht, Radgewicht, CdA, Crr und Luftdichte. Solche Modelle sind gut validiert: In Straßentests sagte eines die gemessene Leistung mit R² = 0,97 und einem Standardfehler von 2,7 W voraus [6]. Abfahrten ohne Treten zählen als null Arbeit. Eine hügelige Strecke fällt so zu Recht teurer aus als eine flache gleicher Länge.
Aus den Zahlen wird dann eine Packliste: etwa die Hälfte der verbrannten Kohlenhydrate, begrenzt auf das, was der Darm aufnehmen kann, und als Spanne angezeigt, weil eine einzelne Zahl falsche Genauigkeit suggerieren würde. Die Obergrenzen folgen aktuellen Empfehlungen zur Kohlenhydrataufnahme während der Belastung: Eine einzelne Kohlenhydratquelle kann bis etwa 60 g/h oxidiert werden, und erst längere Belastungen rechtfertigen etwa 90 g/h, mit mehreren transportablen Kohlenhydraten wie Glukose plus Fruktose [7]. Dieselben Empfehlungen sagen, dass die Zufuhr bei niedriger absoluter Intensität reduziert werden sollte — genau das macht die Intensitätskurve. Der Faktor „die Hälfte dessen, was du verbrennst“ ist meine eigene Wahl, keine Zahl aus der Literatur.
Für die Flüssigkeit wird die Schweißraten-Tabelle aus der Auswertung nach der Fahrt wiederverwendet, begrenzt auf 0,8 l/h. Hier ist die ehrlichste Quelle ein Vorbehalt: Schweißraten unterscheiden sich stark zwischen Menschen, und das Positionspapier zum Flüssigkeitsersatz empfiehlt, die eigene durch Wiegen vor und nach einer Fahrt zu bestimmen, mit dem Ziel, den Flüssigkeitsverlust unter etwa 2 % des Körpergewichts zu halten [8]. Die Tabelle ist ein Ausgangspunkt, nicht deine Zahl. Mehr dazu im Beitrag über Flüssigkeit, Elektrolyte und Salz.
Diese Wiederverwendung war Absicht. Die erste Version der Karte vor der Fahrt rechnete pauschal mit 500 ml pro Stunde, während die Auswertung nach der Fahrt für eine moderate Indoor-Einheit 1,4 l/h Schweiß annahm. Der Fahrer hätte über dieselbe Fahrt zwei widersprüchliche Dinge gehört. Jetzt gibt es eine Kohlenhydratkurve und einen Satz Schweißraten, gemeinsam genutzt vom Balken während der Fahrt, dem Plan davor und der Auswertung danach.
Ein Fehler, den die Funktion woanders gefunden hat
Beim Testen der Streckenkarte bekam ich ein verdächtiges Ergebnis: 2,7 l Flüssigkeit für eine Strecke, die laut Seite 1 h 41 min dauern sollte. Das sind 1,6 l/h, doppelt so viel wie die Obergrenze. Die Flüssigkeitsrechnung stimmte. Falsch war die Dauer, und zwar nicht in meinem neuen Code: Vier Streckenansichten schätzten die Zeit als Abschnitte × 5 Sekunden, aber die Abschnitte sind 50 m lang — die Formel stimmt also nur bei 36 km/h. Bei den standardmäßigen 18 km/h war jede Streckenzeit in der App um die Hälfte zu niedrig. Das Backend liefert die Zeit jetzt zusammen mit dem Verpflegungsplan, und alle Streckenansichten nutzen eine gemeinsame Funktion „Distanz durch Geschwindigkeit“.
Was es nicht kann
Das ist eine Orientierung, keine Messung, und der Artikel wäre ohne die Einschränkungen unehrlich:
- Die Kohlenhydratkurve nähert durchschnittliches Verhalten an, und Menschen unterscheiden sich stark. In einer Studie mit 300 Personen erklärten Geschlecht, Fitness und Aktivitätsniveau zusammen nur 12 % der Unterschiede in der Fettoxidation während der Belastung; der Rest blieb unerklärt [9]. Die App weist bei jeder Schätzung darauf hin, dass es Bevölkerungsdurchschnitte sind.
- Das Streckenmodell geht von konstanter Geschwindigkeit aus. Echte Fahrer werden am Berg langsamer, das Modell überschätzt also vermutlich die nötige Leistung auf steilen Abschnitten.
- Die Live-Gewichtung braucht eine FTP und eine Leistungsquelle. Ohne sie zählt der Balken rohe Arbeit; eine Herzfrequenz-Alternative für den Live-Balken gibt es noch nicht.
- Ich habe die Schätzungen noch nicht mit einer echten langen Fahrt und einer Waage verglichen. Das Verhalten ist durch Unit-Tests festgelegt, nicht durch Felddaten.
Die gesamte Engine lässt sich in den Einstellungen abschalten. Solange sie aktiv ist, ersetzt sie die alte Essenserinnerung in festen Abständen, statt mit ihr zu konkurrieren.
Was ich daraus mitnehme
Die Funktion, die nach „zeige bei 400 kJ einen Hinweis“ aussah, wurde zu drei Modellen, die übereinstimmen müssen: ein Live-Akkumulator, ein Plan vor der Fahrt und eine Analyse danach. Die eigentliche Arbeit war nicht die Formel, sondern dafür zu sorgen, dass alle drei dem Fahrer dieselbe Geschichte erzählen — und den richtigen Moment zum Sprechen zu wählen. Die beste Entscheidung war, keinem Bildschirm eigene Konstanten zu erlauben. Die nützlichste Gewohnheit war, eine Zahl, die seltsam aussieht — wie 2,7 l in unter zwei Stunden —, als Fehlerbericht zu behandeln und nicht als Rundungsproblem.
Quellen
- Coyle EF, Sidossis LS, Horowitz JF, Beltz JD. Cycling efficiency is related to the percentage of type I muscle fibers. Med Sci Sports Exerc. 1992;24(7):782–788. PubMed 1501563
- Ettema G, Lorås HW. Efficiency in cycling: a review. Eur J Appl Physiol. 2009;106(1):1–14. doi:10.1007/s00421-009-1008-7
- Brooks GA, Mercier J. Balance of carbohydrate and lipid utilization during exercise: the "crossover" concept. J Appl Physiol. 1994;76(6):2253–2261. doi:10.1152/jappl.1994.76.6.2253
- Romijn JA, Coyle EF, Sidossis LS, et al. Regulation of endogenous fat and carbohydrate metabolism in relation to exercise intensity and duration. Am J Physiol. 1993;265(3):E380–E391. doi:10.1152/ajpendo.1993.265.3.E380
- van Loon LJ, Greenhaff PL, Constantin-Teodosiu D, Saris WH, Wagenmakers AJ. The effects of increasing exercise intensity on muscle fuel utilisation in humans. J Physiol. 2001;536(1):295–304. doi:10.1111/j.1469-7793.2001.00295.x
- Martin JC, Milliken DL, Cobb JE, McFadden KL, Coggan AR. Validation of a mathematical model for road cycling power. J Appl Biomech. 1998;14(3):276–291. doi:10.1123/jab.14.3.276
- Jeukendrup A. A step towards personalized sports nutrition: carbohydrate intake during exercise. Sports Med. 2014;44(Suppl 1):S25–S33. doi:10.1007/s40279-014-0148-z (frei zugänglich: PMC4008807)
- American College of Sports Medicine; Sawka MN, Burke LM, Eichner ER, et al. Exercise and fluid replacement. Med Sci Sports Exerc. 2007;39(2):377–390. doi:10.1249/mss.0b013e31802ca597
- Venables MC, Achten J, Jeukendrup AE. Determinants of fat oxidation during exercise in healthy men and women: a cross-sectional study. J Appl Physiol. 2005;98(1):160–167. doi:10.1152/japplphysiol.00662.2003
Trainiere smarter mit WattLog.pro
WattLog.pro sammelt Daten von deinem Trainer und zeigt, was wirklich mit deiner Form passiert.
WattLog.pro kostenlos testen →