Activity Description

Learning Goals

  • Use Newton's 2nd Law to accurately predict changes in motion of macroscopic objects ( 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

—-

Activity

Handout

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

  1. Determine the amount of time required for the train to reach the crossing.
  2. 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.
  3. 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?
  4. Modify the Colliding Crates program to fit this scenario.

Code

Link

  1. GlowScript 2.7 VPython
  2.  
  3. #Creating the objects
  4. 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
  5. 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
  6.  
  7. #Setting the time interval
  8. t=0 #I've set the initial time to zero.
  9. tf=0.940 #I've set the final time to 0, which gives the crate enough time to slide across the floor
  10. dt=0.01 #I want my time interval set at 1/100th of a time unit
  11.  
  12. #Creates velocity vectors as a function of time
  13. get_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js') #The program needed to know what a motion map is defined as
  14. motionMap = MotionMap(crate, tf, 5, markerScale=0.1) #I want to display 5 arrows showing the motion of the crate
  15.  
  16. #Giving the objects an initial velocity
  17. cratev=vector(75,0,0) #I'm defining the constant velocity of my crate to be 75 in the x-direction(left to right)
  18. while crate.pos.x<35: #I want the crate to stop before it slides off the floor
  19. rate(50) #This rate can speed up or slow down the replay
  20. 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)
  21. t=t+dt #I'm updating the time
  22.  
  23. #This updates the velocity vectors
  24. motionMap.update(t,cratev) #This updates the motion map and display of the arrows as the crate slides across the floor
  25.  
  26. #This creates the graph of the kinetic energy of the crate
  27. #f1 = gcurve(color=color.blue) #Setting up a graph to show the kinetic energy of the crate as a function of time
  28. #for t in arange(0, 0.94, 0.01): # Time goes from 0 to 0.94 in 0.01 time intervals
  29. # f1.plot(pos=(t,cratev.mag**2))

Answer Key

Handout

  1. 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:
    1. $t=\dfrac{90\text{m}}{15\text{m/s}}=6\text{s}$
  2. 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$
    1. where:
      1. $x$ is your final position
        1. You must travel 50 m
      2. $x_{0}$ is your initial position
        1. We can assume we start at 0 m
      3. $v_{0}$ is your initial velocity
        1. you start from rest, so $v_{0}=0$ m/s
      4. $a$ is your acceleration
        1. We will solve for this
      5. $t$ is the time you have to beat the train
        1. We just calculated this to be 6 seconds
    2. Rearranging to solve for acceleration:
      1. $a=\dfrac{2(x-x_{0}-v_{0}t)}{t^2}$
    3. Plugging in our known values:
      1. $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²}$
  3. 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:
    1. $F_{f}+F_{m}=ma$
    2. Solving for the force of your motorcycle:
      1. $F_{m}=ma-F_{f}$
    3. Plugging in our known values:
      1. $F_{m}=400\text{kg}*2.78\text{m/s²}-(-100\text{N})=1212\text{N}$
        1. Note that $F_{f}$ is negative because it points in the negative y-direction. This is determined from your free body diagram
  4. See below

Code

Link

  1. GlowScript 2.7 VPython
  2. #Creating the objects
  3. 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
  4. cycle = box(pos=vector(0,-51,0), size=vector(2,2,2), color=color.white)
  5.  
  6. #Setting the time interval
  7. t=0 #I've set the initial time to zero.
  8. dt=0.01 #I want my time interval set at 1/100th of a time unit
  9.  
  10. #Creates velocity vectors as a function of time
  11. get_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js') #The program needed to know what a motion map is defined as
  12. #motionMap1 = MotionMap(crate1, tf, 5, markerScale=0.1) #I want to display 5 arrows showing the motion of the crate
  13. #motionMap2 = MotionMap(crate2, tf, 5, markerScale=0.1)
  14.  
  15. #Giving the objects an initial velocity
  16. trainv=vector(15,0,0) #I'm defining the constant velocity of my crate to be 75 in the x-direction(left to right)
  17. cyclev=vector(0,0,0)
  18. cycleacc=vec(0,2.78,0)
  19. while cycle.pos.y<=10: #I want the crate to stop before it slides off the floor
  20. rate(100) #This rate can speed up or slow down the replay
  21. 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)
  22. cyclev=cyclev + cycleacc*dt
  23. cycle.pos=cycle.pos+cyclev*dt
  24. t=t+dt #I'm updating the time
  25.  
  26. #This updates the velocity vectors
  27. #motionMap1.update(t,crate1v) #This updates the motion map and display of the arrows as the crate slides across the floor
  28. #motionMap2.update(t,crate2v)
  29.  
  30. #This creates the graph of the kinetic energy of the crate
  31. #f1 = gcurve(color=color.blue) #Setting up a graph to show the kinetic energy of the crate as a function of time
  32. #for t in arange(0, 0.94, 0.01): # Time goes from 0 to 0.94 in 0.01 time intervals
  33. # f1.plot(pos=(t,crate1v.mag**2)) # plot time vs. kinetic energy of the crate

See Also

  • repository/beating_the_train.txt
  • Last modified: 2021/02/18 14:12
  • by porcaro1