Skip to content

Instantly share code, notes, and snippets.

@Richard-Mathie
Last active March 12, 2018 14:18
Show Gist options
  • Select an option

  • Save Richard-Mathie/67af93e5d7cd127cb7ab514273deb23a to your computer and use it in GitHub Desktop.

Select an option

Save Richard-Mathie/67af93e5d7cd127cb7ab514273deb23a to your computer and use it in GitHub Desktop.
FTP and VO2
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Relationship between Power and FTP\n",
"\n",
"The relationship between power output for a given effort is given by\n",
"\\begin{equation}\n",
"P_\\text{out} = P_{VO_2} e\n",
"\\end{equation}\n",
"\n",
"Where $e$ is the relitive exertion effort relitive to max heart rate,\n",
"\\begin{equation}\n",
"e = \\frac{HR - HR_\\min}{HR_\\max - HR_\\min}\n",
"\\end{equation}\n",
"and $P_{VO_2}$ is the $VO_2 \\max$ power:\n",
"\\begin{equation}\n",
"P_{VO_2} = \\frac{{VO_2}_\\max c_{O_2}}{60}~\\eta~m\n",
"\\end{equation}\n",
"where $c_{O_2}$ is the effective calorific content for oxegen, about $20 kJ/l$ for burning mostely carbohydrate. $\\eta$ is the muscle efficiency, about 20 % and $m$ is the body mass. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example calculation 1\n",
"\n",
"If i have a ${VO_2}_\\max$ of $75~ml/kg/min$ and a body mass of $74 kg$ my $P_{VO_2}$ works out to be\n",
"\n",
"$$\n",
"\\frac{75*20}{60}*0.2*74 = 370 W\n",
"$$\n",
"\n",
"If my max HR is 180 bbm, resting HR is 47 bbm and threshold HR is 160 then $e$ works out to be\n",
"$$\n",
"\\frac{160-47}{180-47} = 0.85\n",
"$$\n",
"\n",
"so my threshold power would work out as\n",
"\n",
"$$\n",
"P_\\text{thr} = 370*0.85 = 314.5 W\n",
"$$\n",
"\n",
"which is pretty much bang on 95% of my max 20 min power:\n",
"$$\n",
"P_\\text{thr} = 0.95 P_{\\max 20 min} = 0.95 * 332 = 315.4\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example calculation 2\n",
"\n",
"If i do a 20 min const power effort and my avg HR is 143 max HR is 154 and i average 300W, can i calculate a ${VO_2}_\\max$.\n",
"\n",
"As befor my max HR is 180 bbm and resting HR is 47 bbm, then:\n",
"\\begin{align}\n",
"e_\\text{avg HR} & = \\frac{143-47}{180-47} = 0.72 \\\\\n",
"e_{\\max HR} & = \\frac{154-47}{180-47} = 0.80\n",
"\\end{align}\n",
"\n",
"working backwards\n",
"\\begin{align}\n",
"P_{VO_2 \\max \\text{avg HR} } & = \\frac{300}{0.72} & = 417 W\\\\\n",
"P_{VO_2 \\max \\text{max HR}} & = \\frac{154-47}{180-47} & = 375 W\n",
"\\end{align}\n",
"\n",
"We can see that going off avg HR for the effort we are coming up a bit high, whereas the max HR for the effort is pretty much bang on $P_{VO_2 \\max}$ again.\n",
"\n",
"Going further\n",
"\n",
"$$\n",
"V_{O_2 \\max} = \\frac{P_{VO_2 \\max} 60}{ c_{O_2}~\\eta~m } = \\frac{375 * 50}{20 * 0.2 * 74} = 76~ml/min/kg\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"306.36"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"20*70/60*74*0.2*0.9"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"370.0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"20*75/60*74*0.2"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8045112781954887"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(154-47.)/(180-47)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"314.5"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"370*0.75"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"315.4"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"0.95* 332"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"375.0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"300/0.80"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"76.01351351351352"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"375*60/(20 * 0.2 * 74)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

Relationship between Power and FTP

The relationship between power output for a given effort is given by

Where e is the relitive exertion effort relitive to max heart rate,

and P_{VO_2} is the VO_2 \max power:

where c_{O_2} is the effective calorific content for oxegen, about 20 kJ/l for burning mostely carbohydrate. \eta is the muscle efficiency, about 20 % and m is the body mass.

Example calculation 1

If i have a {VO_2}_\max of 75~ml/kg/min and a body mass of 74 kg my P_{VO_2} works out to be

\frac{75*20}{60}*0.2*74 = 370 W

If my max HR is 180 bbm, resting HR is 47 bbm and threshold HR is 160 then e works out to be

\frac{160-47}{180-47} = 0.85

so my threshold power would work out as

P_\text{thr} = 370*0.85 = 314.5 W

which is pretty much bang on 95% of my max 20 min power:

P_\text{thr} = 0.95 P_{\max 20 min} = 0.95 * 332 = 315.4

Example calculation 2

If i do a 20 min const power effort and my avg HR is 143 max HR is 154 and i average 300W, can i calculate a {VO_2}_\max.

As befor my max HR is 180 bbm and resting HR is 47 bbm, then:

working backwards

We can see that going off avg HR for the effort we are coming up a bit high, whereas the max HR for the effort is pretty much bang on P_{VO_2 \max} again.

Going further

V_{O_2 \max} = \frac{P_{VO_2 \max} 60}{ c_{O_2}~\eta~m } = \frac{375 * 50}{20 * 0.2 * 74} = 76~ml/min/kg
20*70/60*74*0.2*0.9
306.36
20*75/60*74*0.2
370.0
(154-47.)/(180-47)
0.8045112781954887
370*0.75
314.5
0.95* 332
315.4
300/0.80
375.0
375*60/(20 * 0.2 * 74)
76.01351351351352
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment