=====Beating the Train===== ====Activity Description==== ===Learning Goals=== * Use Newton's 2nd Law to accurately predict changes in motion of macroscopic objects ([[https://www.nextgenscience.org/pe/hs-ps2-1-motion-and-stability-forces-and-interactions | HS-PS2-1]]) * Use kinematic equations to determine the necessary acceleration to move an object *a certain distance *for a certain amount of time ===Prior Knowledge Required=== * Units * Kinematic Equations * Newton's 2nd Law of Motion * $F=ma$ ===Code Manipulation=== * Modify existing code * [[colliding_crates|Colliding Crates]] ---- ====Activity==== ===Handout=== {{ :repository:beating_the_train1.png?nolink&600|}} **Beating the Train**\\ A train is approaching a crossing, traveling at a constant velocity if 15 m/s to the east. You are on an afternoon ride on your motorcycle when you get stopped at a stoplight 50 m south of the crossing. At the instant the light turns green, the train is 90 m west of the crossing. Your mass, including the motorcycle, is 400 kg - Determine the amount of time required for the train to reach the crossing. - Using the time found in #1, determine the minimum acceleration required for you and your motorcycle to beat the train and safely cross to the other side. - Given a frictional force of 100 N that opposes you as you accelerate to the train crossing, what is the minimum force exerted by the motorcycle that is necessary to miss the train? - Modify the [[https://www.glowscript.org/#/user/kstedman/folder/Public/program/CollidingCars| Colliding Crates]] program to fit this scenario. ===Code=== [[https://www.glowscript.org/#/user/porcaro1/folder/RepositoryPrograms/program/BeatingtheTrain-Incomplete| Link]] GlowScript 2.7 VPython #Creating the objects floor = box(pos=vector(0,-30,0), size=vector(100,4,12), color=color.white) #I've created the floor that the crate will slide across crate = box(pos=vector(0,0,0), size=vector(20,20,5), color=color.red) #I've created the crate, along with its dimensions and initial position resting on the floor #Setting the time interval t=0 #I've set the initial time to zero. tf=0.940 #I've set the final time to 0, which gives the crate enough time to slide across the floor dt=0.01 #I want my time interval set at 1/100th of a time unit #Creates velocity vectors as a function of time get_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js') #The program needed to know what a motion map is defined as motionMap = MotionMap(crate, tf, 5, markerScale=0.1) #I want to display 5 arrows showing the motion of the crate #Giving the objects an initial velocity cratev=vector(75,0,0) #I'm defining the constant velocity of my crate to be 75 in the x-direction(left to right) while crate.pos.x<35: #I want the crate to stop before it slides off the floor rate(50) #This rate can speed up or slow down the replay crate.pos=crate.pos+cratev*dt #I'm moving the crate by adding the change in position (cratev*dt) to the previous position (crate.pos) t=t+dt #I'm updating the time #This updates the velocity vectors motionMap.update(t,cratev) #This updates the motion map and display of the arrows as the crate slides across the floor #This creates the graph of the kinetic energy of the crate #f1 = gcurve(color=color.blue) #Setting up a graph to show the kinetic energy of the crate as a function of time #for t in arange(0, 0.94, 0.01): # Time goes from 0 to 0.94 in 0.01 time intervals # f1.plot(pos=(t,cratev.mag**2)) ---- ====Answer Key==== ===Handout=== {{ :repository:beating_the_train2.png?nolink&600|}} - To find the time it will take for the train to reach the crossing, divide the distance between the train and the crossing by the velocity of the train: - $t=\dfrac{90\text{m}}{15\text{m/s}}=6\text{s}$ - We can use the following kinematic equation to solve for the minimum acceleration required to beat the train: $x=x_{0}+v_{0}t+\dfrac{1}{2}at^2$ - where: - $x$ is your final position - You must travel 50 m - $x_{0}$ is your initial position - We can assume we start at 0 m - $v_{0}$ is your initial velocity - you start from rest, so $v_{0}=0$ m/s - $a$ is your acceleration - We will solve for this - $t$ is the time you have to beat the train - We just calculated this to be 6 seconds - Rearranging to solve for acceleration: - $a=\dfrac{2(x-x_{0}-v_{0}t)}{t^2}$ - Plugging in our known values: - $a=\dfrac{2(50\text{m}-0\text{m}-0\text{m/s}*6\text{s})}{(6\text{s})^2}=\dfrac{100\text{m}}{36\text{s}^2}=2.78\text{m/s²}$ - To find out the minimum force your motorcycle must exert, we must first create a free body diagram. From this diagram, we know that the sum of the frictional force $F_{f}$ and the force of your motorcycle $F_{m}$ must be equal to the total mass of you and the motorcycle (400 kg) multiplied by the acceleration we just calculated (2.78 m/s²). Mathematically, this looks like: - $F_{f}+F_{m}=ma$ - Solving for the force of your motorcycle: - $F_{m}=ma-F_{f}$ - Plugging in our known values: - $F_{m}=400\text{kg}*2.78\text{m/s²}-(-100\text{N})=1212\text{N}$ - Note that $F_{f}$ is negative because it points in the negative y-direction. This is determined from your free body diagram - See below ===Code=== [[https://www.glowscript.org/#/user/porcaro1/folder/RepositoryPrograms/program/BeatingtheTrain-Solution | Link]] GlowScript 2.7 VPython #Creating the objects train = box(pos=vector(-100,-5,0), size=vector(20,5,8), color=color.red) #I've created the crate, along with its dimensions and initial position resting on the floor cycle = box(pos=vector(0,-51,0), size=vector(2,2,2), color=color.white) #Setting the time interval t=0 #I've set the initial time to zero. dt=0.01 #I want my time interval set at 1/100th of a time unit #Creates velocity vectors as a function of time get_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js') #The program needed to know what a motion map is defined as #motionMap1 = MotionMap(crate1, tf, 5, markerScale=0.1) #I want to display 5 arrows showing the motion of the crate #motionMap2 = MotionMap(crate2, tf, 5, markerScale=0.1) #Giving the objects an initial velocity trainv=vector(15,0,0) #I'm defining the constant velocity of my crate to be 75 in the x-direction(left to right) cyclev=vector(0,0,0) cycleacc=vec(0,2.78,0) while cycle.pos.y<=10: #I want the crate to stop before it slides off the floor rate(100) #This rate can speed up or slow down the replay train.pos=train.pos+trainv*dt #I'm moving the crate by adding the change in position (cratev*dt) to the previous position (crate.pos) cyclev=cyclev + cycleacc*dt cycle.pos=cycle.pos+cyclev*dt t=t+dt #I'm updating the time #This updates the velocity vectors #motionMap1.update(t,crate1v) #This updates the motion map and display of the arrows as the crate slides across the floor #motionMap2.update(t,crate2v) #This creates the graph of the kinetic energy of the crate #f1 = gcurve(color=color.blue) #Setting up a graph to show the kinetic energy of the crate as a function of time #for t in arange(0, 0.94, 0.01): # Time goes from 0 to 0.94 in 0.01 time intervals # f1.plot(pos=(t,crate1v.mag**2)) # plot time vs. kinetic energy of the crate ---- ====See Also==== * [[terminal_velocity | Terminal Velocity]]