រូបមន្តថាមពលជិះកង់

មូលដ្ឋានគ្រឹះគណិតវិទ្យានៃម៉ែត្រវិភាគកង់

ការណែនាំអំពីការអនុវត្ត

ទំព័រនេះផ្តល់នូវរូបមន្តចម្លងបិទភ្ជាប់ និងវិធីសាស្ត្រគណនាជាជំហានៗសម្រាប់រង្វាស់ Bike Analytics ទាំងអស់។ ប្រើវាសម្រាប់ការអនុវត្តផ្ទាល់ខ្លួន ការផ្ទៀងផ្ទាត់ ឬការយល់ដឹងកាន់តែស៊ីជម្រៅអំពីការបណ្តុះបណ្តាលផ្អែកលើថាមពល។

⚠️ កំណត់ចំណាំនៃការអនុវត្ត

  • តម្លៃថាមពលទាំងអស់គិតជាវ៉ាត់ (W) ពេលវេលាគិតជាវិនាទី លុះត្រាតែបានបញ្ជាក់
  • FTP and CP are individual-specific thresholds—no universal values
  • Always validate inputs for reasonable ranges (0-2000W typical)
  • Handle edge cases (division by zero, negative power)
  • ទិន្នន័យថាមពលត្រូវការចន្លោះពេលថត 1 វិនាទីសម្រាប់ភាពត្រឹមត្រូវ

រង្វាស់នៃការអនុវត្តស្នូល

1. ពិន្ទុស្ត្រេសបណ្តុះបណ្តាល (TSS)

រូបមន្ត៖

TSS = (រយៈពេល_វិនាទី × NP × IF) / (FTP × 3600) × 100
ដែល IF = NP / FTP

ឧទាហរណ៍ដែលបានធ្វើការ៖

សេណារីយ៉ូ៖ជិះ 2 ម៉ោង NP = 235W, FTP = 250W

  1. Calculate IF: IF = 235 / 250 = 0.94
  2. Duration in seconds: 2 hours × 3600 = 7200 seconds
  3. TSS = (7200 × 235 × 0.94) / (250 × 3600) × 100
  4. TSS= 1,590,720 / 900,000 × 100 =176.7 TSS

ការបកស្រាយ៖ ជិះហ្វឹកហាត់ខ្លាំង (>150 TSS) រំពឹងថានឹងជាសះស្បើយពី 2 ទៅ 3 ថ្ងៃ

ការអនុវត្ត JavaScript៖

function calculateTSS(durationSeconds, normalizedPower, ftp) {
  const intensityFactor = normalizedPower / ftp;
  const tss = (durationSeconds * normalizedPower * intensityFactor) / (ftp * 3600) * 100;
  ត្រឡប់ Math.round(tss);
}

// ឧទាហរណ៍ការប្រើប្រាស់៖
const tss = គណនាTSS(7200, 235, 250);
// ត្រឡប់៖ ១៧៧

2. ថាមពលធម្មតា (NP)

ក្បួនដោះស្រាយ (ជាមធ្យមរំកិល 30 វិនាទី)៖

1. គណនាថាមពលរំកិលជាមធ្យម 30 វិនាទីសម្រាប់ការជិះទាំងមូល
2. បង្កើនតម្លៃ 30 វិនាទីនីមួយៗទៅថាមពលទី 4
3. យកជាមធ្យមនៃតម្លៃ ^4 ទាំងអស់នេះ
4. យកឫសទី 4 នៃមធ្យមភាគនោះ។
NP = ⁴√(ជាមធ្យមនៃ [30s_avg^4])

ហេតុអ្វីបានជាអំណាចទី 4?

The quartic (4th power) relationship reflects the non-linear physiological cost of variable efforts. A ride with surges and recoveries costs more energy than steady power at the same average.

ឧទាហរណ៍៖

  • Steady ride: 200W for 1 hour → NP = 200W, Average = 200W
  • Variable ride: Alternating 300W/100W → Average = 200W, NP = 225W

