You are a member of a scientific research team at McMurdo ice station which is funded by the Carver Media Group in Antarctica.
Two members of your research team have recently returned from investigating an incident at a Norwegian research facility. They brought with them a burnt humanoid body with two faces. Since the disturbing discovery several inhabitants of the ice station have disappeared. Frightened, a member of your team decided to flee the station on a fan powered hovercraft but you receive a distress call not long after their escape that their steering and acceleration controls have been jammed and they need your help.
Time | Your Team Member's Position | Your Position |
---|---|---|
0 s | 2536.40 m | 10.47 m |
10 s | 3072.80 m | 41.88 m |
20 s | 3609.20 m | 94.22 m |
You decide to attempt a rescue in another hovercraft. You must decide how many members of your team help in the rescue operation. The hovercrafts do not have a velocity or acceleration gauge but they do have GPS locators and you possess your trusty stop watch. The GPS locator tells you the exact position of both your craft and other team members craft relative to the ice station. You are following their path. You collect the following data for the first 20 seconds of your journey.
You need to tell the runaway researcher the exact time from your starting time to jump onto your hovercraft as you may only have one shot at this rescue.
Students must complete this entire problem to work on Part B. They need information from this problem to solve Part B.
We expect students to complete Part A and Part B in class on Tuesday, but, historically about 1/2 of the groups do not completely finish part B. This is OK, they can have 15 minutes on Thursday to finish up. The Main Points below will articulate where we expect students to get by the end of Tuesday.
Most formulas used in part are are simply kinematic equation. A brief outline of these are found in the notes under Constant Force Motion.
Using the data from the first 20 seconds, we compute the velocity and acceleration of both the runaway ($X,V,A$) and rescue ($x,v,a$) hovercrafts:
Time | Runaway Pos. ($X$) | Rescue Pos. ($x$) | Runaway Vel. ($V$) | Rescue Vel. ($v$) | Runaway Accel. ($A$) | Rescue Accel. ($a$) |
---|---|---|---|---|---|---|
0 s | 2536.40 m | 10.47 m | ||||
53.64 m/s | 3.141 m/s | |||||
10 s | 3072.80 m | 41.88 m | 0 m/s/s | 0.2093 m/s/s | ||
53.64 m/s | 5.243 m/s | |||||
20 s | 3609.20 m | 94.22 m |
Now, to make things as simple as possible, we assume that the rescue cart not only starts from rest, but also accelerates uniformly (constant force from the hovercraft fan) throughout the duration of its rescue mission. Accordingly, the positions in time for both crafts are given by $$X(t)=X_{0{\rm s}}+V t\qquad\mbox{and}\qquad x(t)=x_{0{\rm s}}+\frac{1}{2}at^{2}.$$ Since we want to find the time at which the carts are at the same location, we set the above equations equal and solve for the time: $$t_{\rm jump}=\frac{V\pm\sqrt{V^{2}+2a(X_{0{\rm s}}-x_{0{\rm s}})}}{a}\approx 555.979\,{\rm s}.$$
It then follows, plugging this time back into either position equation, that the location of interest is $$x_{\rm jump}\approx 32359\,{\rm m,}$$ quite a ways away.
==Part A Steps and Timning:==
== Teaching Points==
Parts A and B are meant to be done on the same day, but in practice half of the folks do not finish part B. It's okay to spend the first part of McMurdo day 2 to complete part B. They need to do this before doing the computational part C.
Just as you are about to radio the time to jump to the runaway researcher, you realize the steering and acceleration controls have become frozen on your hovercraft and so it continues to accelerate and you cannot change direction. 200m ahead of the point at which you were going to tell the researcher to jump is an ice ravine. At the bottom of the ice ravine, 400m below, is an unfrozen salt water pool surrounded by stalagmites. From the ravine's edge to the pool is 490m and the pool stretches for 900m. You are moving too quickly to survive jumping off the hovercraft, but might survive the fall into the pool by staying on the hovercraft; it has seat belts. You now have a choice to make, to stay on your hovercraft or jump to the runaway researcher's hovercraft. One or both may make it to the pool. Your choice may be the difference between life and death.
Students are being asked to predict the motion of the hovercrafts after they leave the cliff. After students have discussed, the plan check with them and try to suggest they focus on one hovercraft: the runaway hovercraft (constant velocity). Let them come to this on their own as much as you can, but nudge to consider which “would be simpler to model.”
If they complete the model for the motion of that hovercraft by the end of Tuesday, that's what we expect. If they also finish modeling the motion of the rescue craft, that's great. But, you can give them 15 minutes on Thursday to finish that up and then talk you through it if they haven't finished.
To begin, we can calculate the velocities at $x_{\rm jump}$. The runaway craft has a constant velocity ($V=53.64\,{\rm m/s}$), but the rescue craft has velocity given by $v(t)=at.$ Using the time calculated in Part A, we find $$v_{\rm jump}=at_{\rm jump}\approx 116.366\,{\rm m/s}.$$ Furthermore, to find the velocity at the edge of the cliff, we make use of the constant acceleration kinematic equation which does not depend on time ($v_{f}^{2}=v_{i}^{2}+2ad$). Given the distance from the jump to the edge of the cliff, we may immediately find
$$v_{\rm edge}=\sqrt{v_{\rm jump}^{2}+2ad}\approx 116.726\,{\rm m/s},$$
where $d=200\,{\rm m}$.
Now, in order to calculate how far each hovercraft will shoot over the cliff, we need to know how long they will be in the air. Rearranging one of the constant acceleration kinematic equations gives
$$y_{f}=y_{i}+\frac{1}{2}at^{2}\qquad\longrightarrow\qquad t_{\rm air}=\sqrt{\frac{2H}{g}}\approx 9.03\,{\rm s},$$
where $H=400\,{\rm m}$ and $g=9.81\,{\rm m/s^{2}}$.
With this information, we can determine how far each hovercraft lands from the edge of the cliff: $$X_{\rm land}=Vt_{\rm air}\approx 484.395\,{\rm m}\qquad\mbox{and}\qquad x_{\rm land}=v_{\rm edge}t_{\rm air}\approx 1054.09\,{\rm m}.$$ It is clear that we would want to be on the rescue hovercraft.
Given the small magnitude of acceleration, there are a few different approximations that may be used in modeling this situation. Any combination of neglecting the acceleration of the rescue craft might be used both on and off land. The permutations give values as follows: \begin{eqnarray*} x_{\rm land}=v_{\rm jump}t_{\rm air}&\qquad\mbox{gives}\qquad& 1050.84\,{\rm m}\\ x_{\rm land}=v_{\rm jump}t_{\rm air}+\frac{1}{2}at_{\rm air}^{2}&\qquad\mbox{gives}\qquad& 1059.38\,{\rm m}\\ x_{\rm land}=v_{\rm edge}t_{\rm air}&\qquad\mbox{gives}\qquad& 1054.09\,{\rm m}\\ x_{\rm land}=v_{\rm edge}t_{\rm air}+\frac{1}{2}at_{\rm air}^{2}&\qquad\mbox{gives}\qquad& 1062.62\,{\rm m}\\ \end{eqnarray*} Encourage the simplest model. With time permitting, have them refine their model to add in more complexities. If necessary, mention that there is a killswitch which disengages the accelerating fans when the hovercraft is no longer on land to simplify things at the start..
==Part B Steps & Timing==
Parts A and B are meant to be done on the same day, but in practice half of the folks do not finish part B. It's okay to spend the first part of McMurdo day 2 to complete part B. They need to do this before doing the computational part C.
Surprisingly enough hovercrafts are an expensive piece of kit. Your employer, the Carver Media Group, is concerned by the happenings at the McMurdo ice station and would like you to produce an accident report detailing the events after you lost control of your hovercraft. The accident report should include a detailed computational model that provides the projected motion of the runaway hovercraft.
In this problem students are modeling the motion of the hovercrafts as they drive off the cliff and fall onto the ground below. This is a challenging problem for many students because in this program there are two steps to the integration algorithm: (1) update momentum (velocity) with force, and (2) update position with momentum (velocity).
It is a good idea to focus students' attention on modeling a single hovercraft rather than trying to do both at the same time. And probably the simplest is the runaway hovercraft that moves with the same horizontal velocity throughout the problem.
Students will spend a lot of time trying to make sense of what the image is and where everything is located. That's fine, but make sure they get to the modeling part in fairly short order.
If python review/ information is needed before attempting this problem, it can be found in the Modeling Motion with VPython notes.
Working first with the runaway craft, we can change the values to reflect those in the problem:
#Parameters and Initial Conditions runawaycraftv = vector(53.64,0,0)
Next, we can add in the portion of code when the runaway craft is falling ($y>0$), with no ground force:
#Calculation Loop while runawaycraft.pos.y > 0: rate(500) Fgrav = runawaycraftm*g Fnet = Fgrav runawaycraftp = runawaycraftp + Fnet*dt runawaycraft.pos = runawaycraft.pos + (runawaycraftp/runawaycraftm)*dt runawaycraftMotionMap.update(t, runawaycraftp/runawaycraftm) t = t + dt
Now for the rescue craft, we copy over all the necessary items and change/add the values/parameters to reflect those of the problem:
#Objects rescuecraft = sphere(pos=vector(-200,400,0), radius=10, color=color.green) #Parameters and Initial Conditions rescuecraftm = 1900 rescuecraftv = vector(116.366,0,0) rescuecraftp = rescuecraftm*rescuecraftv rescuecrafta = vector(0.2093,0,0) rescuecraftF = rescuecraftm*rescuecrafta #MotionMap/Graph rescuecraftMotionMap = MotionMap(rescuecraft, tf, 5, markerScale=1, labelMarkerOrder=False, markerColor=color.orange) #Calculation Loop while rescuecraft.pos.x < 0: rate(500) Fgrav = rescuecraftm*g Fground = -Fgrav Fnet = Fgrav + Fground + rescuecraftF rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/rescuecraftm) t = t + dt while rescuecraft.pos.y > 0: rate(500) Fgrav = rescuecraftm*g Fnet = Fgrav rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/runawaycraftm) t = t + dt
==Part C Steps & Timing==
The following addition of air resistance is a lengthy process. If the group does not have a reasonable amount of time to begin and make decent progress, do not push them. Rather, focus on developing concepts used in the previous tasks and ask any remaining tutor questions.
Bonus Problem: Using that the force of air resistance is $\vec{F}_{\rm air}=-bv^{2}\hat{v}$, can you incorporate this into your code?
Expected Solution: We approximated and Googled to determine $b$. We then created the force and added it to the net force for each chunk of while loop.
#Parameters and Initial Conditions b = 0.5 #Drag coefficient #Calculation loop Fair = -b*dot(...craftp/...craftm,...craftp/...craftm)*...craftp/mag(...craftp) Fnet = ... + Fair
Solution Code to Part C:
GlowScript 2.9 VPython get_library('https://cdn.rawgit.com/PERLMSU/physutil/master/js/physutil.js') #Window setup scene.width = 1024 scene.height = 768 scene.center = vector(600,0,0) #Objects cliff = box(pos=vector(-100,0,0), size=vec(200,800,0), color=color.white) ravine = box(pos=vector(245,-200, 0), size=vec(490,400,0), color=color.white) lake = box(pos=vector(940, -200, 0), size=vec(900,400,0), color=color.blue) runawaycraft = sphere(pos=vector(-200,400,0), radius=10, color=color.red) rescuecraft = sphere(pos=vector(-200,400,0), radius=10, color=color.green) # Use runaway as template to add rescue #Parameters and Initial Conditions g = vector(0,-9.81,0) b = 0 #Drag coefficient runawaycraftm = 1500 runawaycraftv = vector(53.64,0,0) # change velocity to calculated value from part A runawaycraftp = runawaycraftm*runawaycraftv # Add the next 5 lines for the rescue craft initialed values: rescuecraftm = 1900 rescuecraftv = vector(116.366,0,0) rescuecraftp = rescuecraftm*rescuecraftv rescuecrafta = vector(0.2093,0,0) rescuecraftF = rescuecraftm*rescuecrafta #Time and time step t=0 tf=5 dt = 0.01 #MotionMap/Graph runawaycraftMotionMap = MotionMap(runawaycraft, tf, 5, markerScale=1, labelMarkerOrder=False, markerColor=color.orange) # Use runaway motionmap as template for: rescuecraftMotionMap = MotionMap(rescuecraft, tf, 5, markerScale=1, labelMarkerOrder=False, markerColor=color.orange) #Calculation Loop while runawaycraft.pos.x < 0: rate(500) Fgrav = runawaycraftm*g Fground = -Fgrav Fnet = Fgrav + Fground runawaycraftp = runawaycraftp + Fnet*dt runawaycraft.pos = runawaycraft.pos + (runawaycraftp/runawaycraftm)*dt runawaycraftMotionMap.update(t, runawaycraftp/runawaycraftm) t = t + dt # Use given while as tempate for the next 8 lines # Modify conditional to pos.y and remove ground force while runawaycraft.pos.y > 0: rate(500) Fgrav = runawaycraftm*g Fnet = Fgrav runawaycraftp = runawaycraftp + Fnet*dt runawaycraft.pos = runawaycraft.pos + (runawaycraftp/runawaycraftm)*dt runawaycraftMotionMap.update(t, runawaycraftp/runawaycraftm) t = t + dt # Use the 2 working runaway while loops as template to add the following 2 resucue while loops while rescuecraft.pos.x < 0: rate(500) Fgrav = rescuecraftm*g Fground = -Fgrav Fnet = Fgrav + Fground + rescuecraftF rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/rescuecraftm) t = t + dt while rescuecraft.pos.y > 0: rate(500) Fgrav = rescuecraftm*g Fnet = Fgrav # May include rescuecraftF here too rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/runawaycraftm) t = t + dt
The Carver Media Group is now asking for an accident report for the your hovercraft as well. They want to you simulate the events from the point at which the two hovercrafts meet to when the hovercraft reached the water, however, they want you to model the hovercraft as if it had left the cliff at angle of 27 degrees from the ground. They want this model to be in the same model as the model for the runaway craft.
Solution Code including changes made to obtain the solution for Part C with air drag and Part D adding a 27-degree launch angle:
GlowScript 2.9 VPython get_library('https://cdn.rawgit.com/PERLMSU/physutil/master/js/physutil.js') #Window setup scene.width = 1024 scene.height = 768 scene.center = vector(600,0,0) #Objects cliff = box(pos=vector(-100,0,0), size=vec(200,800,0), color=color.white) ravine = box(pos=vector(245,-200, 0), size=vec(490,400,0), color=color.white) lake = box(pos=vector(940, -200, 0), size=vec(900,400,0), color=color.blue) runawaycraft = sphere(pos=vector(-200,400,0), radius=10, color=color.red) rescuecraft = sphere(pos=vector(-200,400,0), radius=10, color=color.green) # Use runaway as template to add rescue #Parameters and Initial Conditions g = vector(0,-9.81,0) b = 0.5 #Drag coefficient change from zero runawaycraftm = 1500 runawaycraftv = vector(53.64,0,0) # change velocity to calculated value from part A runawaycraftp = runawaycraftm*runawaycraftv # Add the next 5 lines for the rescue craft initialed values: rescuecraftm = 1900 rescuecraftv = vector(116.366,0,0) rescuecraftp = rescuecraftm*rescuecraftv rescuecrafta = vector(0.2093,0,0) rescuecraftF = rescuecraftm*rescuecrafta #Add angle of ramp-launch at upper edge of cliff (Extension part D): thetaindegrees = 27 thetainrad = thetaindegrees*pi/180 dirlaunch = vector(cos(thetainrad),sin(thetainrad),0) #Time and time step t=0 tf=5 dt = 0.01 #MotionMap/Graph runawaycraftMotionMap = MotionMap(runawaycraft, tf, 5, markerScale=1, labelMarkerOrder=False, markerColor=color.orange) # Use runaway motionmap as template for: rescuecraftMotionMap = MotionMap(rescuecraft, tf, 5, markerScale=1, labelMarkerOrder=False, markerColor=color.orange) #Calculation Loop while runawaycraft.pos.x < 0: rate(500) Fgrav = runawaycraftm*g Fground = -Fgrav Fdrag = -b*runawaycraftp*mag(runawaycraftp)/(runawaycraftm)**2 #add drag force Fnet = Fgrav + Fground + Fdrag #add drag force runawaycraftp = runawaycraftp + Fnet*dt runawaycraft.pos = runawaycraft.pos + (runawaycraftp/runawaycraftm)*dt runawaycraftMotionMap.update(t, runawaycraftp/runawaycraftm) t = t + dt # Add ramp-launch angle at upper-cliff edge: runawaycraftp = mag(runawaycraftp)*dirlaunch # Use given while as tempate for the next 8 lines # Modify conditional to pos.y and remove ground force while runawaycraft.pos.y > 0: rate(500) Fgrav = runawaycraftm*g Fdrag = -b*runawaycraftp*mag(runawaycraftp)/(runawaycraftm)**2 #add drag force Fnet = Fgrav + Fdrag #add drag force runawaycraftp = runawaycraftp + Fnet*dt runawaycraft.pos = runawaycraft.pos + (runawaycraftp/runawaycraftm)*dt runawaycraftMotionMap.update(t, runawaycraftp/runawaycraftm) t = t + dt # Add ramp-launch angle at upper-cliff edge: runawaycraftp = mag(runawaycraftp)*dirlaunch # Use the 2 working runaway while loops as template to add the following 2 resucue while loops while rescuecraft.pos.x < 0: rate(500) Fgrav = rescuecraftm*g Fground = -Fgrav Fdrag = -b*rescuecraftp*mag(rescuecraftp)/(rescuecraftm)**2 #add drag force Fnet = Fgrav + Fground + rescuecraftF + Fdrag rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/rescuecraftm) t = t + dt # Add ramp-launch angle at upper-cliff edge: rescuecraftp = mag(rescuecraftp)*dirlaunch while rescuecraft.pos.y > 0: rate(500) Fgrav = rescuecraftm*g Fdrag = -b*rescuecraftp*mag(rescuecraftp)/(rescuecraftm)**2 #add drag force Fnet = Fgrav + Fdrag #add drag force rescuecraftp = rescuecraftp + Fnet*dt rescuecraft.pos = rescuecraft.pos + (rescuecraftp/rescuecraftm)*dt rescuecraftMotionMap.update(t, rescuecraftp/runawaycraftm) t = t + dt
Changes made to the solution for Part C, adding air drag (boxed in red) and Part D adding a 27-degree launch angle (boxed in purple):