1. Introduction
Le projet Bike Tour Planner (BTP) s’appuie sur un modèle de temps de trajet conçu pour concilier rigueur et pragmatisme. Il vise à estimer des durées réalistes à vélo en tenant compte de la pente, de la surface, du type de vélo, du niveau du cycliste, des limites de sécurité et des phénomènes de fatigue. L’ambition est de fournir une base théorique solide, directement exploitable dans l’application BTP pour la planification d’itinéraires et la comparaison de scénarios.
Au cœur du modèle, une vitesse de référence sur plat $v_0(L,b)$ est modulée par la surface $F_{surf}(b,c)$ et par la pente $g$ selon deux régimes complémentaires: une décroissance exponentielle en montée gouvernée par $k_{up}(L)$ et un gain plafonné en descente régi par $k_{down}(L)$, $g_{down}^{max}$ et $V_{max}(b,c)$. Des règles de prudence définies par $g_{prud}(b,c)$ et $k_{prud}(b,c)$ introduisent une décélération progressive sur terrains exigeants, tandis qu’un plancher $v_{min}(b,c)$ garantit des vitesses plausibles.
La réalité d’une sortie dépend aussi de la durée passée en selle et du dénivelé accumulé. C’est pourquoi le modèle intègre deux composantes de fatigue: un terme long $F_{long}(A^+,D,L)$ pour l’usure de fond lié au dénivelé positif $A^+$ et à la distance $D$, et un terme court $F_{court}(A^+_{\text{récent}},L)$ qui mime l’essoufflement après des rampes rapprochées. Leur produit ajuste la vitesse finale au fil du parcours, améliorant la cohérence avec l’expérience de terrain.
Pour les usages où l’on ne dispose pas du profil fin, une version simplifiée conserve l’esprit du modèle en se basant sur la pente moyenne positive $\bar g_+$ et sur une surface moyenne $c_{moyen}$. Cette approche permet d’obtenir très rapidement une ETA robuste, idéale pour le tri de variantes d’itinéraire dans BTP, tout en restant calibrable sur des données réelles.
Ce site documente la théorie, expose les formules avec MathJax, et propose des graphiques interactifs Chart.js pour visualiser l’influence des paramètres. Vous pouvez explorer la courbe vitesse–pente de −100 % à +100 %, ainsi qu’un profil synthétique combinant altitude et vitesse. Les tableaux “Variables, symboles et paramètres” fournissent des explications claires et actionnables. L’ensemble constitue la référence officielle du modèle BTP, au service d’une planification d’itinéraires à vélo fiable, transparente et optimisable.
2. Variables, symboles et paramètres
Unités usuelles: vitesse (km/h), pente (%), distance (km), altitude (m). Les surfaces affichées sont Normal/Pavé/Non pavé (internes: Vert/Orange/Rouge).
| Symbole | Description | Plus d'infos | |
|---|---|---|---|
| $d_i$ | Distance du segment $i$. | km | 0.01–5 (typique) |
| $g_i$ | Pente instantanée du segment $i$ (positif = montée). | % | [-100, +100] |
| $g$ | Pente générique (utilisée dans les formules théoriques). | % | [-100, +100] |
| $\bar g_+$ | Pente moyenne positive pondérée (simplifiée). | % | [0, +20] |
| $L$ | Niveau du cycliste. | catégorie | {Débutant, Normal, Avancé, Professionnel} |
| $b$ | Type de vélo. | catégorie | {Route, VTT} |
| $c_i$ | Surface (UI) du segment $i$ — interne: Vert/Orange/Rouge. | catégorie | {Normal, Pavé, Non pavé} |
| $c_{moyen}$ | Surface moyenne utilisée en version simplifiée. | catégorie | {Normal, Pavé, Non pavé} |
| $v_0(L,b)$ | Vitesse de référence sur plat selon le niveau et le vélo. | km/h | Route 10–40 · VTT 8–30 |
| $F_{surf}(b,c)$ | Multiplicateur de surface dépendant du vélo et de la classe. | — | [0.50, 1.00] selon vélo/surface |
| $v_{base}$ | Vitesse de base globale: $v_0\cdot F_{surf}$. | km/h | — |
| $v_{base,i}$ | Vitesse de base du segment: $v_0\cdot F_{surf}$. | km/h | — |
| $k_{up}(L)$ | Sensibilité exponentielle aux montées. | par % | 0.02–0.07 |
| $v_{up}$ | Vitesse après effet montée (global, simplifié). | km/h | — |
| $v_{up,i}$ | Vitesse après effet montée. | km/h | — |
| $v_{min}(b,c)$ | Vitesse minimale/plancher (poussette/marche). | km/h | 3–6 |
| $g_{prud}(b,c)$ | Seuil de prudence au-delà duquel décélération additionnelle. | % | 10–30 |
| $g_{prud,global}$ | Seuil de prudence global pour la version simplifiée. | % | 10–30 (selon $b,c_{moyen}$) |
| $k_{prud}(b,c)$ | Coefficient de prudence (sévérité au-delà du seuil). | par % | 0.05–0.20 |
| $v_{prud}$ | Vitesse après prudence (global, simplifié). | km/h | — |
| $v_{prud,i}$ | Vitesse après application de la prudence et plancher. | km/h | — |
| $k_{down}(L)$ | Gain théorique par % en descente (avant plafonds). | par % | 0.02–0.05 |
| $g_{down}^{max}$ | Pente où le gain en descente cesse d’augmenter. | % | 10–20 |
| $V_{max}(b,c)$ | Plafond relatif en descente (multiple de $v_{base}$). | × $v_{base}$ | Route 1.1–1.6 · VTT 1.1–1.4 |
| $v_{desc,\,brut}$ | Vitesse en descente avant prudence (après plafonds). | km/h | — |
| $DF_{raw}$ | Facteur descente brut $1 + k_{down}\,\min(-g, g_{down}^{max})$. | — | — |
| $DownFactor$ | Facteur descente après plafonnement par $V_{max}$. | — | — |
| $v_{desc,i}$ | Vitesse en descente après plafonds et prudence. | km/h | — |
| $A^+$ | Dénivelé positif total du parcours. | m | [0, +∞) |
| $D$ | Distance totale du parcours. | km | [0, +∞) |
| $A^+_{\text{récent}}$ | D+ accumulé sur une fenêtre récente (court terme). | m | dépend de $window$ |
| $A^+_{\text{est}}$ | Estimation du D+ récent utilisée en version simplifiée. | m | proportion de $A^+$ (30–60 min) |
| $s(L)$ | Coefficient de fatigue court terme. | par 100 m | 0.01–0.10 |
| $window$ | Fenêtre temporelle pour la fatigue court terme. | min | 30–60 |
| $c(L)$ | Coefficient de fatigue long terme (dépend du D+ cumulé). | par 1000 m | 0.02–0.20 |
| $d(L)$ | Coefficient de fatigue long terme (dépend de la distance). | par 100 km | 0.05–0.40 |
| $F_{court}$ | Facteur de fatigue court terme. | — | [0, 1] |
| $F_{long}$ | Facteur de fatigue long terme. | — | [0, 1] |
| $F_{fatigue,tot}$ | Facteur total de fatigue (court × long terme). | — | [0, 1] |
| $v_i$ | Vitesse finale du segment après tous effets. | km/h | — |
| $t_i$ | Durée du segment $i$. | h | ≥ 0 |
| $T_{total}$ | Durée totale du parcours (somme des segments). | h | ≥ 0 |
| $v_{eff}$ | Vitesse effective en version simplifiée. | km/h | — |
| $T$ | Durée totale (version simplifiée). | h | ≥ 0 |
| $w_{smooth}$ | Fenêtre de lissage de l’altitude pour stabiliser $g_i$. | m | 20–50 |
| $\ell_{seg}$ | Taille des segments pour le calcul. | m | 100–500 |
| $p_{urb}$ | Pénalité urbaine moyenne appliquée à la durée. | s/km | 0–60 |
Origines et principes: v0 dérive d’allures observées sur plat. Fsurf synthétise la résistance de roulement et les micro-chocs; il varie selon le vélo, un VTT étant moins pénalisé hors bitume. kup reflète l’augmentation du coût énergétique en montée, modélisée ici de façon exponentielle pour rester simple et stable. kdown capture le gain en descente, borné par gdownmax et Vmax pour éviter des vitesses irréalistes. La prudence introduit un freinage progressif à partir d’un seuil, en montée comme en descente, évitant tout « saut » brutal. Les fatigues long et court terme modèrent la vitesse sur la durée et après des efforts récents.
3. Formule globale
Vitesse de base sur plat:
$$ v_{base} = v_0(L,b) \cdot F_{surf}(b,c) $$
Montée ($g>0$):
$$ v(g>0) = \max\Big( v_{min}(b,c),\; v_{base}\,e^{-k_{up}(L)\,g}\cdot e^{-k_{prud}(b,c)\,\max(0,\,g-g_{prud}(b,c))} \Big) $$
Descente ($g<0$):
$$ \begin{aligned} v_{desc, brut} &= \min\Big( v_{base}\,(1 + k_{down}(L)\,\min(-g, g_{down}^{max})),\; V_{max}(b,c)\,v_{base} \Big) \\ v(g<0) &= \max\Big( v_{min}(b,c),\; v_{desc, brut}\cdot e^{-k_{prud}(b,c)\,\max(0,\,-g-g_{prud}(b,c))} \Big) \end{aligned} $$
Fatigues (appliquées multiplicativement):
$$ F_{long} = \frac{1}{1 + c(L)\,\frac{A^+}{1000} + d(L)\,\frac{D}{100}}\quad;\quad F_{court} = \frac{1}{1 + s(L)\,\frac{A^+_{\text{récent}}}{100}} $$Vitesse finale:
$$ v_{final} = v \cdot F_{long} \cdot F_{court} $$
Les paramètres sont choisis pour rester plausibles et stables numériquement; leurs effets respectifs sont détaillés ci-dessous avec des recommandations de réglage.
4. Scénarios interactifs
Vitesse vs pente (−100% → +100%)
La courbe illustre: gain limité en descente (kdown, gdownmax, Vmax), prudence au-delà de gprud, et plancher vmin; ralentissement exponentiel en montée (kup) + prudence.
Profil synthétique (altitude + vitesse)
Comparaisons et recommandations
| Paramètre | Effet principal | Augmenter | Diminuer |
|---|---|---|---|
| v0 | Vitesse globale | Temps ↓ | Temps ↑ |
| Fsurf | Pénalisation liée à la surface | Vitesse ↑ sur surfaces favorables | Vitesse ↓ sur surfaces rugueuses |
| v_min | Plancher de vitesse | Moins de marche/poussée | Plus de marche/poussée |
| k_up | Ralentissement en montée | Montées plus lentes | Montées plus rapides |
| k_down | Gain en descente | Descentes plus rapides (jusqu’aux bornes) | Descentes plus modérées |
| Vmax | Plafond descente | Vitesses max plus élevées | Vitesses max plus basses |
| g_down^max | Seuil de plafonnement du gain | Gain prolonge jusqu’à pentes plus fortes | Plafonnement plus tôt |
| g_prud | Seuil de prudence | Décélération plus tardive | Décélération plus précoce |
| k_prud | Intensité de prudence | Ralentissement plus marqué | Ralentissement plus modéré |
| c(L) | Fatigue long terme (D+) | Fin d’étape plus lente | Fin d’étape plus rapide |
| d(L) | Fatigue long terme (distance) | Plus d’usure liée au kilométrage | Moins d’usure liée au kilométrage |
| s(L) | Fatigue court terme | Récupération plus lente | Récupération plus rapide |
| window | Mémoire de la fatigue courte | Effet prolongé des efforts récents | Retour plus rapide à la normale |
| w_smooth | Lissage altimétrique | Courbe plus stable, cassures lissées | Courbe plus nerveuse, bruit accentué |
| ℓ_seg | Granularité des segments | Moins de détails, calcul plus rapide | Plus de détails, calcul plus fin |
| p_urb | Pénalité urbaine | ETA ↑ en zones denses | ETA ↓ sur parcours fluides |
L’arbitrage entre $k_{up}$, $k_{down}$, $V_{max}$, $g_{down}^{max}$ et la prudence $(g_{prud}, k_{prud})$ détermine la forme de la courbe vitesse–pente. Une valeur de $k_{up}$ plus élevée rend les ascensions plus coûteuses, tandis qu’un $k_{down}$ fort n’accélère vraiment qu’avant plafonnement et sous réserve de prudence.
En pratique, commencez par caler $v_0$ sur vos allures sur plat, puis ajustez $F_{surf}(b,c)$ selon la surface dominante. Affinez ensuite $k_{up}$ sur 2–3 ascensions de référence, et terminez par $V_{max}$, $g_{down}^{max}$, $g_{prud}$ et $k_{prud}$ pour que les descentes soient soutenues mais sûres. Réservez $c(L)$ et $d(L)$ à la cohérence en fin d’étape, et $s(L)$, $window$ à la dynamique des enchaînements pentus.
Sur itinéraires alpins: baissez légèrement $V_{max}$ et relevez $k_{prud}$ pour refléter la prudence dans les longues descentes, tout en contrôlant $w_{smooth}$ et $\ell_{seg}$ pour éviter la dentelle artificielle de pente. En plaine roulante: $k_{up}$ et $p_{urb}$ deviennent plus déterminants; un $F_{surf}$ réaliste explique l’essentiel des écarts d’ETA.
En urbain dense ou sur gravier meuble, élevez $p_{urb}$ et abaissez $F_{surf}$; couplé à un $g_{prud}$ réduit et un $k_{prud}$ accru, vous obtiendrez des projections conservatrices mais crédibles. Validez toujours visuellement la courbe vitesse–pente et confrontez une ou deux traces réelles pour finaliser le calibrage.