사이클링 파워 계산 공식

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

  1. IF 계산: 235 / 250 = 0.94
  2. 시간(초) 계산: 2시간 × 3600 = 7200초
  3. 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)

알고리즘:

  1. 주행 전체에 대해 30초 이동 평균 파워를 계산합니다.
  2. 각 30초 평균값을 4제곱합니다.
  3. 이 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

데이터 기반의 훈련 가이드

이 모든 공식은 과학적으로 검증되었으며, 전 세계 프로 선수들과 데이터 분석가들이 사용하는 표준을 따릅니다.