Terminal Velocity

Activity Information

Learning Goals

  • ΣF=0 does not mean no motion
  • Relationship between terminal velocity and net force
  • Use a computer simulation to model the impact of proposed solutions to a complex real-world problem with numerous criteria and constraints on interactions within and between systems relevant to the problem HS-ETS1-4
  • Analyze data to support the claim that Newton’s second law of motion describes the mathematical relationship among the net force on a macroscopic object, its mass, and its accelerations HS-PS2-1
  • Assessment Boundary: limited to one-dimensional motion and to macroscopic objects moving at non-relativistic speeds

Prior Knowledge Required

Newton’s second law of motion Drag equation

  • D=(1/2)Cρ(v^2)A

Terminal velocity

  • v=√((2W)/(CρA))

Gravitational force

Code Manipulation

  • Copying/pasting code
  • Creating code from scratch
    • Translating equations into code
  • While loops and if statements

Activity

Handout – Terminal Velocity

A coin is being dropped from the top of a building. When will it reach terminal velocity? How does the force of gravity compare to the force of air resistance? Take a look at the unfinished code and answer the following questions:

Pre-coding Questions
  1. Create a graph showing how you think the velocity of the coin will change over time
  2. Create a graph showing how you think the forces of gravity, air resistance, and net force change as the coin approaches the ground.
  3. Using information provided by the code, calculate the terminal velocity of the falling coin. Label each part of the terminal equation, including units.

Now with your group, complete the provided code. Be sure to include arrows showing the magnitude of forces acting on the coin. As well, create a velocity vs. time graph and a forces vs. time graph (Pre-coding Questions 1 and 2). When your code is complete, answer the following questions:

Post-coding Questions/Reflection
  1. Describe your contributions to the coding process within your group.
  2. What did you find the terminal velocity to be based on the graph produced by the code? Does this agree with your calculations?
  3. Reflect on your predicted graphs. Explain how they were similar/different than your coding graphs. Revise your graphs as needed.

Code

Link

GlowScript 2.8 VPython
#Window Setup
scene.width = 500
scene.height = 400
 
#Objects
ground = box(pos=vec(0,-250,0), size=vec(700,100,2), texture="https://images.pexels.com/photos/207204/pexels-photo-207204.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260" )
coin = cylinder(pos=vector(0,0,0), axis=vector(0.5,0,0), radius=15.305, textures=textures.metal)
coin.rotate(angle=90, axis=vector(1,1,1))
 
#Initial Object Properties and Constants (time and time step)
g = vec(0,-9.81,0) #Acceleration due to Gravity
coin_m = 0.01135 #mass of the object
drag_co = 1.15 #Drag Coefficient of 
t = 0 #Initial Time
dt = 0.01 #Time Step
tf = 0 #Final Time
air_density = 1.2754 #Density of the air
coin_r = .015305
Fgrav = vec(0,0,0)
Fdrag = vec(0,0,0)
 
#Initial Velocity (coin_v) and Momentum Vectors (coin_p)
#coin_v = 
#coin_p = 
 
#Create an arrow to visualize the particle's forces
 
 
#Set up the graphs
force_comparison_graph = graph(title='Comparison of Forces on a Coin Reaching Terminal Velocity',xtitle='time (s)',ytitle='Force (N)',fast=False,width=1000)
velocity_graph = graph(title='Velocity of a Coin in Freefall Over Time',xtitle='time (s)', ytitle='Velocity (m/s)',fast=False,width=1000)
#Drag and Fgrav and Fnet on the same plot
Fdrag_f = gcurve(graph=force_comparison_graph,color=color.red,width=4,markers=False,label='Drag Force')
Fgrav_f = gcurve(graph=force_comparison_graph,color=color.blue,width=4,markers=False,label='Fgrav')
Fnet_f = gcurve(graph=force_comparison_graph,color=color.purple,width=4,markers=False,label='Fnet')
#Velocity on its own plot
velocity_f = gcurve(graph=velocity_graph,color=color.green,width=4,markers=False,label='Coin Velocity')
 
#Calculation Loop
while True: #Change this so the coin stops when it hits the ground
    rate(100)
    #Make the coin move
 
 
    #Keep the arrows representing the particle's velocity and acceleration
 
 
    #Plot on the graphs 
    velocity_f.plot(t,coin_v.y)
    Fdrag_f.plot(t,Fdrag.y)
    Fgrav_f.plot(t,Fgrav.y)
    Fnet_f.plot(t,Fnet.y)
 
    t += dt #Advance the time by 1 time step

