### 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

• Modify existing code

—-

### 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

GlowScript 2.7 VPython #Creating the objectsfloor = box(pos=vector(0,-30,0), size=vector(100,4,12), color=color.white)      #I've created the floor that the crate will slide acrosscrate = 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 intervalt=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 floordt=0.01                                                                         #I want my time interval set at 1/100th of a time unit #Creates velocity vectors as a function of timeget_library('https://rawgit.com/perlatmsu/physutil/master/js/physutil.js')      #The program needed to know what a motion map is defined asmotionMap = MotionMap(crate, tf, 5, markerScale=0.1)                            #I want to display 5 arrows showing the motion of the crate #Giving the objects an initial velocitycratev=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 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

GlowScript 2.7 VPython#Creating the objectstrain = 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 floorcycle = box(pos=vector(0,-51,0), size=vector(2,2,2), color=color.white) #Setting the time intervalt=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 timeget_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 velocitytrainv=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

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