Table of Contents

Terminal Velocity

Activity Information

Learning Goals

Prior Knowledge Required

Code Manipulation

—-

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

  1. GlowScript 2.8 VPython
  2. #Window Setup
  3. scene.width = 500
  4. scene.height = 400
  5.  
  6. #Objects
  7. 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" )
  8. coin = cylinder(pos=vector(0,0,0), axis=vector(0.5,0,0), radius=15.305, textures=textures.metal)
  9. coin.rotate(angle=90, axis=vector(1,1,1))
  10.  
  11. #Initial Object Properties and Constants (time and time step)
  12. g = vec(0,-9.81,0) #Acceleration due to Gravity
  13. coin_m = 0.01135 #mass of the object
  14. drag_co = 1.15 #Drag Coefficient of
  15. t = 0 #Initial Time
  16. dt = 0.01 #Time Step
  17. tf = 0 #Final Time
  18. air_density = 1.2754 #Density of the air
  19. coin_r = .015305
  20. Fgrav = vec(0,0,0)
  21. Fdrag = vec(0,0,0)
  22.  
  23. #Initial Velocity (coin_v) and Momentum Vectors (coin_p)
  24. #coin_v =
  25. #coin_p =
  26.  
  27. #Create an arrow to visualize the particle's forces
  28.  
  29.  
  30. #Set up the graphs
  31. force_comparison_graph = graph(title='Comparison of Forces on a Coin Reaching Terminal Velocity',xtitle='time (s)',ytitle='Force (N)',fast=False,width=1000)
  32. velocity_graph = graph(title='Velocity of a Coin in Freefall Over Time',xtitle='time (s)', ytitle='Velocity (m/s)',fast=False,width=1000)
  33. #Drag and Fgrav and Fnet on the same plot
  34. Fdrag_f = gcurve(graph=force_comparison_graph,color=color.red,width=4,markers=False,label='Drag Force')
  35. Fgrav_f = gcurve(graph=force_comparison_graph,color=color.blue,width=4,markers=False,label='Fgrav')
  36. Fnet_f = gcurve(graph=force_comparison_graph,color=color.purple,width=4,markers=False,label='Fnet')
  37. #Velocity on its own plot
  38. velocity_f = gcurve(graph=velocity_graph,color=color.green,width=4,markers=False,label='Coin Velocity')
  39.  
  40. #Calculation Loop
  41. while True: #Change this so the coin stops when it hits the ground
  42. rate(100)
  43. #Make the coin move
  44.  
  45.  
  46. #Keep the arrows representing the particle's velocity and acceleration
  47.  
  48.  
  49. #Plot on the graphs
  50. velocity_f.plot(t,coin_v.y)
  51. Fdrag_f.plot(t,Fdrag.y)
  52. Fgrav_f.plot(t,Fgrav.y)
  53. Fnet_f.plot(t,Fnet.y)
  54.  
  55. t += dt #Advance the time by 1 time step

Answer Key

Handout

Pre-coding Answers
  1. The equation for terminal velocity is $v=\sqrt{\dfrac{2W}{C\rho A}}$, where
    • $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.01135 \text{kg} * 9.81 \text{m/s/s} = 0.111 \text{N}$
    • $C$ is the drag coefficient (1.15, no units)
    • $\rho$ is the density of air (1.2754 kg/m³)
    • $A$ is the area of the coin
      • this is calculated by squaring the radius of the coin and multiplying it by pi: $A= (0.015305 \text{m})^2 * \pi = 0.000736 \text{m²}$
    • $v=\sqrt{\dfrac{2*0.111}{1.15*1.275*0.000736}}=14.3 \text{m/s}$
Post-coding Answers

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

Code

Link

  1. GlowScript 2.8 VPython
  2. #Window Setup
  3. scene.width = 500
  4. scene.height = 400
  5.  
  6. #Objects
  7. 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" )
  8. coin = cylinder(pos=vector(0,0,0), axis=vector(0.5,0,0), radius=15.305, textures=textures.metal)
  9. coin.rotate(angle=90, axis=vector(1,1,1))
  10.  
  11. #Initial Object Properties and Constants (time and time step)
  12. g = vec(0,-9.81,0) #Acceleration due to Gravity
  13. coin_m = 0.01135 #mass of the object
  14. drag_co = 1.15 #Drag Coefficient of
  15. t = 0 #Initial Time
  16. dt = 0.05 #Time Step
  17. tf = 0 #Final Time
  18. air_density = 1.2754 #Density of the air
  19. coin_r = .015305
  20. Fgrav = vector(0,coin_m*g.y,0)
  21. Fdrag = vec(0,0,0)
  22.  
  23. #Velocity and Momentum Vectors
  24. coin_v = vec(0,0,0) #Initial Velocity
  25. coin_p = coin_m*coin_v #Initial Momentum
  26.  
  27. #Create an arrow to visualize the particle's forces
  28. FdragArrow = arrow(pos=coin.pos, axis = Fdrag*1000, color = color.green)
  29. FgravArrow = arrow(pos=coin.pos, axis = Fgrav*1000, color = color.red)
  30.  
  31. #Set up the graphs
  32. force_comparison_graph = graph(title='Comparison of Forces on a Coin Reaching Terminal Velocity',xtitle='time (s)',ytitle='Force (N)',fast=False,width=1000)
  33. velocity_graph = graph(title='Velocity of a Coin in Freefall Over Time',xtitle='time (s)', ytitle='Velocity (m/s)',fast=False,width=1000)
  34. #Drag and Fgrav and Fnet on the same plot
  35.  
  36. Fdrag_f = gcurve(graph=force_comparison_graph,color=color.red,width=4,markers=False,label='Drag Force')
  37. Fgrav_f = gcurve(graph=force_comparison_graph,color=color.blue,width=4,markers=False,label='Fgrav')
  38. Fnet_f = gcurve(graph=force_comparison_graph,color=color.purple,width=4,markers=False,label='Fnet')
  39.  
  40. #Velocity on its own plot
  41. velocity_f = gcurve(graph=velocity_graph,color=color.green,width=4,markers=False,label='Coin Velocity')
  42.  
  43. #Calculation Loop
  44. while coin.pos.y > -200: #Makes the coin stop when it hits the ground
  45. rate(100)
  46. Fgrav = vector(0,coin_m*g.y,0)
  47. Fdrag = vec(0,air_density*drag_co*pi*coin_r**2*coin_v.y**2/2,0)
  48. Fnet = Fgrav+Fdrag
  49. coin_p += Fnet*dt
  50. coin.pos += (coin_p/coin_m)*dt
  51. coin_v = coin_p/coin_m
  52.  
  53. #Keep the arrow representing the particle's velocity and acceleration
  54. FdragArrow.pos = coin.pos
  55. FdragArrow.axis = Fdrag*1000
  56. FgravArrow.pos = coin.pos
  57. FgravArrow.axis = Fgrav*1000
  58.  
  59. #Plot on the graphs
  60. velocity_f.plot(t,coin_v.y)
  61. Fdrag_f.plot(t,Fdrag.y)
  62. Fgrav_f.plot(t,Fgrav.y)
  63. Fnet_f.plot(t,Fnet.y)
  64.  
  65. t += dt #Advance the time by 1 time step

See Also