Milinganyo ya Nguvu ya Baiskeli

Msingi wa Kihisabati wa Vipimo vya Bike Analytics

Mwongozo wa Utekelezaji

Ukurasa huu unatoa milinganyo ya kunakili na kubandika pamoja na njia za ukokotoaji wa hatua kwa hatua kwa vipimo vyote vya Bike Analytics. Tumia hizi kwa utekelezaji maalum, uhakiki, au uelewa wa ndani zaidi wa mafunzo kulingana na nguvu.

⚠️ Vidokezo vya Utekelezaji

  • Thamani zote za nguvu ziko katika wati (W), muda katika sekunde isipokuwa inapoelekezwa vinginevyo
  • FTP na CP ni vizingiti maalum kwa kila mtu—hakuna thamani ya ulimwengu mzima
  • Daima hakiki kama data zinazoingizwa ziko katika viwango vya kawaida (wati 0-2000 ni kawaida)
  • Shughulikia hali zisizo za kawaida (kugawanya kwa sifuri, nguvu hasi)
  • Data ya nguvu inahitaji vipindi vya kurekodi vya sekunde 1 kwa usahihi

Vipimo vya Msingi vya Utendaji

1. Alama ya Mkazo wa Mafunzo (Training Stress Score - TSS)

Mlinganyo:

TSS = (duration_seconds × NP × IF) / (FTP × 3600) × 100
ambapo IF = NP / FTP

Mfano wa Ukokotoaji:

Hali: Safari ya saa 2, NP = 235W, FTP = 250W

  1. Kokotoa IF: IF = 235 / 250 = 0.94
  2. Muda katika sekunde: saa 2 × 3600 = sekunde 7200
  3. TSS = (7200 × 235 × 0.94) / (250 × 3600) × 100
  4. TSS = 1,590,720 / 900,000 × 100 = 176.7 TSS

Ufafanuzi: Safari ngumu ya mafunzo (>150 TSS), tarajia siku 2-3 za kupona

Utekelezaji wa JavaScript:

function calculateTSS(durationSeconds, normalizedPower, ftp) {
  const intensityFactor = normalizedPower / ftp;
  const tss = (durationSeconds * normalizedPower * intensityFactor) / (ftp * 3600) * 100;
  return Math.round(tss);
}

// Mfano wa utumiaji:
const tss = calculateTSS(7200, 235, 250);
// Inarudisha: 177

2. Nguvu Iliyorekebishwa (Normalized Power - NP)

Algorithm (wastani wa mzunguko wa sekunde 30):

1. Kokotoa wastani wa mzunguko wa sekunde 30 wa nguvu kwa safari nzima
2. Pandisha kila thamani ya sekunde 30 kwa kipeuo cha 4 (power of 4)
3. Chukua wastani wa thamani hizi zote za ^4
4. Tafuta kipeuo cha nne cha wastani huo
NP = ⁴√(wastani wa [30s_avg^4])

Kwa nini Kipeuo cha 4?

Uhusiano wa kipeuo cha nne (quartic) unaonyesha gharama isiyo ya mshazari ya kifiziolojia ya juhudi zinazobadilika. Safari yenye surges na mapumziko inagharimu nishati zaidi kuliko nguvu thabiti katika wastani ule ule.

Mfano:

  • Safari thabiti: 200W kwa saa 1 → NP = 200W, Wastani = 200W
  • Safari inayobadilika: Inayopishana kati ya 300W/100W → Wastani = 200W, NP = 225W

Wastani wa nguvu ni ule ule, lakini safari inayobadilika ina NP ya juu kwa 12% kutokana na gharama ya kifiziolojia ya surges

Utekelezaji wa JavaScript:

function calculateNormalizedPower(powerData) {
  // powerData ni mfululizo (array) wa thamani za nguvu za kila sekunde

  // Hatua ya 1: Kokotoa wastani wa mzunguko wa sekunde 30
  const rollingAvgs = [];
  for (let i = 29; i < powerData.length; i++) {
    const window = powerData.slice(i - 29, i + 1);
    const avg = window.reduce((sum, p) => sum + p, 0) / 30;
    rollingAvgs.push(avg);
  }

  // Hatua ya 2: Pandisha kwa kipeuo cha 4
  const powered = rollingAvgs.map(p => Math.pow(p, 4));

  // Hatua ya 3: Wastani wa vipeuo vya 4
  const avgPowered = powered.reduce((sum, p) => sum + p, 0) / powered.length;

  // Hatua ya 4: Tafuta kipeuo cha nne
  const np = Math.pow(avgPowered, 0.25);

  return Math.round(np);
}

