## Beating the Train

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

- 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 Colliding Crates program to fit this scenario.

#### Code

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

- 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

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