साइकलिंग शक्ति सूत्र

बाइक एनालिटिक्स मेट्रिक्स का गणितीय आधार

कार्यान्वयन मार्गदर्शिका

यह पृष्ठ सभी बाइक एनालिटिक्स मेट्रिक्स के लिए कॉपी-पेस्ट सूत्र और चरण-दर-चरण गणना विधियां प्रदान करता है। कस्टम कार्यान्वयन, सत्यापन, या शक्ति-आधारित प्रशिक्षण की गहरी समझ के लिए इनका उपयोग करें।

⚠️ कार्यान्वयन नोट्स

  • जब तक निर्दिष्ट न किया जाए, सभी शक्ति मान वाट (डब्ल्यू) में, समय सेकंड में
  • FTP और CP व्यक्तिगत-विशिष्ट सीमाएँ हैं—कोई सार्वभौमिक मान नहीं
  • हमेशा उचित रेंज (0-2000W सामान्य) के लिए इनपुट को मान्य करें
  • किनारे के मामलों को संभालें (शून्य से विभाजन, नकारात्मक शक्ति)
  • सटीकता के लिए पावर डेटा को 1-सेकंड रिकॉर्डिंग अंतराल की आवश्यकता होती है

साइक्लिंग कोर प्रदर्शन मेट्रिक्स

1. प्रशिक्षण तनाव स्कोर (TSS)

सूत्र:

TSS = (अवधि_सेकंड × NP × IF) / (FTP × 3600) × 100
जहां IF = NP / FTP

कार्य उदाहरण:

परिदृश्य:2 घंटे की सवारी, एनपी = 235W, FTP = 250W

  1. IF की गणना करें: IF = 235 / 250 = 0.94
  2. अवधि सेकंड में: 2 घंटे × 3600 = 7200 सेकंड
  3. TSS = (7200 × 235 × 0.94) / (250 × 3600) × 100
  4. TSS = 1,590,720 / 900,000 × 100 =176.7 प्रोटेक्ट1एक्स

व्याख्या: कठिन प्रशिक्षण सवारी (>150 प्रोटेक्ट1एक्स), 2-3 दिनों में ठीक होने की उम्मीद है

जावास्क्रिप्ट कार्यान्वयन:

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

// Example usage:
const tss = calculateTSS(7200, 235, 250);
// Returns: 177

2. सामान्यीकृत शक्ति (एनपी)

एल्गोरिथम (30-सेकंड रोलिंग औसत):

1. पूरी सवारी के लिए 30 सेकंड की रोलिंग औसत शक्ति की गणना करें
2. प्रत्येक 30-सेकंड मान को चौथी शक्ति तक बढ़ाएँ
3. इन सभी ^4 मानों का औसत निकालें
4. उस औसत का चौथा मूल लीजिए
एनपी = ⁴√([30s_avg^4] का औसत)

चौथी शक्ति क्यों?

चतुर्थक (चौथी शक्ति) संबंध परिवर्तनीय प्रयासों की गैर-रैखिक शारीरिक लागत को दर्शाता है। उछाल और रिकवरी वाली सवारी में समान औसत पर स्थिर बिजली की तुलना में अधिक ऊर्जा खर्च होती है।

उदाहरण:

  • स्थिर सवारी: 1 घंटे के लिए 200W → NP = 200W, औसत = 200W
  • परिवर्तनीय सवारी: वैकल्पिक 300W/100W → औसत = 200W, NP = 225W

समान औसत शक्ति, लेकिन परिवर्तनीय सवारी में उछाल की शारीरिक लागत के कारण एनपी 12% अधिक है

जावास्क्रिप्ट कार्यान्वयन:

function calculateNormalizedPower(powerData) {
  // powerData is array of 1-second power values

  // Step 1: Calculate 30-second rolling averages
  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);
  }

  // Step 2: Raise to 4th power
  const powered = rollingAvgs.map(p => Math.pow(p, 4));

  // Step 3: Average of 4th powers
  const avgPowered = powered.reduce((sum, p) => sum + p, 0) / powered.length;

  // Step 4: Take 4th root
  const np = Math.pow(avgPowered, 0.25);

  return Math.round(np);
}

// Example usage:
const powerData = [/* 1-second power array */];
const np = calculateNormalizedPower(powerData);
// Returns: NP in watts

3. तीव्रता कारक (IF)

सूत्र:

प्रोटेक्ट15एक्स = एनपी/प्रोटेक्ट10एक्स

व्याख्या रेंज:

