部落格文章

同一場跑步,為什麼有不同的訓練負荷?從柏林馬拉松認識 TRIMP、rTSS 與穿戴式裝置的訓練數據

同一場跑步,為什麼有不同的訓練負荷?

從柏林馬拉松認識 TRIMP、rTSS 與穿戴式裝置的訓練數據

 

 

跑完一場馬拉松,當我們打開運動手錶或訓練平台,除了距離、配速、心率與完賽時間,往往還會看到另一個數字:訓練負荷(Training Load)。

 

 

有些平台顯示 Training Load,有些稱為 Training Stress Score(TSS),也有些使用 Relative Effort 或其他名稱。

這些數字看起來都在描述同一件事:今天的跑步究竟有多辛苦?

但如果將同一場跑步紀錄匯入不同平台,卻可能得到截然不同的結果。

8B97D33F CE68 47FF 8A3E 2A5185880C03

 

為什麼會這樣?

是某個平台計算錯誤,還是這些數字本來就在衡量不同的事情?

這次,我想透過自己在 2026 年柏林馬拉松的實際紀錄,介紹兩種常見的訓練負荷計算概念:TRIMP 與 rTSS,以及一般跑者該如何理解與應用這些數據。

 

 

一、從一場馬拉松開始:相同的跑步,不同的負荷分數

2026 年柏林馬拉松,我以 3 小時 35 分 51 秒完賽。

這場比賽的主要紀錄如下:

項目 數值
完賽時間 3:35:51
計算使用的運動時間 約 215 分鐘
平均心率 158 bpm
安靜心率 45 bpm
暫定最大心率 194 bpm
TrainingPeaks 顯示的 TSS 269

 

 

其中,194 bpm 是我在近期高強度跑步中,觀察到能持續約 10~15 秒的較高心率,因此暫時作為計算最大心率的參考值。

它並非經過標準化最大運動測試所確認的生理最大心率。

如果使用傳統 Banister TRIMP 公式,以這些數據進行估算,這場馬拉松的訓練負荷約為 447.6 TRIMP。

但 TrainingPeaks 顯示的 TSS 卻是 269。

 

MessageImage

 

為什麼同一場馬拉松,會出現兩個差異如此明顯的數字?

首先,我們必須理解:這些分數並不是使用同一套計算方式,也不具有可以直接比較的共同尺度。

 

 

二、TRIMP:從心率與運動時間,估算身體承受的負荷

TRIMP 是 Training Impulse 的縮寫,中文可譯為「訓練衝量」。

這個概念與運動生理學家 Eric Banister 所提出的訓練負荷模型有關。

 

 

其核心想法是:

訓練負荷不只取決於運動時間,也取決於運動過程中的相對生理強度。

舉例來說,同樣跑 60 分鐘:

一個人以輕鬆配速慢跑,另一個人則持續進行高強度節奏跑。

雖然兩者的運動時間相同,但身體承受的生理刺激顯然不同。

因此,TRIMP 嘗試將運動時間與心率強度結合,並透過非線性加權,讓較高強度的運動產生更大的負荷分數。

 

 

1. 先計算心率儲備比例

傳統 Banister TRIMP 會使用心率儲備比例(Heart Rate Reserve Fraction):

心率儲備比例 =(運動心率 − 安靜心率)÷(最大心率 − 安靜心率)

其中:

  • 運動心率:運動期間的心率
  • 安靜心率:休息狀態下的心率
  • 最大心率:個人的最大心率參考值

以我的柏林馬拉松為例:

心率儲備比例 =(158 − 45)÷(194 − 45)

= 113 ÷ 149

≈ 0.7584(75.84%)

 

 

代表這場比賽的平均心率約落在 75.8% 心率儲備的相對強度。

這裡需要注意,75.8% HRR 並不等於最大心率的 75.8%,兩者的計算基準不同。

 

 

2. 再加入運動時間與強度加權

傳統 Banister TRIMP 的男性版本可表示為:

TRIMP = 運動時間(分鐘)× 心率儲備比例 × 0.64 × e^(1.92 × 心率儲備比例)

其中 e 是自然對數的底數,約為 2.71828。

公式中的指數項,會讓較高的相對心率強度獲得更大的加權。

 

 

將柏林馬拉松的資料代入:

TRIMP = 215 × 0.7584 × 0.64 × e^(1.92 × 0.7584)

≈ 447.6

 

這裡使用的是男性版本的傳統係數。女性版本在原始模型中使用不同的經驗係數:

TRIMP(女性版本)= 運動時間(分鐘)× 心率儲備比例 × 0.86 × e^(1.67 × 心率儲備比例)

不過,這些群體係數也不一定能完整描述每位跑者的個體生理反應。

 

 

另外,這次計算是使用整場平均心率進行的簡化估算。

如果能使用完整的逐時間心率紀錄,將不同時間點的強度分別加權後累積,結果可能有所不同。

 

 

3. TRIMP 的優點與限制

TRIMP 的優點,是能將運動時間與相對心率強度結合,提供一個觀察內部生理負荷的參考指標。

