From d8b92afacaec5d752b20c914a804bed81ba172b9 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Sun, 16 Aug 2015 11:09:18 -0300 Subject: [PATCH 1/2] Fixed Energy Expenditure chart for imperial units --- test/charts/Total Energy Expenditure Sw-Bk-Rn.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/charts/Total Energy Expenditure Sw-Bk-Rn.xml b/test/charts/Total Energy Expenditure Sw-Bk-Rn.xml index 250ae9053..d0bb77bcf 100644 --- a/test/charts/Total Energy Expenditure Sw-Bk-Rn.xml +++ b/test/charts/Total Energy Expenditure Sw-Bk-Rn.xml @@ -1,3 +1,3 @@ - "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" From 94586ae438f1ec7136b22ddfa1bd06fd5c861be7 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Sun, 16 Aug 2015 11:10:08 -0300 Subject: [PATCH 2/2] Added a reference for Daniels/Gilbert VDOT formula --- src/VDOTCalculator.cpp | 18 +++++++++++------- test/charts/VDOT based on best 30min run.xml | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/VDOTCalculator.cpp b/src/VDOTCalculator.cpp index 0a7a2c1cc..07a6486f2 100644 --- a/src/VDOTCalculator.cpp +++ b/src/VDOTCalculator.cpp @@ -14,6 +14,10 @@ * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * The Daniels-Gilbert fomula used for VDOT and vVDOT was taken from: + * http://www.simpsonassociatesinc.com/runningmath1.htm + * T-PACE as 90%vVDOT from Daniels' Running Formula book */ #include "VDOTCalculator.h" @@ -136,17 +140,17 @@ void VDOTCalculator::on_btnCalculate_clicked() double dist = distSpinBox->value(); // velocity m/min double vel = (metricRnPace ? 1.0 : KM_PER_MILE)*1000*dist/mins; - // estimated VO2 + // estimated VO2 costo of running at vel speed double VO2 = -4.3 + 0.182258*vel + 0.000104*pow(vel, 2); - // fractional utilization of VO2max + // fractional utilization of VO2max for mins duration double FVO2 = 0.8 + 0.1894393*exp(-0.012778*mins) + 0.2989558*exp(-0.1932605*mins); - // VDOT: estimated VO2max based on Daniels' Running Formula + // VDOT: estimated VO2max based on Daniels/Gilbert Formula double VDOT = VO2 / FVO2; txtVDOT->setText(QString("%1 ml/min/kg").arg(round(VDOT*10)/10)); - // velocity at VO2max according to Daniels' Running Formula - double vVO2max = 29.54 + 5.000663*VDOT - 0.007546*pow(VDOT, 2); - // Threshold Pace estimated at 90% vVO2max - double TPACE = 1000.0/vVO2max/0.9; + // velocity at VO2max according to Daniels/Gilbert Formula + double vVDOT = 29.54 + 5.000663*VDOT - 0.007546*pow(VDOT, 2); + // Threshold Pace estimated at 90%vVDOT, from Daniels's Running Formula + double TPACE = 1000.0/vVDOT/0.9; txtTPACE->setText(QString("%1 %2") .arg(QTime(0,0,0).addSecs(TPACE*60*(metricRnPace ? 1.0 : KM_PER_MILE)).toString("mm:ss")) .arg(metricRnPace ? tr("min/km") : tr("min/mi"))); diff --git a/test/charts/VDOT based on best 30min run.xml b/test/charts/VDOT based on best 30min run.xml index 9b3f425da..da42a0c8c 100644 --- a/test/charts/VDOT based on best 30min run.xml +++ b/test/charts/VDOT based on best 30min run.xml @@ -1,3 +1,3 @@ - "AAAANABWAEQATwBUACAAYgBhAHMAZQBkACAAbwBuACAAYgBlAHMAdAAgADMAMAAnACAAcgB1AG4AAAA0AFYARABPAFQAIABiAGEAcwBlAGQAIABvAG4AIABiAGUAcwB0ACAAMwAwACcAIAByAHUAbgAlfcAAAAAA/wAlfywAAAAA/wAAAAEAAP///////////////wAAABAAAAABAAAACAD/////AAAAAAAAABIAVgBEAE8AVAAoADMAMAAnACkAAAASAG0AbAAvAG0AaQBuAC8AawBnAAAAAAADAAAAAAAAAAAAAAAAAQ1JiSgE0i5wACJ6QGHcg0oE1Nso//////////8B/////wAAAAAAAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAAAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAAAAAP////8AAAGCACMAIABEAGEAbgBpAGUAbABzACcAIABWAEQATwBUACAAYgBhAHMAZQBkACAAbwBuACAAYgBlAHMAdAAgADMAMAAnACAAcgB1AG4ACgAoAC0ANAAuADMAKwAoADAALgAxADgAMgAyADUAOAAqAGIAZQBzAHQAKABzAHAAZQBlAGQALAAgADEAOAAwADAAKQAqADEAMAAwADAALwA2ADAAKQAgACsAKAAwAC4AMAAwADAAMQAwADQAKgAoAGIAZQBzAHQAKABzAHAAZQBlAGQALAAgADEAOAAwADAAKQAqADEAMAAwADAALwA2ADAAKQBeADIAKQApAC8AIAAoADAALgA4ACsAKAAwAC4AMQA4ADkANAAzADkAMwAqAGUAeABwACgALQAwAC4AMAAxADIANwA3ADgAKgAzADAAKQApACAAKwAgACgAMAAuADIAOQA4ADkANQA1ADgAKgBlAHgAcAAoAC0AMAAuADEAOQAzADIANgAwADUAKgAzADAAKQApACkAAAACAAAARABmAGkAbAB0AGUAcgA6AGkAcwBSAHUAbgA8AD4AMAAgAGEAbgBkACAARAB1AHIAYQB0AGkAbwBuAD4APQAxADgAMAAwAAAAAAAD" + "AAAANABWAEQATwBUACAAYgBhAHMAZQBkACAAbwBuACAAYgBlAHMAdAAgADMAMAAnACAAcgB1AG4AAAA0AFYARABPAFQAIABiAGEAcwBlAGQAIABvAG4AIABiAGUAcwB0ACAAMwAwACcAIAByAHUAbgAlfcAAAAAA/wAlfywAAAAA/wAAAAEAAP///////////////wAAABAAAAABAAAACAD/////AAAAAAAAABIAVgBEAE8AVAAoADMAMAAnACkAAAASAG0AbAAvAG0AaQBuAC8AawBnAAAAAAADAAAAAAAAAAAAAAAAAQ1JiSgE0i5wACJ6QGHcg0oE1Nso//////////8B/////wAAAAAAAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAAAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAAAAAP////8AAAIuACMAIABEAGEAbgBpAGUAbABzACcAIABWAEQATwBUACAAYgBhAHMAZQBkACAAbwBuACAAYgBlAHMAdAAgADMAMAAnACAAcgB1AG4ACgAjACAARABhAG4AaQBlAGwAcwAvAEcAaQBsAGIAZQByAHQAIABmAG8AcgBtAHUAbABhACAAZgByAG8AbQAKACMAIABoAHQAdABwADoALwAvAHcAdwB3AC4AcwBpAG0AcABzAG8AbgBhAHMAcwBvAGMAaQBhAHQAZQBzAGkAbgBjAC4AYwBvAG0ALwByAHUAbgBuAGkAbgBnAG0AYQB0AGgAMQAuAGgAdABtAAoAKAAtADQALgAzACsAKAAwAC4AMQA4ADIAMgA1ADgAKgBiAGUAcwB0ACgAcwBwAGUAZQBkACwAIAAxADgAMAAwACkAKgAxADAAMAAwAC8ANgAwACkAIAArACgAMAAuADAAMAAwADEAMAA0ACoAKABiAGUAcwB0ACgAcwBwAGUAZQBkACwAIAAxADgAMAAwACkAKgAxADAAMAAwAC8ANgAwACkAXgAyACkAKQAvACAAKAAwAC4AOAArACgAMAAuADEAOAA5ADQAMwA5ADMAKgBlAHgAcAAoAC0AMAAuADAAMQAyADcANwA4ACoAMwAwACkAKQAgACsAIAAoADAALgAyADkAOAA5ADUANQA4ACoAZQB4AHAAKAAtADAALgAxADkAMwAyADYAMAA1ACoAMwAwACkAKQApAAAAAgAAAEQAZgBpAGwAdABlAHIAOgBpAHMAUgB1AG4APAA+ADAAIABhAG4AZAAgAEQAdQByAGEAdABpAG8AbgA+AD0AMQA4ADAAMAAAAAAAAw=="