سائیکلنگ پاور فارمولے

بائیک اینالیٹکس میٹرکس کی ریاضیاتی بنیاد

نفاذ (Implementation) گائیڈ

یہ صفحہ بائیک اینالیٹکس کے تمام میٹرکس کے لیے کاپی پیسٹ فارمولے اور مرحلہ وار حساب کتاب کے طریقے فراہم کرتا ہے۔ ان کو اپنی مرضی کے نفاذ، تصدیق، یا پاور پر مبنی ٹریننگ کی گہری سمجھ کے لیے استعمال کریں۔

⚠️ نفاذ کے لیے نوٹ

  • پاور کی تمام پیمائش واٹس (W) میں ہے، اور وقت سیکنڈ میں ہے (جب تک کہ وضاحت نہ کی جائے)
  • FTP اور CP انفرادی طور پر مخصوص تھریشولڈز ہیں—ان کی کوئی عالمی قیمت نہیں ہوتی
  • ہمیشہ ان پٹ کو مناسب حدود (عام طور پر 0-2000W) کے لیے چیک کریں
  • خاص حالات (جیسے صفر سے تقسیم یا منفی پاور) کو ہینڈل کریں
  • درستی کے لیے پاور ڈیٹا کو 1 سیکنڈ کے وقفے سے ریکارڈ کرنا ضروری ہے

سائیکلنگ بنیادی پرفارمنس میٹرکس

1. ٹریننگ اسٹریس اسکور (TSS - Training Stress Score)

فارمولا:

TSS = (duration_seconds × NP × IF) / (FTP × 3600) × 100
جہاں IF = NP / FTP

مثال:

صورتحال: 2 گھنٹے کی سواری، NP = 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 TSS

مطالب: سخت ٹریننگ سواری (>150 TSS)، 2-3 دن کی بحالی (recovery) متوقع ہے

JavaScript کوڈ:

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

// مثال:
const tss = calculateTSS(7200, 235, 250);
// جواب: 177

2. نارملائزڈ پاور (NP - Normalized Power)

الگورتھم (30 سیکنڈ رولنگ ایوریج):

1. پوری سواری کے لیے 30 سیکنڈ کا متحرک اوسط (rolling average) نکالیں
2. ان 30 سیکنڈ کی ہر اوسط ویلیو کو چوتھی قوت (4th power) تک بڑھائیں
3. ان تمام ^4 ویلیوز کا اوسط نکالیں
4. اس اوسط کا چوتھا جڑ (4th root) نکالیں
NP = ⁴√(average of [30s_avg^4])

چوتھی قوت ہی کیوں؟

یہ تعلق مختلف کوششوں کی غیر خطی جسمانی لاگت کو ظاہر کرتا ہے۔ ایک ایسی سواری جس میں پاور بار بار بدلتی ہے، وہ اسی اوسط پاور والی مستقل سواری کے مقابلے میں زیادہ توانائی خرچ کرتی ہے۔

مثال:

  • مستقل سواری: 1 گھنٹے کے لیے 200W → NP = 200W، اوسط = 200W
  • بدلتی سواری: باری باری 300W/100W → اوسط = 200W، NP = 225W

اوسط پاور وہی ہے، لیکن بدلتی ہوئی سواری میں NP 12٪ زیادہ ہے کیونکہ جسم کو پاور بڑھانے میں زیادہ مشقت کرنی پڑتی ہے۔

JavaScript کوڈ:

function calculateNormalizedPower(powerData) {
  // powerData: 1 سیکنڈ کی پاور ویلیوز کا ایرے

  // مرحلہ 1: 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);
  }

  // مرحلہ 2: چوتھی قوت تک بڑھائیں
  const powered = rollingAvgs.map(p => Math.pow(p, 4));

  // مرحلہ 3: ان کا اوسط نکالیں
  const avgPowered = powered.reduce((sum, p) => sum + p, 0) / powered.length;

  // مرحلہ 4: چوتھا جڑ نکالیں
  const np = Math.pow(avgPowered, 0.25);

  return Math.round(np);
}

// مثال:
const powerData = [/* 1 سیکنڈ پاور ایرے */];
const np = calculateNormalizedPower(powerData);
// جواب: واٹس میں NP

3. انٹینسٹی فیکٹر (IF - Intensity Factor)

فارمولا:

IF = NP / FTP

حدود اور تشریح (Interpretation Ranges):

IF کی رینجکوشش کی سطحورزش کی مثال
< 0.75ریکوری / آسانآسان سواری، زون 1-2
0.75 - 0.85انڈورنس (Endurance)طویل مستقل سواری، ایروبک بیس
0.85 - 0.95ٹیمپو (Tempo)سویٹ اسپاٹ ٹریننگ، ٹیمپو انٹرولز
0.95 - 1.05تھریشولڈ (Threshold)FTP انٹرولز، ٹائم ٹرائل کی کوشش
1.05 - 1.15VO₂max5 منٹ کے انٹرولز، کرائٹیریم ریس
> 1.15این ایروبک (Anaerobic)مختصر اسپرنٹ، حملے، MTB برسٹ

مثال:

صورتحال: NP = 235W، FTP = 250W

IF = 235 / 250 = 0.94

مطالب: ہائی ٹیمپو کوشش، جو 2-3 گھنٹے تک برقرار رکھی جا سکتی ہے

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

// مثال:
const if_value = calculateIF(235, 250);
// جواب: 0.94

4. ویری ایبلٹی انڈیکس (VI - Variability Index)

فارمولا:

VI = NP / Average Power

ڈسپلن کے لحاظ سے تشریح:

ڈسپلنعام VIمطلب
روڈ TT / مستقل کوشش1.00 - 1.05بہت ہموار پاور، بہترین پیسنگ
روڈ ریسنگ1.05 - 1.10کچھ اتار چڑھاؤ، لیکن زیادہ تر ہموار
کرائٹیریم (Criterium)1.10 - 1.20تیز رفتار تبدیلی اور حملے
ماؤنٹین بائیک XC1.15 - 1.30+شدید اتار چڑھاؤ، ہر وقت پاور میں تبدیلی

مثال:

روڈ ریس: NP = 240W، اوسط پاور = 230W

VI = 240 / 230 = 1.04 (ہموار رفتار)

MTB ریس: NP = 285W، اوسط پاور = 235W

VI = 285 / 235 = 1.21 (بہت زیادہ اتار چڑھاؤ)

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

// مثال:
const vi_road = calculateVI(240, 230);  // جواب: 1.04
const vi_mtb = calculateVI(285, 235);   // جواب: 1.21

کریٹیکل پاور (CP) اور W' (این ایروبک کیپیسٹی)

5. کریٹیکل پاور (CP) - لکیری ماڈل

فارمولا:

Time = W' / (Power - CP)
ترتیب نو: Power × Time = CP × Time + W'

متعدد کوششوں سے حساب کتاب:

اس کے لیے مختلف دورانیے (مثلاً 3، 5، 12، 20 منٹ) پر 2-4 زیادہ سے زیادہ کوششوں کی ضرورت ہوتی ہے۔

مثال کا ڈیٹا:

دورانیہپاور (W)کل کام (kJ)
3 منٹ (180s)400W72 kJ
5 منٹ (300s)365W109.5 kJ
12 منٹ (720s)310W223.2 kJ
20 منٹ (1200s)285W342 kJ

لکیری ریگریشن (Work = CP × Time + W') کے ذریعے:

  • CP = 270W (ریگریشن لائن کی ڈھلوان)
  • W' = 18.5 kJ (y-intercept)

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

  // لکیری ریگریشن: 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,      // واٹس
    Wprime: Math.round(Wprime * 10) / 10  // kJ
  };
}

// مثال:
const efforts = [
  {duration: 180, power: 400},
  {duration: 300, power: 365},
  {duration: 720, power: 310},
  {duration: 1200, power: 285}
];

const result = calculateCP_Linear(efforts);
// جواب: { CP: 270.0, Wprime: 18.5 }

6. W' بیلنس (W'bal)

فارمولے:

اخراج (جب P > CP):
W'exp(t) = ∫(P(t) - CP) dt
بحالی (جب P < CP):
W'rec(t) = W' × (1 - e^(-t/τ))
جہاں τ = 546 × e^(-0.01 × ΔCP) + 316
اور ΔCP = (CP - P(t))

حقیقی دنیا کی مثال:

سائیکل سوار کی معلومات: CP = 270W, W' = 18.5 kJ

پہلی صورتحال - سخت حملہ:

  • سوار 30 سیکنڈ کے لیے 400W تک جاتا ہے
  • W' اخراج: (400 - 270) × 30 = 3,900 J = 3.9 kJ
  • باقی ماندہ W'bal: 18.5 - 3.9 = 14.6 kJ

دوسری صورتحال - بحالی:

  • حملے کے بعد، پاور 200W (CP سے 70W کم) پر 2 منٹ کے لیے آتی ہے
  • ΔCP = 270 - 200 = 70W
  • τ = 546 × e^(-0.01 × 70) + 316 = 588 سیکنڈ
  • 120 سیکنڈ میں بحالی: 18.5 × (1 - e^(-120/588)) = 3.5 kJ بحال ہوئے
  • نیا W'bal: 14.6 + 3.5 = 18.1 kJ

JavaScript کوڈ:

function calculateWbalance(powerData, CP, Wprime) {
  // powerData: {time: seconds, power: watts}
  let wbal = Wprime * 1000; // جولز میں تبدیلی
  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) {
      // CP سے زیادہ پاور کا استعمال
      const expenditure = (power - CP) * dt;
      wbal -= expenditure;
    } else {
      // 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;
    }

    // چیک کریں کہ W'bal حد سے باہر نہ جائے
    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;
}

// مثال:
const powerData = [
  {time: 0, power: 200},
  {time: 1, power: 210},
];

const wbalHistory = calculateWbalance(powerData, 270, 18.5);
// وقت کے ساتھ W'bal ویلیوز کا ایرے آئے گا

پرفارمنس മാനجمنٹ چارٹ (PMC) سائیکلنگ کے لیے

