When projectile motion is taught in introductory physical science courses, air resistance is never really considered, even though we know that it can have a big effect on the motion of a projectile. After all, air resistance what prevents skydivers jumping out of airplanes from hitting the ground below at fatally high speed. The reason air resistance is often ignored is not because it is unimportant in the real world, but rather because of the large number of calculations necessary to compute an accurate trajectory when air resistance is included.
This lab is designed to show how a computer can solve this conceptually simple problem very easily, precisely because it involves a large number of repeated calculations (something computers were designed to do).
Splitting up projectile motion into its horizontal (x) and vertical (y) components can normally be accomplished because gravity only acts in the vertical direction. If we ignore air resistance (or assume air resistance is negligible) so that gravity is the only force acting on the projectile, the equations of its motion are very easy to solve. For example, the equation for the range (horizontal distance) a projectile travels is simply:
where v0 is the launch speed, is the launch angle, and g is the gravitational acceleration. For example, if you throw a baseball at 25 meters/second (about 60 miles per hour), at an angle of 30 degrees, you can compute the range to be:
However, our simple assumption that gravity is the only force acting on the projectile is incorrect, at least in the real world. On earth, air resistance plays a significant role in the distance a projectile will travel. And to make matters worse, in general air resistance depends on the speed of the object, so the air resistance will decrease if the speed decreases and will increase if the speed increases. To solve the problem of the projectile with air resistance, you have to compute the speed of the projectile at many instants through its motion to make sure you compute the air resistance accurately for the entire flight.
In this simulation you will be shooting a payload to a specific point down range. At first you will looking at how this problem will be solved neglecting air resistance. You will see that this is not a very difficult problem to solve. Then you will add in air resistance to the problem, which increases the number of calculations greatly, and you'll see how inaccurate the simple equation above (which neglected air resistance) can be.
The Applet uses an iterative routine to figure out the trajectory of a projectile. The routine is as follows:
1) Get the position (x, y) and velocity (vx, vy) of the projectile.
2) Compute the acceleration on the object in each direction using the equations:
|
|
where b is the coefficent of drag. In our applet, the coefficent of drag is computed on the fly, using the terminal velocity, vterm, set by the user. Since the terminal velocity is defined as the velocity where the gravitational force is exactly balanced by the air resistance, so that ay = 0 and thus:
therefore the drag coefficient is
NOTE: For simplicity, we assume a projectile mass of 5 kilos during the calculation. However, it really doesn't matter because we compute the acceleration only, so we divide drag coefficent by the mass during the computation, taking the effect of mass out of the equation.
3) Once we compute the force, we take a time step (dt) of 0.01 seconds (by default, this value can be changed by the user) and compute the distance the projectile travels (dx and dy) in that time using the equations:
|
|
NOTE: These are differential equations and therefore there is no (1/2) in front of the acceleration component of these equations, you can view the equations as having the form (v + a(dt))*(dt), which is the true form of the equation before simplification.
4) The program now computes the new instantaneous velocity of the projectile using the equations:
|
|
5) Check to make sure we haven't hit the ground yet, if not, go back to step 1, otherwise print out the total range and stop computing.