معادلة قدرة ركوب الدراجات
الأساس الرياضي لمقاييس تحليلات الدراجات
دليل التنفيذ
توفر هذه الصفحة معادلات جاهزة للنسخ واللصق وحساب خطوة بخطوة لجميع مقاييس تحليلات الدراجات. استخدمها للاختيار أو التحقق أو العمق الممارس للقدرة.
⚠️ أفكار التنفيذ
- جميع قيم القدرة بالواط (W)، والوقت بالثواني ما لم يحدد خلاف ذلك
- FTP و CP هي عتبات خاصة بكل شخص - لا توجد قيم عالمية
- تحقق دائمًا من المدخلات للنطاقات المتنوعة (0-2000W نموذجيًا)
- التعامل مع الحالات العاطفية (القسم على الصفر، القدرة السالبة)
- تتطلب البيانات المطلوبة تسجيل 1 ثانية للحصول على الدقة
ركوب الدراجات المقاييس الأساسية
1. الضغط على التدريب (TSS)
حتى:
مثال عملي:
السيناريو:رحلة بحرية ساعتين، NP = 235 وات، FTP = 250 وات
- حساب IF: IF = 235 / 250 = 0.94
- المدة بالثواني: 2 ساعة × 3600 = 7200 ثانية
- TSS = (7200 × 235 × 0.94) / (250 × 3600) × 100
- 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: 1772. القدرة على المرونة (NP)
الخوارزمية (متوسط متحرك 30 ثانية):
لماذا الرابعة؟
احترام الكنيسة (القوة الرابعة) التكلفة الفسيولوجية غير المشتركة للجهود المتغيرة. تعتبر الطائرات ذات السرعات الرائعة والتعافي من أكثر الطائرات شهرةً في التصميم.
مثال:
- مدة الرحلة: 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 watts3. عامل الشدة (IF)
حتى:
نطاقات التفسير:
| نطاق الحماية 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.944. مؤشر التباين (VI)
حتى:
التفسير حسب التخصص:
| التخصص | السادس النموذجي | معنى |
|---|---|---|
| سباق الطريق مقابل الوقت / جهد ثابت | 1.00 - 1.05 | قدرة شديدة جدًا، وشفاء حديث |
| سباق الطريق | 1.05 - 1.10 | بعض الزيادات، ثابتة عموماً |
| معايير | 1.10 - 1.20 | سامح و أهداف |
| دراجات الدراجات XC | 1.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) - النموذج الخطي
حتى:
العمل من جهود متعددة:
تتطلب 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. رصيد و' (وبال) - نموذج نموذج الفاضلية
المعادلات:
W'exp(t) = ∫(P(t) - CP) dt
W'rec(t) = W' × (1 - e^(-t/τ))
و Δ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 (حمل التدريب المزمن):متوسط موزون أسياً لـ 42 يوماً - يمثل تمرين اللياقة البدنية
- ATL (حمل التدريب الحاد):متوسط موزون أسياً لـ 7 أيام - تمثيل الإرهاق
- TSB ( تكامل التدريب):الشكل = التمرين - الإرهاق
مثال عملي (كتلة للتدريب لمدة 7 أيام):
| اليوم | حماية 1X | حماية2X | حماية 3X | حماية 4X | الحالة |
|---|---|---|---|---|---|
| الاثنين | 100 | 75.0 | 80.0 | -5.0 | تدريب |
| الثلاثاء | 50 | 74.4 | 75.7 | -1.3 | استشفاء |
| الأربعاء | 120 | 75.5 | 82.0 | -6.5 | تدريب صعب |
| الخميس | 0 | 73.7 | 70.3 | +3.4 | يوم راحة |
| الجمعة | 80 | 73.8 | 71.7 | +2.1 | المعتدل |
| السبت | 150 | 75.6 | 82.9 | -7.3 | رحلة طويلة |
| الأحد | 40 | 74.8 | 76.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.5 | 2.0 - 3.0 | دراجة لياقة |
| ممتد | 3.5 - 4.5 | 3.0 - 4.0 | الفئة 3-4، سباق الفئة العمرية |
| متقدم | 4.5 - 5.5 | 4.0 - 5.0 | الفئة 1-2، هاوي قوي |
| هاوي نخبة | 5.5 - 6.0 | 5.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.939.VAM (Velocità Ascensionale Media)
حتى:
معايير 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/h10. تقدير VAM إلى W/kg
حتى:
حساب المثال:
السيناريو:درجة ميل متوسطة 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_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)
الحساب:
- بي_ايرو= 0.22 × 0.5 × 1.225 × 11.11³ =185 واط
- P_الجاذبية= 0 وات (طريق مستوٍ)
- P_rolling= 0.004 × 83 × 9.81 × 11.11 =36 واط
- P_kinetic= 0 وات (سرعة الدوران)
- 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 واط)
- اختبر بما فيه الكفاية:استخدمي ملفات مطلوبة بالضرورة من المطلوب