IF रेंजप्रयास स्तरउदाहरण वर्कआउट
<0.75पुनर्प्राप्ति/आसानसक्रिय पुनर्प्राप्ति सवारी, जोन 1-2
0.75 - 0.85सहनशक्तिलंबी स्थिर सवारी, एरोबिक बेस
0.85 - 0.95टेम्पोमधुर स्थान प्रशिक्षण, गति अंतराल
0.95 - 1.05देहलीFTP अंतराल, समय परीक्षण प्रयास
1.05 - 1.15प्रोटेक्ट5एक्स5 मिनट के अंतराल, मानदंड दौड़
> 1.15अवायवीयछोटी दौड़, हमले, एमटीबी फटना

उदाहरण गणना:

परिदृश्य:एनपी = 235डब्ल्यू, प्रोटेक्ट10एक्स = 250डब्ल्यू

प्रोटेक्ट15एक्स = 235/250 =0.94

व्याख्या: उच्च गति/उप-सीमा प्रयास, 2-3 घंटे तक टिकाऊ

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

// Example:
const if_value = calculateIF(235, 250);
// Returns: 0.94

4.परिवर्तनशीलता सूचकांक (VI)

सूत्र:

VI = एनपी / औसत पावर

अनुशासन द्वारा व्याख्या:

अनुशासनविशिष्ट VIमतलब
रोड टीटी / स्थिर प्रयास1.00 - 1.05बहुत सुसंगत शक्ति, इष्टतम गति
रोड रेसिंग1.05 - 1.10कुछ उछाल, आम तौर पर स्थिर
मानदंड1.10 - 1.20बार-बार तेजी और हमले
माउंटेन बाइक एक्ससी1.15 - 1.30+अत्यधिक परिवर्तनशील, निरंतर उछाल

उदाहरण गणना:

सड़क दौड़:एनपी = 240W, औसत पावर = 230W

VI = 240/230 =1.04(स्थिर गति)

एमटीबी रेस:एनपी = 285W, औसत पावर = 235W

VI = 285/235 =1.21(बहुत परिवर्तनशील, तीव्र प्रयास)

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

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

क्रिटिकल पावर एंड डब्ल्यू' (अवायवीय क्षमता)

5. क्रिटिकल पावर (सीपी) - रैखिक मॉडल

सूत्र:

समय = डब्ल्यू' / (पावर - सीपी)
पुनर्व्यवस्थित: पावर × समय = सीपी × समय + डब्ल्यू'

एकाधिक प्रयासों से गणना:

विभिन्न अवधियों में 2-4 अधिकतम प्रयासों की आवश्यकता होती है (जैसे, 3, 5, 12, 20 मिनट)

उदाहरण डेटा:

अवधिपावर (डब्ल्यू)कुल कार्य (केजे)
3 मिनट (180)400W72 केजे
5 मिनट (300 सेकेंड)365W109.5 के.जे
12 मिनट (720 सेकंड)310W223.2 के.जे
20 मिनट (1200 सेकंड)285W342 केजे

रैखिक प्रतिगमन का उपयोग करना (कार्य = सीपी × समय + डब्ल्यू'):

  • सीपी = 270W(प्रतिगमन रेखा का ढलान)
  • डब्ल्यू' = 18.5 केजे(y-अवरोधन)

जावास्क्रिप्ट कार्यान्वयन:

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
  };
}

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

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

6. W' बैलेंस (W'bal) - विभेदक समीकरण मॉडल

सूत्र:

व्यय (जब P > CP):
W'exp(t) = ∫(P(t) - CP) dt
पुनर्प्राप्ति (जब पी <सीपी):
W'rec(t) = W' × (1 - e^(-t/τ))
जहां τ = 546 × ई^(-0.01 × ΔCP) + 316
और ΔCP = (CP - P(t))

वास्तविक दुनिया का उदाहरण:

साइकिल चालक विशिष्टता:CP = 270W, W' = 18.5 kJ

परिदृश्य 1 - कठिन आक्रमण:

  • राइडर 30 सेकंड के लिए 400W तक बढ़ जाता है
  • डब्ल्यू' व्यय: (400 - 270) × 30 = 3,900 जे = 3.9 केजे
  • डब्ल्यू'बल शेष: 18.5 - 3.9 =14.6 केजे

