Magnus Effect on Basketball

Your task in this problem is to model the motion of a basketball being dropped from the top of the empire statebuilding with a backspin to it. The magnus effect will be vital in this system. Write equations describing the position of the basketball as a function of time as it drops from the initial position at 381m to 0m. Then determine how far the basketball will travel and the time it takes for the ball to touch the ground.

Solution


Assumptions

*The basketball is a point mass.

*There is air resitance.

*Initial conditions start at rest at the top of the empire state building.

*Magnus Effect is PRESENT.

*There will be a backspin acting on the ball.

Diagrams

Ball Diagram

Analysis

There are several different forces acting on the spinning basketball while in flight. Using the point diagram as a reference, the drag force acts in the opposite direction the ball is heading towards. The magnus force acts in the same direction of the spinning motion of the ball. Fianlly, the gravitational force always points downward towards the Earth. Below are the equations we will use to find the position and time of the ball as it hits the ground, the air drag force, the magnus force, and the constant for air resistance.

Position and Time Equation of Basketball $$M(1 + C_M\frac{\rho}{\rho_S})U\frac{dU}{ds}$$ $$\frac{-1}{2}\rho * U^2 *\pi *R^2 *C_D$$

Air Drag Force $$\vec{F}_{Drag} = -.5 * \rho * CA * v^2$$

Magnus Force $$\vec{F}_{Magnus} = S\omega \times \vec{v}$$

Constant for Air Resistance $$S = \frac{F_{Magnus}}{\omega v}$$

Check

The SI units of x(t), v(t), and a(t) work out to be [m], [m/s], and [m/s^2] (respectively) as we expect. The SI units of $\alpha$(t) are $\frac{m/s^2}{m} = \frac{1}{s^2}$, which is what we expect for an angular acceleration. The SI units of $\omega$(t) work out to be $\frac{[m/s^2]}{[m]}[s] = \frac{1}{[s]}$, which is what we expect for an angular speed. The SI units of $\phi$(t) work out to be $\frac{[m/s^2]}{[m]}[s]^2$ = no units, which is what we expect for an angle in radians.

In the limit that $\omega \to 0$, we would expect that there is no acceleration at all.

Interpretation

The basketball was subject to the Magnus Effect. Which affects all rotating balls or cylinders as they fly through the air. And it works like this: As the basketball picks up speed, air on the front side of the ball is going in the same direction as its spin, and therefore it gets dragged along with the ball and deflected back. Air on the other side is moving opposite to the ball spin, so the flow separates from the ball instead of getting deflected. The net result is the ball pushes air one way, so the air applies an equal force on the ball the other way.

In [0]:
from __future__ import division #this makes sure that dividing integers gives a decimal number
from vpython import * #this imports all the functions that enable us to draw the visual elements

#Parameters
H = 381 # Height of Empire State Building in meters
D = .2426 # Diameter of Basketball in meters
R = .1213 # Radius of Basketball in meters
g = vec(0,-9.8,0) # gravity
pi = 3.14159 #Pi
ball_pos = vec(0,H,0) # Initial Height of Basketball
ball_m = 0.625 # Mass of Basketball
ball_p = ball_m*vec(0,0,0) #initial Momentum of Basketball
t = 0 #Initial Time
dt = 0.01 # size of the time step

#Create Graph
xGraph=graph(title="Magnus Effect of Basketball", xtitle='x-pos(m)', ytitle='y-pos(m)', width=450, height=300, xmax=40, xmin=-5, ymax=150, ymin=-10)

#Create Curve
xtdata=gcurve(color=color.blue, size=10, graph=xGraph)

# Our loop
while ball_pos.y>0: 
    rate(100) #Frame rate
    W = ball_m*g #Weight of Basketball
    
    # Drag Force
    Cd = 0.5 #Drag coefficient of a sphere
    rho = 1.2 # Air Density in kg/m^2
    SA = 4*pi*R^2 #Surface Area of Basketball 
    Fdrag = - 0.5*Cd*rho*SA*mag(ball_p / ball_m)*(ball_p)/ball_m #Drag Force 
    
    # Magnus Force
    ball_o = vec(0,0,31.4) # Basketball's angular speed in radians / sec
    Scoeff = 0.00535 * ball_m
    Fmagnus = Scoeff*cross(ball_o,ball_p/ball_m)
    
    #Net Force
    Fnet = W + Fdrag + Fmagnus #Net Force
    
    #update the momentum
    ball_p=ball_p+Fnet*dt
    
    #update the position of the ball
    ball_pos= ball_pos + ball_p*dt/ball_m
    xtdata.plot(pos=(ball_pos.x,ball_pos.y))
    # update time
    t = t + dt
    print("time since drop = ", t, "seconds.")

Rubric

Section Points Max Points
Assumptions 1
Diagrams 1
Analysis 3
Check 1
Interpretation 1
Code 3
In [0]:
 
In [0]:
 
In [0]: