사이클링 파워 계산 공식
Bike Analytics 지표의 수학적 토대
구현 가이드
이 페이지는 Bike Analytics에서 사용하는 모든 지표의 계산 방식과 소스 코드를 제공합니다. 사용자 정의 분석 툴을 만들거나 파워 기반 훈련의 원리를 깊이 이해하는 데 활용하세요.
⚠️ 구현 시 유의사항
- 모든 파워 값은 와트(W), 시간은 초(s) 단위를 기본으로 합니다.
- FTP와 CP는 개인별 고유 수치이므로 사용자로부터 직접 입력받아야 합니다.
- 입력 데이터의 유효성을 항상 검증하세요 (통상 0-2000W 범위).
- 정확한 분석을 위해 1초 단위의 파워 기록 데이터가 필요합니다.
핵심 성능 지표
1. 훈련 부하 점수 (TSS)
공식:
TSS = (duration_seconds × NP × IF) / (FTP × 3600) × 100
단, IF = NP / FTP
계산 사례:
시나리오: 2시간 주행, NP = 235W, FTP = 250W
- IF 계산: 235 / 250 = 0.94
- 시간(초) 계산: 2시간 × 3600 = 7200초
- TSS = (7200 × 235 × 0.94) / (250 × 3600) × 100 = 176.7 TSS
JavaScript 구현:
function calculateTSS(durationSeconds, normalizedPower, ftp) {
const intensityFactor = normalizedPower / ftp;
const tss = (durationSeconds * normalizedPower * intensityFactor) / (ftp * 3600) * 100;
return Math.round(tss);
}
2. 표준화 파워 (NP)
알고리즘:
- 주행 전체에 대해 30초 이동 평균 파워를 계산합니다.
- 각 30초 평균값을 4제곱합니다.
- 이 4제곱된 값들의 전체 평균을 구합니다.
- 그 결과값의 4제곱근을 구합니다.
NP = ⁴√(average of [30s_avg⁴])
왜 4제곱인가요? 파워의 변동이 신체에 가하는 독성은 비선형적으로 증가하기 때문입니다. 짧고 강력한 서지는 정상 상태 주행보다 훨씬 많은 대사 비용을 요구합니다.
3. 성과 관리 차트 (PMC)
지수 가중 이동 평균(EWMA) 공식:
CTL_오늘 = CTL_어제 + (TSS_오늘 - CTL_어제) / 42
ATL_오늘 = ATL_어제 + (TSS_오늘 - ATL_어제) / 7
TSB_오늘 = CTL_어제 - ATL_어제
- CTL (체력): 42일간의 평균 훈련 부하
- ATL (피로): 7일간의 평균 훈련 부하
- TSB (컨디션): 체력과 피로의 차이 (양수일 때 최상의 기량 발취 가능)
공기역학적 파워 방정식
총 요구 파워 (Total Power)
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