परिदृश्य 2 - पुनर्प्राप्ति:

  • हमले के बाद, 2 मिनट के लिए 200W (CP से नीचे 70W) तक गिर जाता है
  • ΔCP = 270 - 200 = 70W
  • τ = 546 × ई^(-0.01 × 70) + 316 = 588 सेकंड
  • 120s में पुनर्प्राप्ति: 18.5 × (1 - e^(-120/588)) =3.5 kJ बरामद हुआ
  • नया डब्लू'बाल: 14.6 + 3.5 =18.1 केजे

जावास्क्रिप्ट कार्यान्वयन:

function calculateWbalance(powerData, CP, Wprime) {
  // powerData = array of {time: seconds, power: watts}
  let wbal = Wprime * 1000; // Convert to 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) {
      // Expenditure above CP
      const expenditure = (power - CP) * dt;
      wbal -= expenditure;
    } else {
      // Recovery below 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;
    }

    // Ensure W'bal doesn't exceed max or go negative
    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;
}

// Example usage:
const powerData = [
  {time: 0, power: 200},
  {time: 1, power: 210},
  // ... rest of ride data
];

const wbalHistory = calculateWbalance(powerData, 270, 18.5);
// Returns array of W'bal values over time

साइक्लिंग के लिए प्रदर्शन प्रबंधन चार्ट (PMC)।

7. CTL, ATL, TSB गणनाएँ

सूत्र (घातीय रूप से भारित मूविंग औसत):

सीटीएल_आज = सीटीएल_कल + (टीएसएस_आज - सीटीएल_कल) / 42
एटीएल_आज = एटीएल_कल + (टीएसएस_आज - एटीएल_कल) / 7
टीएसबी_आज = सीटीएल_कल - एटीएल_कल

मीट्रिक परिभाषाएँ:

  • CTL (क्रोनिक ट्रेनिंग लोड):42-दिवसीय चरघातांकीय भारित औसत - फिटनेस का प्रतिनिधित्व करता है
  • ATL (तीव्र प्रशिक्षण भार):7-दिवसीय चरघातांकीय भारित औसत - थकान का प्रतिनिधित्व करता है
  • TSB (प्रशिक्षण तनाव संतुलन):रूप=तंदुरुस्ती-थकान

कार्य उदाहरण (7-दिवसीय प्रशिक्षण ब्लॉक):

दिनप्रोटेक्ट1एक्सप्रोटेक्ट2एक्सATLTSBस्थिति
सोम10075.080.0-5.0प्रशिक्षण
मंगल5074.475.7-1.3पुनर्प्राप्ति
बुध12075.582.0-6.5कठिन प्रशिक्षण
गुरु073.770.3+3.4आराम का दिन
शुक्र8073.871.7+2.1मध्यम
शनि15075.682.9-7.3लम्बी यात्रा
रवि4074.876.8-2.0पुनर्प्राप्ति

TSB व्याख्या:

TSB रेंजस्थितिकार्रवाई
<-30उच्च जोखिमओवरट्रेनिंग चेतावनी - भार कम करें
-30 से -10कठिन प्रशिक्षणफिटनेस बनाना, रिकवरी की निगरानी करना
-10 से +5इष्टतमसामान्य प्रशिक्षण क्षेत्र
+5 से +15दौड़ के लिए तैयारचरम रूप - इस सप्ताह के अंत में दौड़
>+25प्रशिक्षणतन्दुरुस्ती में कमी - भार बढ़ना

