Điều thực sự gây ấn tượng với tôi là tốc độ trung bình thực sự không thay đổi nhiều
Biểu đồ dao động từ khoảng 25km / h đến hơn 40km / h, và đó là một thay đổi lớn. Như những người khác đã đề cập, việc tăng tốc độ trung bình của bạn đòi hỏi phải tăng sức mạnh phi tuyến tính cho bàn đạp.
Nói cách khác, để tăng tốc độ trung bình từ 25km / h lên 26km / h thì dễ hơn tăng từ 40km / h lên 41km / h
Nói rằng tôi đã đánh cắp một cỗ máy thời gian, quay trở lại và đi từng khóa TdF, sử dụng cùng một chiếc xe đạp. Để phù hợp với tốc độ trung bình của người chiến thắng, đây là công suất tôi cần tạo ra (tốt, một xấp xỉ rất thô):
(một lần nữa, đây là một biểu đồ gần đúng rất thô sơ, được thiết kế để minh họa một điểm! Nó bỏ qua những thứ như gió, địa hình, phác thảo, bờ biển, mặt đường và nhiều thứ khác)
Từ khoảng 60 watt đến 240 watt là một thay đổi lớn và rất khó có khả năng các đối thủ của TdF đã tăng công suất của họ nhiều như vậy theo thời gian ..
Một phần của sự gia tăng sẽ là do những người đi xe đạp mạnh mẽ hơn (nhờ tập luyện và dinh dưỡng tốt hơn), nhưng chắc chắn không phải là tất cả.
Phần còn lại có thể là do cải tiến công nghệ. Ví dụ, một chiếc xe đạp khí động học hơn sẽ làm giảm sức mạnh cần thiết cho một tốc độ trung bình nhất định, tương tự với một chiếc xe đạp nhẹ hơn khi đi lên đồi.
Nguồn cho biểu đồ: Mặc dù quan điểm của tôi vẫn hợp lệ bất kể biểu đồ trên không chính xác đến mức nào, đây là tập lệnh lộn xộn mà tôi đã sử dụng để tạo ra nó
Nó sử dụng dữ liệu từ đây , được xuất sang CSV (từ tài liệu này )
Tốc độ trung bình để tính toán watts yêu cầu có thể được đơn giản hóa rất nhiều, nhưng tôi dễ dàng sửa đổi tập lệnh hơn từ câu trả lời của mình ở đây !
#!/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))"""