// Mfano wa utumiaji:
const powerData = [/* array ya nguvu ya kila sekunde */];
const np = calculateNormalizedPower(powerData);
// Inarudisha: NP katika wati

3. Kigezo cha Ukubwa (Intensity Factor - IF)

Mlinganyo:

IF = NP / FTP

Mazingira ya Ufafanuzi:

Kiwango cha IF Kiwango cha Juhudi Mfano wa Mazoezi
< 0.75 Kupona / Rahisi Safari ya urejeshaji amilifu, Zone 1-2
0.75 - 0.85 Uvumilivu (Endurance) Safari ndefu thabiti, msingi wa aerobic
0.85 - 0.95 Tempo Mafunzo ya sweet spot, vipindi vya tempo
0.95 - 1.05 Kizingiti (Threshold) Vipindi vya FTP, juhudi za mbio dhidi ya saa
1.05 - 1.15 VO₂max Vipindi vya dakika 5, mbio za criterium
> 1.15 Anaerobic Sprints fupi, mashambulizi, surges za MTB

Mfano wa Ukokotoaji:

Hali: NP = 235W, FTP = 250W

IF = 235 / 250 = 0.94

Ufafanuzi: Juhudi kubwa ya tempo / karibu na kizingiti, inayoweza kudumishwa kwa saa 2-3

function calculateIF(normalizedPower, ftp) {
  return (normalizedPower / ftp).toFixed(2);
}

// Mfano:
const if_value = calculateIF(235, 250);
// Inarudisha: 0.94

4. Kigezo cha Mabadiliko (Variability Index - VI)

Mlinganyo:

VI = NP / Wastani wa Nguvu

Ufafanuzi kwa kila Nyanja:

Nyanja VI ya Kawaida Maana
Road TT / Juhudi Thabiti 1.00 - 1.05 Nguvu thabiti sana, mpango bora wa kasi
Road Racing 1.05 - 1.10 Baadhi ya surges, kwa ujumla thabiti
Criterium 1.10 - 1.20 Kuongeza kasi na mashambulizi ya mara kwa mara
Mountain Bike XC 1.15 - 1.30+ Inabadilika sana, surges za mara kwa mara

Mfano wa Ukokotoaji:

Mbio za Barabarani: NP = 240W, Wastani wa Nguvu = 230W

VI = 240 / 230 = 1.04 (kasi thabiti)

Mbio za MTB: NP = 285W, Wastani wa Nguvu = 235W

VI = 285 / 235 = 1.21 (inabadilika sana, juhudi za milipuko)

function calculateVI(normalizedPower, averagePower) {
  return (normalizedPower / averagePower).toFixed(2);
}

// Mfano:
const vi_road = calculateVI(240, 230);  // Inarudisha: 1.04
const vi_mtb = calculateVI(285, 235);   // Inarudisha: 1.21

Nguvu Muhimu na W' (Uwezo wa Anaerobic)

5. Nguvu Muhimu (Critical Power - CP) - Linear Model

Mlinganyo:

Muda = W' / (Nguvu - CP)
Upangaji upya: Nguvu × Muda = CP × Muda + W'

Ukokotoaji kutoka kwa Juhudi Nyingi:

Inahitaji juhudi 2-4 za kiwango cha juu katika muda tofauti (mfano, dakika 3, 5, 12, na 20)

Data ya Mfano:

Muda Nguvu (W) Jumla ya Kazi (kJ)
dakika 3 (180s) 400W 72 kJ
dakika 5 (300s) 365W 109.5 kJ
dakika 12 (720s) 310W 223.2 kJ
dakika 20 (1200s) 285W 342 kJ