Same average power, but variable ride has 12% higher NP due to physiological cost of surges

ការអនុវត្ត JavaScript៖

មុខងារគណនាNormalizedPower(powerData) {
  // powerData គឺជាអារេនៃតម្លៃថាមពល 1 វិនាទី

  // ជំហានទី 1: គណនាជាមធ្យមវិលជុំ 30 វិនាទី
  const rollingAvgs = [];
  សម្រាប់ (អនុញ្ញាតឱ្យ 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: បង្កើនថាមពលទី 4
  const powered = rollingAvgs.map(p => Math.pow(p, 4));

  // ជំហានទី 3: មធ្យមនៃអំណាចទី 4
  const avgPowered = powered.reduce((sum, p) => sum + p, 0) / powered.length;

  // ជំហានទី 4: យកឫសទី 4
  const np = Math.pow(avgPowered, 0.25);

  ត្រឡប់ Math.round(np);
}

// ឧទាហរណ៍ការប្រើប្រាស់៖
const powerData = [/* អារេថាមពល 1 វិនាទី */];
const np = គណនាNormalizedPower(powerData);
// ត្រឡប់៖ NP ជាវ៉ាត់

3. កត្តាអាំងតង់ស៊ីតេ (IF)

រូបមន្ត៖

IF = NP / FTP

ជួរបកស្រាយ៖

IF ជួរ កម្រិតនៃការខិតខំប្រឹងប្រែង ឧទាហរណ៍លំហាត់
< 0.75 ការងើបឡើងវិញ / ងាយស្រួល Active recovery ride, Zone 1-2
0.75 - 0.85 ការស៊ូទ្រាំ ការ​ជិះ​ស្ថិ​ត​យូរ​, មូលដ្ឋាន​អេ​រ៉ូ​ប៊ី​
0.85 - 0.95 Tempo ការបណ្តុះបណ្តាលកន្លែងផ្អែម ចន្លោះពេល
0.95 - 1.05 កម្រិត FTP ចន្លោះពេល ការប្រឹងប្រែងសាកល្បងពេលវេលា
1.05 - 1.15 VO₂max ចន្លោះពេល 5 នាទី ការប្រណាំងតាមលក្ខណៈវិនិច្ឆ័យ
> 1.15 អាណាអេរ៉ូប៊ីក ការរត់ខ្លី ការវាយប្រហារ ការផ្ទុះ MTB

ការគណនាឧទាហរណ៍៖

សេណារីយ៉ូ៖NP = 235W, FTP = 250W

IF = 235 / 250 =0.94

ការបកស្រាយ៖ ការខិតខំប្រឹងប្រែងក្នុងកម្រិតខ្ពស់ / កម្រិតរងដែលមាននិរន្តរភាពរយៈពេល 2-3 ម៉ោង។

មុខងារគណនាIF(normalizedPower, ftp) {
  ត្រឡប់ (normalizedPower / ftp).toFixed(2);
}

// ឧទាហរណ៍៖
const if_value = គណនាIF(235, 250);
// ត្រឡប់: 0.94

4. សន្ទស្សន៍ភាពប្រែប្រួល (VI)

រូបមន្ត៖

VI = NP / ថាមពលមធ្យម

បកស្រាយ​ដោយ​វិន័យៈ

វិន័យ ធម្មតា VI អត្ថន័យ
ផ្លូវ TT / កិច្ចខិតខំប្រឹងប្រែងស្ថិរភាព 1.00 - 1.05 ថាមពលជាប់លាប់ខ្លាំង ល្បឿនល្អបំផុត
ការប្រណាំងផ្លូវ 1.05 - 1.10 ការកើនឡើងខ្លះ ជាទូទៅមានស្ថិរភាព
Criterium 1.10 - 1.20 ការបង្កើនល្បឿន និងការវាយប្រហារញឹកញាប់
កង់ភ្នំ XC 1.15 - 1.30+ អថេរខ្ពស់ ការកើនឡើងថេរ

ការគណនាឧទាហរណ៍៖

ការប្រណាំងផ្លូវ៖NP = 240W, ថាមពលជាមធ្យម = 230W

VI = 240/230 =1.04(ល្បឿនថេរ)

ការប្រណាំង MTB៖NP = 285W, ថាមពលជាមធ្យម = 235W

VI = 285/235 =១.២១(ប្រែប្រួលខ្លាំង ការប្រឹងប្រែងផ្ទុះឡើង)

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

// ឧទាហរណ៍៖
const vi_road = គណនាVI(240, 230);  // ត្រឡប់: 1.04
const vi_mtb = គណនាVI(285, 235);   // ត្រឡប់: 1.21

ថាមពលសំខាន់ & W' (សមត្ថភាព Anaerobic)

5. អំណាចសំខាន់ (CP) - គំរូលីនេអ៊ែរ

រូបមន្ត៖

ពេលវេលា = W' / (ថាមពល - CP)
រៀបចំឡើងវិញ៖ ថាមពល × ពេលវេលា = CP × ពេលវេលា + W'

ការគណនាពីការខិតខំប្រឹងប្រែងច្រើន៖

តម្រូវ​ឱ្យ​មាន​ការ​ខិត​ខំ​អតិបរមា 2-4 នៅ​ក្នុង​រយៈ​ពេល​ផ្សេង​គ្នា (ឧ. 3, 5, 12, 20 នាទី)

ឧទាហរណ៍ទិន្នន័យ៖

រយៈពេល ថាមពល (W) ការងារសរុប (kJ)
3 នាទី (180 វិនាទី) 400W 72 kJ
5 នាទី (300 វិ) 365 វ៉ 109.5 kJ
12 នាទី (720 វិ) 310W 223.2 kJ
20 នាទី (1200 វិនាទី) 285 វ៉ 342 kJ

Using linear regression (Work = CP × Time + W'):

  • CP = 270W(ជម្រាលនៃបន្ទាត់តំរែតំរង់)
  • W ' = 18.5 kJ(y-ស្ទាក់ចាប់)

ការអនុវត្ត JavaScript៖

មុខងារគណនាCP_Linear(កិច្ចខិតខំប្រឹងប្រែង) {
  // កិច្ចខិតខំប្រឹងប្រែង = [{រយៈពេល: វិនាទី, ថាមពល: វ៉ាត់}, ...]

  const times = efforts.map(e => e.duration);
  const work = efforts.map(e => e.power * e.duration / 1000); // kJ

  // តំរែតំរង់លីនេអ៊ែរ៖ ការងារ = CP * ពេលវេលា + 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;

  ត្រឡប់ {
    CP: Math.round(CP * 10) / 10, // វ៉ាត់
    Wprime៖ Math.round(Wprime * 10) / 10 // kJ
  };
}

// ឧទាហរណ៍ការប្រើប្រាស់៖
កិច្ចខិតខំប្រឹងប្រែង const = [
  {រយៈពេល៖ 180, ថាមពល: 400},
  {រយៈពេល៖ 300, ថាមពល: 365},
  {រយៈពេល៖ 720, ថាមពល៖ 310},
  {រយៈពេល៖ 1200, ថាមពល: 285}
];

const លទ្ធផល = គណនាCP_Linear(កិច្ចខិតខំប្រឹងប្រែង);
// ត្រឡប់៖ { CP: 270.0, Wprime: 18.5 }

6. W' Balance (W'bal) - Differential Equation Model

រូបមន្ត៖

ការចំណាយ (ពេល 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

សេណារីយ៉ូទី 1 - ការវាយប្រហារខ្លាំង៖

  • អ្នកជិះឡើងដល់ 400W រយៈពេល 30 វិនាទី
  • W' ចំណាយ៖ (400 - 270) × 30 = 3,900 J = 3.9 kJ
  • W'bal នៅសល់: 18.5 - 3.9 =14.6 kJ

សេណារីយ៉ូទី 2 - ការងើបឡើងវិញ៖

  • បន្ទាប់ពីការវាយប្រហារ ទម្លាក់ទៅ 200W (70W ក្រោម CP) រយៈពេល 2 នាទី។
  • ΔCP = 270 - 200 = 70W
  • τ = 546 × e^(-0.01 × 70) + 316 = 588 វិនាទី
  • ការងើបឡើងវិញក្នុង 120s: 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 = 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 ថ្ងៃ)៖

ថ្ងៃ TSS CTL ATL TSB ស្ថានភាព
ច័ន្ទ ១០០ 75.0 80.0 -5.0 ការបណ្តុះបណ្តាល
Tue ៥០ ៧៤.៤ ៧៥.៧ -1.3 ការងើបឡើងវិញ
ថ្ងៃពុធ ១២០ ៧៥.៥ 82.0 -៦.៥ ការបណ្តុះបណ្តាលរឹង
ធូ 0 ៧៣.៧ ៧០.៣ +3.4 ថ្ងៃឈប់សម្រាក
សុក្រ ៨០ ៧៣.៨ ៧១.៧ +2.1 មធ្យម
សៅរ៍ ១៥០ ៧៥.៦ ៨២.៩ -៧.៣ ជិះយូរ
ព្រះអាទិត្យ ៤០ ៧៤.៨ ៧៦.៨ -2.0 ការងើបឡើងវិញ

TSB ការបកស្រាយ៖

TSB ជួរ ស្ថានភាព សកម្មភាព
< -30 ហានិភ័យខ្ពស់។ ការព្រមានអំពីការឆ្លងកាត់ - កាត់បន្ថយបន្ទុក
-30 ទៅ -10 ការហ្វឹកហាត់រឹង ការកសាងសម្បទា, តាមដានការងើបឡើងវិញ
-10 ដល់ +5 ល្អបំផុត តំបន់បណ្តុះបណ្តាលធម្មតា។
+5 ដល់ +15 ការប្រណាំងរួចរាល់ ទម្រង់កំពូល - ការប្រណាំងនៅចុងសប្តាហ៍នេះ។
> +25 ការឃាត់ឃាំង ការបាត់បង់សម្បទា - បង្កើនការផ្ទុក

ការអនុវត្ត JavaScript៖

មុខងារគណនាPMC(ការហាត់ប្រាណ) {
  // workouts = [{date: "YYYY-MM-DD", tss: number}, ...]
  អនុញ្ញាតឱ្យ ctl = 0, atl = 0;
  លទ្ធផល const = [];

  workouts.forEach(ហាត់ប្រាណ => {
    // ធ្វើបច្ចុប្បន្នភាព CTL (ពេលវេលាថេរ 42 ថ្ងៃ)
    ctl = ctl + (workout.tss - ctl) / 42;

    // ធ្វើបច្ចុប្បន្នភាព ATL (រយៈពេល 7 ថ្ងៃថេរ)
    atl = atl + (workout.tss - atl) / 7;

    // Calculate TSB (yesterday's CTL - today's ATL for traditional calculation)
    // សម្រាប់ភាពសាមញ្ញនៅទីនេះដោយប្រើតម្លៃបច្ចុប្បន្ន
    const tsb = ctl - atl;

    results.push({
      កាលបរិច្ឆេទ៖ workout.date,
      tss: workout.tss,
      ctl: Math.round(ctl * 10) / 10,
      atl: Math.round(atl * 10) / 10,
      tsb: Math.round(tsb * 10) / 10,
      ស្ថានភាព៖ getTSBSstatus(tsb)
    });
  });

  លទ្ធផលត្រឡប់មកវិញ;
}

មុខងារ getTSBSstatus(tsb) {
  ប្រសិនបើ (tsb < -30) ត្រឡប់ "ហានិភ័យខ្ពស់";
  ប្រសិនបើ (tsb < -10) ត្រឡប់ "Training Hard";
  ប្រសិនបើ (tsb < 5) ត្រឡប់ "ល្អបំផុត";
  ប្រសិនបើ (tsb < 15) ត្រឡប់ "ការប្រណាំងរួចរាល់";
  ត្រឡប់ "កំណត់";
}

// ឧទាហរណ៍ការប្រើប្រាស់៖
លំហាត់ const = [
  {កាលបរិច្ឆេទ៖ "2025-01-01", tss: 100},
  {កាលបរិច្ឆេទ៖ "2025-01-02", tss: 50},
  {កាលបរិច្ឆេទ៖ "2025-01-03", tss: 120},
  // ... លំហាត់ច្រើនទៀត
];

const pmc = គណនាPMC(ការហាត់ប្រាណ);
// Returns array with CTL, ATL, TSB for each day

សូចនាករថាមពលទៅទម្ងន់ និងការឡើងភ្នំ

8. សមាមាត្រថាមពលទៅទម្ងន់

រូបមន្ត៖

W/kg = ថាមពល (វ៉ាត់) / ម៉ាសរាងកាយ (គីឡូក្រាម)

FTP W/kg Benchmarks៖

កម្រិត បុរស W/kg ស្រី W/kg ប្រភេទ
កំសាន្ត 2.5 - 3.5 2.0 - 3.0 អ្នកជិះហាត់ប្រាណ
ប្រកួតប្រជែង ៣.៥ - ៤.៥ 3.0 - 4.0 Cat 3-4, age group racer
កម្រិតខ្ពស់ ៤.៥ - ៥.៥ 4.0 - 5.0 ឆ្មា 1-2, អ្នកស្ម័គ្រចិត្តខ្លាំង
វរជន ស្ម័គ្រចិត្ត 5.5 - 6.0 5.0 - 5.5 ថ្នាក់ជាតិ
វិជ្ជាជីវៈ 6.0 - 7.0+ 5.5 - 6.5+ ដំណើរទេសចរណ៍ពិភពលោក Grand Tour GC

ការគណនាឧទាហរណ៍៖

សេណារីយ៉ូ៖ Cyclist with FTP = 275W, body mass = 70kg

W/kg = 275/70 =3.93 វ៉ / គីឡូក្រាម

ការបកស្រាយ៖ កម្រិតប្រកួតប្រជែង មានសមត្ថភាពក្នុងការប្រណាំងភ្នំ

មុខងារគណនាWattsPerKg(ថាមពល, bodyMassKg) {
  ត្រឡប់ (ថាមពល / bodyMassKg).toFixed(2);
}

// ឧទាហរណ៍៖
const wpkg = គណនាWattsPerKg(275, 70);
// ត្រឡប់: 3.93

9. VAM (Velocità Ascensionale Media)

រូបមន្ត៖

VAM (m/h) = ការកើនឡើង (m) / ម៉ោង (ម៉ោង)

VAM Benchmarks៖

VAM (m/h) កម្រិត ឧទាហរណ៍
៦០០ - ៩០០ កំសាន្ត អ្នកជិះក្លឹបលើការឡើងភ្នំក្នុងស្រុក
900 - 1200 ប្រកួតប្រជែង អ្នកស្ម័គ្រចិត្តល្អនៅលើ Alpe d'Huez
1200 - 1500 វរជន ស្ម័គ្រចិត្ត អ្នកឡើងភ្នំថ្នាក់ជាតិ
1500 - 1800 វិជ្ជាជីវៈ ដំណើរកំសាន្តពិភពលោកក្នុងស្រុក
> 1800 អ្នកឈ្នះរង្វាន់ធំ Pogačar, Vingegaard នៅលើការឡើងសំខាន់ៗ

ការគណនាឧទាហរណ៍៖

សេណារីយ៉ូ៖ឡើងភ្នំ Alpe d'Huez

  • ការកើនឡើងកម្ពស់: 1100 ម៉ែត្រ
  • ពេលវេលា: 55 នាទី = 0.917 ម៉ោង។
  • VAM = 1100 / 0.917 =1200 ម៉ែត / ម៉ោង។

ការបកស្រាយ៖ ការឡើងកម្រិតប្រកួតប្រជែង

មុខងារគណនាVAM(elevationGainMeters, timeminutes) {
  ម៉ោង const = ម៉ោង / 60;
  ត្រឡប់ Math.round(elevationGainMeters / ម៉ោង);
}

// ឧទាហរណ៍៖
const vam = គណនាVAM(1100, 55);
// ត្រឡប់: 1200 m/h

10. ការប៉ាន់ស្មាន VAM ទៅ W/kg

រូបមន្ត៖

W/kg ≈ VAM (m/h) / 100 / (ជម្រាល% + 3)

ការគណនាឧទាហរណ៍៖

សេណារីយ៉ូ៖ឡើងជាមួយនឹងជម្រាលមធ្យម 8% VAM = 1200 m/h

W / គីឡូក្រាម = 1200 / 100 / (8 + 3)

W/kg = 12/11 =4.36 វ៉ / គីឡូក្រាម

ការត្រួតពិនិត្យឆ្លងកាត់៖ ជាមួយនឹងអ្នកជិះ 70 គីឡូក្រាម → ថាមពល 305W ទ្រទ្រង់នៅពេលឡើង

function estimateWkgFromVAM(vam, gradientPercent) {
  return (vam / 100 / (gradientPercent + 3)).toFixed(2);
}

// ឧទាហរណ៍៖
const wkg = ប៉ាន់ស្មានWkgFromVAM(1200, 8);
// ត្រឡប់: 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
Kinetic (ការបង្កើនល្បឿន)៖
P_kinetic = m × a × V

អថេរ និងអថេរ៖

  • ស៊ីឌីអេ= មេគុណអូស × ផ្ទៃខាងមុខ (m²)
    • ក្រណាត់កង់ផ្លូវធម្មតា៖ 0.35-0.40 m²
    • ធ្លាក់ចុះ: 0.32-0.37 m²
    • ទីតាំង TT: 0.20-0.25 m²
  • ρ= ដង់ស៊ីតេខ្យល់ (1.225 គីឡូក្រាម/m³ នៅកម្រិតទឹកសមុទ្រ 15°C)
  • = ល្បឿន (m/s)
  • = ម៉ាសសរុប (អ្នកជិះ + កង់, គីឡូក្រាម)
  • g= ទំនាញ (9.81 m/s²)
  • θ= មុំជម្រាល (រ៉ាដ្យង់ ឬដឺក្រេបំប្លែង)
  • Cr= មេគុណធន់នឹងរំកិល (~0.004 សម្រាប់សំបកកង់ផ្លូវល្អ)
  • = ការបង្កើនល្បឿន (m/s²)

ឧទាហរណ៍ការងារ (ផ្លូវផ្ទះល្វែង TT)៖

សេណារីយ៉ូ៖

  • ល្បឿន: 40 គីឡូម៉ែត្រ / ម៉ោង = 11.11 m / s
  • CdA: 0.22 m² (ទីតាំង TT ល្អ)
  • ទម្ងន់សរុប៖ ៧៥ គីឡូក្រាម (អ្នកជិះ) + ៨ គីឡូក្រាម (កង់) = ៨៣ គីឡូក្រាម
  • ផ្លូវរាបស្មើ (ជម្រាល = 0°)
  • Constant speed (acceleration = 0)

ការគណនា៖

  1. P_aero= 0.22 × 0.5 × 1.225 × 11.11³ =185 វ៉
  2. P_ទំនាញ= 0W (ផ្លូវផ្ទះល្វែង)
  3. P_rolling= 0.004 × 83 × 9.81 × 11.11 =៣៦ វ៉
  4. P_kinetic= 0W (ល្បឿនថេរ)
  5. P_សរុប= 185 + 0 + 36 + 0 =221 វ៉

ការបកស្រាយ៖ ត្រូវការ 221W ដើម្បីទ្រទ្រង់ 40 គីឡូម៉ែត្រក្នុងមួយម៉ោង នៅក្នុងទីតាំង TT នៅលើផ្លូវរាបស្មើ

ការអនុវត្ត JavaScript៖

មុខងារគណនាថាមពលដែលត្រូវការ (ប៉ារ៉ាម៉ែត្រ) {
  const {
    ល្បឿនKph,
    CdA = 0.32, // m²
    rho = 1.225, // kg/m³
    ម៉ាស់ = 83, // គីឡូក្រាម (អ្នកជិះ + កង់)
    gradientPercent = 0, // %
    Crr = 0.004, // ភាពធន់នឹងរំកិល
    accelerationMps2 = 0 // m/s²
  } = ប៉ារ៉ាម៉ែត្រ;

  // បំប្លែងល្បឿនទៅជា m/s
  const V = velocityKph / 3.6;

  // បំលែងជម្រាលទៅជាមុំ
  const theta = Math.atan(gradientPercent / 100);

  // គណនាសមាសធាតុនីមួយៗ
  const P_aero = CdA * 0.5 * rho * Math.pow(V, 3);
  const P_gravity = ម៉ាស់ * 9.81 * Math.sin(theta) * V;
  const P_rolling = Crr * ម៉ាស់ * 9.81 * Math.cos(theta) * V;
  const P_kinetic = ម៉ាស់ * accelerationMps2 * V;

  ត្រឡប់ {
    សរុប៖ Math.round(P_aero + P_gravity + P_rolling + P_kinetic),
    aero: Math.round(P_aero),
    ទំនាញ៖ Math.round(P_gravity),
    រមៀល៖ Math.round(P_rolling),
    kinetic៖ Math.round(P_kinetic)
  };
}

// ឧទាហរណ៍៖ TT នៅ 40 គីឡូម៉ែត្រ / ម៉ោង។
const power_tt = គណនាថាមពលដែលត្រូវការ({
  ល្បឿន Kph: 40,
  CdA: 0.22,
  ម៉ាស៖ ៨៣,
  gradient ភាគរយ៖ 0
});
// ត្រឡប់៖ { សរុប៖ ២២១, អេរ៉ូ៖ ១៨៥, ទំនាញ៖ ០, វិល៖ ៣៦, គីណេទិក៖ ០ }

// ឧទាហរណ៍៖ ៨% ឡើងក្នុងល្បឿន ១៥ គីឡូម៉ែត្រក្នុងមួយម៉ោង
const power_climb = គណនាថាមពលដែលត្រូវការ({
  ល្បឿន Kph: 15,
  CdA: 0.38,
  ម៉ាស: 75,
  gradient ភាគរយ៖ ៨
});
// ត្រឡប់៖ { សរុប៖ ២៦៥, អាកាស៖ ២៧, ទំនាញ៖ ២៤៤, វិល៖ ១១, គីណេទិក៖ ០ }

មុខងារជំនួយ

ឧបករណ៍បំប្លែងឯកតា

ការអនុវត្ត JavaScript៖

// ការផ្លាស់ប្តូរពេលវេលា
មុខងារ hourToSeconds(ម៉ោង) {
  ម៉ោងត្រឡប់មកវិញ * 3600;
}

មុខងារ minutesToSeconds(នាទី) {
  នាទីត្រឡប់ * 60;
}

មុខងារ secondsToHours(វិនាទី) {
  ត្រឡប់វិនាទី / 3600;
}

ទម្រង់មុខងាររយៈពេល (វិនាទី) {
  const ម៉ោង = Math.floor(វិនាទី / 3600);
  const នាទី = Math.floor((វិនាទី % 3600) / 60);
  const secs = Math.round(វិនាទី % 60);
  ត្រឡប់ `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}

// ការបំប្លែងល្បឿន
មុខងារ kphToMps(kph) {
  ត្រឡប់ kph / 3.6;
}

មុខងារ mpsToKph(mps) {
  ត្រឡប់ mps * 3.6;
}

// ការបំប្លែងថាមពល
មុខងារ joulesTo kJ(joules) {
  ត្រឡប់ joules / 1000;
}

មុខងារ kJToJoules(kJ) {
  ត្រឡប់ kJ * 1000;
}

មុខងារ wattsToKJ(វ៉ាត់, រយៈពេលវិនាទី) {
  ត្រឡប់ (វ៉ាត់ * រយៈពេលវិនាទី) / 1000;
}

// ឧទាហរណ៍៖
ទម្រង់រយៈពេល (7265);        // ត្រឡប់៖ "2:01:05"
kphToMps(40);                // ត្រឡប់: 11.11 m/s
wattsToKJ (250, 3600);        // ត្រឡប់: 900 kJ (1 ម៉ោងនៅ 250W)

ធនធាននៃការអនុវត្ត

រូបមន្តទាំងអស់នៅលើទំព័រនេះគឺផលិតរួចរាល់ និងមានសុពលភាពប្រឆាំងនឹងអក្សរសិល្ប៍វិទ្យាសាស្ត្រ និងទិន្នន័យម៉ែត្រថាមពលពិភពលោកពិត។ ប្រើពួកវាសម្រាប់ឧបករណ៍វិភាគផ្ទាល់ខ្លួន ការផ្ទៀងផ្ទាត់ ឬការយល់ដឹងកាន់តែស៊ីជម្រៅអំពីការគណនាការបណ្តុះបណ្តាលផ្អែកលើថាមពល។

💡 ការអនុវត្តល្អបំផុត

  • ធ្វើឱ្យមានសុពលភាពធាតុចូល៖ពិនិត្យមើលជួរថាមពលដែលសមហេតុផល (0-2000W) រយៈពេលវិជ្ជមាន
  • ដោះស្រាយករណីគែម៖ការបែងចែកដោយសូន្យ ទិន្នន័យទុកជាមោឃៈ បាត់ FTP
  • ជុំដោយសមរម្យ៖CTL/ATL/TSB ទៅ 1 ទសភាគ TSS ទៅចំនួនគត់ W/kg ទៅ 2 ទសភាគ
  • ភាពជាក់លាក់នៃហាង៖រក្សាភាពជាក់លាក់ពេញលេញនៅក្នុងមូលដ្ឋានទិន្នន័យ មូលសម្រាប់តែការបង្ហាញប៉ុណ្ណោះ។
  • តំបន់ពេលវេលា៖ដោះស្រាយ UTC ធៀបនឹងម៉ោងក្នុងស្រុកជាប់លាប់សម្រាប់ការវិភាគច្រើនថ្ងៃ
  • ការក្រិតតាមខ្នាតម៉ែត្រថាមពល៖រំលឹកអ្នកប្រើប្រាស់ឱ្យសូន្យអុហ្វសិតមុនពេលជិះ
  • FTP សុពលភាព៖ដាក់ទង់តម្លៃ FTP គួរឱ្យសង្ស័យ (> 500W ឬ <100W សម្រាប់មនុស្សពេញវ័យ)
  • សាកល្បងយ៉ាងហ្មត់ចត់៖ប្រើឯកសារជិះដែលស្គាល់ល្អ ដើម្បីផ្ទៀងផ្ទាត់ការគណនា