Flow over Bicycle
Objective: The objective of this study to understand the change in drag force with respect to velocity different cycling positions and drag coefficeint for constant frontal area and constant velocity.
Theory: Cyclists tend to experience a drag force as they increase their cycling velocity. For reducing the drag force they change thier postion as they speed up thereby reducing the frontal area and drag coefficeint so as to lower the resistive force and attain higher velocities. The figure below provides an idea of different positions and frontal areas for the same.
Fig: Frontal Area and Drag Coefficent for Different Cycling Positions
Drag force experience by a body moving within a fluid domain is given by
`F_d=C_d*rho*A*V^2/2`
Where,
F_d is Drag force,
C_d= Coefficient of Drag
`rho`= Density of the fluid
A= Frontal Area
V= Velocity
Procedure:
The following python program was used to calculate the drag force for different velocities and cycling positions (i.,e frontal area & coefficient of drag)
"""
program for calculating drag force by Gaurav Samanta
Frontal Areas and Coefficeinet of Drag for Diffenent Cycling Positions
P1= Sprint Regular
A_p1= 0.460 m^2
C_dp1= 0.670
P2= Sprint Low
A_p2= 0.374 m^2
C_dp2= 0.626
P3= Back up
A_p3= 0.423 m^2
C_dp3= 0.655
P4= Back Horizontal
A_p4= 0.37 m^2
C_dp4=0.638
P5= Back Down
A_p5=0.339 m^2
C_dp5=0.655
"""
import matplotlib.pyplot as plt
#Inputs
#c_d=drag coefficient, index of the value represent the cycling position
C_d = [0.670, 0.626, 0.655, 0.638, 0.655]
#Frontal Area for different cycling positions
A = [0.460, 0.374, 0.423, 0.370, 0.339]
# Density
rho=1.2
#Velocity
velocities=[1,2,3,4,5,6,7,8,9,10]
#for computing drag forces at different velocities and cycling positions
#for position 1
drag_forces1=[]
for Velocity in velocities:
drag_forces1.append((0.5*C_d[0]*rho*A[0]*Velocity*Velocity))
#plt.plot(velocities, drag_forces1)
#plt.xlabel('Velocity')
#plt.ylabel('Drag Force')
#plt.show()
#for position 2
drag_forces2=[]
for Velocity in velocities:
drag_forces2.append((0.5*C_d[1]*rho*A[1]*Velocity*Velocity))
#for position 3
drag_forces3=[]
for Velocity in velocities:
drag_forces3.append((0.5*C_d[2]*rho*A[2]*Velocity*Velocity))
#for position 4
drag_forces4=[]
for Velocity in velocities:
drag_forces4.append((0.5*C_d[3]*rho*A[3]*Velocity*Velocity))
#for position 5
drag_forces5=[]
for Velocity in velocities:
drag_forces5.append((0.5*C_d[4]*rho*A[4]*Velocity*Velocity))
plt.plot(velocities, drag_forces1, label='position 1')
plt.plot(velocities, drag_forces2, label='position 2')
plt.plot(velocities, drag_forces3, label='position 3')
plt.plot(velocities, drag_forces4, label='position 4')
plt.plot(velocities, drag_forces5, label='position 5')
plt.xlabel('Velocity (m/s)')
plt.ylabel('Drag Force (N)')
plt.legend(loc='best')
plt.show()
#for plotting Drag force vs coefficient of drag
drag_force = []
c=0
#considering frontal area = 0.3 m^2
a= 0.3
for i in C_d:
#9th index of velocities array is 5 m/s
drag_force.append(0.5*C_d[c]*rho*a*velocities[6]*velocities[6])
c=c+1
print(velocities[6])
plt.plot(C_d,drag_force)
plt.xlabel('Drag Coefficient')
plt.ylabel('Drag Force (N)')
plt.show()
#end of program
Results:
Fig 1: Velocity Vs Drag Force
Inference: From the plot of Velocities vs Drag Force for different cycling postions it can be observed that how the change in the cycling position w.r.t speed can be done to reduce the drag force experienced by the cyclist at different velocities
Fig 2: Velocity Vs Drag Force
Inference: The figure above denotes the change in drag coefficient w.r.t drag force at constant velocity (V=7 m/s) and frontal area. It is evident that as the coefficeint of drag increases the drag force increases linearly