Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
repository:beating_the_train [2020/02/27 21:31]
porcaro1 created
repository:beating_the_train [2021/02/18 19:12] (current)
porcaro1 [Answer Key]
Line 8: Line 8:
 ===Prior Knowledge Required=== ===Prior Knowledge Required===
   * Units   * Units
-    * Dimensional Analysis 
   * Kinematic Equations   * Kinematic Equations
   * Newton'​s 2nd Law of Motion   * Newton'​s 2nd Law of Motion
Line 14: Line 13:
 ===Code Manipulation=== ===Code Manipulation===
   * Modify existing code   * Modify existing code
-      * [[https://​www.glowscript.org/#/​user/​kstedman/​folder/​Public/​program/​CollidingCars|Colliding Crates]]+      * [[colliding_crates|Colliding Crates]]
 ---- ----
 ====Activity==== ====Activity====
 ===Handout=== ===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=== ===Code===
 +[[https://​www.glowscript.org/#/​user/​porcaro1/​folder/​RepositoryPrograms/​program/​BeatingtheTrain-Incomplete| Link]]
 +<code Python [enable_line_numbers="​true",​ highlight_lines_extra="​0"​]>​
 +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))
 +</​code>​
 ---- ----
 ====Answer Key==== ====Answer Key====
 ===Handout=== ===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=== ===Code===
 +[[https://​www.glowscript.org/#/​user/​porcaro1/​folder/​RepositoryPrograms/​program/​BeatingtheTrain-Solution | Link]]
 +<code Python [enable_line_numbers="​true",​ highlight_lines_extra="​3,​4,​16,​17,​18,​19,​20,​21,​22,​23"​]>​
 +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 </​code>​
 ---- ----
 ====See Also==== ====See Also====
 +  * [[terminal_velocity | Terminal Velocity]]
  • repository/beating_the_train.1582839099.txt.gz
  • Last modified: 2020/02/27 21:31
  • by porcaro1