जावास्क्रिप्ट कार्यान्वयन:

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

  workouts.forEach(workout => {
    // Update CTL (42-day time constant)
    ctl = ctl + (workout.tss - ctl) / 42;

    // Update ATL (7-day time constant)
    atl = atl + (workout.tss - atl) / 7;

    // Calculate TSB (yesterday's CTL - today's ATL for traditional calculation)
    // For simplicity here using current values
    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 "High Risk";
  if (tsb < -10) return "Training Hard";
  if (tsb < 5) return "Optimal";
  if (tsb < 15) return "Race Ready";
  return "Detraining";
}

// Example usage:
const workouts = [
  {date: "2025-01-01", tss: 100},
  {date: "2025-01-02", tss: 50},
  {date: "2025-01-03", tss: 120},
  // ... more workouts
];

const pmc = calculatePMC(workouts);
// Returns array with CTL, ATL, TSB for each day

पावर-टू-वेट और क्लाइम्बिंग मेट्रिक्स

8.शक्ति-से-वजन अनुपात

सूत्र:

डब्ल्यू/किग्रा = पावर (वाट) / बॉडी मास (किग्रा)

FTP W/kg बेंचमार्क:

स्तरनर वजन/किलोमहिला वजन/किलोश्रेणी
मनोरंजक2.5 - 3.52.0 - 3.0फिटनेस सवार
प्रतिस्पर्धी3.5 - 4.53.0 - 4.0बिल्ली 3-4, आयु वर्ग रेसर
उन्नत4.5 - 5.54.0 - 5.0बिल्ली 1-2, मजबूत शौकिया
संभ्रांत शौकिया5.5 - 6.05.0 - 5.5राष्ट्रीय स्तर
पेशेवर6.0 - 7.0+5.5 - 6.5+वर्ल्ड टूर, ग्रैंड टूर जीसी

उदाहरण गणना:

परिदृश्य:FTP = 275W, शरीर का द्रव्यमान = 70kg वाला साइकिल चालक

डब्ल्यू/किग्रा = 275/70 =3.93 डब्ल्यू/किग्रा

व्याख्या: प्रतिस्पर्धी स्तर, पहाड़ी दौड़ में सक्षम

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

// Example:
const wpkg = calculateWattsPerKg(275, 70);
// Returns: 3.93

9. वीएएम (वेलोसिटा एसेन्सियोनेल मीडिया)

सूत्र:

वीएएम (एम/एच) = ऊंचाई लाभ (एम) / समय (घंटे)

वीएएम बेंचमार्क:

वीएएम (एम/एच)स्तरउदाहरण
600 - 900मनोरंजकस्थानीय चढ़ाई पर क्लब सवार
900 - 1200प्रतिस्पर्धीएल्पे डी'हुएज़ पर अच्छा शौकिया
1200 - 1500संभ्रांत शौकियाराष्ट्रीय स्तर का पर्वतारोही
1500 - 1800पेशेवरवर्ल्ड टूर घरेलू
>1800ग्रैंड टूर विजेताप्रमुख चढ़ाई पर पोगाकर, विंगगार्ड

उदाहरण गणना:

परिदृश्य:एल्पे डी'ह्यूज़ चढ़ाई

  • ऊंचाई लाभ: 1100 मीटर
  • समय: 55 मिनट = 0.917 घंटे
  • वीएएम = 1100 / 0.917 =1200 मी/घंटा

व्याख्या: प्रतिस्पर्धी स्तर पर चढ़ाई का प्रदर्शन

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

// Example:
const vam = calculateVAM(1100, 55);
// Returns: 1200 m/h

10. VAM से W/kg अनुमान

सूत्र:

डब्ल्यू/किग्रा ≈ वीएएम (एम/एच) / 100 / (ग्रेडिएंट% + 3)

उदाहरण गणना:

परिदृश्य:8% औसत ढाल के साथ चढ़ें, वीएएम = 1200 मीटर/घंटा

डब्ल्यू/किग्रा = 1200 / 100 / (8 + 3)

डब्ल्यू/किग्रा = 12/11 =4.36 डब्ल्यू/किग्रा

क्रॉस-चेक: 70 किग्रा सवार के साथ → चढ़ाई पर 305W निरंतर शक्ति

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

// Example:
const wkg = estimateWkgFromVAM(1200, 8);
// Returns: 4.36

वायुगतिकीय शक्ति समीकरण

11. कुल विद्युत आवश्यकताएँ

पूरा फॉर्मूला:

P_total = P_aero + P_gravity + P_rolling + P_kinetic

घटक सूत्र:

वायुगतिकीय खींचें:
P_aero = CdA × 0.5 × ρ × V³
गुरुत्वाकर्षण (चढ़ाई):
P_गुरुत्वाकर्षण = m × g × पाप(θ) × V
रोलिंग प्रतिरोध:
P_rolling = Crr × m × g × cos(θ) × V
गतिज (त्वरण):
P_गतिज = m × a × V

स्थिरांक और चर:

  • सीडीए= खींचें गुणांक × ललाट क्षेत्र (m²)
    • विशिष्ट सड़क बाइक हुड: 0.35-0.40 वर्ग मीटर
    • बूँदें: 0.32-0.37 वर्ग मीटर
    • टीटी स्थिति: 0.20-0.25 वर्ग मीटर
  • ρ= वायु घनत्व (समुद्र तल पर 1.225 किग्रा/वर्ग मीटर, 15 डिग्री सेल्सियस)
  • वी= वेग (एम/एस)
  • एम= कुल द्रव्यमान (सवार + बाइक, किग्रा)
  • जी= गुरुत्वाकर्षण (9.81 मी/से²)
  • θ= ग्रेडिएंट कोण (रेडियन या डिग्री परिवर्तित)
  • सी.आर.आर= रोलिंग प्रतिरोध गुणांक (अच्छे सड़क टायरों के लिए ~0.004)
  • = त्वरण (एम/एस²)

कार्यान्वित उदाहरण (फ्लैट रोड टीटी):

परिदृश्य:

  • वेग: 40 किमी/घंटा = 11.11 मीटर/सेकेंड
  • सीडीए: 0.22 वर्ग मीटर (अच्छी टीटी स्थिति)
  • कुल वजन: 75 किग्रा (सवार) + 8 किग्रा (बाइक) = 83 किग्रा
  • समतल सड़क (ढाल = 0°)
  • स्थिर गति (त्वरण = 0)

गणना:

  1. P_aero= 0.22 × 0.5 × 1.225 × 11.11³ =185W
  2. P_गुरुत्वाकर्षण= 0W (सपाट सड़क)
  3. पी_रोलिंग= 0.004 × 83 × 9.81 × 11.11 =36W
  4. पी_काइनेटिक= 0W (निरंतर गति)
  5. P_कुल= 185 + 0 + 36 + 0 =221W

व्याख्या: समतल सड़क पर टीटी स्थिति में 40 किमी/घंटा बनाए रखने के लिए 221W की आवश्यकता है

जावास्क्रिप्ट कार्यान्वयन:

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

  // Convert velocity to m/s
  const V = velocityKph / 3.6;

  // Convert gradient to angle
  const theta = Math.atan(gradientPercent / 100);

  // Calculate each component
  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)
  };
}

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

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

