Air resistance or drag is a very common type of friction experienced in many situations, a leaf falling from a tree, riding your bicycle or a jet flying through the air. It is often impossible to ignore the effects of air drag, even though many introductory physics courses do. In this lesson you will learn that friction due to air (or other mediums) can be modeled reasonably easily and is simply another force that can be included in your numerical simulations. (As an aside, the analytic solution is very complicated or impossible to write in closed form.) We do not derive an expression for the air drag, but instead we rely on experiment to give approximate or 1 2 empirical expressions. The most commonly used expression is F ˆ air CA v v where 2 is the density of the medium (air in this case), v is the velocity, vˆ is the unit vector in the direction of motion, Ais the frontal cross sectional area, and C is the coefficient of drag. The negative sign makes the resistive force oppose the motion. This expression is only approximately correct, and not even for all speeds, but it is a good approximation over a large enough range of speeds to be extremely useful. The coefficient C hides a lot of the details in the problem. For instance it contains the shape of the object and perhaps if it is near a surface or out in as open space. Take a car as an example, a sleek racing car will have a smaller coefficient of drag than a boxy jeep. Often on semi-trucks you will see a curved piece of plastic above the cab, right in front of the flat part of the trailer. This significantly reduces air drag, i.e. C, and increases the fuel economy of the truck. In any case, C must be determined empirically, by experiment. For many common shapes the coefficient of friction is tabulated and can be looked up. Let s examine a very common example where air resistance plays a major role. A skydiver jumps out of an airplane and starts to accelerate towards the earth. As his velocity increases the air begins to put an opposing force that reduces his downward acceleration. Eventually, the upward force of the air equals the downward force of gravity and the skydiver ceases accelerating and falls with a constant speed. This is called the terminal velocity. It is interesting to note that terminal velocity for a skydiver depends on his position. If falling headfirst in a streamlined fashion his cross sectional frontal area is just the head and shoulders, however is he is falling spread-eagle then the frontal area is his entire body. These areas have a ratio of ~20 and significantly reduce the terminal velocity for skydivers falling chest first. Now we will make some estimates and do a simulation. The coefficient of drag is ~1.1, the frontal area (spread-eagle) 0.75 m 2, the density of air is ~1.2 kg/m 3, the mass of a sky diver might be around 80 kg. This allows us to determine the terminal speed by equating the gravitational force and the air drag: 1 or 2 2 mg CA v terminal v terminal 2mg Substituting in the CA values from above give a terminal velocity (spread-eagle) of ~40 m/s or ~90 mi/h. If you go headfirst the terminal velocity is closer to 180 mi/h. (This is why I don t skydive! I know too much physics.) A more difficult question to answer is how far, or long, do you fall to achieve
90% of terminal velocity? This cannot be solved easily analytically, but numerical computation 1 2 will work very well. The forces on the object are: F ˆ net F mg CA v v. How do we 2 code this? Here is the pseudocode for the main loop: Main Loop F_grav = m* g F_air = -0.5*A*C*density*(momentum/mass) 2 *(momentum unit vector) momentum = momentum +( F_grav + F_air)*dt position = position + (Momentum/mass)*dt time = time + dt This looks exactly like the racquetball problem, but we have included F_air in the total force. Before we include air drag let s review the results from our high school physics class for free fall with no drag. In this case the x and y motion are completely decoupled, the velocity in y changes by -9.8 m/s/s, and the velocity in x is constant. Below is a graph of such a trajectory, note that the axis are y position vs x position, NOT time. The sky diver jumps out of a plane flying at an altitude of 3000 m while traveling at 50 m/s in the x direction. Not including air
resistance the trajectory is shown below: The dots are equally spaced in time and you can see a nice parabola where the even spacing in the x-direction shows a constant speed in that direction, while the increasing vertical spacing between points shows the acceleration due to gravity in the y direction. No doubt you spent a considerable amount of time studying this in high school. While this is an excellent limiting case, in actuality rarely can air resistance be ignored. Let s consider the same problem but include air drag. The trajectory looks like this:
Comparing the two trajectories you can see quite a difference! The most obvious thing is that in the second situation the skydiver comes down essentially vertically and the velocity in the x- direction has gone to zero. This is due to the drag of the air gradually eliminating the forward motion of the skydiver. Compare the x range for the two scenarios: without air drag the skydiver lands ~1200 m down range (directly under the plane, assuming it continuums its original course), whereas when air drag is included the range is reduced to ~185 m. This is a very significant difference (reduction by 1/6 th ). Anyone who has played golf is aware that the golf ball comes down from a long drive almost vertically. Or simply throw a crumpled piece of paper horizontally and watch how it falls. Doesn t look like a parabola, does it? Ignoring air resistance is a very large approximation. Is it reasonable? Where do you want your helpers waiting for you after you land? A second important point to notice is a bit more subtle. Look at the spacing of the dots as the skydiver is in the final vertical descent. Are they increasing in spacing as they would be for uniform acceleration due to gravity? No, they are not. In fact, they look evenly spaced. To examine this more closely, we should plot the y-position, y-velocity and y-acceleration vs. time. These three graphs are shown below:
The y-position vs time plot shows a small amount of downward curvature, and the velocity vs. time plot similarly starts off with a slop of -9.8 m/s 2, but after about 5 sec, when the speed is ~30 m/s, the velocity curve starts to bend over and level off. This is reflected in the y-position curve becoming a linear relationship. The terminal velocity is ~40 m/s, just as we determined above from equating the air drag and gravitational forces. It is interesting to see how rapidly the
skydiver obtains terminal velocity, the last plot of the acceleration vs. time shows that after just ~10 sec, downward acceleration is essentially zero and from then on his speed remains constant. That is, of course, until he hits the Earth. We have omitted one very important aspect of a sky jumper s flight, the parachute. A parachute dramatically increases the frontal cross sectional area that is being resisted by the air. A typical parachute might have an effective area of 40 m 2, ~50 times larger than just the spread-eagle jumper. Most jumpers want to have their chute deployed by ~300 m above the Earth. We can add a couple lines of code to the simulation to allow a large increase in the area A and a smaller increase in the drag coefficient C, from 1.1 to 1.5, when the skydiver is below 300 m in altitude. Below is a plot of the trajectory. This trajectory looks very similar to the one above, except the dots get much more closely spaced starting at 300 m. The y-position and y-velocity vs. time plots are more revealing.
After falling for about 70 seconds, the skydiver is at a height of 300 m and the chute deploys. Very rapidly the downward velocity is decreased from 40 m/s to a new terminal velocity of 4.6 m/s (~10 mi/hr). This is the impact speed for the skydiver unless some more fancy things are done. Hitting the ground at 10 mi/hr is still pretty fast and broken bones are not uncommon. It is interesting to note how large the positive acceleration is when the chute opens
At the start of the dive the y-acceleration is -9.8 m/s 2 and after about 10 seconds it is reduced to zero. At 70 sec the y-acceleration jumps up momentarily to over 700 m/s 2 or ~70 g s. The duration of this extremely high force is quite small, each point on this part of the curve is 0.01 sec, so after ~ 0.1 sec the acceleration is at a relatively more manageable 100 m/s 2 or ~10g s and da still rapidly falling. There must be one heck of a jerk, when that chute opens. dt Of course, we do not have a properly detailed model for the chute to open and this is an artificially high value. Our chute opens in 0.01 sec, whereas a real chute would take much longer. This would reduce the extremely high initial values of the acceleration. From a video we could try to determine the area of the chute as a function of time and this would allow a better model for the acceleration during chute deployment. This last argument is an important one to understand from a big picture point of view. We have introduced a very simple approximation for the chute opening, one time step it is not there and in the next it is fully deployed. This is not good enough to answer detailed questions like, what is the maximum acceleration that the skydiver experiences? However the model is just fine for determining the speed at which the skydiver hits the ground. This is a good example of knowing where you have a reasonable model, when it is accurate, and where it falls short. Pun intended.
from future import division from visual import * from visual.graph import * # import graphing features #Simulation of a skydiver jumping from a plane and popping a parachute at 300m #above the ground time = 0 dt =.5 count = 0 # start the system clock at zero # time increment (sec) # count number of cycles through main loop mass = 80 # mass of skydiver g = vector(0,-9.8,0) # acceleration near Earth rho = 1.22 # density of air kg/m**3 A = 0.75 # frontal area of skydiver, 0.75 m**2 spread eagle, 0.1 m**2 headfirst C = 1.1 # Coefficient of drag Force_grav = mass*g # constant force applied by gravity field parachute = 1 # turns the opening of the parachute on (1) or off (0) #graphics position = gdisplay(title = ' Y Position vs time', xtitle = 'time (s)', ytitle ='y position (m)', x=0, y=0, width=1000, height=400, foreground=color.black, background= color.white) # window for position vs. time velocity = gdisplay(title = ' Y Velocity vs time', xtitle = 'time (s)', ytitle ='velocity (m/s)', x=0, y=450, width=1000, height=400, foreground=color.black, background= color.white) # window for velocity vs. time trajectory = gdisplay(title = 'height vs x position', xtitle = 'x position (m)', ytitle ='height (m)', x=0, y=0, width=1000, height=800, foreground=color.black, background= color.white) # window for velocity vs. time acceleration = gdisplay(title = 'Y acceleration vs time', xtitle = 'time (s)', ytitle ='Y acceleraton (m/s**2)', x=0, y=0, width=1000, height=400, foreground=color.black, background= color.white) # window for velocity vs. time pos_vs_time = gdots(gdisplay=position, color=color.black) # a graphics curve for position vs. time vel_vs_time = gdots(gdisplay=velocity, color=color.black) # a graphics curve for velocity vs. time y_vs_x = gdots(gdisplay=trajectory, color=color.black) # a graphics curve for trajectory acc_vs_time = gdots(gdisplay=acceleration, color=color.black) # a graphics curve for trajectory
#initialize all loop variables initial_vel = vector(50,0,0) # 50 m/s in x is 120 mi/hi for a slow plane initial_mom = mass*initial_vel initial_pos = vector(0,3000,0) position = initial_pos momentum = initial_mom #main loop while (position.y > 0): # simulate while skydiver is above ground if parachute and position.y < 300: #if have parachute, open at 300 meters high A = 41 # parachute cross sectional area (m**2), 24' diameter C = 1.5 # Coefficient of drag of chute dt =.01 # need small dt to better handle the large force at chute opening if mag(momentum) == 0: #if no velocity, air drag is 0 Force_air = vector(0,0,0) else: Force_air = -0.5*C*A*rho*mag2(momentum/mass)*norm(momentum) #air drag momentum = momentum + (Force_grav + Force_air)*dt # update momentum position = position + (momentum/mass)*dt # update position accel = (Force_grav + Force_air)/mass # only used for plotting if count % 1 == 0: # only plot every n'th point pos_vs_time.plot(pos=(time, position.y )) # plot y position vs time vel_vs_time.plot(pos=(time, momentum.y/mass )) # plot y velocity vs time y_vs_x.plot(pos=(position.x, position.y)) # plot trajectory y vs. x acc_vs_time.plot(pos=(time,accel.y)) # plot acceleration y vs. time time = time + dt count = count + 1 print momentum.y/mass # increment system time # count number of cycles through main loop