7. CTL, ATL, TSB کا حساب کتاب

فارمولے:

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

تعریف (Metric Definitions):

  • CTL (Chronic Training Load): 42 دن کا اوسط—یہ آپ کی فٹنس (Fitness) کو ظاہر کرتا ہے
  • ATL (Acute Training Load): 7 دن کا اوسط—یہ آپ کی تھکاوٹ (Fatigue) کو ظاہر کرتا ہے
  • TSB (Training Stress Balance): فارم (Form) = فٹنس - تھکاوٹ

مثال (7 دن کا ٹریننگ بلاک):

دنTSSCTLATLTSBحالت
پیر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 to -10سخت ٹریننگفٹنس بن رہی ہے، بحالی کا خیال رکھیں
-10 to +5بہترینعام ٹریننگ زون
+5 to +15ریس کے لیے تیاربہترین فارم—اس ہفتے ریس لگائیں
> +25ڈی ٹریننگفٹنس کم ہو رہی ہے - بوجھ بڑھائیں

JavaScript کوڈ:

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

  workouts.forEach(workout => {
    ctl = ctl + (workout.tss - ctl) / 42;
    atl = atl + (workout.tss - atl) / 7;
    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,
    });
  });

  return results;
}

پاور ٹو ویٹ اور چڑھائی کے میٹرکس

8. پاور ٹو ویٹ ریشو (W/kg)

فارمولا:

W/kg = Power (watts) / جسمانی وزن (kg)

FTP W/kg کے معیار:

سطح (Level)مرد W/kgخواتین W/kgزمرہ
تفریحی2.5 - 3.52.0 - 3.0فٹنس سوار
مقابلہ جاتی3.5 - 4.53.0 - 4.0Cat 3-4، ریس لگانے والے سوار
ایڈوانسڈ4.5 - 5.54.0 - 5.0Cat 1-2، مضبوط شوقیہ
ایلیٹ شوقیہ5.5 - 6.05.0 - 5.5قومی سطح
پروفیشنل6.0 - 7.0+5.5 - 6.5+ورلڈ ٹور، گرینڈ ٹور GC

مثال:

صورتحال: سائیکل سوار جس کا FTP = 275W اور وزن = 70kg ہے

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

مطالب: مقابلہ جاتی سطح، پہاڑی ریسوں کے لیے تیار

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

// مثال:
const wpkg = calculateWattsPerKg(275, 70);
// جواب: 3.93

9. VAM (Velocità Ascensionale Media)

فارمولا:

VAM (m/h) = بلندی کا اضافہ (m) / وقت (hours)

VAM کے معیار:

VAM (m/h)سطح (Level)مثال
600 - 900تفریحیمقامی چڑھائی پر کلب سوار
900 - 1200مقابلہ جاتیAlpe d'Huez پر اچھا شوقیہ سوار
1200 - 1500ایلیٹ شوقیہقومی سطح کا کلائمبر
1500 - 1800پروفیشنلورلڈ ٹور ڈومیسٹک
> 1800گرینڈ ٹور فاتحپوگاچار، ونگے گارڈ بڑی چڑھائیوں پر

مثال:

صورتحال: Alpe d'Huez کی چڑھائی

  • بلندی کا اضافہ: 1100 میٹر
  • وقت: 55 منٹ = 0.917 گھنٹے
  • VAM = 1100 / 0.917 = 1200 m/h
function calculateVAM(elevationGainMeters, timeMinutes) {
  const hours = timeMinutes / 60;
  return Math.round(elevationGainMeters / hours);
}

// مثال:
const vam = calculateVAM(1100, 55);
// جواب: 1200 m/h

10. VAM سے W/kg کا تخمینہ

فارمولا:

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

مثال:

صورتحال: 8٪ گریڈینٹ والی چڑھائی، VAM = 1200 m/h

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

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

ایروڈائنامک پاور مساوات

11. کل پاور کی ضروریات

مکمل فارمولا:

P_total = (P_air + P_roll + P_grav) / (1 - drivetrain_loss)

اجزاء (Components):

  • P_air (ہوا کی مزاحمت): 0.5 × CdA × rho × v³
  • P_roll (رولنگ ریزسٹنس): Crr × m × g × v
  • P_grav (کشش ثقل - چڑھائی): m × g × slope × v

پیرامیٹرز:

  • CdA: ایروڈائنامک ڈریگ (عام طور پر روڈ بائیک پر ~0.3-0.4)
  • rho (ہوا کی کثافت): سمندر کی سطح پر 1.225 kg/m³
  • Crr: رولنگ ریزسٹنس کوایفیشنٹ (~0.005)
  • v: رفتار (میٹر فی سیکنڈ میں)
  • m: کل وزن (سوار + بائیک) کلوگرام میں
  • g: کشش ثقل کا اسراع (9.81 m/s²)

ان فارمولوں کا اطلاق کریں

بائیک اینالیٹکس ان تمام ریاضیاتی ماڈلز کو ایک آسان ایپ میں یکجا کرتی ہے تاکہ آپ کو ٹریننگ کے درست اعداد و شمار فراہم کر سکے۔