Ukitumia linear regression (Kazi = CP × Muda + W'):

  • CP = 270W (mwinuko wa mstari wa regression)
  • W' = 18.5 kJ (y-intercept)

Utekelezaji wa JavaScript:

function calculateCP_Linear(efforts) {
  // efforts = [{duration: seconds, power: watts}, ...]

  const times = efforts.map(e => e.duration);
  const work = efforts.map(e => e.power * e.duration / 1000); // kJ

  // Linear regression: work = CP * time + W'
  const n = efforts.length;
  const sumT = times.reduce((a, b) => a + b, 0);
  const sumW = work.reduce((a, b) => a + b, 0);
  const sumTW = times.reduce((sum, t, i) => sum + t * work[i], 0);
  const sumTT = times.reduce((sum, t) => sum + t * t, 0);

  const CP = (n * sumTW - sumT * sumW) / (n * sumTT - sumT * sumT);
  const Wprime = (sumW - CP * sumT) / n;

  return {
    CP: Math.round(CP * 10) / 10,      // watts
    Wprime: Math.round(Wprime * 10) / 10  // kJ
  };
}

// Mfano wa utumiaji:
const efforts = [
  {duration: 180, power: 400},
  {duration: 300, power: 365},
  {duration: 720, power: 310},
  {duration: 1200, power: 285}
];

const result = calculateCP_Linear(efforts);
// Inarudisha: { CP: 270.0, Wprime: 18.5 }

6. Msawazo wa W' (W'bal) - Differential Equation Model

Milinganyo:

Upunguzaji (wakati P > CP):
W'exp(t) = ∫(P(t) - CP) dt
Urejeshaji (wakati P < CP):
W'rec(t) = W' × (1 - e^(-t/τ))
ambapo τ = 546 × e^(-0.01 × ΔCP) + 316
na ΔCP = (CP - P(t))

Mfano wa Uhalisia:

Aina ya Mwendeshaji: CP = 270W, W' = 18.5 kJ

Hali ya 1 - Shambulizi Kali:

  • Mwendeshaji anaongeza kasi hadi 400W kwa sekunde 30
  • Upunguzaji wa W': (400 - 270) × 30 = 3,900 J = 3.9 kJ
  • W'bal iliyobaki: 18.5 - 3.9 = 14.6 kJ

Hali ya 2 - Urejeshaji:

  • Baada ya shambulizi, anashuka hadi 200W (70W chini ya CP) kwa dakika 2
  • ΔCP = 270 - 200 = 70W
  • τ = 546 × e^(-0.01 × 70) + 316 = sekunde 588
  • Urejeshaji ndani ya 120s: 18.5 × (1 - e^(-120/588)) = 3.5 kJ zimejawa
  • W'bal mpya: 14.6 + 3.5 = 18.1 kJ

Utekelezaji wa JavaScript:

function calculateWbalance(powerData, CP, Wprime) {
  // powerData = array ya {time: seconds, power: watts}
  let wbal = Wprime * 1000; // Badilisha kuwa joules
  const wbalHistory = [];

  for (let i = 1; i < powerData.length; i++) {
    const dt = powerData[i].time - powerData[i-1].time;
    const power = powerData[i].power;

    if (power > CP) {
      // Upunguzaji juu ya CP
      const expenditure = (power - CP) * dt;
      wbal -= expenditure;
    } else {
      // Urejeshaji chini ya CP
      const deltaCP = CP - power;
      const tau = 546 * Math.exp(-0.01 * deltaCP) + 316;
      const recovery = (Wprime * 1000 - wbal) * (1 - Math.exp(-dt / tau));
      wbal += recovery;
    }

    // Hakikisha W'bal haizidi urefu wa betri au kwenda sifuri
    wbal = Math.max(0, Math.min(wbal, Wprime * 1000));

    wbalHistory.push({
      time: powerData[i].time,
      wbal: wbal / 1000, // kJ
      percent: (wbal / (Wprime * 1000)) * 100
    });
  }

  return wbalHistory;
}

// Mfano wa utumiaji:
const powerData = [
  {time: 0, power: 200},
  {time: 1, power: 210},
  // ... data nyingine za safari
];

const wbalHistory = calculateWbalance(powerData, 270, 18.5);
// Inarudisha array ya thamani za W'bal kwa muda wote

Chati ya Usimamizi wa Utendaji (Performance Management Chart - PMC)

7. Ukokotoaji wa CTL, ATL, TSB

Milinganyo (Exponentially Weighted Moving Averages):

CTL_today = CTL_yesterday + (TSS_today - CTL_yesterday) / 42
ATL_today = ATL_yesterday + (TSS_today - ATL_yesterday) / 7
TSB_today = CTL_yesterday - ATL_yesterday

Ufafanuzi wa Vipimo:

  • CTL (Chronic Training Load): wastani wa mzunguko wa siku 42 - unawakilisha fitinesi
  • ATL (Acute Training Load): wastani wa mzunguko wa siku 7 - unawakilisha uchovu
  • TSB (Training Stress Balance): Hali (Form) = Fitinesi - Uchovu

