Here is another one from a great podcast – Buzz Out Loud. I totally can’t remember which episode it was, I listened to a several in a row mowing the lawn and doing outside type work. Anyway, the discuss was along the lines of:
Could an iphone tell if your parachute didn’t open with its accelerometer?
The first and simplest answer would be “no”. When you are skydiving, you quickly reach terminal velocity such that you are no longer accelerating. Maybe the built in GPS could use elevation data, but it seems like that is rarely used (and not very accurate). There is perhaps a way that work. Let me start with the motion of a sky diver.
During a sky dive (which is not free fall – free fall implies there is only the gravitational force acting on the object), there are essentially two forces to consider: gravity and air resistance. The air resistance is a force that depends on several things:
- The cross sectional surface area of the falling object
- The shape of the falling object
- The density of the air
- The speed of the falling object
You can experience most of these factors by sticking your hand out of a moving car. The faster the car is moving, the more the force from the air. Also, if you change your shape or cross sectional area (by tilting your hand) the force changes also.
If you were to look at the forces on a skydiver at some point during the fall, it could look like this:
Here the total force on the person is not zero (vector) so the person would still be accelerating, but not at the same rate as a “free falling” person. I can model the motion of a diver using numerical methods. To do this, I first need an expression for the air resistance force. The magnitude of this force can be modeled as:
- ? is the density of the air
- A is the cross sectional area of the object
- C is a coefficient that depends on the shape (cone vs. flat vs. spherical etc.)
- And of course, v is the magnitude of the velocity
I am going to use a trick so that I don’t have to estimate some of this stuff. I am going to estimate the value of all this stuff by estimating the terminal velocity of a skydiver. At terminal velocity, the air resistance force is equal to the weight. Suppose the terminal velocity of a 160 pound person is 120 mph. (160 pounds is equivalent to 73 kg and 120 mph is 54 m/s) This would mean (at terminal velocity):
So now I have a good estimate for all of those quantities. Yes, I am assuming the diver does not change shape and that the density of the air is constant, but that is ok. The next step is to model this. The basic idea is to:
- Calculate the force and acceleration
- In a small time interval, use this acceleration as though it were constant to calculate the change in velocity
- In this small time interval use the velocity as though it were constant to calculate the position
- Update time
- Rinse and repeat
This really isn’t too difficult. You could easily do this in a spreadsheet, but I will use python. Here is the first plot. It shows the position of the skydiver in the first 500 meters (starting at 3000 meters above the ground). I also plotted a “free falling” object with no air resistance for a comparison.
In the first few seconds, there is very little difference between the sky diver and an object with no air resistance. Here is a plot showing the fall all the way to the ground.
Notice that the “free fall” object goes below y = 0 meters. This is because I ran the model until the skydiver hit the ground. You can see that the free faller would hit way before the sky diver. Ok, now let me look at the speed as a function of time.
Here I just plot the first 400 meters of the fall. This is because nothing is interesting after this. Notice that the green line has a constant slope. If there is only one constant force on the object, it will continue to increase in speed. The skydiver quickly gets to the point where the velocity does not significantly change. Technically, the skydiver will never actually get to terminal velocity but after 10 seconds it is pretty close.
Ok, one more. What about acceleration? As far as I understand, this is what the iphone measures. Here is what the acceleration is as determined from the numerical calculation.
But what do you want? If you want the iphone to know that your parachute did not open, how would it know that? First, it would kind of need to know how high you are. I suppose it could do this with the GPS, but it could also do this by integrating the acceleration data twice with respect to time. So, I do not have acceleration data from an iphone. I found one app that would collect data, but it was not free. Acceleration data wants to be free. Luckily, I have an old Vernier acceleration sensor. I collected data while I picked it up (the sensor). Here is the data (with velocity and position data).
Wait. How do I know velocity and position if it is an acceleration sensor? The simple answer is that Logger Pro (Vernier’s software) has an “integrate” function built in. So, you just do this twice. But how does that work? It is kind of the opposite of numerical calculations above (but kind of not the opposite). Let me take a couple of rows of the acceleration data and show how to find the “integration” by hand. Suppose I look at the fist two acceleration data points. In this case, they are 1.635 m/s2 and 1.947 m/s2. This is during a time interval of 0 seconds to 0.0167 seconds. How do I find the velocity during this time (or at the end of this time interval)? If I had a constant acceleration I could use the kinematic equation:
If you want a refresher on kinematics, check out this post. So, how do I deal with non-constant acceleration? Here is the trick. If I assume the acceleration between those two data points changes at a constant rate (the smaller the time interval, the better the assumption), then I can say:
I can also write the average acceleration as:
Where a1 and a2 are the two accelerations. Now I can write:
All I need to know is the velocity at the beginning of the interval, and I can find the velocity at the end (I forgot to mention I am dealing with 1-d here, so I don’t need the vector notation stuff – but it still works in 3-d). I can assume that v1 = 0 m/s, then I can calculate the next velocity and so on. The exact same thing can be done to calculate the position from the velocity data. Of course, there are more complicated ways to do this, but this is good enough. Here is a Zoho spreadsheet showing the first few calculations.
So, this is how you can get position data from the iphone’s accelerometer. Of course, the iphone has 3-axis accelerometer. In theory you could use this to find out where the iphone is. I don’t have this data to see how well this would work, but it could work. Here is how the iphone would know your parachute did not open.
- By integrating the acceleration data (or from the GPS), the iphone knows that you are gaining altitude in a plane. It doesn’t do anything because people go in planes all the time.
- If you ARE in a plane, then it determines your altitude. Now, the iphone would know if you jump out because you would have an acceleration of close to -9.8 m/s2 for around 5 seconds. (of course this COULD happen if the plane is accelerating down like the vomit comet)
- Once the iphone thinks you are skydiving (because after a few seconds your acceleration would go back to zero-ish), it can once again track your position above the ground.
- If it calculates that you are closer than about 1000 meters to the ground, then it could say “hey, maybe you should pull your chute” or something like that.