積算運動強度 (2004年01月16日)
去年1年間 巷で使われているトレーニング強度の指標を使ってトレーニングしてきた。 が、不満が出てきた。 トレーニング強度の指標が俺のトレーニングに合っていないのだ。 俺が使ってきたトレーニング強度の指標は、心拍数に応じて E1、E2a、E2b、E3 ってな感じになっていて、それぞれの強度でトレーニング効果が異なるって奴だ。 多分、ほとんどのサイクリストが同様なクラス分けを使って トレーニングしていると思うのだけど、みんな不満はないんだろうか?
気に入らない点は2つある。 まず一つ目は 運動強度の計算に最高心拍数が使われているってとこ。 そもそも、ロード系やMTB系のサイクリストは、1kmTTのトレーニングなんてのを除いて(^^;、最高心拍数を気にしなきゃいけないようなトレーニングなんてやってないだろ? AT心拍数を越えるようなトレーニングなんてのも そうそうやらないんじゃないかと思う。 たとえ心拍数がATを越えたとしても 最高心拍数に届くなんて事はほとんど(絶対と言い切って良い)ないのだから、最高心拍数を使うってのは納得が行かない。
そもそも、自分の正確な最高心拍数を知っている素人サイクリストなんて 滅多にいないだろ? 危険過ぎて 素人が簡単に計れるようなものじゃないし 計るべきでない。 だから、(コンコーニ法等)統計的に算出した最高心拍数を使っている人も多いと思う。 でもこれは大間違いなのだ。 統計ってのは たくさんのサンプルデータを一つのグループとして把握するための数学的な手法であって、統計的に出てきた値を個々のサンプルの値として適応するってのは本末転倒なのだ。 例えば、クラスの数学の平均点が55点だったとしても、クラスの生徒全員の点数が55点って訳じゃないのだ。 20点しかとっていないのに「あなたの点数は55点です」って言われたら嬉しいけど、頑張って実際は95点もとったのに「ハイッ、55点!」なんて言われたら 卓袱台ひっくり返しちゃうよぉ・・・俺だったら。(^^;
さらには、本等に出ている最高心拍数の計算式は 意図的に低い値が出るようになっているはずだ。 何故なら、実際の平均値が出るようになっていたとしたら、この世の中の半分の人は 算出した値より低い最高心拍数を持っているはずだからだ。 これが本当だったら、心臓麻痺で死人がゴロゴロでていてもおかしくないはずだ。
俺自身も おおよその最高心拍数は知ってはいるけど、正確な値は知らない。 知りたくもない。 知らなくてもトレーニングは出来るのだ。
そういうわけで、最高心拍数を使うのは止める事にした。 代わりにAT心拍数を使う。 運動強度を安静時心拍数(hrest)とAT心拍数(hat)の間で定義するのだ。 変な感じがするかもしれないが、スケールが変わっただけで 安静時心拍数と最高心拍数を使った場合とほとんど等価だ。 まぁ、km と mile の違いってとこかな。 AT心拍数だったら ローラーとハートレートモニタさえあれば素人でも安全に計る事が出来る。 それに正確だ。
2つ目は トレーニング時間が反映されていないってとこ。 仲間内でも「昨日のトレーニングは E2 だった」とか会話したりするのだけど、E1 とか E2 とかの指標の中には とれだけの時間トレーニングしたかという情報が入っていないのだ。 E2 で3時間トレーニングしたのと E3 で30分トレーニングしたのとでは、身体に与えるインパクトは 前者の方が大きいに決まっている。 サイクリングの様に 4時間も5時間もトレーニングして、その中に登りやらスプリントやら入っていたりしたら もうどのレベルでどれだけハードなトレーニングをしたかなんて従来の指標では表せないのだ。
そこで考え出したのが この小論の主題である「積算運動強度」ってわけだ。 数式が好きなので とりあえず数式で書いておくと
![]() |
(1) |
って感じになる。 h(t) はトレーニング中の心拍数の時間変化を示す関数、F(h) は 心拍数をどの様に評価するかという関数だ。 ω(h) は心拍域を強調(?)するためのウインドウ関数で、ゾーントレーニング等を評価する時に使う。 たとえば、ガウス関数
![]() |
(2) |
なんかを使えるだろう。 この場合、心拍数 h0±σ くらいの範囲が高く評価されることになる。 平たく言うと、(1)は ウインドウ関数 ω(h) で定義される範囲の心拍数の変化を積分して その値を運動強度として採用しようって事だ。
ここで、もう鋭い読者はピンッと来たと思う。 そう、消費カロリーが一種の積算運動強度なのだ。 消費カロリーだと
![]() |
(3) |
として
![]() |
(4) |
で求められる。 ただし、定数 a はAT心拍数を維持して単位時間走った時に消費される熱量で VO2Max に依存する。 例えば、VO2Max が50だと おおよそ a=700[kcal/h] って感じだ。
消費カロリーを積算運動強度として使うってのも悪くは無いのだけど、俺の経験では 消費カロリーは積算運動強度を正しく反映しないのだ。 例えば俺の場合、心拍数 170bpm で1時間激走したのと 心拍数 110bpm で2時間走ったのでは、どちらも消費カロリーは同じなのだけど、明らかに前者の方がダメージが大きいのだ。
そこで、
![]() |
(5) |
として、積算運動強度を
![]() |
(6) |
で定義する。 指数 3.5 は経験則から割り出した。 この指数によって、高い心拍数の運動ほど より大きく評価するようになっている。 定数 10.0 は、AT心拍数を維持して単位時間走った時 Iacc=10.0 になるように設定した。 別に 1.0 でも良かったのだけど、値が小さいと頑張った甲斐がないジャン・・・ねぇ?(^^; だったら 景気良く 1000000 にしちゃえば良かったかな?(^^;;;
更に、
![]() |
(7) |
として、心拍ゾーン毎の積算運動強度を
![]() |
(8) |
で定義する。 ただし、n は心拍ゾーン番号、hn は 心拍ゾーン n の中央の心拍数、σn は各心拍ゾーンの幅から決定する。
最後に、Iacc、In がトレーニングによってどんな感じになるか 実際の例をあげてみよう。 ただし、hat=170bpm、hrest=50bpm で計算している。 だいたい、Iacc=10.0 で「あぁ、良い感じでトレーニングした」ってくらい。 Iacc>30.0 だと、その後もう動きたくなくなる。(^^;
| 心拍遷移 | Iacc | I0 (<130) |
I1 (130-140) |
I2 (140-150) |
I3 (150-160) |
I4 (160-170) |
I5 (170-180) |
|---|---|---|---|---|---|---|---|
![]() |
2.2 | 0.8 | 1.3 | 0.1 | 0.1 | 0 | 0 |
![]() |
7.4 | 1.7 | 1.4 | 1.6 | 1.3 | 0.9 | 0.3 |
![]() |
9.8 | 1.4 | 0.2 | 1.7 | 5.3 | 1.1 | 0.1 |
![]() |
29.2 | 3.4 | 2.1 | 3.7 | 11.2 | 8.5 | 0.9 |