サイクリング心拍ゾーン
最大心拍数190なら、持久走は114〜133拍/分、閾値走は152〜171拍/分です。最大心拍数か乳酸性作業閾値心拍数のどちらか1つの実測値から、自転車用の5つのゾーンを出します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 心拍数
- 190
- 基準
- Hrmax
- ゾーン数
- 5 bpm
- ゾーン1の名称
- recovery
- ゾーン1の下限 (%)
- 50
- ゾーン1の上限 (%)
- 60
自転車の心拍トレーニングゾーンは、測定したひとつの脈拍 — 最大心拍数または乳酸性作業閾値心拍数 — を、回復走・持久キロ・テンポ・閾値・VO2maxインターバルで維持すべき毎分拍数の窓へ変換します。最大心拍の百分率は、ピークしか分からないときに大半のサイクルコンピュータが印字する表です。乳酸閾値の百分率は、20分タイムトライアルのあとにコーチが好むCoggan式の自転車レイアウトです。
自転車が強度を心拍で切る理由と、送るべきアンカー
自転車選手が強度を心拍帯で処方するのは、パワーメーターが常に車体にあるわけではなく、主観的運動強度の尺度はクラブ全体で記録しにくいからです。二つのアンカーが指導現場を支配し、別の問いに答えます。最大心拍数は、最大努力・実験室ランプ・よく踏んだヒルリピートで記録した最高脈拍です。
ゾーンはその天井の単純な百分率になり、ライダーがHRmaxだけ入力したときに大半のサイクルコンピュータが印字するものです。乳酸性作業閾値心拍数 — LTHR — はおよそ1時間維持できる脈拍で、構造化したウォームアップ後の20分タイムトライアルから推定することが多く、真の最大より下に位置します。LTHRの百分率は自転車のCoggan式レイアウトです。
回復は閾値のはるか下、持久は有酸素ベース、テンポは有酸素の上帯、閾値はLTHRそのものにまたがり、VO2max作業はその上にあり、5本目の上限はLTHRの120パーセントにキャップしてbpm範囲が有限のままになるようにしています。この計算は年齢から最大心拍を推定せず、安静時脈拍も引きません。それらは別の検索意図で、別製品が担います。
自転車心拍ゾーン計算が本領を発揮する場面
ピーク脈拍や20分LTHRをすでに測ったライダーは、来週の持久・閾値セッションを書く前にbpm窓が必要です。年齢予測の最大や、安静時心拍まで求める予備能チャートではありません。自転車 心拍ゾーンで順位を取る媒体が狙う意図は、サイクリストとして検索し、HRmaxやLTHRで考え、回復からVO2maxまでを毎分拍で欲しい人です。
クラブコーチやグランフォンド企画は、会員ごとに同じアンカーを送り、コーチ間でずれる表計算を組み直す代わりに同一カードを印刷できます。トレーニング日誌、サイクルコンピュータ連携アプリ、すでに二つのアンカーの一方を持つインドアトレーナー基盤は、構造化されたzone1からzone5の境界を要求でき、「持久に留まれ」というセッションに数値の床と天井を持たせられます。
検証失敗は残高を消費しません。計画と学習の道具であり、診断用医療機器ではありません。心疾患、脈拍を変える薬、医師の制限があるライダーは、単一の5ゾーン表だけに頼らず専門家の助言に従ってください。
活用例
既知のHRmaxから来週の自転車セッションを組む
測定したピーク脈拍をbasis hrmaxで送り、最大比の表を組み直さずに、5つのbpm窓を持久・テンポ・閾値のワークアウトカードへ載せます。
クラブ企画とトレーナー連携アプリ
保存した一つのアンカーから全員に同じ5本の自転車HR窓を渡し、室内セッションとグループ走が同じゾーン名に同一のbpm範囲を引用するようにします。
よくある質問
最大心拍数と乳酸性作業閾値心拍数のどちらを使うべきですか?
ピークしか分からないときはhrmaxを使います。5帯はその天井の百分率です。閾値テスト後はlthrを使います。自転車のCoggan表は乳酸閾値の周りに座り、持久セッションが実際に気にする強度です。
5本の自転車心拍ゾーンはどう計算されますか?
各境界は、送ったアンカーに百分率を掛けた最も近い整数です。hrmaxの百分率は50–60、60–70、70–80、80–90、90–100です。lthrは50–68、68–83、83–94、94–105、105–120です。
心拍数がゼロ・負・欠落だとどうなりますか?
トレーニングゾーンは正のbpm脈拍です。ゼロ、負、空文字、非有限値は拒否され、課金されません。
安静時心拍や年齢は必要ですか?
不要です。 この製品は年齢から最大を推定せず、安静値も引きません。持っている自転車アンカー — HRmaxまたはLTHR — と任意のbasisだけ送ってください。
最大心拍数が190だと各ゾーンは何拍ですか?
回復95〜114、持久114〜133、テンポ133〜152、閾値152〜171、VO2max 171〜190拍/分です。各ゾーンは最大値の50〜100%を10%刻みで分け、隣り合うゾーンは境界を共有します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/sports/cycling-hr \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"heart_rate":190}'const res = await fetch("https://api.kit.forhosting.com/sports/cycling-hr", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"heart_rate": 190
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sports/cycling-hr",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"heart_rate": 190
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sports/cycling-hr", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"heart_rate":190}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"heart_rate":190}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sports/cycling-hr", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"heart_rate": 190
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.cycling_hr",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_bpm | 1e-12 |
max_bpm | 250 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
この自転車心拍ゾーン計算は、正の有限なheart_rate(bpm)と任意のbasis(hrmaxまたはlthr)を受け取り、百分率の端と整数bpm範囲を持つ隣接する5本のトレーニング帯を返します。欠落・非有限・非正の心拍数はinvalid_inputで失敗し、課金されません。
自転車が強度を心拍で切る理由と、送るべきアンカー
正の有限なheart_rateとbasis(hrmaxまたはlthr)を送ると、セッションカードが表計算なしで引用できる5つのbpm窓が返ります。
入力契約、二つの百分率表、各bpm境界の求め方
basisは百分率表を選びます。hrmax(既定)は最大心拍数の百分率、lthrは乳酸閾値心拍のCoggan百分率です。LTHRだけ投稿するコーチが選択子を覚えなくて済むためです。心拍数はゼロより大きく250 bpm以下の有限な正の数でなければなりません。hrmax表の5帯は回復50–60パーセント、持久60–70、テンポ70–80、閾値80–90、vo2max 90–100(最大比)です。lthr表は回復50–68パーセント、持久68–83、テンポ83–94、閾値94–105、vo2max 105–120(LTHR比)です。ゾーン1は50パーセントを床にして回復が使える帯になり、ゼロbpm始まりの窓になりません。隣接帯は設計上境界を共有します。必須の有限数一つと任意の選択子一つを含むJSON本体をPOSTしてください。heart_rateはアンカー脈拍(毎分拍)で、エイリアスhr、bpm、pulse、hr_max、max_hr、hrm、lthr、lactate_threshold、lactate_hrを受け付けます。basisを省略し、値がlthrエイリアスで届いた場合、エンジンはlthrを選びます。各数値フィールドはJSON数でも数値文字列でも届き得ます。欠落フィールド、空文字、非有限値、ゼロ、負、隔離上限を超える脈拍、公開enum外のbasisは、フィールド名付きのinvalid_inputで失敗し、課金されません。ゾーン5は120パーセントでキャップし、bpm_hiが有限です。各境界はzone_bpmが百分率かけるアンカーの最も近い整数です。成功時はheart_rateとbasisをエコーし、unitをbpmにし、formulaを再掲し、zone_countを5と報告し、zone1からzone5までのname・percent・bpmフィールドをフォーム向けに平坦化し、同じ5件をzones配列に繰り返します。例:heart_rate 190、basis hrmaxなら回復95–114 bpm、vo2max 171–190 bpmです。成功1件の料金は一律$0.002です。
自転車心拍ゾーン計算が本領を発揮する場面
実装は純粋なparseのtier Aなので、成功した呼び出しはいずれも公開された基本料金$0.002で、モデルトークンも外向きネットワークもありません。リクエストを小さく保ち、テストでzone1_bpm_loからzone5_bpm_hiを固定すれば、生理学実験室を自前で構えずに、ランディング、クラブキオスク、エッジワーカー向けの安定した自転車心拍窓が得られます。
連携の活用例
20分LTHRテストをCogganの自転車ゾーンへ変換する
閾値タイムトライアルのあと、LTHRをbasis lthrで送り、推測した最大ではなく乳酸閾値の周りに座る回復からVO2maxまでの帯を得ます。
技術的な質問
自転車心拍ゾーン計算の料金はいくらですか?
ブラウザのツールは無料です。API要求は成功した呼び出しごとに前払いKIT残高を$0.002で使い、不正な入力は課金されません。