Wat me echt opviel was dat de gemiddelde snelheden echt niet veel veranderd zijn
De grafiek varieert van ongeveer 25km/u tot meer dan 40km/u, en dat is een grote verandering. Zoals anderen al hebben gezegd, vereist het verhogen van je gemiddelde snelheid een niet-lineaire verhoging van het vermogen dat op de pedalen wordt toegepast.
Met andere woorden, het verhogen van de gemiddelde snelheid van 25km/u naar 26km/u is makkelijker dan het verhogen van 40km/u naar 41km/u
Stel dat ik een tijdmachine zou stelen, terug zou gaan en op elke TdF-koers zou rijden, met exact dezelfde fiets. Om de gemiddelde snelheid van de winnaars te evenaren, is dit het wattage dat ik zou moeten produceren (nou ja, een zeer ruwe benadering):
(ook hier is dit een zeer ruwe benadering, ontworpen om een punt te illustreren! Het negeert zaken als wind, terrein, opstellen, coasting, wegdek en vele andere zaken)
Van ongeveer 60 watt naar 240 watt is een enorme verandering, en het is zeer onwaarschijnlijk dat TdF concurrenten hun wattage zo veel hebben verhoogd in de loop van de tijd…
Een deel van de verhoging zal te wijten zijn aan krachtigere fietsers (dankzij betere training en voeding), maar zeker niet allemaal.
De rest is waarschijnlijk het gevolg van technologische verbeteringen. Zo zal bijvoorbeeld een meer aërodynamische fiets het benodigde vermogen voor een bepaalde gemiddelde snelheid verminderen, hetzelfde geldt voor een lichtere fiets bij het beklimmen van heuvels.
Bron voor grafiek: Hoewel mijn punt geldig zou moeten blijven, ongeacht hoe onnauwkeurig de bovenstaande grafiek is, is hier het rommelige script dat ik heb gebruikt om het te genereren
Het gebruikt de gegevens van hier , geëxporteerd naar CSV (van dit document )
De berekening van de gemiddelde snelheid naar de vereiste watt kon sterk worden vereenvoudigd, maar het was voor mij gemakkelijker om het script van mijn antwoord hier !
#!/usr/bin/env python2
"""Wattage required to match pace of TdF over the years
Written in Python 2.7
"""
def Cd(desc):
"""Coefficient of drag
Coefficient of drag is a dimensionless number that relates an
objects drag force to its area and speed
"""
values = {
"tops": 1.15, # Source: "Bicycling Science" (Wilson, 2004)
"hoods": 1.0, # Source: "Bicycling Science" (Wilson, 2004)
"drops": 0.88, # Source: "The effect of crosswinds upon time trials" (Kyle,1991)
"aerobars": 0.70, # Source: "The effect of crosswinds upon time trials" (Kyle,1991)
}
return values[desc]
def A(desc):
"""Frontal area is typically measured in metres squared. A
typical cyclist presents a frontal area of 0.3 to 0.6 metres
squared depending on position. Frontal areas of an average
cyclist riding in different positions are as follows
http://www.cyclingpowermodels.com/CyclingAerodynamics.aspx
"""
values = {'tops': 0.632, 'hoods': 0.40, 'drops': 0.32}
return values[desc]
def airdensity(temp):
"""Air density in kg/m3
Values are at sea-level (I think..?)
Values from changing temperature on:
http://www.wolframalpha.com/input/?i=%28air+density+at+40%C2%B0C%29
Could calculate this:
http://en.wikipedia.org/wiki/Density_of_air
"""
values = {
0: 1.293,
10: 1.247,
20: 1.204,
30: 1.164,
40: 1.127,
}
return values[temp]
"""
F = CdA p [v^2/2]
where:
F = Aerodynamic drag force in Newtons.
p = Air density in kg/m3 (typically 1.225kg in the "standard atmosphere" at sea level)
v = Velocity (metres/second). Let's say 10.28 which is 23mph
"""
def required_wattage(speed_m_s):
"""What wattage will the mathematicallytheoretical cyclist need to
output to travel at a specific speed?
"""
position = "drops"
temp = 20 # celcius
F = Cd(position) * A(position) * airdensity(temp) * ((speed_m_s**2)/2)
watts = speed_m_s*F
return watts
#print "To travel at %sm/s in %s*C requires %.02f watts" % (v, temp, watts)
def get_stages(f):
import csv
reader = csv.reader(f)
headings = next(reader)
for row in reader:
info = dict(zip(headings, row))
yield info
if __name__ == ' __main__':
years, watts = [], []
import sys
# tdf_winners.csv downloaded from
# http://www.guardian.co.uk/news/datablog/2012/jul/23/tour-de-france-winner-list-garin-wiggins
for stage in get_stages(open("tdf_winners.csv")):
speed_km_h = float(stage['Average km/h'])
dist_km = int(stage['Course distance, km'].replace(",", ""))
dist_m = dist_km * 1000
speed_m_s = (speed_km_h * 1000)/(60*60)
watts_req = required_wattage(speed_m_s)
years.append(stage['Year'])
watts.append(watts_req)
#print "%s,%.0f" % (stage['Year'], watts_req)
print "year = c(%s)" % (", ".join(str(x) for x in years))
print "watts = c(%s)" % (", ".join(str(x) for x in watts))
print """plot(x=years, y=watts, type='l', xlab="Year of TdF", ylab="Average watts required", ylim=c(0, 250))"""
``` te wijzigen