Answer Key

Handout

Pre-coding Answers
  1. The equation for terminal velocity is v=√2WCρA, where
    1. W is the weight of the coin (N). This is calculated by multiplying the mass of the coin by the acceleration of gravity: W=0.01135kg∗9.81m/s/s=0.111N.
    2. C is the drag coefficient (1.15, no units)
    3. ρ is the density of air (1.2754 kg/m³)
    4. A is the area of the coin. This is calculated by squaring the radius of the coin and multiplying it by pi: A=(0.015305m)2∗π=0.000736m²
    5. v=√((2∗0.111)/(1.15∗1.275∗0.000736))=14.3m/s
Post-coding Answers

Use the previous answers and the completed code below to guide your reflection.

Code

Link

GlowScript 2.8 VPython
#Window Setup
scene.width = 500
scene.height = 400
 
#Objects
ground = box(pos=vec(0,-250,0), size=vec(700,100,2), texture="https://images.pexels.com/photos/207204/pexels-photo-207204.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260" )
coin = cylinder(pos=vector(0,0,0), axis=vector(0.5,0,0), radius=15.305, textures=textures.metal)
coin.rotate(angle=90, axis=vector(1,1,1))
 
#Initial Object Properties and Constants (time and time step)
g = vec(0,-9.81,0) #Acceleration due to Gravity
coin_m = 0.01135 #mass of the object
drag_co = 1.15 #Drag Coefficient of 
t = 0 #Initial Time
dt = 0.05 #Time Step
tf = 0 #Final Time
air_density = 1.2754 #Density of the air
coin_r = .015305
Fgrav = vector(0,coin_m*g.y,0)
Fdrag = vec(0,0,0)
 
#Velocity and Momentum Vectors
coin_v = vec(0,0,0) #Initial Velocity
coin_p = coin_m*coin_v #Initial Momentum
 
#Create an arrow to visualize the particle's forces
FdragArrow = arrow(pos=coin.pos, axis = Fdrag*1000, color = color.green)
FgravArrow = arrow(pos=coin.pos, axis = Fgrav*1000, color = color.red)
 
#Set up the graphs
force_comparison_graph = graph(title='Comparison of Forces on a Coin Reaching Terminal Velocity',xtitle='time (s)',ytitle='Force (N)',fast=False,width=1000)
velocity_graph = graph(title='Velocity of a Coin in Freefall Over Time',xtitle='time (s)', ytitle='Velocity (m/s)',fast=False,width=1000)
#Drag and Fgrav and Fnet on the same plot
 
Fdrag_f = gcurve(graph=force_comparison_graph,color=color.red,width=4,markers=False,label='Drag Force')
Fgrav_f = gcurve(graph=force_comparison_graph,color=color.blue,width=4,markers=False,label='Fgrav')
Fnet_f = gcurve(graph=force_comparison_graph,color=color.purple,width=4,markers=False,label='Fnet')
 
#Velocity on its own plot
velocity_f = gcurve(graph=velocity_graph,color=color.green,width=4,markers=False,label='Coin Velocity')
 
#Calculation Loop
while coin.pos.y > -200: #Makes the coin stop when it hits the ground
    rate(100)
    Fgrav = vector(0,coin_m*g.y,0)
    Fdrag = vec(0,air_density*drag_co*pi*coin_r**2*coin_v.y**2/2,0)
    Fnet = Fgrav+Fdrag
    coin_p += Fnet*dt
    coin.pos += (coin_p/coin_m)*dt
    coin_v = coin_p/coin_m
 
    #Keep the arrow representing the particle's velocity and acceleration
    FdragArrow.pos = coin.pos
    FdragArrow.axis = Fdrag*1000
    FgravArrow.pos = coin.pos
    FgravArrow.axis = Fgrav*1000
 
    #Plot on the graphs 
    velocity_f.plot(t,coin_v.y)
    Fdrag_f.plot(t,Fdrag.y)
    Fgrav_f.plot(t,Fgrav.y)
    Fnet_f.plot(t,Fnet.y)
 
    t += dt #Advance the time by 1 time step