=====Terminal Velocity===== ====Activity Information==== ===Learning Goals=== * $\Sigma 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 [[https://www.nextgenscience.org/pe/hs-ets1-4-engineering-design | 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 [[https://www.nextgenscience.org/pe/hs-ps2-1-motion-and-stability-forces-and-interactions | 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=\dfrac{1}{2}C\rho v^2A$ * Terminal velocity * $v=\sqrt{\dfrac{2W}{C\rho A}}$ * Gravitational force ===Code Manipulation=== * Copying/pasting code * Creating code from scratch * Translating equations into code * While loops and if statements ---- ====Activity==== ===Handout=== {{ :repository:terminal_velocity.png?nolink&600|}} ** 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 [[https://www.glowscript.org/#/user/david.pastula/folder/MyPrograms/program/TerminalVelocity-MinimalProgram/edit | unfinished code]] and answer the following questions: ==Pre-coding Questions== - Create a graph showing how you think the velocity of the coin will change over time - Create a graph showing how you think the forces of gravity, air resistance, and net force change as the coin approaches the ground. - 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== - Describe your contributions to the coding process within your group. - What did you find the terminal velocity to be based on the graph produced by the code? Does this agree with your calculations? - Reflect on your predicted graphs. Explain how they were similar/different than your coding graphs. Revise your graphs as needed. ===Code=== [[hthttps://www.glowscript.org/#/user/porcaro1/folder/RepositoryPrograms/program/TerminalVelocity-Incomplete | 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== - {{:repository:terminal_velocity_velocity.png?nolink&600|}} - {{:repository:terminal_velocity_forces.png?nolink&600|}} - 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=== [[https://www.glowscript.org/#/user/porcaro1/folder/RepositoryPrograms/program/TerminalVelocity-Solution | 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 ---- ====See Also==== *[[beating_the_train | Beating the Train]]