معادلة قدرة ركوب الدراجات

الأساس الرياضي لمقاييس تحليلات الدراجات

دليل التنفيذ

توفر هذه الصفحة معادلات جاهزة للنسخ واللصق وحساب خطوة بخطوة لجميع مقاييس تحليلات الدراجات. استخدمها للاختيار أو التحقق أو العمق الممارس للقدرة.

⚠️ أفكار التنفيذ

  • جميع قيم القدرة بالواط (W)، والوقت بالثواني ما لم يحدد خلاف ذلك
  • FTP و CP هي عتبات خاصة بكل شخص - لا توجد قيم عالمية
  • تحقق دائمًا من المدخلات للنطاقات المتنوعة (0-2000W نموذجيًا)
  • التعامل مع الحالات العاطفية (القسم على الصفر، القدرة السالبة)
  • تتطلب البيانات المطلوبة تسجيل 1 ثانية للحصول على الدقة

ركوب الدراجات المقاييس الأساسية

1. الضغط على التدريب (TSS)

حتى:

TSS = (المدة_بالثواني × NP × IF) / (FTP × 3600) × 100
حيث IF = NP / FTP

مثال عملي:

السيناريو:رحلة بحرية ساعتين، NP = 235 وات، FTP = 250 وات

  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 حماية 1X

التفسير: رحلة صعبة صعبة (>150 TSS)، نتيجة خلال 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. القدرة على المرونة (NP)

الخوارزمية (متوسط ​​متحرك 30 ثانية):

1. احسب متوسط قوة التدحرج لمدة 30 ثانية للرحلة بأكملها
2. ارفع كل قيمة 30 ثانية إلى القوة الرابعة
3. خذ متوسط جميع قيم ^4 هذه
4. خذ الجذر الرابع لهذا المتوسط
NP = ⁴√(متوسط [30s_avg^4])

لماذا الرابعة؟

احترام الكنيسة (القوة الرابعة) التكلفة الفسيولوجية غير المشتركة للجهود المتغيرة. تعتبر الطائرات ذات السرعات الرائعة والتعافي من أكثر الطائرات شهرةً في التصميم.

مثال:

  • مدة الرحلة: 200 وات لمدة ساعة → NP = 200 وات، المتوسط ​​= 200 وات
  • رحلة متنوعة: بالتناوب 300 واط/100 واط → المتوسط ​​= 200 واط، NP = 225 واط

متوسط ​​القدرة، لكن الطيران المتغير لديها NP بنسبة أعلى 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)

حتى:

IF = NP / FTP

نطاقات التفسير:

نطاق الحماية 15Xمستوى الجهدمثال على الضرب
< 0.75استشفاء / سهلرحلة استشفاء للحكم، المنطقة 1-2
0.75 - 0.85تتحملرحلة طويلة لمدة قصيرة، الكلية الجامعية
0.85 - 0.95إيقاعتحديد المحدد، لتحديد الإيقاع
0.95 - 1.05عتبةلذلك FTP، جهد سباق مقابل الساعة
1.05 - 1.15حماية 5Xكحد أقصى 5، المعايير
> 1.15لاهوائيسباقات قصيرة، هجمات، قصفات سريعة MTB

حساب المثال:

السيناريو:NP = 235 وات، FTP = 250 وات

IF = 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 = NP / متوسط الطاقة

التفسير حسب التخصص:

التخصصالسادس النموذجيمعنى
سباق الطريق مقابل الوقت / جهد ثابت1.00 - 1.05قدرة شديدة جدًا، وشفاء حديث
سباق الطريق1.05 - 1.10بعض الزيادات، ثابتة عموماً
معايير1.10 - 1.20سامح و أهداف
دراجات الدراجات XC1.15 - 1.30+بديل، زيادات مستمرة

حساب المثال:

سباق الطريق:NP = 240 وات، متوسط ​​القدرة = 230 وات

السادس = 240 / 230 =1.04(وتيرة تقييد)

سباق MTB:NP = 285 وات، متوسط ​​القدرة = 235 وات

السادس = 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.القدرة الرائعة (CP) - النموذج الخطي

حتى:

الوقت = W' / (الطاقة - CP)
أعيد ترتيبها: الطاقة × الوقت = CP × الوقت + W'

العمل من جهود متعددة:

تتطلب 2-4 جهود مختلفة بمتعددة مختلفة (مثل 3، 5، 12، 20 دقيقة)

بيانات المثال:

المدةالقدرة (ث)الكلي (kJ)
3 ميني (180ث)400 واط72 كيلوجول
5 ميني (300ث)365 واط109.5 كيلوجول
12 دقيقة (720ث)310 واط223.2 كيلوجول
20 دقيقة (1200ث)285 واط342 كيلوجول