सहायक कार्य

इकाई रूपांतरण उपयोगिताएँ

जावास्क्रिप्ट कार्यान्वयन:

// Time conversions
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')}`;
}

// Speed conversions
function kphToMps(kph) {
  return kph / 3.6;
}

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

// Energy conversions
function joulesTo kJ(joules) {
  return joules / 1000;
}

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

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

// Examples:
formatDuration(7265);        // Returns: "2:01:05"
kphToMps(40);                // Returns: 11.11 m/s
wattsToKJ(250, 3600);        // Returns: 900 kJ (1 hour at 250W)

कार्यान्वयन संसाधन

इस पृष्ठ पर सभी सूत्र उत्पादन के लिए तैयार हैं और वैज्ञानिक साहित्य और वास्तविक दुनिया के बिजली मीटर डेटा के आधार पर मान्य हैं। कस्टम एनालिटिक्स टूल, सत्यापन, या पावर-आधारित प्रशिक्षण गणनाओं की गहरी समझ के लिए उनका उपयोग करें।

💡 सर्वोत्तम प्रथाएँ

  • इनपुट सत्यापित करें:उचित पावर रेंज (0-2000W), सकारात्मक अवधि की जाँच करें
  • किनारे के मामले संभालें:शून्य से विभाजन, शून्य/अपरिभाषित डेटा, गायब FTP
  • उचित रूप से गोल करें:CTL/ATL/TSB से 1 दशमलव, TSS से पूर्णांक, W/kg से 2 दशमलव
  • स्टोर परिशुद्धता:डेटाबेस में पूरी सटीकता रखें, केवल प्रदर्शन के लिए गोल करें
  • समय क्षेत्र:बहु-दिवसीय विश्लेषण के लिए यूटीसी बनाम स्थानीय समय को लगातार संभालें
  • बिजली मीटर अंशांकन:उपयोगकर्ताओं को सवारी से पहले शून्य-ऑफ़सेट की याद दिलाएँ
  • FTP सत्यापन:संदिग्ध FTP मानों को चिह्नित करें (वयस्कों के लिए>500W या <100W)
  • अच्छी तरह से परीक्षण करें:गणनाओं को सत्यापित करने के लिए ज्ञात-अच्छी सवारी फ़ाइलों का उपयोग करें

Expertly Reviewed by

This content has been written and reviewed by a sports data metrics expert to ensure technical accuracy and adherence to the latest sports science methodologies.

फॉर्मूला | Bike Analytics - Cycling Analytics App | FTP,

पावर फॉर्मूला।. फॉर्मूला | Bike Analytics - Cycling Analytics App | FTP, TSS, Power फॉर्मूला | Bike Analytics - Cycling Analytics App | FTP, TSS, Power

  • 2026-03-24
  • फॉर्मूला · bike · analytics · महत्वपूर्ण शक्ति सूत्र
  • ग्रंथ सूची