Monday, December 31, 2012

blog posts per year: a numerical model

Many commercial blogs post year-end summaries as a way to boost hits. This blog is non-commercial so I can't be bothered with year-end summaries. But it is a good opportunity to see how my year-end flurry of posts affected my posting statistics.

First, an update of my posts per month. Here's the plot. I had a weak period for much of the year but had a nice come-back in October through year-end:

Next, I plot the total posts per year:

After I started posting in 2008, early enthusiasm caused a peak in 2010 followed by a two-year decline. This pattern is fairly common, I find.

I did a numerical fit using the following formula:

posts/year = 190.1 (year - 2007.89) exp[(2008 − year) / 2.078]

This seems to do a good job of capturing the trend. To stay on the trend line I need around 88 posts for 2013.

Pat McQuaid must go

CyclingNews just published an article of quotes from Pat McQuaid, the President of the Union Cycliste Internationale (UCI), the organization which oversees international cycling (McQuaid: All I've done since I became president is fight doping).

Where to begin?

Some of the ways McQuaid has been "fighting doping":

  1. Trying to take over the USADA case against Lance Armstrong, claiming it had no merit, then trying to rush USADA into submitting its evidence early
  2. Filing lawsuits against Floyd Landis and Paul Kimmage, each of whom reported the UCI appeared to be complicit in covering up Armstrong positives. Armstrong's $125k donation to the UCI still goes officially unexplained.
  3. Calling "scumbags" riders who came forward with evidence against doping at US Postal and Discovery.
  4. Attacking Dick Pound, the then-head of the World Anti-Doping Agency, who had called for stricter anti-doping efforts in cycling and who had correctly claimed cycling had a doping problem.
  5. Fighting efforts by races such as the Tour de France and Tour of California to provide more stringent anti-doping tests. Then when the UCI takes over the number of positives drops and the UCI declares success in "cleaning" the sport. When UCI took over the testing at Tour of California, sponsored by Amgen (which makes EPO), no EPO tests were done.
  6. Promoting a system of rider points where teams are judged primarily on the sum-total of points scored by riders on the current roster, providing zero-tolerance for any reduction in results "racing clean", and providing enormous pressure to eliminate riders who sacrificed their personal results for the good of the team, and to stop racing riders leaving the team at year-end.
  7. Continually claiming the sport has "cleaned up", despite ongoing evidence to the contrary.
  8. Doing nothing to promote women's cycling.
  9. Obsessing over such issues as whether saddles are level, the shape of bicycle tubes, and the bicycle mass limit, issues which only hold back the optimization of bicycle design.
  10. Suppressing the use of on-board cameras and metrology on bicycles, technologies which make cycling more interesting to live video coverage.
  11. Trying to "internationalize" the sport by putting pressure on teams to participate in races from January through October, putting even more pressure on riders to dope to survive the unnatural rigors of a 10-month season.
  12. Resisting any effort for doping enforcement to be made more independent from the other aspects of cycling management and promotion, maintaining a fundamental conflict of interest.

No, I've had quite enough with Pat McQuaid and the UCI, and until there is fundamental change, starting with the position of the president, in the UCI my interest in professional cycling is majorly compromised.

Sunday, December 30, 2012

fitting pro cyclist setback data, and forward-offset seat tubes

Selected pro cyclist setback data was posted on the WeightWeenies forum. The data are summarized in this spreadsheet.

Setback is measured to the tip of the saddle, while saddle height is measured to the top of the saddle. I converted setback to a value Δx, which is the position of the saddle center relative to the bottom bracket, where typical Δx < 0, using a 14-cm tip-to-center measurement from my stripped down SLR. I did a least-square fit of Δx versus saddle height, using as my fitting parameters the angle (measured in the same way seat angle is measured) and the offset. So if I wanted to build a bike which fit the riders the best, minimizing the root-mean-square adjustment of saddle position on the rails, I would use a seat tube angle of the listed angle and a seat tube set-back of the negative of the intercept x0.

Here's the result:


This is perhaps surprising: the angle is a super-slack 66.4 degrees and the saddle set-back is -93.5 mm. The RMS error is then 16 mm, so the typical rider would have his saddle positioned around 16 mm either forward or behind center.

An alternative to negative saddle set-back would be to displace the seattube forward of the bottom-bracket and use a zero-setback post. This is actually what Cervelo has done on several of their bikes, including the R5-CA (see my blog post here):

Cervelo R5-CA
Cervelo R5-CA uses a seat-post offset forward of the bottom bracket

Obviously from the diagram, Cervelo's geometry is a much-tempered version of my numerical fit. Fortunately, however, bikes are build in multiple sizes, so there's no need for one-size-fits-all geometry.

Saturday, December 29, 2012

using the analytic running-mass model

It's always risky to use analytic models I develop here in follow-up posts because I have too great a rate of changing my mind about analytic models, and in these cases I face the prospect of revising not only the model but also subsequent posts relying on the models, and these dependencies are not tracked. But I'll boldly forge ahead here.

Note already my model is suspicious because it predicted a substantially higher dependence on shoe mass than what is reported from experimental measurements, so interpret these conclusions with caution.

First, I'll look at the cadence dependence of the different energy components:

power versus cadence
Force versus cadence

The potential energy component associated with bouncing the center-of-mass dominates at low cadence. As the cadence increases, two other contributions increase in importance: the potential energy of kicking the foot up, the the kinetic energy of swinging the foot forward. Additionally, the faster the cadence the more energy return from the elastic storage in the shoe. With increasing cadence the total power decreases, hits a minimum, then increases. The optimal cadence with these parameters is near 105/minute, although given the crudeness of parameter estimates I would place little faith in the precision of this estimate.

An interesting aspect of this model is how speed depends on the total mass versus how it depends on the foot mass. I derived d ln P / d ln M, which is the fractional change in power or retarding force associated with a fractional change in total mass, assuming the change in mass is inert mass (as opposed to mass below the knees, according to the assumption of my model). I have often in the past assumed this value was 1: that a 1% change in total mass results in a 1% change in speed, and I have seen this assumption used elsewhere. But my model shows that higher the running cadence, the lower this dependence on total mass, and near the optimum cadence (105/min with these model parameters) it's 1/3.

power versus cadence
fractional dependence on total mass, assuming additional mass is inert

Inert mass has the least effect, but mass on the foot (according to the model) has the greatest effect. I show this in a slightly different way, as % change in power or force per 100 gram change in shoe mass (each shoe). The reason for this is % change in total mass has obvious meaning, but % change in shoe mass is less relevant.

power versus cadence
fractional on power from given change in shoe mass

This paper by Franz, et al. claims a 100 gram increase in shoe mass increases the metabolic cost of running by 1%. My plot suggests this might be true, for the assumed model parameters, for unrealistically low running cadences (60/minute), but for more typical cadences in the 80-95 range the effect of shoe mass is greater: more than 3%.

So in summary, the model predicts an optimal cadence of around 105/minute. This involves trading off two processes which had an increased energy cost with higher cadence (kinetic energy of dragging the foot forward + potential energy of raising the foot) and two processes which result in less energy with higher cadence (the raising of the center-of-mass and the return of energy from the shoe). Since only the center-of-mass component depends on inert mass, the effect of a 1% increase in total mass via an increase in inert mass can be substantially less than 1% (for example, 0.5% at a cadence of 90/minute). On the other hand, the model predicts shoe mass can be much more important: for example a 100 gram increase in shoe mass ( 0.34% of total mass, counting both feet ) can increase the power requirements by 3.8% at a cadence of 90/minute.

Friday, December 28, 2012

analytic running power-speed model, revisted

In a previous post in April 2010, I made an effort to model running power. I recently realized in looking back on this (actually, in reflecting on a comment in Runner's World on the claimed difference between running on the road versus a treadmill) that I'd made an error in doing so in neglecting foot kinetic energy. I admit it's embarrassing when I do calculations on things and post them here then much later realize I'd made such a glaring error. If I were to spend train commuting time doing Sudoku instead my errors would be more private.

In any case, the model I used was the following. I considered running in the inertial frame of the runner. In the absence of wind, this is a valid frame of reference. First I considered the trajectory of the center of mass when the runner is ballistic, which results in the following relation between potential energy change (ΔU) and time from launch to apogee (t):

ΔU = ½ M g² t²,
where M is total mass.

I then assumed the body center-of-mass spends a fraction of total time α following a ballistic trajectory (neither foot supporting a substantial fraction of body weight), and of this time one quarter is spent each upward trajectory (up left, down left, up right, down right each taking equal time). I can then calculate this time in terms oc cadence C, the number of steps of each foot per unit time:

t = α / (4 C ).

Assuming the power to raise the center of mass through potential difference ΔU comes from the muscles, and this must then be done twice per foot-stride:

Pcom = C M g² t²
    = C M g² α² / ( 4 C )²
    = M g² α² / 16 C.

On top of this there is an energy cost of raising and lowering the feet. Even if I was hanging in space, suspended by a harness, doing the running motion with my legs would take metabolic energy. On a bike the two feet are coupled together by the pedals and crank arms, so when one leg drops it raises the other, but in running the legs are essentially independent, so each leg must be raised independent of the other. My initial calculation assumed the full energy must be provided to raise the foot from its resting position on the ground to the full height mid-stride, but since then I found a reference by MR Shorten which claims shoes can retain and return a certain amount of elastic energy (10 Joules in the reference). So I assume here that not all of the energy required comes from the leg muscles, but rather some (Eshoe) comes from the expansion of the shoe sole, proportional to twice the cadence (once for each side of the body per step):

Pfeet = 2 C [ Mfoot g hfoot − Eshoe ].

The term on the left is the energy cost of raising the foot (effective mass Mfoot to a height hfoot, and the term on the right is the elastic energy stored in the shoe which need not be provided by muscles. The "2 C" term is twice the net run cadence, one per foot per left+right stride, to convert energy into power.

The "effective" mass of the foot is the mass of the foot itself plus a pro-rated contribution from the leg. If I model the leg and foot as a rigid body pivoting around an axis, then the contribution to potential energy is proportional to the distance of a point from the pivot. So mass at the foot would count maximally, and mass closer to the pivot point (for example, hip joint or knee joint) would be rated proportionally to how far that point is from the pivot relative to the foot.

Back in 2010, I laid down with my knee on the ground and my foot on the scale and got 6.8 kg. My shoes are around 200 grams with socks so adding that per foot yields Mfoot = 7.0 kg. Note by laying my foot on the scale this creates a pivot point at my knee (which was resting on the ground). When a runner kicks, there is pivoting around the hip, but additionally a pivoting at the knee, so the maximal action is below the knee where these two motions are superposed. This approach assumed that weighing my foot with the knee on the ground counts only the weight below the knee, and that the portion above the knee doesn't contribute significantly. I revisit this measurement approach in a bit.

This is basically where my analysis ended back in 2010. But what this neglects is when a runner kicks, there is more than a potential energy component: there is additionally a kinetic energy component. Relative to the road, the foot goes from a state of rest to a state of rapid forward motion. The foot comes off and needs to be accelerated forward, either by pushing off on the road, or by actively pivoting it at the hip and/or knee. The center of mass is moving forward, but the foot needs to move ahead faster to pass the center of mass and reach a forward position for the landing.

Chi Running talks about lifting the foot from behind and placing it under the body in the forward range of motion. But this violates basic physics: the average foot position needs to be exactly under the center of mass to avoid toppling over (on level ground, neglecting relative wind). If the average foot position was behind the center of mass, the runner would topple over forward. So the run stride needs to move the foot from behind the center of mass to ahead of it. This diagram associated with the Pose Method shows this well:

running stride (POSE method)

The center of mass is moving forward with speed v and this is associated with a relatively constant kinetic energy ½ M v². Maintaining a constant kinetic energy takes in principle no power: objects at motion tend to remain in motion. In addition to this center of mass motion, the feet are moving back and forth. The feet move forward when they kick forward, then they plant on the ground and are carried backward. I already asserted that it takes energy to kick the foot up to its point of maximal height. The question is how much additional energy is required to accelerate the foot forward when it leaves the ground, and if any of this energy is preserved when the foot lands.

The runner is essentially ballistic a fraction of time α, and therefore one of the two feet is firmly on the ground a fraction 1 − α. This implies each foot is on the ground (assuming at most one foot is on the ground) a fraction (1 − α)/2. Each foot is stationary a fraction of time (1 − α)/2 and is therefore moving forward a fraction (1 + α)/2. To maintain an average speed equal to the runner speed v, each foot must average a forward speed 2 v / (1 + α) when it is non-stationary. The peak kinetic energy of the foot is then 2 Mk,foot v² / (1 + α)² .

I'll assume kinetic the energy is lost on landing. There's vertical kinetic energy, coming from the foot falling from peak height and which I already counted, but also this forward kinetic energy, which I have not.

Pk,feet = 4 C Mk,foot v² / (1 + α)²

I can sum up these components:

P = M g² α² / 16 C +
    [ 2 ( Mfoot g hfoot − Eshoe ) + 4 Mk,foot v² / (1 + α)² ] C

So before I had no explicit dependence on the speed, but now I do: there is a kinetic component which is lost when the foot lands. Now there is a component proportional to the square of speed. So with this model power is not proportional to speed: running in place at zero speed has a non-zero power, then moving forward (or, in theory, backward) adds a component of power proportional to the square of speed.

Before I proceed further I need to estimate α, the fraction of time the runner is ballistic. It stands to reason the faster the runner is going at a given cadence, the higher the value of α. The distance covered by the runner each step is v / (2 C). But the amount the body can move with the foot on the ground is limited by flexibility. Suppose the foot can remain on the ground for distance Lstep. Then

α = 1 − 2 C Lstep / v.
I estimated my Lstep = 50 cm.

This allows me to eliminate α as follows:

α² = (1 − 2 C Lstep / v)²,
(1 + α)² = 4 (1 − C Lstep / v)²,
P = M g² (1 − 2 C Lstep / v)² / 16 C +
  [ 2 ( Mfoot g hfoot − Eshoe ) + Mk,foot v²/ (1 − C Lstep / v)² ] C.

I am around 500 grams (maybe up to 1 kg) heavier this year than in 2010 (at least 2 kg lighter now then at Diablo this year, though). I'll use 58.5 kg for the runner with clothing (what I was wearing @ CIM). Other parameter estimates were: Mfoot = 7.1 kg, α = 0.7, Eshoe = 10 Joules, h = 70 cm (based ont he POSE image and my shin length of 50 cm), and running at a 3:16 marathon pace (3.59 meters/sec).

I was a bit suspicious of that foot mass measurement. I remeasured it and, with help to read the scale, got 6.2 kg. This is still in the same ballpark range, but I'm not sure I'm able to reliably isolate weight above the knee from the measurement. So I looked for an on-line reference, and found this:

The lower limb is 15.7% of total
body weight subdivided as: thigh: 63% of this 15.7% shank: 27.9% of this 15.7% foot: 8.93% of this 15.7%

So from this, I get that the foot is 1.40% of body mass, and the shin is 4.38%. If I model the foot as a point-mass at the end of the shin, which has uniformly distributed mass, then the potential-equivalent mass for the system is 3.59% total mass, while the kinetic-equivalent mass is 2.86%. (the difference is whether mass along the shin contributes proportional to distance or proportional to distance-squared from the knee joint). If I assume a naked body mass of 57.5 kg this yields 2.07 kg for potential and 1.66 kg for kinetic. To each of these gets added the mass of the shoes (232 grams), yielding 2.30 kg and 1.89 kg. I'm assuming here, arbitrarily, any motion above the knee is a lossless pendulum. This is substantially below the amount I had measured with the scale.

I'll assume running with a cadence of 90/min (90 steps with each foot per minute, or 1.5/second). From this I can go back to my formula for α = 1 − 2 C Lstep / v. I consider only values of C for which α is positive (I'm modeling running, not walking).

power for fixed cadence
Power calculated for fixed cadence of 1.5/sec (90/min)

While the result doesn't yield a speed-independent rate of work per unit distance, for 3.5 meters/second (3:15 marathon pace) it does yield excellent agreement with Minetti's 3.4 kJ/kg/km metabolic cost if I assume a 22% metabolic efficiency, which is in the range of typical reported values. So it seems to be on target here.

But it fails another test. I added 100 grams to each foot and checked the effect of this on per-unit-distance work. The result was an increase from 0.733 to 0.758 kJ/kg/km, an increase of 3.4%. This is not in good agreement with the reported value of 1%.

So in summary my previous calculation counted two potential energy components of a stride: raising center-of-mass, and raising the foot. It assumes the center-of-mass can move forward a fixed distance each stride, and is ballistic the remaining distance. It assume all of this potential energy is lost when the foot strikes the ground. I added in energy storage in the shoe, and kinetic energy in the foot and shin when the foot is kicked forward. After revising my foot + shin mass estimate based on claimed values from the web, I get a speed-dependent power with a per-unit rate of work compatible with Minetti's treadmill measurements of metabolic work, but which predict a greater dependence on shoe mass than has been reported.

Wednesday, December 19, 2012

height of effective wind speed when running (more post-CIM analysis)

I've been modeling the wind speed as a function of height with the Hellman formula:

vw = vw0 ( h / 10 meters )α

With this dependence, I need to integrate the wind speed over the full height of the body, assuming the effective CD dA per unit height is the same (in a constant wind, the force per unit height is the same).

I got this result for the total force from the wind resistance:
wind resistance

The Hellman formula assumes wind exactly at ground level is zero. Wind speed then increases to the top of the head. Somewhere in between the wind speed is the value which can be applied to the constant wind formula for wind resistance:

FW = ½ ρ CD A (v +vweff)2

Here vweff is the effective headwind speed. The question I'll ask here is at what fraction of the runner's height does the wind speed equal vweff?

Consider the case where the wind varies linearly with height, and where the net wind resistance is linearly dependent on the wind speed (for example, the wind speed at human height is a small fraction of the runner's speed). Then you'd expect the wind resistance to be the same from the average wind speed hitting the runner, which is at half his height, assuming all segments of height contribute equally for a given wind speed at that height.

But consider the case, again when resistance is linear with local wind speed and where the wind speed follows Hellman's rule, proportional to height to the α power. If I integrate that over the height, I get 1 / (α + 1) times what I'd get using the wind speed at the top of the head. This value occurs at a relative height 1 / (α + 1)1/α. So for α=0.27, which is what I used for CIM, I get 41.2% of the runner's height is where the wind speed = the average value, which I assume is the average per-height wind resistance.

If I assume the wind is stronger, and has a nontrivial component proportional to the square of the height. Then the average resistance doesn't come from the average wind speed across the body, but rather the portions where the wind speed is is greater closer to the head will contribute disproportionately. So this will shift the point where the wind speed = vweff higher.

So in summary: for α = 1, in which case the wind speed is linear with position, I expect for small wind speeds the height at which wind speed = vweff to start at 50% of height, then increase as wind speed increases. If α is smaller, I expect it to be at a lower height (for example 41.2% of height for α = 0.27), but still increase for higher wind speeds. I calculated the numerical result using parameters I used for me running CIM and here's what I got:
position of characteristic wind, as a fraction of height

So the answer is for typical conditions the wind between 40-45% of height is the wind producing the per-area wind resistance which would yield the correct total wind resistance for the body. So if you feel wind in your face, that's not the most relevant wind speed, but rather it's the wind closer to your covered bits where I hope you don't feel it.

One interesting observation: in the limit α goes to zero, which is the limit of constant wind, the height of characteristic wind (in the low-wind limit) is the limit as α goes to zero of 1 / (α + 1)1/α, which you might recognize from calculus as 1/e. That wasn't expected.

One more thing: all of this depends on the Hellman formula being good to very low altitude. There's nothing fundamental about it: it's a heuristic formula. It's unclear that a constant value of α should apply from zero to ten meters. Other functional forms, like exponential, may be more realistic. So don't get hung up on exact results. The important thing is the trends.

Tuesday, December 18, 2012

effect of gusting vs steady wind on running wind resistance @ CIM

One limitation of my analysis of wind in CIM was my assumption of uniform wind speed. It isn't hard to investigate how gusting wind would affect the result, however. While the actual time-dependence of wind is complex, a simplistic assumption can at least establish the bounds for what uncertainy exists.

So I make a small perturbation to the assumption of uniform wind speed. Instead, I assume the wind is either zero, or a non-zero "gusting" value which is some multiple k of the average. Since the average is fixed, the wind is zero for a fraction of the time (1 - 1/k), and it is gusting for a fraction 1/k.

So with the same derived average wind speed, I changed the constant k. As before, I assume the wind speed is characteristic of a 10 meter elevation above ground level. I assumed the Hellman formula for the reduction in wind speed as a function of position closer to the ground. I then integrated wind resistance over my height in shoes (170 cm).

Before showing results, it's worth thinking about what to expect. The resistance force from wind per unit height is assumed proportional to the square of the relative wind at that height, so proportional to (v + vw)2, where v is the runner speed and vw is the wind speed athat position z above the ground.

If vw is smaller than v, it is useful to transform this to v2 [ 1 + (vw / v)]2, which can be expanded to v2 [ 1 + 2 vw / v + (vw / v)2 ].

At zero wind speed, this term is simply v2. If I assume vw0 is the average wind speed, then if I define k = vw / vw0 during gusts then the term becomes v2 [ 1 + 2 k vw0 / v + k2 ( vw0 / v )2 ].

I am interested in the average between the gusting and zero-wind times. This average is:

(1 - 1/k) v2 + 1/k v2 [ 1 + 2 k vw0 / v + k2 ( vw0 / v )2 ]

I can simplify this:

v2 [ 1 + 2 (vw0 / v) + k (vw0 / v)2 ]

or perhaps I can write it:

v [ v + 2 vw0 ] [ 1 + k (vw0 / v)2 / (1 + 2 vw0 / v) ]

So the result is a constant value plus a fractional proportionality constant proportional (for small wind speed) to the square of the ratio of the wind speed to the runner speed. At higher wind speeds this becomes proportional to the ratio of wind to runner speed rather than the square of the ratio.

So here's what I get when I run the numbers. I plot only the fractional effect, not the force in Newtons.

gusting multplier for CIM

First, the analytic calculation is mirred in the numerical result: there is an intercept with a linear dependence on k.

The plot shows two curves. One (blue) is the total wind resistance, including the effect of the runner's speed, versus the constant-wind-speed case. This has a relatively gradual slope. Analytically I can write this curve:

1 + (k - 1) vw02 / (v + vw0)2

The other curve subtracts off the wind resistance the runner would experience in still air. This simplifies down to the following:

1 + (k - 1) vw0 / (2 v + vw0)

This is proportional to the total energy cost per distance of the wind itself.

For hurricane-level gusts there's at least a 65% error in effect of the blowing wind (red curve), but for the approximate factor of 3 between the reported wind gust speed and the average speed, the average force increment is only 25%. So it seems, if I trust the average wind speed data from the weather station in Fair Oaks, the assumption of constant wind speed was not a terrible one in this instance. The key here is the Hellman formula which reduces the wind speed at runner level.

As long as the wind direction is constant, this is the "worst-case" assumption for a given wind gust speed. Real-life wind patterns with a given peak speed and a given average speed will have a lower multiplier.

Monday, December 17, 2012

Garmin Forerunner 610 vs Edge 500: city run smack-down

Previously I compared the Strava Android app on my HTC Incredible phone to the Garmin Forerunner 610 on a run I did along the Steven's Creek Trail. I thought the phone might have been slightly better, but it was close.

This time I set off for a city ride without my phone, but I had the Garmin Edge 500 mounted with a strap to my right wrist, and I had the Garmin Forerunner 610 mounted to my left wrist with its integrated strap. I had both set to 1-second sampling.

This wasn't a pure run, as I was also Christmas shopping (books for my nieces). So I stopped in several book stores along the way, as well as a two cellular phone shops (thinking of switching from Verizon to T-Mobile), one bike shop (the black-on-black Specialized SL4 with 2012 Red is very slick), and a chocolate shop (disappointed Girardelli's "sea salt" "Intense Dark" doesn't seem so dark at all from the fat:carbohydrate ratio). Anyway, all of these stops meant loss of signal.

Here's a comparison in the form of animated GIF. Shift-reload if the animation stops and you want to re-view (it loops 50 times before stopping):

comparison Forerunner vs Edge
Comparison of Forerunner versus Edge data from a "shopping" run on 16 Dec 2012

The Forerunner is the better of the two. It's a fairly dramatic difference. The Forerunner is newer than the Edge, so that may explain some of the difference. There doesn't seem to be any fundamental reason the Forerunner should have more reliable position detection.

Sunday, December 16, 2012

Garmin Forerunner 610 "Smart Sampling" test

I recently did a run using both my new Garmin Forerunner 610 and the Strava Android app running on my HTC Incredible phone.

I hadn't yet gone through the set-up menus on the Garmin so settings were still mostly default. This included "smart sampling" which reduces file sizes by recording data only when the watch decides it is important to do so based on the goal of being able to accurately reproduce the course.

The Strava app takes a different approach to file size reduction: it attempts to sample at 3-second intervals unless data signal is lost or unless the runner is idle. It's thus less "smart".

I've shown for cycling that "smart sampling" can yield significant errors in Strava times for segments since Strava doesn't interpolate positions and is therefore limited to times equal to a difference between samples. So if a 6-second gap, for example, appears in data Strava will have two choices for time on a segment, separated by 6 seconds. Typically 6 seconds is a big deal on Strava times so forcing 1-second sampling is preferred. Running, however, is typically slower than cycling and maybe 1-second sampling is overkill.

As an aside, for Low-Key Hillclimbs I wrote my own GPS-based timing code which does interpolation for timing and I suspect that is much less prone to smart-sampling induced errors.

But to this example: I was curious on this run to what sort of sampling times I was getting from the Forerunner 610's smart sampling algorithm. Here's plots of histograms of the sampling times recorded by the Android and by the Forerunner:


Note the logarithmic axis. The result, however, is the Garmin most often uses 6-second samples but sometimes samples as quickly as every second. It also frequently slips to 7-second samples but only on a few occasions did the sample time get longer. The Android uses 3-second samples around 80% of the time, 4 second samples 20%, with a few isolated examples of longer sampling times, perhaps due to signal loss (under tunnels, for example).

Given these results, I will stick with the decision I made to reset my Garmin to 1-second sampling. If Strava used interpolation, it might be okay, but without it 6-to-7 second sampling times are simply too long.

Saturday, December 15, 2012

Estimating effect of the wind on run speed @ CIM 2012

The big factor I've not addressed in the conditions at CIM was the wind. There was a strong wind from the south, and the route finished further south than it began. It was fairly W-to-E or N-to-S at all time, moving along orthogonal trajectories. The latitudes reported by my Edge 500 extended from 38.564 degrees to 38.704 degrees, a difference of 0.140 degrees, which at 90 degrees per 10 million meters yields 15.51 km north-to-south out of the 42.2 km race.

So the question is, given the conditions of the race, how much time is added by running 15.51 km of the course into a block head-wind? I assume a side-wind had no effect.

Weather reports of wind are generally typical of 10 meter elevation, and I extend only from 0 to 1.70 meters (in shoes). Approaching ground level, wind speed is reduced. An analytic approximation to this effect which I have used before is the Hellman formula:

vw = vw0 ( h / 10 meters )α

Assuming all increments in height have essentially equal Cd dA, I can integrate wind resistance over height to yield:
wind resistance

I checked this integral numerically and it matches. In any case, you can see it has the correct behavior for α = 0 (constant wind all the way to the ground) in which case it reduces to the usual formula (force proportional to the square of the sum of runner speed and headwind), and in the case α infinite (no wind below the reference altitude) in which case you get the still-air wind resistance.

All that remains is to find values for the constants. For the Hellman constant, I have used 0.34, which is applicable to "neutral air above human inhabited areas", but here I'll use 0.27, which applies to "unstable air above human inhabited areas." I'm not sure what "unstable" means, but it seems the gusting winds we encountered were fairly unstable.

For wind speed, I checked the portion of the run over the course where most of the north-to-south progress was made, first getting the times from my Strava activity, then looking up the wind speeds on Weather Underground using the historical data for Fair Oaks, which was at the southern end of the first of two north-to-south portion. Although the wind gusted to 49 mph with 32 mph sustained at the time of the race start, I was going south from approximately 7:42 to approximately 9:00, and during this period the average wind speed was 11.7 mph = 5.21 m/sec. Sure, there were gusts to up to 52 mph, but I'm going by average. I take these winds to apply to 10 meter elevation, as is typical.

For air density, I go by the reported temperature of 55 F (13C) and the pressure of 29.7 inches of Hg. I was able to convert that to the units I want, which is 1.233 kg/m3.

I estimated CD = 1 (since my clothing was relatively floppy) and A = 0.4 m wide by 1.7 meters tall = 0.68 meters squared.

For running speed, I used my average speed when heading due south, which was 3.54 m/sec.

The net result is 0.857 newtons of retarding force. This is in contrast to the still air retarding force of Fw = 0.525 newtons. So how is this possible? The headwind is changing the wind resistance by only 63%. The answer is the Hellman formula: wind sheer results in a substantial reduction of wind speed over much of my height. Even if I feel a wind in my face, there's less wind at my belly button, and less still at my knees.

baseline energy cost = 4 kJ/km
focus on zero-grade point = 3.4 kJ/kg/km

If I assume a marginal metabolic efficiency of 25%, and I can integrate this additional force of 0.332 newtons over the 15.51 km of north-to-south running to come up with a total metabolic cost of 20.60 kJ of metabolic cost added by the headwind. This is out of a total metabolic cost in the marathon of approximately (3.4 kJ / kg / km) × 59 kg * 42.2 km = 8465 kJ. The conclusion is the net loss of speed is 0.248% over the whole marathon, 0.66% during the portions where I was running southward. That's around 31 seconds.

You might argue this is a low-ball estimate because it assumes a constant wind speed, while the actual wind was gusting, and since wind force is proportional to the square of the relative wind speed the effect of gusting wind will be greater than that of the effect of constant wind at the same average. On the other hand, this analysis fails to consider drafting, as I tried to run behind others during these segments.

So I decided to look at the data. For the first 17 km, before I slowed, I extracted my heading (1 = north, -1 = south) and extracted my speed, applying 30-second smoothing to each. I plotted these and did a regression, as follows:

speed versus heading

The result is that speed when I was running due south was approximately 1.25% slower than when running perpendicular to the wind, and my overall pace was reduced by 0.58% versus what the regression predicts for running perpendicular to the wind. I admit this is far from the most compelling regression I've ever seen, but while these numbers are well above the prediction I got from the documented wind speed with the other estimated values, they are still well shy of the 3.7% reduction in runner speed I derived relative to last year.

grade versus heading
Grade versus heading to compensate for effect of grade difference going south then west and north

I can do a bit better than this by correcting for correlations between road grade and heading. If I do the same sort of regression for road grade on the course, I find the dependence of road grade on heading is 0.31%, so on average the southern legs averaged a 0.31% more downhill than the cross-wind sections. This compensates some of the headwind effect. From Minetti's data I see each 1% change in grade changes the metabolic cost of running by approximately 0.2 kJ/kg/km near zero-grade, so this difference in grade has an effect of 0.062 kJ/kg/km, or 1.82% of the baseline 3.4 J/kg/km metabolic cost. So you'd expect the southern legs would be faster due to being more downhill, but in fact they were slower. You could then argue the net effect of the wind wasn't 1.25%, but rather 3.07%. Still, amortizing this over the full length of the marathon yields a net slow-down of 1.11%, which is 2:10 applied to my pace here of 3:16/marathon. 1.11% is still well below the 3.7% derived number.

You could argue this discrepancy is because I am assuming constant effort, and that runners tried harder on the southern sections attempting to keep their target pace, and they thus paid a price for the headwind not only on the southern legs, but additionally on the western legs which followed due to increased fatigue. This is quite plausible, but I cannot easily assess it.

So in summary, I approximated the effect of wind resistance assuming steady wind and no drafting and the Hellman formula for ground shear got a relatively small effect. This analysis neglected wind gusts and drafting, the first expected to yield bigger effect, the second less effect. I then empirically looked at my speed during the first 29 km (before I slowed) and saw the southern sections were indeed slower, but only by 1.25%. However, these sections were also more downhill, so you'd expect them to be faster, not slower, and taking the net wind effect after subtracting the grade effect yields 3.07%. The effect over the full marathon would be expected to be 1.11%, which is significant but still less than the observed difference.

Friday, December 14, 2012

Garmin Forerunner 610

At the Low-Key Hillclimbs awards party this year, I received an extremely generous gift from some friends this Christmas: a Garmin Forerunner 610. They had observed I'd been running with my Edge 500 coupled with a Garmin wrist strap, a functional if somewhat klunky solution to on-the-run GPS.

In the rain at CIM it wasn't easy for me to see the Edge 500 screen: water droplets and low ambient light made for poor viewing conditions. So I decided early on to run blind: go on perceived exertion. This made sense to me in any case since, lacking any training data in the wet and windy conditions, I didn't know what my target pace should be anyway. So after getting a 5 km split, I allowed the Edge to flop upside down on my forearm where it was located (I had a gel under my compression sleeve which occupied the normal watch position). I left it there to collect data silently for post-run analysis (it was issuing beeps every 5 km, but during the constant rain of the run I didn't notice any of these).

The Edge is designed for cycling, and while riding I would have been able to see the screen better. While riding the unit sits stationary upon my stem, my head stays in a stationary position relative to the stem, and so there's better opportunity to focus. When running I'm bouncing up and down, making focusing on the screen more challenging.

Before talking about the Forerunner, I will link to the DC Rainmaker review. He does incredible product reviews, and I won't attempt to reproduce any information contained there. I'll assume you've read that review, and will instead focus on my perceptions. Rainmaker's focus is a bit different than mine: for example he devotes several paragraphs and photos to the device's packaging.

One issue I always worry about is weight. My Forerunner 610 with its integrated strap has a mass of 77.5 grams. On the other hand my Edge 500 with its auxilliary strap has a mass of 59 grams for the Edge itself + 17 grams for the strap totalling 76.3 grams. The difference is 1.2 grams. This weight difference is obviously insignificant, and would change if I trimmed the straps to better fit my rather low-circumference wrist.

The issue of watch weight is interesting, however. Wrist weight must be supported by arms, which can fatigue from the isometric load (although I had no arm fatigue problems during the CIM, so isometric loading of arms may be an issue only with ultra events, if at all). Arm motion is like a pendulum: they swing through a point of minimum potential energy and maximum kinetic energy, reach a point of maximum potential and minimum kinetic energy, then fall back again. This in principal takes no energy: a pendulum can swing a long time without energy input. But arms are connected by muscles, tendons, skin, and clothing. Each of these dissipates energy. The result is arm motion comes with a certain energy cost. The question is whether adding mass to the wrist changes this energy cost. I don't see a reason it should. For example, when I'm carrying a really significant load in my hand, for example a water bottle or food I've picked up on a lunch run, I swing the arm holding the load less than the other. So I suspect the more mass loaded on my arm, the less I swing it. So I'll assume the mass on the wrist is the same as mass on the body.

Running speed is generally considered to be inversely proportional to total mass. I have generally made the mistake of assuming this is true: but analysis suggests otherwise. If I uniformly increase the mass of all parts of the body, then speed should indeed be inversely proportional to mass, neglecting mass-dependent differences in run efficiency (for example, if I had zero mass I couldn't run at all, since I would have no grip on the road). But I concluded using energy analysis that on level ground the energy cost of running should be relatively equally partitioned between center-of-mass motion and foot-and-leg motion. If I add 1% to the center-of-mass, and this mass is inert other than the ballistic trajectory of the center of mass, then this should increase my total energy cost by only 0.5%, not 1%, and should therefore reduce my speed by only 0.5%. In contrast, if I add the same mass to my foot, that would slow me substantially more than 1% (it's been documented 100 grams of foot mass, well under 1% total body mass, on average decreases speed by approximately 1%).

If I weigh 59 kg with clothing, the load of an additional 1.2 grams, assuming it affects only center-of-mass motion energy, is 0.12 seconds per my CIM time. Obviously that's totally insignificant in comparison to other differences between the two. On the other hand, if I compare the Edge versus no GPS, that's 8.0 seconds (8.1 seconds for Forerunner versus no GPS). 8 seconds is more significant: if 1000 runners are finishing per hour that could well be a loss of 2 places. But I gain enormous benefit from having post-race data, so even if you think the watch provides no utility during the run itself, I consider an 8-second price worth paying. On the other hand, it takes very little improvement in pacing optimization to gain back those 8-seconds, I suspect, so I think the GPS is win-win. (and I'm comparing here versus a bare wrist, versus my wristwatch the difference would be less).

wrist shot

The Edge 500, despite being slightly lighter, looks like a cycling computer jury-rigged onto my wrist, which is exactly what it is. In contrast the Forerunner looks like a real watch. The Edge 500 with its old Forerunner strap is uncomfortable: the straps, if tight enough to keep it from moving around, dig into my skin, so I prefer wearing them over sleeves. The Forerunner strap is comfortable: it is strap is broad and supports the weight of the GPS unit nicely. I have no problem wearing the Forerunner all day while I wouldn't consider doing that with the Edge 500.

The screen layout is nice and simple. The buttons to start and stop the timer are easy to hit when I want to hit them, but unlikely to be accidently pressed when I don't. And unlike the Edge it has a touch screen which is easy for switching between virtual screens. For scrolling through menus it's a little less than optimal, as it's easy to accidently select menu options when touching the screen to scroll it. But fortunately it's not necessary to change menu options too often. The touch screen is an obvious upgrade for the successor to the Edge 500.

An obvious difference is that pace is provided as time/distance, rather than the distance/time typically preferred by cyclists. That Garmin couldn't squeeze time/distance into the Edge 500's numerous field options provided for customization is slightly cynical: it's an obvious attempt at differentiation to encourage multi-sport athletes to buy both an Edge and a Forerunner since runners generally prefer time/distance by convention, while cyclists prefer distance/time.

There's also a "virtual partner" for pacing. This is nice: you set up a target pace, and it tells the distance and time relative to the virtual pacer. This seems enormously useful for trying to hit a marathon BQ time target. But I don't want to sell short the Edge 500: it also has a similar option. If you go to "workouts" you can define a workout of distance 42.2 km (marathon distance), then set a target range for speed from 12.35 kph (3:25 marathon) to 14.06 kph (3:00 marathon). The idea is to keep my speed within a target band, the 3:00 pace set on the fast side for downhills. I didn't do this for CIM, and that was likely a mistake, although the screen visibility and alarm audibility issues in the rain would still apply.

But apparently I'm not the only one who finds audible alarms not 100% sufficient. The Forerunner additionally has a vibration option. Every km, for example, it buzzes my wrist, and a split appearts on the screen. The Edge 500 has an alarm but no vibration.

I did my first medium-length run with the Forerunner, 10 miles around Sunnyvale, and it was very nice. I ran with it again the next day with another ten miles on the Steven's Creek Trail. I liked the fact that every km my wrist vibrated and I could see my pace from that km. Runs in autocentric suburbia are frustrating due to long-cycle traffic lights (in contrast my runs in San Francisco have surprisingly little stopping except for a few key street crossings). These result in delays which tend to pad the km average pace. But despite this it's useful.

The default main "timer" screen has three fields: time, distance, and last lap pace. The obvious omission is current pace. Current pace with GPS is always tricky, as small errors in position can result in large errors in current pace. I know with the Edge 500 I've found using current speed to guide my pacing unreliable and even depressing. I'll be going at what I consider a good clip, look down, and see I'm well under my target pace. Or I'll be running at what feels to be target pace and the speed display tells me I'm well over. I think I have a better feel for present pace than the unit is able to provide. However, pace for the previous km will be much better assuming the GPS signal is good (for example, I'm not running between tall buildings or in a canyon). That help calibrates my perceived pace. For example, at CIM during miles 20-26 when both legs were hurting I thought I was running substantially faster than post-race data analysis revealed. I could have easily picked that up from km lap data. The Edge 500 is perfectly capable of showing the same data, and indeed I had it set up to give me 5 km splits, but I wasn't using the data I had available. But the message here is I think the default screen on the Forerunner is probably good.

But there's space for two optional screens, and all screens are customizable. I activated one of the optimal screens and put distance, instant pace, and elevation. Elevation is nice for trail runs which tend to have long climbs and elevation can be a good guide to distance to the top. I was a bit surprised I didn't see "total elevation gain" as an option, but that's of questionable utility anyway.

When I ran using current pace, it was surprisingly stable, free from the wild deviations of the Edge 500. But the Edge series is optimized for cycling, where rapid accelerations are common, and the cyclist wants the numbers to respond within a small number of seconds. However, with the Forerunner, optimization is for running, where typically a runner plods along at a fairly steady pace. Thus the Forerunner evidentally uses considerable time-smoothing for its current pace number. I could see this when I would briefly slow and then return to my original pace, and it would take close to 30 seconds for the speed to recover. But an advantage of all of this smoothing is the instant pace agrees fairly well with the split which shows up when my next kilometer's auto-lap completes.

The uploading of data I don't find as convenient as the Edge. The Edge mounts as a USB drive, while the Forerunner requires comminication via a browser plug-in. With Garmin Connect, I had no problems, but with Strava I had difficulty getting my most recent activity to appear. Curiously, if I uploaded with Garmin Connect first, then uploaded to Strava, I always saw my most recent activities. One thing worth checking out for this purpose is the Suunto ANT+ Sport USB stick (see Rainmaker review).

For GPS comparison I did my second 10-mile run, and out-and-back on the Steven's Creek Trail in Mountain View, California, with both the Forerunner 610 and my HTC Incredible phone running the Strava Android app. The app was in a belt pouch with my wallet-type-stuff, while the Forerunner was on my left wrist. Out near the San Francisco Bay, with few obstructions, the phone seemed to be slightly better: the outward leg and the return leg were somewhat tighter. In particular, I did a jog right-left across a bridge which narrowly constrained my path, and the phone showed the outbound and inbound trajectories essentially overlapping, while the Garmin had a clear gap. But then when I got in among obstructions, trees lining a path through an office park recently taken over by Google, I thought perhaps the Garmin looked slightly better: there was in particular a little lateral jog in the Android data which wasn't evident on the Garmin. I had the Garmin on "smart recording" while the Android samples at 3-second intervals. I will try putting the Garmin on 1-second sampling to see if that changes things. The difference in sampling rates can affect the tendency to see route anomalies. In summary I can't say for sure which was better. GPS data quality wouldn't be a deciding factor in which I used.

So overall I really like it. It's definitely the GPS souce of choice for me my next marathon, which looks to be Napa on 2 March.

Thursday, December 13, 2012

"units" program for running/marathon time calculations

I've been doing a lot of calculations about marathon pacing and times and I wanted to document my favorite method for doing that. It's the venerable unix code "units", which is provided with Mac OS/X.

There's various GUIs provided for this code, or for other unit converters, but it's the command-line version which is the most powerful.

I suspect most users of units fail to appreciate it's power. For example, they might want to convert km to miles (or back). For that, I type:

> units
Currency exchange rates from 2012-06-06 
2546 units, 85 prefixes, 66 nonlinear units

You have: km
You want: miles
 * 0.62137119
 / 1.609344

I see that 1 km is 0.62 miles, with a reciprical conversion of 1.61 km per mile.

Or you can just convert a unit to a basis unit, as follows:

You have: km
You want: 
 Definition: kilo m = 1000 m
You have: miles
You want: 
 Definition: mile = 5280 ft = 1609.344 m

The internal unit for distance is meters, so the code provides the definition in the internal unit if you fail to provide a destination unit.

For times it doesn't do so well. For example, suppose I want to convert 3 hours + 15 seconds to seconds. I might try:

You have: 3:15
Parse error
You have: 3:15:00
Unknown unit ':15:00'

It doesn't like times listed this way. Instead I need to type:

You have: (3 hours + 15 seconds)
You want: 
 Definition: 10815 s

You can see here it handles mathematical expressions. It has quite a flexible expression parser, and even serves as a good stand-alone calculator. For example:

You have: ln(square(sin(sqrt(10))))
You want: 
 Definition: -7.7568349
You have: ln(exp(1))
You want: 
 Definition: 1

So I can use this in calculating times.

For running, a very useful unit of distance is "marathon".

You have: marathon
You want: 
 Definition: 26 miles + 385 yards = 42194.988 m

I can then easily convert between marathon times and "paces", per mile or km:

You have: (3 hours + 15 minutes) / marathon
You want: minutes / km
 * 4.621402
 / 0.21638455
4.62 minutes. To get the fractional seconds I subtract 4 minutes and convert to seconds:
You have: (3 hours + 15 minutes) / marathon - 4 min / km
You want: seconds/km
 * 37.284117
 / 0.026821072
You have: (3 hours + 15 minutes) / marathon - 7 min / mile
You want: seconds/mile
 * 26.24553
 / 0.038101726

So it's 4:37.3 per km, or 7:26.2 per mile.

I can ask distance scaling questions. Suppose I ran a 41:15 for a 10 km race and I assume I will lose 5% per doubling of distance and wish to project my marathon time. I can solve that:

You have: marathon * ((41 minutes + 15 seconds) / 10 km) * 1.05 ** (ln(marathon / 10 km) / ln(2))
You want: hours
 * 3.2102974
 / 0.31149762
You have: marathon * ((41 minutes + 15 seconds) / 10 km) * 1.05 ** (ln(marathon / 10 km) / ln(2)) - 3 hours
You want: minutes
 * 12.617842
 / 0.079252855
You have: marathon * ((41 minutes + 15 seconds) / 10 km) * 1.05 ** (ln(marathon / 10 km) / ln(2)) - (3 hours + 12 minutes)
You want: seconds
 * 37.070518
 / 0.026975615

I conclude if I can run 10 km in 41:15 for 10 km and if I scale time such that every doubling of distance my time/distance is 5% greater, I get a marathon time of 3:12:37.

Or if I did a 10 km race in 41:15, and a half marathon in 1:30:57, I can estimate a marathon time assuming time per distance depends on distance to some power:

You have: (1 hour + 30 minutes + 57 seconds) * (marathon / half marathon) ** ((hour + 30 minutes + 57 seconds) / (half marathon) ((41 minutes + 15 seconds) / 10 km)) - 3 hours
You want: minutes
 * 7.6730578
 / 0.13032614
You have: (1 hour + 30 minutes + 57 seconds) * (marathon / half marathon) ** ((hour + 30 minutes + 57 seconds) / (half marathon) ((41 minutes + 15 seconds) / 10 km)) - 3 hours - 7 minutes
You want: seconds
 * 40.383468
 / 0.024762608

So the conclusion is I'd be able to run the marathon in 3:07:40 (6.4% increase in time/distance per doubling of distance)

I can also do calculations on the effect of weight reduction. Suppose at the CIM start my running cap weighed 50 grams and with my clothes on I weighed 130 lbs. At the start the wind blew my cap away. How much time did this save me, counting only the effect of the mass and not wind resistance? I assume time is proportional to total weight.

You have: (3 hours + 25 minutes + 34 seconds) * (50 grams / 130 lb)
You want: seconds
 * 10.458391
 / 0.095617007

Answer: 10 seconds, neglecting the potential performance advantage of wearing a cap.

Units has a huge variety of unit definitions, and you can define your own. The default definition file can be identified by typing:

> units --help
which prints the following line (among other information):
To learn about the available units look in /opt/local/share/units/definitions.units

Looking in that file, I see "waterdensity" is a unit.

You have: waterdensity
You want: 
 Definition: gram / cm^3 = 1000 kg / m^3

It's defined to be 1 gram / cubic cm, which is the definition of the gram, after all (this applies only to pure water at its triple point: typical water differs somewhat).

I can use this to ask another question about the marathon... suppose I was 2/3 of the way through and I needed to pee, and if I peed I would release 250 ml of water, and suppose it would delay me 20 seconds. Should I do it, assuming suitable opportunity, or should I suffer on to the finish? Assume I weigh 130 lb with my clothes. I calculate the net time saved by stopping 20 seconds to reduce mass by 250 ml of water:

You have: (250 ml * waterdensity / 130 lb) * ((3 hours + 25 minutes+ 34 seconds) / marathon) * (marathon / 3) - 20 seconds
You want: seconds
 * -2.5693491
 / -0.38920363

So the conclusion is stopping ends up costing me close to 3 seconds. On the other hand, I get most of 20 seconds of rest in the deal, so in the end it's probably a net win (the elasticity of rest question). On the other hand, speed may not be proportional to bladder mass, since I assume center of mass motion contributes only half to total energy required at optimal cadence, the other half from foot motion.

I can also define custom units. For example, BMI is body mass index typically measured in kg2/meter2. And rate of climbing is measured in VAM which is traditionally meters per hour. I would like to be able to use these units.

No luck, though:

You have: BMI
Unknown unit 'BMI'
You have: VAM
Unknown unit 'VAM'
So I define a file ".units" in my home directory with the following definitions:
# additional definitions for the units program
BMI  kg/meter^2
VAM  meters/hour
I can now re-start unis and the definitions appear:
> units
Currency exchange rates from 2012-06-06 
2548 units, 85 prefixes, 66 nonlinear units

You have: 57 kg / (167 cm)^2
You want: BMI
 * 20.438166
 / 0.04892807
You have: 1290 feet / (16 minutes + 36 seconds)
You want: VAM
 * 1421.1759
 / 0.00070364266

So units saves me a lot of time, both in doing in-place unit conversions, but also in calculations when units already match.

Wednesday, December 12, 2012

CIM: more thoughts about speed, water, the marginal elastic efficiency of shoes, shoe mass

The last post, I somewhat dubiously estimated the effect of accelerating ground water from under-shoe during footstrokes. I concluded the kinetic energy was potentially a significant form of energy dissipation. But this is an absolute upper-bound estimate. After all, when considering energy dissipation, one must consider what would happen to the energy if it were not dissipated in water. For example, it might simply be dissipated in the sole of the shoe, in leg muscles and tendons. If this were the case, the total energy dissipation would be the same. Whether the energy would be dissipated in the shoe sole or in the water wouldn't affect speed. You could even argue the water would improve endurance by cushioning the landing, decreasing wear and tear on the body.

The question is what the marginal elastic efficiency of foot strikes on the road. When the foot hits the pavement the sole compresses, absorbing some of the kinetic energy. More kinetic is absorbed by the body. On the next stride, the shoe decompresses, returning some of the stored energy. A total elastic efficiency can be defined as the total returned energy divided by the total absorbed energy. A perfect spring would return all of the absorbed energy, that energy absorbed purely as elastic potential, and so a perfect spring when dropped on a perfect road at absolute zero temperature in a perfect vacuum would bounce essentially perpetually. But since energy absorbed by 2 mm of standing water is a small fraction of the total, what is at issue isn't the total efficiency, but the marginal efficiency: for an extra joule of kinetic energy in foot-strike, what fraction of that joule is returned.

This paper by MR Shorten concludes that shoes can absorb approximately 10 J of elastic energy, to be returned on the next stride. Minetti's study, which I have used extensively here, concluded running has a metabolic cost of approximately 3.4 kJ/kg/km, so if I am running at 4.5 minutes/km, and if I weigh 59 km with clothing, run with a 25% metabolic efficiency, and take 3 steps per second, that's 62 joules per foot strike of mechanical (not metabolic) energy. So the shoe is able to absorb only 16% of that. If some of the kinetic energy is first transferred to water, the returned energy may still be close to 10 J, resulting in a low marginal elastic efficiency. I don't know the details here, but the conclusion might be that the net effect of the water is less than I predicted.

But then there's the issue of pulling the foot off the ground. Does the water suck energy here? You might think that lifting the foot creates a vacuum which must be filled, that the vacuum creates a net downward pressure on the foot which makes it harder to pull off the ground. Or you might conclude the foot simply lifts off the ground and the water, on its own, falls into the hole. I'm not going to speculate on this: Napier-Stokes equation is beyond the scope of this blog.

It was suggested to me a neglected component of the water was that it's heavy. After the run, my clothing and feet were saturated in water. It has been determined (see also PubMed listing) that 100 grams of shoe mass results in an additional 1% of aerobic load during running. 100 grams per foot is of course well under 1% of total mass: in my case, assuming 59 kg total mass including clothing, it would be 0.34%. But as I have tried to analyze before, each stride involves raising and lowering the body center-of-mass, but additionally raising and lowering the foot and portions of the leg as part of the running stride motion. At optimal cadence the energy associated with these two motions is equal: too high a cadence and more energy goes into kicking, and too low a cadence and more energy goes into the ballistic trajectory of the center-of-mass. As part of that analysis I put my foot on a scale to estimate the total energy of my feet moving up and down. I concluded from that analysis that my optimal cadence was 94, which coincided with my typical cadence, which seemed to some extent to validate my model assumptions. From that analysis, the effective mass of each foot (modeling each foot as a point mass, the mass of the leg included) was 7.1 kg (including shoe & sock & compression sleeve on calf). 100 grams per foot is 1.41% of this. Assuming I run so half the energy is center-of-mass, half foot-calf oscillation, I conclude that the effect of 100 grams per foot is the average of 0.34% for the center of mass motion and 1.41% for the foot kicking, or 0.88%. This is in excellent agreement with the reported value of "1%".

So the question is then how much did the weight of my shoes and socks increase relative to when the shoes are dry? (A side question is whether wearing socks was a mistake which slowed me down enough to cost me my Boston qualification time, but I won't go there, as I always run in socks and blisters would have slowed me even more). I should in principle do this experiment, but since drying out soaking wet shoes can take quite awhile and probably isn't great for the shoes, I will resist the temptation.

In addition to shoes and socks, the rest of me also got wet. My shirt will typically be saturated with sweat, but my shorts are not. I would need to conduct the experiment: run on a warm day, weigh my shorts, dunk them in water, re-measure. I'll have to wait for a warm day.

On a side note: my Nike running flats are 172 grams, while New Balance Minimus are 220 grams, a difference of 48 grams, so if there was no difference in trauma the Nikes would obviously be faster. Assuming my calculated 0.88% per 100 grams, I conclude the New Balance should be 0.42% slower. I have not observed any speed difference between the two shoes, but I know I feel slightly better running on pavement in the New Balance shoes, and so suspect reduced trauma offsets the increased energy load, especially at marathon distance where the trauma is time-limiting for me, not aerobic capacity. But then that 0.42% is only 1.1 seconds per km assuming a 3:15 marathon pace, so I wouldn't notice that anyway run-to-run, although over a course of the marathon it would be 52 seconds. So my conclusion is that if the New Balance reduced trauma to save me 52 seconds (perhaps holding off my knee pain by 1 km per knee) then they were worth the extra mass, neglecting differences in water capacity.

In any case, the extra weight of wet shoes and clothes goes at least part of the way to explaining the slower speeds this year. I still need to consider the effect of wind.

Saturday, December 8, 2012

CIM: theoretical time delay from water

Last few posts I documented that, for whatever reason, average times were slower in the 2012 CIM then in the previous 11 years. The year prior, 2001, times were about the same as 2012. Your response might be "Well duh! The weather was appalling both in 2001 and 2012: it rained." But 2012 certainly wasn't bad enough that hypothermia was a concern, or that the rain was so strong that the mechanical action of running was a challenge. It should be possible to estimate why a runner, running at the same metabolic rate, would go slower in the conditions.

There are two candiates for slower speeds: the wind and the rain. I'll start with the rain. The rain presents two mechanisms for increased resistance: hitting drops in the air and displacing water on the ground. I'll consider each of these.

First, displacing drops in the air. If it is raining at a rate R (a rate of precipitation per unit time), then if air droplets are falling at an average speed vr, and if water has a density d, then the mass density of water in the air = d R / vr. In a unit time dt, the net volume of water hitting the ground is vr dt, and since the total water hitting the ground is R dt, the volume fraction of water must be R / vr, yielding this result.

When I run at speed v water which hits my body on average is accelerated from a zero forward velocity to my forward velocity. I thus add forward momentum to the water. This is a drag term. Falling water can hit me from the top or from the front. Looking down, I present a certain cross section Atop. From the front, I present a different cross-section Afront.

The rate at which water hits me from the top, in terms of mass per unit time, is Atop R d.

The rate at which water hits my front, assuming water is falling vertically, is the volume density of water multiplied by my forward velocity multiplied by my area. This is thus Afront d R v / vr.

The retarding force provided by this rain equals the rate of change of the rain's momentum. This is the rate of water mass impact multplied by my speed:

Frain = (Atop + Afront v / vr) R d v

This is interesting: the retarding force from rain hitting my front is similar to wind resistance, proportional to v2, while the retarding force from wind hitting the top of my head is only proportional to v. With wind resistance it is assumed the wind is stationary. However, if wind was blowing towards the ground there would be a similar term.

Okay: time for some numbers. The typical speed of a falling raindrop (from "The Physics Factbook" , edited by Glenn Elert) is 9 meters/second. An eyeball-estimate of average rainfall rate during the race (measured in North Auburn, KCAAUBUR13) was 0.25 inches / hour, or 1.76 µm/sec. My shoulders are around 42 cm wide so if I estimate my cross-section from above as a square (need to include fact arms and legs are not hanging vertical when I run) that's 0.18 meters squared. My frontal area is around 1.7 meters high by 40 cm wide totalling 0.68 meters squared. My running speed during the race averaged 3.44 meters/second. The density of water is 1 gram / cm3 which equals 1000 kg / m3.

Using these numbers, the total retarding force from raindrops hitting my head is thus 1.09 mN. The retarding force from running into rain drops is 1.57 mN. The sum is then 2.66 mN.

Note the rain drops also hit the top of my head and push down. I need to resist this force, but am not doing any work in doing so, since work is force times distance and in the vertical direction I'm not moving. So it might make my legs tired but is not a force which directly retards my forward motion.

2.66 mN doesn't seem like much and indeed it is not: over the course of a full marathon that's just 112 joules. To see how much this slowed me down I consider an internal metabolic efficiency of on order 25% requires a metabolic expenditure of approximately 450 joules, which is around 8 joules/kg. The per-distance cost of running I have already described, measured by Minetti:

Minetti data

On the flat, it's around 3.4 J/m/kg. So 8 joules/kg slows me by around 2.5 meters over the course of the full marathon. Since I ran at 3.44 meters/second that's around 0.7 seconds.

So now I consider the effect of displacing water when I step. I consider water on he road to be an infinite area of water of a certain height. There was some sections of deep water, but in general the water wasn't enough to be really obvious, since the roads were well crowned for drainage (maybe not to the benefit of my legs: running on a tilted surface is non-ideal). I'll guess the typical water depth was 2 mm. So when my foot lands, it displaces these two mm of water to the height of the infinite sea of water. Since energy is proportional to height difference, the average energy of water thus displaced is the same as the energy raising the water 1 mm. In reality water would be displaced between 0 and 2 mm. But assuming all water raised 1 mm makes the calculation simpler and yields the same result. Of course, there is splashing, so water rises more than 1 mm peak, but I will first check to see if the simple assumption yields a significant result before trying to be more sophisticated.

My running shoes have a surface area on order 30 cm by 5 cm = 150 cm2. I do not know how much water I displaced each step, but 2 mm seems like a reasonable approximation. I took approximately 1.5 steps per second with each foot, approximately 3 steps total. So each second, I displaced approximately 90 cm3 of water, raising it approximately 1 mm on average, which with a water density of 1 gram/cm3 and gravity of 9.8 m/sec2, multiplying by 3:25 of running (I was probably stationary for 34 seconds) yields 10.9 joules of work done. That's less than a tenth of what I got for for hitting rain drops, and that was only 0.7 seconds delay. So even if I am off here, my net delay is still not much more than one second.

One thing this misses is the kinetic energy imparted on the water. I considered only the potential energy. I'll guess my shoe falls from a height of 10 cm when I run. I run at 1.5 steps each foot per second, and if my foot spends 70% of the time in the air, that's a falling time of 35%, or 0.233 seconds. Assuming uniform acceleration during this interval, the final velocity is twice the average, or 2 × 10 cm / 0.233 seconds = 0.86 meters/seconds. The water depth is 2 mm, so it takes my foot only 2.33 msec to displace the water. From the center of my shoe, the water must move around 2.5 cm. So the average water velocity must be approximately 2.5 cm / 2.33 msec = 10.7 meters/second. The amount of water displaced is approximately 2 mm × 150 cm2 × (1 gram / cm3) = 30 grams. The kinetic energy imparted on the water displaced is thus approximately ½ m v2 = 1.72 joules. I am doing this three times per second (1.5 each with left and right foot) so the total is 5.17 watts. Since I am running at 3.44 meters/second this is 1.506 joules/m, or 0.026 joules/meter/kg. At a 25% metabolic efficiency this is 0.105 joules/kg/m metabolic cost. The metabolic cost of running is again around 3.4 joules/m/kg. So this is 3%.

This is an upper bound, because of course I assumed my foot was in free-fall, but as soon as it strikes the water it is no longer in free-fall. The kinetic energy imparted on the water was 1.72 Joules, which is equivalent of my center of mass dropping 3 mm, and this is a small fraction of my center of mass drop, so I conclude this approximation is not wildly incorrect. However, it does represent an upper bound, since my body is not rigid, and my foot velocity could be retarded without my center of mass being equally retarded.

Note I concluded times were 3.73% slower this year than in 2011. So this already does a nice job of accounting for that. When the foot lands on standing water, it displaces it, increasing its potential energy, but that is a very small effect. On the other hand, it displaces it extremely rapidly, which imparts a high kinetic energy on the water, and that kinetic energy is significant. A lot depends on the height of the water which I just crudely estimated. But if I assume this energy is wasted then I get the runner is slowed by 3%. It could be argued the energy, if it didn't go to accelerating the water, would have been wasted compressing the shoe: the shoe compresses less because the water has already absorbed some of the runner's kinetic energy. I'll talk more about this next post.

That leaves wind.

Friday, December 7, 2012

CIM time comparison: 2011 versus 2012

I downloaded the 2011 and 2012 complete results via the CIM website so I could do a more detailed time analysis. After all, the averages were slower this year, but how did this compare for different types of runners? For example, were faster and slower runners both slower, and if so, by the same fraction?

Since there was a different number of runners in the two years, I converted ranking (based on chip time) into a number from 0 to 1. I created bins for each runner and gave him the number representing the center of the bin. So, for example, if there had been two runners, they would receive rankings 0.25 and 0.75. I chose 1000 values in the range 0 to 1 (0.0005, 0.0015, 0.0025, ..., 0.9985, 0.9995) and interpolated the times for each of these normalized rankings for each year. Then I took the difference, in minutes. I plot this versus the 2012 time here:

time comparison

I noted the time difference tended to be proportional to time, and I fit a line through the data with a single fitting parameter. That line shows the proportionality: the time difference 4.0% of the 2012 time.

But there are confounding effects. The average age of 2011 finishers was 40.74 year, while the average age for 2012 was 40.94 years, 0.2 years more. Note ages were listed to only 1 year precision and this is less than that, but given the large number of runners the difference should be fairly accurate. Then there's the male-female ratio: 43.05% of the finishers were female in 2011, but 45.85% were female in 2012. Each of these trends is expected to increase the average finish time.

So I calculated the natural logarithm of each riders time, then averaged these together for all all the riders in each 5-year sex-based division (for example, M30-34). I assumed the age difference in the two years within a given division was insignificant. Two divisions (W75-79 and M80-84) had finishers in 2011 but not 2012, so I eliminated these. For each division, I calculated a difference in the average logarithm of time (I use logarithm instead of time to avoid over-weighting runners with slower times). Then I set the number of runners in each of these divisions to the average of the 2011 and 2012 values. I then calculated a weighted net average of the difference in the log of time for 2012 versus 2011.

First, every division except women 60-64 was slower in 2012, so that was fairly overwhelming evidence the course was slower this year. But part of the difference was still apparently due to the demographic shift: the percentage drops from 4.0% to 3.7% after this process.

In my particular case, it appears I might have expected to be 7.7 minutes faster last year, which would have put me at 3:17:54.

So I conclude the course conditions were responsible for 3.7% time difference 2011 versus 2012. It will be interesting to try and analytically estimate how this might have been.

So how does this compare with what I calculated last time? There I concluded the time difference was 4.07% of my total time, using just the mean and standard deviation reported by MarathonGuide. However, that analysis failed to consider the demographic shift between the two years.

CIM: finish statistics 2000-2012

My races this year have been a series of just-missing goals, then rationalizing why conditions were such that under "normal" circumstances I could have met them. I'm not very happy with that: goals are goals, they are not conditional upon the best-case scenario, and in the case of CIM my initial goal was 3:15, with a back-up of 3:25 and a "reach" goal of 3:10.

However, when conditions were for strong rains and heavy southern winds, I honestly had to let these goals slip a bit: it was enough just to motivate myself to set off in these rather epic conditions, let alone pulling off some sort of target time in what was my first-ever road marathon. Part of the negotiation process was, "okay, I'll do the race, but don't try and tell me I failed because I was too slow."

Despite this, once I got going I felt good, and the conditions while arguably slower didn't feel particularly bad. I say that as I sit here recovering from a cold which I "somehow" picked up in the days immediately after the race. But I was so worried about how bad it would be, when I was in it it simply wasn't a problem.

But I love statistics, so I can't resist looking at the numbers. MarathonGuide publishes the mean and standard deviation of times for marathons over the years. I wish it was easy to access the full-data, for more detailed analysis, but my first attempt to mind their data failed, so for now I'll go with these aggregate statistics. The problem with aggregate stats is there are confounders. For example, women are slower than men, so if more women run one year, the average will be lower: that's not slower conditions, that's simply a shift in populations.

But here's what I get. I plot the mean finish time per year as a circle, with ±1 standard deviation as bars. The net average for 2000-2010 is an orange line, with the yellow band indicating the standard deviation of these annual averages. I'll explain the rest after the plot:

CIM stats 2000-2012

One thing is immediately evident: 2012 was a slow year. The violet circle, indicating the mean time, is the slowest of all 13 years plotted, falling well above the yellow band. If I look at times one standard deviation faster, 2012 actually is not the slowest year, but is in a virtual tie with 2001. This is because the standard deviation was greater for 2012. Part of the issue here is marathon guide uses standard deviation of time, implying time is normally distributed, while I would have used standard deviation of the logarithm of time, since time clearly is not normally distributed since negative times are impossible and the normal distribution assumes all values are possible. The logarithm of time suggests it is fractional differences in time, rather than absolute differences in time, which are more significant (for example, the difference between 5:20 and 5:25 is different than the difference between 2:11 and 2:06. I think you would agree.) But this is a small digression. It's clear 2012 was slow.

I plotted my 2012 finish time as a blue circle with a horizontal dashed line. You can see for 2012 my time was outside the bars, while for all other years except 2001, 2003, and 2010 my time was inside the bars. This indicates my placing in those other years with the same time would have been worse. I find it more credible to conclude my relative placing would have been closer to constant, my speed different, rather than assume my speed the same and my placing worse in other years, since conditions affect the result. However, one could argue the differences in speed were because runners those years ran better or worse, and my time would have been more constant. For example. Actually "ran worse" is an unfair term. It's possible various factors resulted in a selection bias, for example more women or older runners or fewer top runners. But I'll just make the former assumption and see what happens.

So I concluded my position within the assumed normal distribution characterized by the given mean and standard deviation (sigma) would have been constant year-to-year.

Here is that result:


I indicate these times on the plot as solid blue circles

Except for 2001, 2003, and 2010 and My projected times come out fairly close to my 3:15 goal. And since I lost close to 5 minutes in the last 10 km alone, if I had run the same early pace in faster conditions, perhaps I would have been less worn out at the end and avoided this breakdown longer, which could have results in an even faster time. But "if", "if", "if". What matters is to actually run it.

Wednesday, December 5, 2012

2012 CIM speed analysis

In my run story, I recalled that at 17 miles I started feeling pain in my left foot. I tried to relax that out, stopping twice to adjust my compression calf sleeve, until at near mile 18 I was inspired by "Eye of the Tiger" and rallied a bit. I was then able to continue until mile 20 when I started feeling pain in my right leg, as well, and from here it was pretty much suffer-fest for the final 10 km.

I decided to examine the data to see if this story was consistent with the Garmin Edge 500's story. I plotted speed, which I smoothed with a Gaussian of sigma 100 meters, and plotted it versus distance. Here's the result:

speed vs distance

Until 27.1 km (16.8 miles) my pace shows little sign of fading, running along at near a 3:15 pace (which had been my target). There was a period in there from around 5 to 12 km where I was a bit faster than this, but this was an extended gradual downhill, so it was natural I was a bit faster. And there might have been a bit of a fade from kilometers 22 to 27 before the first big slow-down, but kms 22 to 25 were due south, into the strong headwind.

So things were looking okay. I seemed set to make my goal.

But then you can see my speed took a big hit during kms 27-29. There, at mile 18, I rallied slightly before reality set in and I went back to a diminished pace, still hovering around a 3:30 marathon.

Then I took another speed hit at 33.5 kms (20.8 miles). This was actually the start of an uphill, so it may not have been the sign of a problem, but when the hill topped out at km 35, my speed picks up a bit but then crashes back down. This is mile 21.7, so it was slightly after my right leg started to hurt if my recollection is correct of that happening at mile 20.

From there my pace fluctuates about closer to a 3:43 pace. Now I was losing time versus my goal in big chunks. 3:43 = 28 minutes slower than 3:15, or more than one minute per mile.

The speeds in the plot don't quite add up to my full time, since I am just eyeballing the characteristic speeds here for each of the three sections. The idea here is to extract a meaningful story out of the GPS data. And the story seems pretty clear. I was going well until I got into trouble, but each time I limited my losses and still finished okay, even if I was slower than target.

distance vs time

For completeness, here's distance versus time, showing a piece-wise linear approximation with the same transition distances. Paces for each segment are shown. These are true averages, not "typical speeds" determined by eye. In this case, I was 3:16:36 pace for the first 27.1 km, then 3:33:36 pace until 33.5 km, then 3:45:27 pace from there to 42.2 km. Total time is slightly shorter than my official time, perhaps due to differences in distance from nonoptimal lines through corners and/or GPS position noise.

Here is the error of the piecewise-linear approximation: the distance I was ahead of the piecewise-linear pace. Maximum error is around 100 meters, near the bottom of the extended descent.

distance vs time

Tuesday, December 4, 2012

split times at CIM

At CIM, I went out at what I felt was a completely sustainable pace. I barely felt the strain, running along with the crowd, not thinking about deadlines, until I got to the 5 km point and looked at my Garmin and saw I was right on schedule (despite the conditions). This wasn't bad, because there were headwind sections ahead, and this preserved my buffer against Boston qualifying for when I'd likely really need it.

Yet despite this my legs let me down and my pace faded, first at 17 miles, but then further at 20 miles, although I seemed to limit the explicit damage to two discrete steps, rather than a steady decay into oblivion.

Here are my splits against Ron, a coworker and an experienced marathoner who usually runs sub-3 hours. I view him as a good model, someone clearly faster than me but not so much so he's in a completely different class:

     first    second   third    fourth   total
Ron: 00:40:31 00:51:04 00:47:59 00:45:14 03:04:36
Me:  00:42:50 00:54:37 00:54:11 00:53:12 03:25:34
delta:   2:29     3:33     6:12     6:58    21:02

Okay, now me versus the top woman (I use women because the times are a bit more comparable, and she, like I, had ample draft opportunity):

Alisha: 00:33:40 00:43:47 00:40:30 00:36:58 02:34:57
Me:     00:42:50 00:54:37 00:54:11 00:53:12 03:25:34
delta:      9:10    10:50    13:41    16:14    50:37

The trend was similar.

At the start I was quickly dropped by the 3:10 and 3:15 pacers. I didn't pressure myself to stay with them, figuring if I kept them ahead of me I'd be fine. But it turned out I did actually pass the 3:15 pacer -- somehow I didn't notice... then he passed me and again I didn't notice:

Peter : 00:43:26 00:53:23 00:50:57 00:47:12 03:14:59
Me:     00:42:50 00:54:37 00:54:11 00:53:12 03:25:34
delta:     -0:36     1:14     3:14     6:00    10:35

Here's my time against the 3:10 pacer:

Michael : 00:42:23 00:52:55 00:50:21 00:44:26 03:09:49
Me:       00:42:50 00:54:37 00:54:11 00:53:12 03:25:34
delta:        0:27     1:42     3:50     8:46    15:45

They dropped me and I never caught them.

And here's my time against the 3:25 pacer. He passed me quite late, but again I never noticed.

Lee:   00:45:37 00:56:52 00:54:02 00:48:46 03:24:39
Me:    00:42:50 00:54:37 00:54:11 00:53:12 03:25:34
delta:    -2:47    -2:15     0:09     4:26     0:55

Pretty amazing I never saw any of the pacers in three separate encounters with them. It was quite crowded near the start, but after that thinned out a bit.

But the overall trend is clear: given my final time, I went out too hard. I should have dialed back my perceived exertion even further. Yet had I paid more attention to my Garmin I would have run the same pace anyway, as it was close to my target. Indeed I had thought I might be able to follow the pace of the 3:10 group. The last time I was in this sort of situation, in the San Francisco Giants Half last year, I was able to stick with a "reach group"s (7-minute mile) pace (they went faster, but I ended up right at 7-minutes). This year my "reach" group was 3:10, my "should be safe" group was 3:15, and my "safety net" was 3:25. I made a mistake letting myself pass the 3:15 group (which I didn't notice in the crowd) but I doubt that made the difference. I need to digest these results and replan for my next one.