Trainingpace calculator voor hardlopers


De afgelopen vakantie heb ik wat internetbronnetjes opgeveegd en gecombineerd om een trainingpace calculator te maken voor hardlopers.


(runcalc.hoentie.nl)

Op basis van de afstand die de loper in een Coopertest loopt, wordt de VO2Max berekend via de (conservatieve) methode van Gilbert en Daniëls:

$CorrectedVo2Max = (-4.60 + 0.182258 * $v + 0.000104 * $v^2) / (0.8 + 0.1894393 * exp(-0.012778 * $t) + 0.2989558 * exp(-0.1932605 * $t));

waarin $v de snelheid per minuut is (afstand in meters gedeeld door 12) en $t de tijd (12 minuten).

Daarna worden de tempo’s berekend op basis van de Coopermethode:

$vo2Max = ($_GET['distance'] - 504.9) / 44.73; //calculate VO2Max according to Cooper
//Calculate velocity @ VO2Max in meters per second
$vVO2max = 2.8859 + 0.0686 * ($vo2Max-29); //calculate velocity based on Cooper

$vPace = 1000 / $vVO2max; //how many seconds to cover 1K @ V02Max velocity

$Paces['Vo2Max'] = $CorrectedVo2Max .' ml/kg/min volgens de methode van Gilbert en Daniels';
$Paces['vV02Max'] = date("i:s",$vPace).' per kilometer (volgens de methode van Cooper)';

//start calculating the other paces
$Paces['Easy'] = date("i:s", (1000 / ($vVO2max*0.62))).' per kilometer';

$Paces['Longrun'] = date("i:s", (1000 / ($vVO2max*0.70))).' per kilometer';

$Paces['5K'] = date("i:s", (5000 / ($vVO2max*0.86))).' (= '.date("i:s", (1000 / ($vVO2max*0.86))).' per kilometer)';

$Paces['10K'] = date("i:s", (10000 / ($vVO2max*0.812))).' (= '.date("i:s", (1000 / ($vVO2max*0.812))).' per kilometer)';

$Paces['Yasso800'] = date("i:s", (800 / ($vVO2max*0.92))).' per 800 meter (= '.date("i:s", (1000 / ($vVO2max*0.92))).' per kilometer)';

$Paces['Interval400X'] = date("i:s", (400 / ($vVO2max*0.94))).' per 400 meter (= '.date("i:s", (1000 / ($vVO2max*0.94))).' per kilometer)';

$Paces['Interval400'] = date("i:s", (400 / ($vVO2max*0.99))).' per 400 meter (= '.date("i:s", (1000 / ($vVO2max*0.99))).' per kilometer)';

$Paces['Interval300X'] = date("i:s", (300 / ($vVO2max*1))).' per 300 meter (= '.date("i:s", (1000 / ($vVO2max*1.))).' per kilometer)';

$Paces['Interval300'] = date("i:s", (300 / ($vVO2max*1.06))).' per 300 meter (= '.date("i:s", (1000 / ($vVO2max*1.06))).' per kilometer)';

$Paces['Interval200X'] = date("i:s", (200 / ($vVO2max*1.03))).' per 200 meter (= '.date("i:s", (1000 / ($vVO2max*1.03))).' per kilometer)';

$Paces['Interval200'] = date("i:s", (200 / ($vVO2max*1.1))).' per 200 meter (= '.date("i:s", (1000 / ($vVO2max*1.1))).' per kilometer)';

$Paces['Interval100X'] = date("i:s", (100 / ($vVO2max*1.15))).' per 100 meter (= '.date("i:s", (1000 / ($vVO2max*1.15))).' per kilometer)';

$Paces['Interval100'] = date("i:s", (100 / ($vVO2max*1.25))).' per 100 meter (= '.date("i:s", (1000 / ($vVO2max*1.25))).' per kilometer)';

De $Paces wordt in json omgezet (json_encode) en via jquery in de pagina gezet:

$("#GetPace").click(function(){
		
	$.getJSON('vo2Max.php',	
	{ 
		distance: $("#distance").val() 
	}, function (data) {
		var html = '';
		$.each(data, function(i, pace) {
					
			var newDiv = pace;
			$("#"+i+" .pace").html(newDiv);
								
		});
				
		$("#Paces").fadeIn(700);				
	}); 
});

Over hoentie

Docent, geograaf, sportman, schaker, schrijver, kaas, koffie, lezen, reizen, sauna's, jongleren, behoorlijk beroerd schaken, zelfverklaard sitcom expert, amateurkok, bon-vivant, nerd, kunst, HBO series, jonge hond.

Een reactie plaatsen

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.