Zurück zur Wissensdatenbank

Wissen

Wie OpenSpiro VO2 berechnet (und worauf du achten musst)

Tiefer Einblick für VO2-Analyzer-Nerds: Haldane-Transformation, Wet- vs. Dry-Basis-Bookkeeping, wie OpenSpiro VO2 mit dem OSM1 berechnet — und welche Sensor-Realitäten deine Werte mehr beeinflussen als jede Formel.

Eine VO2-Zahl auf dem Bildschirm sieht trügerisch einfach aus: 3.200 mL/min, 45 mL/kg/min, fertig. In Wahrheit hängt dieser eine Wert an einer Kette von Konventionen und Annahmen, die je nach Gerät, Sensor und Umgebungsbedingungen variieren. Ein falscher Schritt in der Kette und dein VO2 driftet um 20–50 %, ohne dass irgendetwas offensichtlich kaputt aussieht. Dieser Artikel erklärt, was OpenSpiro tatsächlich tut, warum der Sensor entscheidet, welche Konvention die richtige ist, und welche praktischen Realitäten am Ende über vertrauenswürdige Werte entscheiden.

Die Grundgleichung: Haldane-Massenbilanz

VO2 wird nicht direkt gemessen. Was Gas-Analyzer wirklich messen: wieviel Luft aus dir herausgekommen ist (Volumen), und welcher Anteil davon O2 und CO2 war. Um daraus "Milliliter Sauerstoffverbrauch pro Minute" zu machen, musst du wissen, wieviel Luft hineingegangen ist — und dafür gibt es die Haldane-Transformation.

Stickstoff ist metabolisch inert: der Körper produziert ihn weder noch verbraucht er ihn. Der ausgeatmete N2-Fluss entspricht also dem eingeatmeten N2-Fluss. Mit den exspiratorischen Gasfraktionen (FEO2, FECO2) und den bekannten Inspirationswerten (FIO2 ≈ 0,2095, FICO2 ≈ 0,0004) lässt sich das Inspirationsvolumen aus dem Exspirationsvolumen ableiten:

Haldane-Verhältnis = FEN2 / FIN2 = (1 − FEO2 − FECO2) / (1 − FIO2 − FICO2)
VO2  = VE × (FIO2 × Haldane − FEO2)
VCO2 = VE × (FECO2 − FICO2 × Haldane)

Auf dem Papier einfach. Die Probleme fangen bei der Frage an, was VE und die Gasfraktionen physikalisch tatsächlich bedeuten.

STPD, wet vs. dry: das Bookkeeping-Problem

Volumen ist nicht gleich Volumen. Luft bei Körpertemperatur, vollständig wassergesättigt (BTPS), nimmt mehr Raum ein als dieselben Moleküle bei 0 °C, 1013 hPa, trocken (STPD). Damit Stoffwechselraten zwischen Laboren und Bedingungen vergleichbar sind, korrigiert jeder Analyzer Volumen auf STPD. Die Standardkorrektur:

STPD = (P_amb / 1013,25) × (273,15 / T_K) × (1 − PH2O / P_amb)

Die ersten beiden Terme rechnen Temperatur und Druck um. Der letzte Term zieht den Wasserdampf ab — was nur sinnvoll ist, wenn man trockene Moleküle zählen will. Ob der Term anzuwenden ist, hängt davon ab, ob deine O2- und CO2-Sensoren feuchtes oder trockenes Gas sehen:

  • Trocken-Basis-Sensoren (z.B. paramagnetische O2-Zellen mit Sample-Trocknung): die Sensor-FEO2 ist bereits der Anteil im trockenen exspiratorischen Gas. Wende die volle STPD-Korrektur inklusive Wasserdampf-Term an und nutze die Lehrbuch-Haldane-Formel oben.
  • Wet-Basis-Sensoren (die meisten galvanischen O2-Zellen, NDIR-CO2-Sensoren ohne Trocknung): der Sensor liefert den Anteil im feuchten exspiratorischen Gas, in dem Wasserdampf noch Raum einnimmt. Jetzt muss das Bookkeeping konsistent bleiben: alles auf Wet-Basis halten. Das FIO2 der inspirierten Umgebungsluft ist 0,2095 × (1 − PH2O_amb/P_amb), der Haldane-Nenner enthält Wasserdampf explizit, und die STPD-Korrektur am Volumen lässt den Wasserdampf-Term weg (er ist auf der Gas-Seite schon berücksichtigt).

Beide Konventionen sind isoliert physikalisch korrekt. Mischst du sie — eine Lehrbuch-Trockenbasis-Formel auf einen Wet-Sensor angewendet — bläst du VO2 je nach Bedingungen um etwa 5–20 % auf. Der umgekehrte Fehler — Wet-Basis-Bookkeeping auf Anteile, die schon trocken sind — zieht den Wasserdampf doppelt ab und unterschätzt VO2 in ähnlicher Größenordnung. Wasserdampf darf in der Kette genau einmal vorkommen.

Wie OpenSpiro VO2 mit dem OSM1 berechnet

OpenSpiro funktioniert mit dem OSM1, unserem eigenen Analyzer. Sein Gas-Sensor kombiniert einen optischen O2-Sensor mit einem NDIR-CO2-Sensor und liefert Trockengas-Anteile: Die O2- und CO2-Werte sind bereits feuchtekompensiert, also Volumenanteile nach Abzug des Wasserdampfs. Damit ist die Konvention entschieden — die OSM1-Mathematik bleibt durchgehend auf Trocken-Basis. Das aktive Berechnungsmodell ist als Badge neben dem Session-Timer sichtbar und wird mit jeder gespeicherten Session mit eingetragen.

Trocken-Basis-Haldane, nur Exspiration

Der OSM1 nutzt nur das exspiratorische Volumen. Das an der Maske gemessene Inspirationsvolumen wird schon durch kleine Lecks verfälscht, deshalb rekonstruiert OpenSpiro es per Haldane-Transformation gegen trockene Umgebungsluft (FIO2 = 20,95 %, FICO2 = 0,04 %):

FIN2_dry = 1 − 0,2095 − 0,0004 = 0,7901
V_in     = V_out · (1 − FEO2 − FECO2) / FIN2_dry
VO2      = V_in · 0,2095 − V_out · FEO2
VCO2     = V_out · FECO2 − V_in · 0,0004

V_out ist das exspiratorische Volumen, korrigiert auf trockenes STPD.

Volumen-Korrektur auf trockenes STPD

Weil die Gasanteile schon trocken sind, taucht Wasserdampf in der ganzen Kette genau einmal auf: bei der Umrechnung des gemessenen Ausatemvolumens (ATPS) auf trockenes STPD. Das Exhalat gilt dabei als gesättigt bei der gemessenen Gastemperatur:

SVP(T)  = 6,1 · exp(17,27 T / (T + 237,3))                          // hPa, Magnus
V_STPD  = V_ex · (P_amb − SVP(T_gas)) / 1013,25 · 273,15 / (273,15 + T_gas)

Kein Feuchte-Term auf der Gas-Seite, kein feuchtekorrigiertes FIO2 — beides würde den Wasserdampf doppelt zählen.

Sensor-Realitäten (was deine Werte wirklich verschiebt)

Die Mathematik ist der einfache Teil. Sensor-Verhalten, Raumbedingungen und der Sitz der Maske erzeugen weit mehr Varianz als die Wahl der Formel. Ein paar praktische Realitäten:

Sensor-Drift. Galvanische O2-Zellen verlieren langsam Signal, weil ihr Elektrolyt aufgebraucht wird (typische Lebensdauer 1–2 Jahre regulärer Nutzung). NDIR-CO2-Sensoren driften mit Temperatur und Umgebungsdruck. Wenn dein Analyzer Kalibrierung unterstützt, mach sie vor jeder Session — sonst rechne mit einem langsamen Aufwärts-Bias des VO2 über die Sensor-Lebenszeit.

Sensor-Technologien. Es lohnt sich zu wissen, was im gekauften Gerät steckt:

  • O2 — Galvanische Zellen (günstig, drift-anfällig, in den meisten Portables verbaut), paramagnetisch (Lab-Grade, teuer), Zirkonia (schnell, läuft heiß), optisch / Lumineszenz-Quenching (driftfrei, schnelle Antwort, keine Verschleißteile — zunehmend in modernen Lab-Geräten und neueren Portables).
  • CO2 — NDIR (Standard für Portables; schnell, geringer Drift), Severinghaus-Elektroden (nur Lab).
  • Flow — Pneumotachograph (widerstandsbasiert, kalibrierungsempfindlich), Differenzdruck (in Portables verbreitet, sehr sensitiv auf Luftzug), Ultraschall (teuer aber praktisch driftfrei).

Jede Technologie macht Trade-offs zwischen Antwortzeit, Drift und Absolutgenauigkeit. Die Werte auf deinem Bildschirm spiegeln, was im Gerät steckt — Software kann schlechte Sensordaten nicht reparieren.

Luftzug und Luftbewegung. Portable Analyzer sehen Volumen- und Druckänderungen auf Atemzug-Skala. Mach Sessions in einem geschlossenen Innenraum ohne Lüfter oder offene Fenster. Direkter Luftzug auf die Maske erzeugt Phantom-Flow am Sensor und zieht Umgebungsluft am Maskendichtsitz vorbei in das exspiratorische Gas — VO2 driftet dann schon bei mäßigem Cross-Breeze um 5–15 % nach oben. Kompakte portable Analyzer mit Differenzdruck-Flow-Sensoren sind besonders betroffen, weil sie winzige Druckdifferenzen lesen. Wenn du Luft auf deinem Gesicht spürst, kann die Berechnung das nicht mehr ausgleichen.

Feuchtigkeit und Wasserdampf. Ausgeatmete Luft ist bei ~37 °C, ~100 % RH vollständig gesättigt. Umgebungsluft ist meist trockener (20–60 % RH). Wasserdampf nimmt "Platz" weg und verdünnt die gemessenen O2- und CO2-Anteile. Wird die Korrektur falsch gemacht, schwankt VO2 um 5–20 %. Die Berechnung muss das konsistent handhaben — siehe den OSM1-Abschnitt oben.

Fehlende Sensoren. Nicht jeder Analyzer misst jede Größe. Manche liefern nur Umgebungstemperatur und -feuchte, keine Bedingungen des exspiratorischen Gases; dann muss die Berechnung physiologische Schätzungen einsetzen, weil exspiratorisches Gas im Wesentlichen körperwarm und gesättigt ist, egal was kommt. Je näher die Messung am tatsächlichen Ausatemgas sitzt, desto weniger Annahmen braucht die Mathematik.

Masken und Totraum. Die Maske zwischen Gesicht und Analyzer fügt Totraum hinzu — Luft, die rückgeatmet statt erneuert wird. Standard-Mundstücke fügen ~30 mL hinzu; Vollgesichtsmasken 100–250 mL. Mehr Totraum bläht das scheinbare CO2 bei niedriger Ventilation auf und drückt VO2 leicht. Eine gut sitzende Maske ist wichtiger als der Totraum — Lecks sind schlimmer, weil Umgebungsluft unbemerkt eindringt und O2/CO2-Anteile Richtung atmosphärischer Werte zieht, was VO2 in einer Weise aufbläht, die keine Berechnung korrigieren kann.

Kalibrierung — zwei Arten. Span/Zero an Gas-Sensoren — die meisten Geräte kalibrieren beim Start automatisch gegen Umgebungsluft und fixieren die Referenz auf "20,93 % O2, 0,04 % CO2". Wenn die Umgebungsluft das tatsächlich nicht ist, sind deine Werte verschoben. Volumen-Kalibrierung — der Flow-Sensor braucht eine 3-Liter-Kalibrierungspumpe oder eine werkseitige Charakterisierung. Volumen-Fehler skaliert direkt auf VO2: 5 % Volumen-Fehler werden 5 % VO2-Fehler. Ohne saubere Kalibrierung rechne mit einer Tag-zu-Tag-Variabilität von ±5 %. Trends über Wochen sind weiterhin aussagekräftig; absolute Einzel-Session-Zahlen weniger.

Eine Anmerkung zur RER-Glättung

OpenSpiro verzichtet bewusst auf sehr lange RER-Glättungsfenster. Ein Fenster über mehrere hundert Atemzüge ist weit länger als die metabolische RER-Dynamik, die der Wert eigentlich abbilden soll. Bei einem Stufentest würde das angezeigte RER dann minutenlang dem echten Wert hinterherlaufen — lang genug, um die Lactate-Threshold-Inflektion komplett zu verfehlen.

OpenSpiro nutzt einen Median(5) + EMA-Smoother (~30 Sekunden, 5–10 Atemzüge), der transientes Detail erhält und gleichzeitig Single-Breath-Sensorrauschen unterdrückt. Single-Breath-RER kann dadurch bei hochintensiver Belastung kurzzeitig über 1,0 zeigen — das ist erwartet und physiologisch real, kein Artefakt.

Warum die Transparenz wichtig ist

Jede gespeicherte Session in OpenSpiro hält fest, welches Berechnungsmodell ihre Werte produziert hat, und CSV-/JSON-Exporte taggen Modell und OpenSpiro-Version. Wenn du eine Zahl je verteidigen musst — gegenüber einem Trainer, einem Sportwissenschaftler oder deinem zukünftigen Ich in drei Jahren — ist die Mathematik vollständig nachvollziehbar. Die komplette Formel-Referenz steckt in der App im Help-Tab.

Quellen & weiterführende Literatur

  1. New methods for calculating metabolic rate with special reference to protein metabolism — Weir JB de V, J Physiol 1949
  2. Calculation of substrate oxidation rates in vivo from gaseous exchange — Frayn KN, J Appl Physiol 1983
  3. A new method for detecting anaerobic threshold by gas exchange — Beaver, Wasserman, Whipp, J Appl Physiol 1986
  4. Improved Magnus form approximation of saturation vapor pressure — Alduchov & Eskridge, J Appl Meteorol 1996
  5. Standardisation of spirometry — Miller, Hankinson, Brusasco et al., Eur Respir J 2005