Was mich jedoch wirklich beeindruckt hat, war, dass sich die Durchschnittsgeschwindigkeiten kaum geändert haben
Das Diagramm reicht von ungefähr 25 km / h bis über 40 km / h, und das ist eine große Veränderung. Wie bereits erwähnt, erfordert das Erhöhen der Durchschnittsgeschwindigkeit eine nichtlineare Leistungssteigerung der Pedale.
Mit anderen Worten, es ist einfacher, die Durchschnittsgeschwindigkeit von 25 km / h auf 26 km / h zu erhöhen, als von 40 km / h auf 41 km / h
Angenommen, ich würde eine Zeitmaschine stehlen, zurückgehen und jeden TdF-Kurs mit genau demselben Fahrrad fahren. Um die Durchschnittsgeschwindigkeit der Gewinner zu erreichen, ist dies die Wattzahl, die ich erzeugen müsste (na ja, eine sehr grobe Annäherung):
(Auch dies ist ein sehr grob angenähertes Diagramm, das einen Punkt illustrieren soll. Es ignoriert Dinge wie Wind, Gelände, Tiefgang, Küstenfahrt, Straßenoberfläche und viele andere Dinge.)
Von rund 60 Watt auf 240 Watt ist eine enorme Veränderung, und es ist sehr unwahrscheinlich, dass TdF-Konkurrenten ihre Leistung im Laufe der Zeit so stark gesteigert haben.
Ein Teil des Anstiegs wird auf leistungsstärkere Radfahrer zurückzuführen sein (dank besserem Training und besserer Ernährung), aber sicherlich nicht auf alle.
Der Rest dürfte auf technologische Verbesserungen zurückzuführen sein. Ein aerodynamischeres Fahrrad verringert beispielsweise die Leistung, die für eine bestimmte Durchschnittsgeschwindigkeit erforderlich ist, ebenso wie ein leichteres Fahrrad, wenn es bergauf fährt.
Quelle für das Diagramm: Obwohl mein Punkt gültig bleiben sollte, unabhängig davon, wie ungenau das obige Diagramm ist, ist hier das chaotische Skript, mit dem ich es generiert habe
Es verwendet die Daten von hier , exportiert nach CSV (aus diesem Dokument )
Die Berechnung der Durchschnittsgeschwindigkeit zu erforderlichen Watt konnte erheblich vereinfacht werden, aber es war einfacher für mich, das Skript aus meiner Antwort hier heraus zu ändern !
#!/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))"""