但心率不只受到運動強度影響。

氣溫、濕度、補水狀況、疲勞、睡眠、心理壓力,以及長時間運動產生的心率飄移,都可能改變心率反應。

 

 

例如,同樣以每公里 5 分鐘的配速跑步,在涼爽的清晨與炎熱的中午,心率可能明顯不同。

TRIMP 可能因此顯示不同的生理負荷。

這不一定是計算錯誤,反而可能反映出不同環境下,身體為了維持相同運動輸出所付出的額外生理成本。

不過,心率本身仍只是生理負荷的代理指標,無法完整描述肌肉骨骼承受的機械負荷,也不等於實際的恢復時間。

 

 

三、rTSS:從跑步速度與閾值,估算訓練壓力

如果 TRIMP 主要從心率出發,那麼 rTSS 則是從跑步配速與相對強度的角度來估算訓練壓力。

rTSS 是 Running Training Stress Score 的縮寫,是 TrainingPeaks 訓練壓力評估架構中的跑步配速型指標。

 

 

其核心概念同樣包含兩個因素:

運動持續時間,以及相對於個人閾值的運動強度。

不過,它使用的強度基準與 TRIMP 不同。

 

 

1. 功能性閾值配速與 IF

rTSS 使用功能性閾值配速(Functional Threshold Pace,FTP)作為強度參考。

在 TrainingPeaks 的配速型計算架構中,還會考慮坡度對跑步速度的影響,使用標準化坡度配速 NGP(Normalized Graded Pace)估算相對強度。

強度係數 IF(Intensity Factor)可以表示為:

IF = 功能性閾值配速(秒/公里)÷ NGP(秒/公里)

這裡要特別注意:因為使用的是「秒/公里」這種配速單位,所以是用閾值配速除以 NGP。

假設一位跑者的功能性閾值配速為 4:30/km,而某次跑步的 NGP 為 5:00/km:

功能性閾值配速 = 270 秒/公里

NGP = 300 秒/公里

IF = 270 ÷ 300

= 0.90

 

代表這次跑步的標準化強度,約為個人功能性閾值速度的 90%。

需要特別說明的是,功能性閾值配速並不直接等於臨界功率(Critical Power)。

一個是速度基準,另一個是功率基準,不能因為兩者都以百分比表示,就直接互相換算。

 

2. rTSS 如何計算?

以常見的簡化形式表示:

rTSS ≈ 運動時間(小時)× IF² × 100

例如,一位跑者以 IF 0.90 的相對強度,持續跑步一小時:

rTSS = 1 × 0.90² × 100

= 1 × 0.81 × 100

= 81

這個平方加權的設計,讓相對強度提高時,訓練壓力分數也會加速增加。

因此,同樣跑一小時,輕鬆跑與接近閾值的訓練,會得到不同的 rTSS。

 

3. 回到柏林馬拉松:TSS 269 代表什麼?

我的 TrainingPeaks 紀錄顯示,柏林馬拉松的 TSS 為 269。

不過,這裡有一個重要前提:

TrainingPeaks 的 TSS 不一定全部由 rTSS 計算。

依據資料來源與活動設定,平台可能使用配速型、心率型或其他適用的訓練壓力計算方式。

因此,在尚未確認這個 269 確實屬於 rTSS 前,我們不能直接把它當成配速型訓練負荷。

 

但如果假設它是 rTSS,就可以依據運動時間反推 IF:

IF = √[rTSS ÷(運動時間(小時)× 100)]

將柏林馬拉松的資料代入:

IF = √[269 ÷(215 ÷ 60 × 100)]

≈ 0.866(86.6%)

 

 

也就是說,在這個假設成立的情況下,整場馬拉松的標準化配速強度,約為功能性閾值速度的 86.6%。

這是一個值得參考的相對強度數值,但仍需要實際的 NGP、閾值配速設定及 TSS 類型,才能進一步確認。

更重要的是,86.6% 的閾值速度,不等於 86.6% 的臨界功率,也不能直接代表主觀用力程度或心率強度。

 

 

四、同樣是配速,為什麼平台還要考慮坡度?

跑者可能會問:

既然已經有 GPS 配速,為什麼還需要 NGP 或其他坡度調整指標?

原因在於,相同的實際配速,不一定代表相同的運動需求。

 

 

例如,同樣跑每公里 6 分鐘:

在平坦道路上,可能是一趟輕鬆跑;但如果是在持續上坡的路段,身體所需的運動輸出就可能明顯增加。

因此,有些平台會使用坡度調整後的配速,試圖讓不同地形的跑步強度更容易比較。

Strava 的 GAP(Grade Adjusted Pace)也是跑者可能看過的相關概念。

它會根據坡度,提供一個經過地形調整的配速參考。

 

MessageImage

 

 

不過,Strava GAP 與 TrainingPeaks NGP 並不是完全相同的演算法,也不能直接視為同一個數值。

