Saturday 30 December 2023

Validating my Power Delivery Optimiser: Steps 1 & 2

Steps 1 & 2: Gathering data and rider parameters for the constant power case.  

The introduction post written previously (here) explains the objective and context of this Step 1 & 2 of the study.

Route Selection

Firstly, I needed to decide a suitable route.  Strange as it may seem, I didn't want to use an outdoor route.  The difficulty of doing a test like this outdoors is that the conditions are so variable. The wind changes, traffic interferes with aerodynamic drag and gets in the way, road junctions have to be avoided, etc.  Then I would also have to ensure my bike, my power meter and my body position stayed consistent between runs.  

I really wanted to avoid those constraints and difficulties associated with doing the test outdoors, so I instead decided to use a virtual route on Zwift.  This is also not ideal, because the bike speed in Zwift is calculated with a computational model, so I'll effectively be using a model (Zwift) to validate another model.  However, I feel that the benefits of having a fully controlled environment to test the power delivery optimiser outweighed the doubts and downsides that may come from using Zwift.

For the route, I decided to use the Whole Lotta Lava route.  I picked this route because it was reasonably short at 12.3km (7.6 miles), so it would take less than half an hour to ride.  Also, it includes a good mix of terrain, with a flat section, a climb and a descent in approximately equal amounts, as shown in the route profile to the left.  The amount of climbing, with 160m (525ft) climbed in 12.3km is the kind of elevation change that I typically see in my local rides and the terrain in the South West of England where I live.

Finally, the route is almost entirely pavement, which makes the treatment of rolling resistance somewhat easier.  There is a short section of wooden boardwalk, perhaps 200m in length that has to be crossed on climb and the descent, but I'm hoping that is not significant enough to complicate the modelling.

Bike Choice

For this type of test, a TT bike is the best bike to use, because Zwift does not allow a TT bike to gain a benefit from drafting other riders, unlike for their road bikes.  This means that any ride I would do on a TT bike, and the associated segment time for the Whole Lotta Lava route, would not be affected by the presence of other riders.

In Zwift I have the Canyon Speedmax TT bike with Zipp 808/Super 9 wheelset.

Riding the route at constant power

I decided to perform the constant power reference case at a fixed power of 150 Watts.  This is approximately 60% of my FTP, so it makes it a comfortable long-slow-ride kind of pace.

I ensured that that my ride was done at exactly 150W by using TrainerRoad in ERG mode to control my Wahoo Kickr trainer, ensuring that I held a power of exactly 150W, then linking the Kickr trainer to Zwift via it's second bluetooth connection so that the Zwift ride was done at 150W.  It can be seen in my Strava activity file (screenshot shown above, link to Strava activity here) that the power trace is constantly at 150W.

The entire Whole Lotta Lava route was done first, then I also performed most of a second lap too.  The second lap was useful because the translucent pace partner (which follows the pace of my best time) was a demonstration that Zwift was reproducing the pace almost exactly, as shown in the screenshot to the left.  This was the top of the climb, approximately half way through the route.  Note that the pace partner (riding at the pace of my previous lap) is very close to my avatar on the second lap.

This is to be expected, of course, but it was reassuring to see.  This is the kind of repeatability that would be impossible if riding a route outside!

Reference parameters

For the subsequent power delivery optimisation, I will also have to decide values to use for the following parameters:

  • Total weight (rider + bike)
  • CdA (drag coefficient x frontal area)
  • Crr (coefficient of rolling resistance)
  • Air pressure
  • Air temperature (which together with air pressure, gives the air density)
  • Drivetrain losses, if indeed Zwift even account for these.
The choice of these values should match as closely as possible as what Zwift models, some of which it's possible to determine, but some of which are unknown.

I entered my weight of 73kg and my height of 5'10" into Zwift.  I'm not sure what weight Zwift assumes for the bike, so this is something I had to figure out as part of the virtual elevation (VE) analysis.

Coefficient of rolling resistance (Crr)
According to Zwift Insider, Zwift assumes a Crr value of 0.004 for road and TT bikes on pavement.  I will use this 0.004 value for the VE analysis.  The small section of wooden boardwalk apparently pushes the Crr up to 0.0065 for that short period of time.

Drag coefficient (CdA)
Previously, when I unlocked the Zipp Super 9 disc wheel, I calculated (here) that the CdA was 0.2415 m^2.  I will use that value for VE analysis.

Air Pressure and Temperature
As I did previously, I assumed International Standard Atmospheric Sea Level conditions (101250 Pa, 15 degrees Celsius), which results in an air density of 1.225 kg/m3.  It's worth noting that pressure, temperature and the resulting air density only affects aerodynamic drag and nothing else.  Therefore, if the assumption is wrong, it will simply bias the CdA value which is also chosen, because it's the product of CdA and air density that affects aerodynamic drag.  As the CdA is obtained from the VE analysis, the choice of pressure, temperature and air density is rather arbitrary and intrinsically linked to the CdA value selection.

Drivetrain losses
I used a value of 2.5% as starting point, to be checked with the VE analysis.

Virtual Elevation Analysis

I used the .fit file from my Zwift ride to perform a virtual elevation analysis using Golden Cheetah's Aerolab Chung Analysis feature. The plot to the left shows the final fit between the real elevation curve (from Zwift, in green) and the Chung Method virtual elevation curve (in blue).  As can be seen in the plot, keeping the values above and changing only the total weight to 80kg gives an excellent fit between the blue and green curves, to the point where it's almost impossible to see the two different elevation profiles.  I also tried using other combinations of parameter values, but using this combination of parameter values gave the best match.

Summary and Results

My constant 150W ride took 27 minutes and 15 seconds to complete the Whole Lotta Lava route, which equates to an average speed of 16.8mph (27.0 kph).

My virtual analysis showed that the values used by Zwift which I need to use later for the power delivery optimisation are:

  • Total weight (rider + bike) = 80kg
  • CdA (drag coefficient x Frontal area) = 0.2415
  • Crr (coefficient of rolling resistance) = 0.004
  • Air pressure = 101,250 Pa
  • Air temperature = 15 degrees C
  • Air density = 1.225 kg/m^3
  • Drivetrain losses = 2.5%
I'll publish the next blog post to describe the improvements to my power delivery optimiser, once I've done that.


Post a Comment