Mfano wa Ukokotoaji (Kipindi cha siku 7):

Siku TSS CTL ATL TSB Hali
Jumatatu 100 75.0 80.0 -5.0 Mafunzo
Jumanne 50 74.4 75.7 -1.3 Kupona
Jumatano 120 75.5 82.0 -6.5 Mafunzo Magumu
Alhamisi 0 73.7 70.3 +3.4 Siku ya Mapumziko
Ijumaa 80 73.8 71.7 +2.1 Wastani
Jumamosi 150 75.6 82.9 -7.3 Safari Ndefu
Jumapili 40 74.8 76.8 -2.0 Kupona

Ufafanuzi wa TSB:

Kiwango cha TSB Hali Hatua
< -30 Hatari Kubwa Tahadhari ya mafunzo kupita kiasi - punguza mzigo
-30 hadi -10 Mafunzo Magumu Unajenga fitinesi, fuatilia urejeshaji
-10 hadi +5 Bora (Optimal) Kiwango cha kawaida cha mafunzo
+5 hadi +15 Tayari kwa Mbio Fitinesi ya kilele - shiriki mbio mwishoni mwa wiki
> +25 Kupoteza Fitinesi Fitinesi inashuka - ongeza mzigo

Utekelezaji wa JavaScript:

function calculatePMC(workouts) {
  // workouts = [{date: "YYYY-MM-DD", tss: number}, ...]
  let ctl = 0, atl = 0;
  const results = [];

  workouts.forEach(workout => {
    // Badilisha CTL (siku 42)
    ctl = ctl + (workout.tss - ctl) / 42;

    // Badilisha ATL (siku 7)
    atl = atl + (workout.tss - atl) / 7;

    // Kokotoa TSB (CTL ya jana - ATL ya leo kwa njia ya kawaida)
    const tsb = ctl - atl;

    results.push({
      date: workout.date,
      tss: workout.tss,
      ctl: Math.round(ctl * 10) / 10,
      atl: Math.round(atl * 10) / 10,
      tsb: Math.round(tsb * 10) / 10,
      status: getTSBStatus(tsb)
    });
  });

  return results;
}

function getTSBStatus(tsb) {
  if (tsb < -30) return "Hatari Kubwa";
  if (tsb < -10) return "Mafunzo Magumu";
  if (tsb < 5) return "Bora";
  if (tsb < 15) return "Tayari kwa Mbio";
  return "Kupoteza Fitinesi";
}

// Mfano wa utumiaji:
const workouts = [
  {date: "2025-01-01", tss: 100},
  {date: "2025-01-02", tss: 50},
  {date: "2025-01-03", tss: 120},
  // ... mazoezi mengine
];

const pmc = calculatePMC(workouts);
// Inarudisha array yenye CTL, ATL, TSB ya kila siku

Nguvu dhidi ya Uzito na Vipimo vya Kupanda

8. Uwiano wa Nguvu dhidi ya Uzito (Power-to-Weight Ratio)

Mlinganyo:

W/kg = Nguvu (wati) / Uzito wa Mwili (kg)

Viwango vya FTP W/kg:

Kiwango W/kg Wanaume W/kg Wanawake Aina
Burudani 2.5 - 3.5 2.0 - 3.0 Mchezaji wa fitinesi
Ushindani 3.5 - 4.5 3.0 - 4.0 Cat 3-4, wa miaka fulani
Uzoefu 4.5 - 5.5 4.0 - 5.0 Cat 1-2, amateur mwenye nguvu
Elite Amateur 5.5 - 6.0 5.0 - 5.5 Kiwango cha kitaifa
Mtaalamu (Pro) 6.0 - 7.0+ 5.5 - 6.5+ World Tour, Grand Tour GC

Mfano wa Ukokotoaji:

Hali: Mwendeshaji mwenye FTP = 275W, uzito = 70kg

W/kg = 275 / 70 = 3.93 W/kg

Ufafanuzi: Kiwango cha ushindani, unaweza kushindana katika mbio za vilima

function calculateWattsPerKg(power, bodyMassKg) {
  return (power / bodyMassKg).toFixed(2);
}

// Mfano:
const wpkg = calculateWattsPerKg(275, 70);
// Inarudisha: 3.93

9. VAM (Velocità Ascensionale Media)

Mlinganyo:

VAM (m/h) = Kimo Ulizopanda (m) / Muda (saa)

Viwango vya VAM:

VAM (m/h) Kiwango Mfano
600 - 900 Burudani Mwanachama wa klabu kwenye mlima wa karibu
900 - 1200 Ushindani Amateur mzuri kwenye Alpe d'Huez
1200 - 1500 Elite Amateur Mpanda milima wa kiwango cha kitaifa
1500 - 1800 Mtaalamu World Tour domestique
> 1800 Mshindi wa Grand Tour Pogačar, Vingegaard kwenye milima mikuu

Mfano wa Ukokotoaji:

Hali: Kupanda mlima wa Alpe d'Huez

  • Kimo (Elevation gain): mita 1100
  • Muda: dakika 55 = saa 0.917
  • VAM = 1100 / 0.917 = 1200 m/h

Ufafanuzi: Utendaji wa kiwango cha ushindani

function calculateVAM(elevationGainMeters, timeMinutes) {
  const hours = timeMinutes / 60;
  return Math.round(elevationGainMeters / hours);
}

// Mfano:
const vam = calculateVAM(1100, 55);
// Inarudisha: 1200 m/h

10. Makadirio ya VAM kwenda W/kg

Mlinganyo:

W/kg ≈ VAM (m/h) / 100 / (Gradient% + 3)

Mfano wa Ukokotoaji:

Hali: Kupanda mlima wenye mwinuko wa wastani wa 8%, VAM = 1200 m/h

W/kg = 1200 / 100 / (8 + 3)

W/kg = 12 / 11 = 4.36 W/kg

Jaribio la ziada: Kwa mwendeshaji wa 70kg → 305W nguvu inayodumishwa mlimani

function estimateWkgFromVAM(vam, gradientPercent) {
  return (vam / 100 / (gradientPercent + 3)).toFixed(2);
}

// Mfano:
const wkg = estimateWkgFromVAM(1200, 8);
// Inarudisha: 4.36

Mlinganyo wa Nguvu ya Kiaisia (Aerodynamic)

11. Mahitaji ya Jumla ya Nguvu

Mlinganyo Kamili:

P_total = P_aero + P_gravity + P_rolling + P_kinetic

Milinganyo ya Vipengele:

Upinzani wa Hewa (Aerodynamic Drag):
P_aero = CdA × 0.5 × ρ × V³
Nguvu ya Mvutano (Kupanda):
P_gravity = m × g × sin(θ) × V
Upinzani wa Magurudumu (Rolling Resistance):
P_rolling = Crr × m × g × cos(θ) × V
Nguvu Tulivu (Kuongeza Kasi):
P_kinetic = m × a × V

Vigezo na Thamani Thabiti:

  • CdA = Mgawo wa upinzani × eneo la mbele (m²)
    • Wizara ya barabarani (hoods): 0.35-0.40 m²
    • Drops: 0.32-0.37 m²
    • Mkao wa TT: 0.20-0.25 m²
  • ρ = Msongamano wa hewa (1.225 kg/m³ kwenye usawa wa bahari, 15°C)
  • V = Kasi (m/s)
  • m = Jumla ya uzito (mwendeshaji + baiskeli, kg)
  • g = Mvutano wa ardhi (9.81 m/s²)
  • θ = Pembe ya mwinuko (radians au nyuzi zilizobadilishwa)
  • Crr = Mgawo wa upinzani wa magurudumu (~0.004 kwa matairi mazuri)
  • a = Ongezeko la kasi (m/s²)

Mfano wa Ukokotoaji (Mbio dhidi ya Saa Njia Tambarare):

Hali:

  • Kasi: 40 km/h = 11.11 m/s
  • CdA: 0.22 m² (mkao mzuri wa TT)
  • Jumla ya uzito: 75kg (mwendeshaji) + 8kg (baiskeli) = 83kg
  • Njia tambarare (gradient = 0°)
  • Kasi thabiti (acceleration = 0)

Ukokotoaji:

  1. P_aero = 0.22 × 0.5 × 1.225 × 11.11³ = 185W
  2. P_gravity = 0W (njia tambarare)
  3. P_rolling = 0.004 × 83 × 9.81 × 11.11 = 36W
  4. P_kinetic = 0W (kasi thabiti)
  5. P_total = 185 + 0 + 36 + 0 = 221W

Ufafanuzi: Unahitaji 221W ili kudumisha 40 km/h katika mkao wa TT kwenye njia tambarare

Utekelezaji wa JavaScript:

function calculatePowerRequired(params) {
  const {
    velocityKph,
    CdA = 0.32,              // m²
    rho = 1.225,             // kg/m³
    mass = 83,               // kg (mwendeshaji + baiskeli)
    gradientPercent = 0,     // %
    Crr = 0.004,             // rolling resistance
    accelerationMps2 = 0     // m/s²
  } = params;

  // Badilisha kasi kuwa m/s
  const V = velocityKph / 3.6;

  // Badilisha mwinuko kuwa pembe
  const theta = Math.atan(gradientPercent / 100);

  // Kokotoa kila kipengele
  const P_aero = CdA * 0.5 * rho * Math.pow(V, 3);
  const P_gravity = mass * 9.81 * Math.sin(theta) * V;
  const P_rolling = Crr * mass * 9.81 * Math.cos(theta) * V;
  const P_kinetic = mass * accelerationMps2 * V;

  return {
    total: Math.round(P_aero + P_gravity + P_rolling + P_kinetic),
    aero: Math.round(P_aero),
    gravity: Math.round(P_gravity),
    rolling: Math.round(P_rolling),
    kinetic: Math.round(P_kinetic)
  };
}

// Mfano: TT katika 40 km/h
const power_tt = calculatePowerRequired({
  velocityKph: 40,
  CdA: 0.22,
  mass: 83,
  gradientPercent: 0
});
// Inarudisha: { total: 221, aero: 185, gravity: 0, rolling: 36, kinetic: 0 }

// Mfano: 8% climb katika 15 km/h
const power_climb = calculatePowerRequired({
  velocityKph: 15,
  CdA: 0.38,
  mass: 75,
  gradientPercent: 8
});
// Inarudisha: { total: 265, aero: 27, gravity: 244, rolling: 11, kinetic: 0 }

Zana Saidizi

Zana za Kubadilisha Vipimo

Utekelezaji wa JavaScript:

// Mabadiliko ya Muda
function hoursToSeconds(hours) {
  return hours * 3600;
}

function minutesToSeconds(minutes) {
  return minutes * 60;
}

function secondsToHours(seconds) {
  return seconds / 3600;
}

function formatDuration(seconds) {
  const hours = Math.floor(seconds / 3600);
  const minutes = Math.floor((seconds % 3600) / 60);
  const secs = Math.round(seconds % 60);
  return `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}

// Mabadiliko ya Kasi
function kphToMps(kph) {
  return kph / 3.6;
}

function mpsToKph(mps) {
  return mps * 3.6;
}

// Mabadiliko ya Nishati
function joulesTo kJ(joules) {
  return joules / 1000;
}

function kJToJoules(kJ) {
  return kJ * 1000;
}

function wattsToKJ(watts, durationSeconds) {
  return (watts * durationSeconds) / 1000;
}

// Mifano:
formatDuration(7265);        // Inarudisha: "2:01:05"
kphToMps(40);                // Inarudisha: 11.11 m/s
wattsToKJ(250, 3600);        // Inarudisha: 900 kJ (saa 1 katika 250W)

Rasilimali za Utekelezaji

Milinganyo yote kwenye ukurasa huu iko tayari kutumika na imehakikiwa dhidi ya fasihi ya kisayansi na data halisi za mita za nguvu. Itumie kwa zana zako maalum, uhakiki, au uelewa wa ndani zaidi wa ukokotoaji wa mafunzo kulingana na nguvu.

💡 Miongozo Bora

  • Hakiki data: Angalia kama nguvu ziko katika viwango vya kawaida (0-2000W), muda chanya
  • Shughulikia hali zisizo za kawaida: Kugawanya kwa sifuri, data tupu, kukosekana kwa FTP
  • Sawazisha ipasavyo (Round): CTL/ATL/TSB iwe desimali 1, TSS iwe namba kamili, W/kg iwe desimali 2
  • Hifadhi usahihi: Baki na usahihi kamili kwenye hifadhidata, sawazisha kwa ajili ya kuonyesha tu
  • Manda ya muda: Shughulikia UTC dhidi ya muda wa eneo thabiti kwa uchambuzi wa siku nyingi
  • Urekebishaji wa mita ya nguvu: Wakumbushe watumiaji kufanya zero-offset kabla ya safari
  • Uhakiki wa FTP: Weka alama kwenye thamani za FTP zenye kutiliwa shaka (>500W au <100W kwa watu wazima)
  • Test kikamilifu: Tumia faili za safari zinazojulikana kuwa sahihi ili kuhakiki ukokotoaji wako