باستخدام الانحدار الخطي (العمل = CP × الوقت + W'):

  • سي بي = 270 وات(ميل خط الانحدار)
  • W' = 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. رصيد و' (وبال) - نموذج نموذج الفاضلية

المعادلات:

إضافي (عندما 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 = 270 واط، W' = 18.5 كيلوجول

السيناريو 1 - هجوم قوي:

  • يزيد الدراج إلى 400 واط لمدة 30 ثانية
  • مشاهير W': (400 - 270) × 30 = 3,900 جول = 3.9 كيلو جول
  • وبالأخير: 18.5 - 3.9 =14.6 كيلوجول

السيناريو 2 - الاستشفاء:

  • بعد ذلك، انخفض إلى 200 واط (70 واط تحت CP) لمدة دقيقة
  • ΔCP = 270 - 200 = 70 وات
  • τ = 546 × e^(-0.01 × 70) + 316 = 588 ثانية
  • الاستشفاء في الدقيقة 120: 18.5 × (1 - e^(-120/588)) =تم استرداده 3.5 كيلو جول
  • وبال الجديد: 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

المعادلات (المتوسطات الموزونة أسياً):

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

تعريفات المقاييس:

  • CTL (حمل التدريب المزمن):متوسط ​​موزون أسياً لـ 42 يوماً - يمثل تمرين اللياقة البدنية
  • ATL (حمل التدريب الحاد):متوسط ​​موزون أسياً لـ 7 أيام - تمثيل الإرهاق
  • TSB ( تكامل التدريب):الشكل = التمرين - الإرهاق

مثال عملي (كتلة للتدريب لمدة 7 أيام):

اليومحماية 1Xحماية2Xحماية 3Xحماية 4Xالحالة
الاثنين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 واط/كجم:

المستوىوزن/كجم للذكوروزن/كجم للإناثالفئة
ترفيهي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 = 275 وات، كتلة الجسم = 70 كجم

الوزن/كجم = 275 / 70 =3.93 واط/كجم

التفسير: مستوى مختلف، قادر في سباقات الجبلية

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

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

9.VAM (Velocità Ascensionale Media)

حتى:

VAM (م/ساعة) = كسب الارتفاع (م) / الوقت (ساعات)

معايير VAM:

فام (م/س)المستوىمثال
600 - 900ترفيهيدراج نادي على سكن محلي
900 - 1200ممتدهاوي جيد على Alpe d'Huez
1200 - 1500هاوي نخبةمتسلقة المستوى الوطني
1500 - 1800محترفجولة حول العالم domestique
> 1800فائز بالجولة الكبرىPogačar و Vingegaard على الدراجات الرئيسية

حساب المثال:

السيناريو:تسلق ألب دويز

  • ارتفاع النحاس: 1100 م
  • الوقت: 55 دقيقة = 0.917 ساعة
  • VAM = 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

حتى:

واط/كجم ≈ VAM (م/ساعة) / 100 / (التدرج% + 3)

حساب المثال:

السيناريو:درجة ميل متوسطة 8%، VAM = 1200 م/س

الوزن/كجم = 1200 / 100 / (8 + 3)

الوزن/كجم = 12 / 11 =4.36 واط/كجم

التحقق المتقاطع: مع دراج 70 كغ → قدرة مؤكدة 305 وات على التسلق

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_gravity = m × g × sin(θ) × V
الرد:
P_rolling = Crr × m × g × cos(θ) × V
اختر (العقل):
P_kinetic = م × أ × الخامس

الثوابت والمتغيرات:

  • سي دي ايه= المقترضة × المسح للمساحة (م²)
    • الأغطية النموذجية للدراجة: 0.35-0.40 م²
    • القطرات: 0.32-0.37 م²
    • وضعية TT: 0.20-0.25 م²
  • ρ= هواء مكياج (1.225 كجم/م³ عند سطح البحر، 15°م)
  • الخامس= السرعة (م/ث)
  • م= كلية الكلية (دراجة الدراجة +، كج)
  • ز= الجاذبية (9.81 م/ث²)
  • θ= الانحدار (راديان أو زاوية تحويلة)
  • ص= صفقة مقبولة (~0.004 لإطارات الطرق المقبولة)
  • أ= العجب (م/ث²)

مثال عملي (TT على طريق مستوٍ):

السيناريو:

  • السرعة: 40 كم/س = 11.11 م/ث
  • CdA: 0.22 م² (وضعية TT جيدة)
  • كتلة الكلية: 75 كجم (دراج) + 8 كجم (دراجة) = 83 كجم
  • طريق مستوٍ ( ميلدي = 0°)
  • سرعة محدود ( غم = 0)

الحساب:

  1. بي_ايرو= 0.22 × 0.5 × 1.225 × 11.11³ =185 واط
  2. P_الجاذبية= 0 وات (طريق مستوٍ)
  3. P_rolling= 0.004 × 83 × 9.81 × 11.11 =36 واط
  4. P_kinetic= 0 وات (سرعة الدوران)
  5. P_total= 185 + 0 + 36 + 0 =221 واط

التفسير: تحتاج 221W طائرة على 40 كم/س في وضعية TT على طريق مستوٍ

تطبيق جافا سكريبت:

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 إلى رقم عشري واحد، TSS إلى عدد صحيح، W/kg إلى رقمين عشريين
  • دقة التخزين:احتفظ بالدقة الكاملة في قاعدة البيانات، قرّب فقط للعرض
  • المناطق الزمنية:تتعامل مع التوقيت العالمي المنسق (UTC) مقابل الوقت محليًا بشكل متسق لتحليل الأيام المتعددة
  • تعديل مقياس القدرة:تذكير المستخدمين بإعادة الضبط إلى الصفر قبل الطبعة
  • التحقق من FTP:علّم قيم FTP المشبوهة (>500 واط أو <100 واط)
  • اختبر بما فيه الكفاية:استخدمي ملفات مطلوبة بالضرورة من المطلوب