Saturday 13 January 2024

Validating my Power Delivery Optimiser: Step 3

Step 3: Using BestBikeSplit to create an optimum power delivery profile.  

In my previous blog post, I explained that the following values are needed to simulate the Zwift ride:

  • Total weight (rider + bike) = 80 kg (176.4 lb)
  • 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%

BestBikeSplit modelling via ZwiftInsider

I first tried to use this BestBikeSplit link that is available via the ZwiftInsider Whole Lotta Lava route page to access Best Bike Split.  The page assumes a fairly light rider weighing 145lbs, and makes some other assumptions. However, 
the Time Analysis tab allows the user to change the value of various parameters using sliders to adjust the parameters in 1% increments to the necessary value.  Unfortunately, this method didn't allow me to enter the exact values above, so I used the closest values possible instead:

  • CdA = 0.24 (i.e. 0.0015 too low)
  • Average power = 144.5 Watts
  • Normalised power = 149.9 Watts (0.1 Watts too low)
  • Weight = 177 lb (i.e. 0.6 lbs too high)
  • Crr (coefficient of rolling resistance) = 0.004 (exactly as required)

Note that I tried to get the normalised power as close as possible to 150 Watts.  It's unclear what assumptions BestBikeSplit has made for air density and drivetrain losses.  Nevertheless, with these values, BestBikeSplit predicts a route time of 27 minutes 42 seconds, which strangely is 27 seconds slower than my constant power time.  I didn't understand this, so I needed to investigate why.

BestBikeSplit dedicated race plan

Since the results above seemed to make no sense, I decided to create a dedicated BestBikeSplit race plan, which is possible even with BestBikeSplit's free account.

I was able to change the settings so that the parameters were exactly matching what I wanted:

  • Rider weight = 160 lbs, Bike Weight = 16.4 lb -> Total weight = 80 kg (176.4 lb)
  • CdA = 0.2415, for all yaw angles
  • Crr = 0.004
  • Drivetrain losses = 2.5%
  • Air pressure = 101,250 Pa
  • Air temperature = 15 degrees C
  • Zero wind speed
  • Drivetrain losses = 2.5%
These values give a route time of 27:47 for a normalised power of 149.94W and an average power of 141.93W, which is bizarrely still 32 seconds slower than my constant power Zwift time.

The final section of the BestBikeSplit Race plan above provides 'race intervals' which show the segment distances and gradients, then the power recommended by BestBikeSplit, together with the resulting speeds.  I copy and pasted those 29 race intervals into Excel and calculated segment distances in metres, instead of miles: 

I then copied the distance, gradient and speed values into my power optimiser spreadsheet to allow me to compare the power values calculated by BestBikeSplit and values calculated by my spreadsheet.  Surprisingly, the power values agreed for some of the route, but were significantly different for the downhill section, as shown in plot below for the solid red and dashed red lines:

As soon as the gradient becomes negative, BestBikeSplit (the red dashed curve) is showing that a higher power is needed to achieve the downhill speeds that BestBikeSplit has calculated.  I really don't understand this because, for example, it is calculating speeds of 23.08 mph on a -4.36% (downhill) gradient while applying 84 Watts of power.  That is clearly wrong and I didn't know why BestBikeSplit is doing that, unless it is somehow assuming a large headwind

To investigate this, I plotted the BestBikeSplit powers and speeds versus the gradient values, shown withe red symbols on the plot to the left.  The plot looks reasonably sensible, although the scatter seen in the corresponding speeds is slightly strange. 
Regardless of these doubts, I decided to try to ride the route using the BestBikeSplit power profile to see what time it would give.

Riding the BestBikeSplit power profile

To do this, I decided to use the BestBikeSpilt's feature where they allow the power profile to be exported as a TrainerRoad workout.  
This is a nice feature, because it allowed me to ride exactly the prescribed powers by doing the workout in ERG mode, with my phone (for TrainerRoad) and also Zwift (via my iPad) connected to my Wahoo Kickr trainer.  The workout included the 29 intervals contained in BestBikeSplit's race intervals.  As shown above, I also added a long 150W interval afterwards to allow me to do a second lap at a constant power, if I wanted to.

I started the TrainerRoad workout as I got to the archway that marks the start of the Whole Lotta Lava segment.  As a reminder, the segment time I did previously with a constant 150W power output was 27 minutes and 15 seconds.  Using the BestBikeSplit power profile, I did a time of 27 minutes and 6 seconds, so 9 seconds faster than the constant 150W effort.  It's worth noting that although the normalised power for the BestBikeSplit run was about 150W (actually slightly lower, at 148W), the
average power was substantially lower at 140W.  This is interesting in itself, and a positive results, that the average power was 10W lower than the constant 150W effort, but the time was 9 seconds faster.

However, something I noted when riding the segment with the BestBikeSplit power profile was that at several times the target power did not correlate well with the gradient.  At most times it was good.  For most of the uphill sections, the target power was higher than 150W, as  expected.  At some points, though, the target power didn't correlate with the gradient.  For example, the high power interval stopped about 10 or 20 seconds too soon, before I reached the top of the climb, on the steepest part, which seemed odd.  Therefore, I think that due to the BestBikeSplit speed issue mentioned previously, I think there was a synchronisation problem between the BestBikeSplit simulation and what actually happened in Zwift when those powers were ridden.  I have the feeling that the most likely explanation is that BestBikeSplit is assuming some wind that is not actually there in Zwift.

It's worth also be noting that the 27:06 time is significantly faster that the 27:47 time predicted by BestBikeSplit, indicating that their calculation of Zwift speeds are wrong, despite me entering the details such as Crr and CdA correctly. 

Finally, it's interesting and encouraging that my second lap of the Whole Lotta Lava segment was done again at 150W constant power, and again this gave exactly the same 27 minute 15 second segment time as I achieved before (described in my previous blog post).


This has been quite a long post, so let's recap:

Riding at a constant 150 Watts gives a time of 27:15.
(average power = 150W, normalised power = 150W)

Riding at the BestBikeSplit optimum power profile gives a time of 27:06 (9 second saving)
(average power = 140W, normalised power = 148W)

Next Steps

The next step is to see whether my own Excel-based power optimiser gives similar results, and to do that I will be to create a scripts that can process the segment profile in a more efficient way, with less manual effort by me.


Post a Comment