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 is Drag force,

C_d= Coefficient of Drag

`rho`= Density of the fluid

A= Frontal Area

V= Velocity



 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

P5= Back Down
	A_p5=0.339 m^2


import matplotlib.pyplot as plt

#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

#for computing drag forces at different velocities and cycling positions
#for position 1


for Velocity in velocities:

#plt.plot(velocities, drag_forces1)
#plt.ylabel('Drag Force')

#for position 2


for Velocity in velocities:

#for position 3


for Velocity in velocities:

#for position 4


for Velocity in velocities:

#for position 5


for Velocity in velocities:

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)')

#for plotting Drag force vs coefficient of drag
drag_force = []
#considering frontal area = 0.3 m^2
a= 0.3
for i in C_d:
	#9th index of velocities array is 5 m/s
plt.xlabel('Drag Coefficient')
plt.ylabel('Drag Force (N)')

#end of program



                                  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 coefficient 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


Projects by Gaurav Samanta

Data Analysis
Gaurav Samanta · 2020-01-08 12:32:09

Objective: The objective of this project is to write a code for data analysis from an input file and perform the following operations 1. Compatibility Check: The program will ask for the file name with valid extension which if provided incorrect will terminate the prog Read more

Constraint Minimization
Gaurav Samanta · 2020-01-08 11:52:01

Objective: The objective of this project is to minimize a simple non-linear funtion using Lagrange Multiplier The target equation is: `f(x,y)=5-(x-2)^2-2(y-1)^2` & the constrain equation: `x+4y=3` Theory: In real engineering applications there is a Read more

Curve Fitting
Gaurav Samanta · 2019-12-27 19:42:51

Objective: The objective of this project is to perform a curve fitting between the temperature and Cp values given the data file   Theory:  Curve Fitting: it is a process of constructing a curve that best fits the provided data series. Curve fitting in gene Read more

Ice Breaking Challenge
Gaurav Samanta · 2019-12-27 19:01:57

Objective:  The objective of this project is to determine the minimum pressure required to break a given thickness of ice using an air cushion vehicle through Newton Raphson Method Equation: `p^3(1-beta^2)+(0.4hbeta^2-(sigmah^2)/r^2)p^2+((sigma^2h^4)/(3r^4))p-((s Read more

Objective: The objective of this report is to understand the CAD modeller features in Star CCM+ and use it to generate a 3D model of an Ahmed Body and a Convergent Divergent Nozzle in the same as per the drawing given below   Procedure & Results: Conv Read more

Air Standard Cycle
Gaurav Samanta · 2019-12-10 14:51:18

Objective: The objective of this report is to create a python based Otto Cycle simulator which can create the  PV diagram and give the thermal efficiency of the engine as output  Theory: Otto cycle is the set of processes used by the spark ignition Read more

2R Robotic Arm
Gaurav Samanta · 2019-12-10 14:33:33

 Objective: The objective of this report is to simulate the foward kinematics of a 2R robotic arm using python programming   Theory: Robotic arm manipulators are used in various industry verticals such as automotive, electronics, warehouses and logistic Read more

Solving 2nd order ODE
Gaurav Samanta · 2019-12-10 08:14:29

Objective: The objective of this report is the simulate the transient behaviour of a simple pendulum and the create the animation of its motion for a given time interval Theory: The following equation (Ordinary Differential Equation) for the position of the bob w. Read more

Objective: The objective of this report is to understand the different steps involved in any CFD simulation and the applications of CFD in Medical, Oil & Gas and Construction Industry 1. Steps involved in a CFD Simulation  Step 1. CAD Modelling/Geometry Impor Read more


The End