而且坡度調整配速仍是模型估計,無法完整反映風阻、路面狀況、個人跑步經濟性,以及疲勞造成的生理變化。

所以它可以輔助我們理解跑步強度,但不能取代心率、RPE 或實際訓練感受。

 

 

五、TRIMP 447.6、TSS 269,究竟哪個負荷比較大?

這可能是整篇文章最重要的問題。

答案是:

不能直接比較。

 

 

TRIMP 與 rTSS 都試圖描述訓練負荷,但它們使用的資料、強度基準、加權方式與數值尺度不同。

指標 主要依據 觀察重點
TRIMP 心率、心率儲備、時間 內部生理負荷
rTSS 標準化配速、閾值配速、時間 配速型相對訓練壓力
Session-RPE 主觀用力程度、時間 整堂訓練的主觀負荷
Strava Relative Effort 以心率強度及持續時間為主 平台定義的相對努力程度

 

 

因此,TRIMP 447.6 並不代表這場馬拉松的訓練負荷,比 TSS 269 高出約 66%。

兩個數字沒有共同的比較尺度。

就像我們不能直接拿攝氏 30 度與時速 30 公里比較大小一樣,數字相同或不同,都不代表它們描述的是同一種物理或生理意義。

 

 

那麼,不同平台的訓練負荷分數還有價值嗎?

 

當然有。

但比較合理的應用方式,是在同一套模型、相對一致的設定與資料品質下,觀察自己長期的負荷變化。

例如,當一位跑者連續數週使用同一套 TRIMP 計算方式,就可以觀察每週內部負荷是否逐漸增加。

同樣地,如果功能性閾值配速設定合理,且持續使用相同的 rTSS 計算方式,也可以追蹤訓練週期中的負荷分布。

不過,當最大心率、閾值配速或其他重要設定發生改變時,即使跑步內容相似,負荷分數也可能改變。

因此,數據的變化不一定完全來自訓練本身,也可能來自模型參數的調整。

這是解讀訓練負荷時,經常被忽略的一個問題。

六、訓練負荷高,不代表訓練效果一定好

身為教練,我認為比計算出多少 TRIMP 或 TSS 更重要的,是如何理解這些數字在訓練中的意義。

 

 

我們可以把它分成三個層次:

第一,訓練刺激。

這次跑步是否提供了足以促進適應的刺激?

例如,長距離跑可能著重有氧耐力與長時間運動能力;節奏跑則可能著重接近閾值強度的持續輸出。

不同課表有不同目的,並不是分數越高就越好。

 

 

第二,恢復成本。

完成這次訓練之後,身體需要付出多少恢復成本?

同樣一堂 20 公里的長跑,對一位每週跑量 80 公里的跑者,與每週跑量只有 25 公里的跑者,可能產生截然不同的疲勞與恢復需求。

即使兩人的訓練負荷分數相近,也不代表恢復速度相同。

 

 

第三,訓練可持續性。

這是我最重視的一點。

一堂課表即使能產生很高的訓練負荷,如果因此需要過長時間恢復,影響後續課表完成,甚至增加傷害風險,那麼它未必是適合當下的訓練安排。

 

 

反過來說,一堂負荷較低的輕鬆跑,也可能因為幫助恢復、維持規律訓練與累積有氧運動量,而具有重要價值。

所以,訓練負荷不能單獨作為訓練品質的評分。

即使 TrainingPeaks 等平台進一步提供 CTL、ATL 等長期負荷模型指標,也必須理解它們是根據訓練負荷所建立的數學估計,而不是直接測量生理適應或疲勞程度。

 

 

給一般跑者的建議

當你下次跑完步,看到手錶或訓練平台顯示的訓練負荷時,不妨先問自己:

  1. 這個分數主要根據心率、配速、功率,還是主觀感受計算?
  2. 我的最大心率、閾值配速等個人設定是否合理?
  3. 這次跑步的負荷,與原先課表安排的訓練目的是否一致?
  4. 完成訓練後,我的疲勞、恢復與後續課表表現如何?

比起追求單次訓練的高分,我更希望跑者學會觀察:自己的訓練是否能夠持續、負荷是否循序漸進,以及身體是否真正產生了適應。

數字是工具,不是訓練的目的

從柏林馬拉松的 TRIMP 約 447.6,到 TrainingPeaks 顯示的 TSS 269,我們可以發現:

同一場跑步,在不同的訓練負荷模型下,可能得到完全不同的數字。

這並不必然代表某一個平台有問題,而是提醒我們:每個模型都有自己的計算方式、參考基準與適用限制。

心率能幫助我們觀察身體的生理反應;配速與功率能協助描述運動輸出;主觀用力程度則補充了跑者對整體負擔的感受。

 

 

這些資訊各有價值,也各有盲點。

真正重要的,不是選出一個永遠最準確的分數,而是理解它在衡量什麼、沒有衡量什麼,以及如何協助我們做出更合理的訓練決策。

我們訓練的目的,不是證明今天能承受多少,而是讓未來的自己能夠承受更多。

Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


error: Content is protected !!
返回頂端