A response to falling with helium (Wolfram blog DIY)

I'm following the explanations from this blog post: http://blog.wolfram.com/2013/10/08/a-response-to-falling-with-helium/.

The central question to answer is:

how long it would be necessary for someone to fall in order to jump out of an airplane, fill a large balloon with helium while falling, and land safely.

So roughly, my first analysis is:

  • jumping from an airplane: that's the free-fall problem
  • filling a large balloon with helium while falling: mmmh, here we'll likely run into trouble due to the fact that the air pressure will change as a function of altitude and thus filling a ballon with helium is not the way we usually experience it with constant air pressure at the ground level
  • land safely: this would mean that the buoyancy of the helium ballon should be a little bit less than the mass of the person falling; however buoyancy is a function of the fluid density displaced and this too varies with altitude

Things that need to be determined, according to the Wolfram blog post are:

  • initial and final weights of the person
  • the balloon
  • the helium
  • the helium tank carried by the person falling from the plane

Idea behind the calculation: we want to achieve neutral buoyancy for the falling guy.

$$ \text{ballon buoyancy force} = \text{weight of helium inside ballon} + \text{weight of ballon} + \text{weight of person} $$

This translates to the equation used by the guy in the article:

$$ \rho_{air} \frac{4}{3} \pi \; r^3 = \rho_{He} \frac{4}{3} \pi \; r^3 + s_{balloon} 4 \pi \; r^2 + m_{person} $$

where $s_{ballon}$ is the surface density of the ballon. This makes sense because the mass of the ballon is distributed on its outer surface when fully inflated. Thus using the value of 0.00609614 grams per square centimeter calculated from a typical inflatable balloon is a good starting point.

The next step in this article is to solve that equation in $r$ assuming a given air and helium density. He's saying that air density varies from 1.225 kg/m^3 at sea level to 1.1 kg/m^3 at 5000 feet (1.5 km) but we're taking it equal to 1.2 kg/m^3 as we want to be close to the surface. The density of Helium is taken constant at 1.785*10^-4 grams per cubic centimeter, or 0.18 kg/m^3 (ten times lighter than air).

In [1]:
%pylab inline
Populating the interactive namespace from numpy and matplotlib
In [2]:
rho_air = 1.2 #kg/m^3
rho_helium = 0.18 #kg/m^3
s_ballon = 0.061 #kg/m^2
m_person = 70 #kg

To find $r$ we can use the root finding method from the scipy.optimize package as discussed in this help page.

In [3]:
from scipy.optimize import root
def func(r):
    return (rho_air - rho_helium) * 4./3. * pi * r ** 3 - s_ballon * 4 * pi * r ** 2 - m_person
sol = root(func, 1)
r = sol.x
print "%.2f m" % r
2.60 m

The radius of the balloon will be 2.6 meters. This represents a volume of:

In [4]:
helium_volume = 4/3. * pi * r ** 3
print "%.2f m^3" % helium_volume # in m^3
73.71 m^3

The final mass of the jumper will thus be:

In [5]:
final_mass = m_person + rho_helium * helium_volume
print '%.2f kg' % final_mass
83.27 kg

However, the jumper in its initial state is carrying the helium with canisters that weigh 49 kg for a volume of 43 liters. How many canisters are needed to fit the helium inside? Given that each canister has a maximal design pressure, we can try to fit is much helium inside until it reaches that limit. The HP250 model has a service pressure of 156 bar. Using the ideal gas law, we know that the pressure volume product is conserved between the situations where the helium is compressed in the canisters and at ground pressure in the inflated balloon. In other words: $$P_{landing} V_{landing} = P_{canister} V_{canister}$$ We take a landing pressure of 1 bar, a landing volume of 74 m^3 and a canister pressure of 156 bar. Thus the canister helium volume is:

In [6]:
canister_helium_volume = 1 * helium_volume / 156.
print "%.2f m^3" % (canister_helium_volume)
0.47 m^3

We therefore need, to contain the volume of helium needed to inflate the balloon, approximately

In [7]:
print 0.47 / 43e-3
number_canisters = int(0.47 / 43e-3) + 1 
print "%i canisters" % (number_canisters)
11 canisters

This leads to an initial mass of:

In [8]:
initial_mass = final_mass + number_canisters * 49
print '%.2f kg' % initial_mass
622.27 kg

The next step in our problem solving is to determine the discharge time for the gas canisters. We will use the formula provided in the blog post: $$ t = (F^{(1-k)/2} - 1) \frac{2}{k - 1} \frac{V}{C \; A} \left( (\frac{k \; P_0}{\rho_0})(\frac{2}{k + 1})^{(k+1)/(k-1)} \right)^{-1/2} $$

where $F$ is the fraction of the gas remaining in the container, $k$ is the heat capacity ratio (1.667 for helium), $C$ is the discharge coefficient, $A$ is the cross-sectional area of the opening, $V$ is the volume of the container, $\rho_0$ is the initial gas density, and $P_0$ is the initial pressure. The discharge coefficient is the ratio of the actual discharge to the theoretical discharge. For this example, we will assume the value is 0.72.

We can calculate the initial density by applying the ideal gas law:

$$ P \; V = n \; R \; T $$

Contrary to what is done in the blog post, I'd take the initial pressure to be equal to the service pressure of the canister, 156 bar. Thus the initial density would be calculated by dividing the mass of the Helium in one canister (one tenth of the final volume for which we know the density at sea level) by the volume of the canister:

In [9]:
canister_helium_density = helium_volume / number_canisters * rho_helium / 43e-3
print '%.2f kg/m^3' % canister_helium_density
28.05 kg/m^3

This is consistent with my expectations in the sense that the density of the helium is a lot higher in the canister than in the balloon because it is compressed (which is the whole point of putting it in a canister).

We can now calculate the time it takes to empty one canister (containing one tenth of the total helium volume needed) up to 90% with the formula.

In [10]:
C = 0.72
k = 1.667
P_0 = 15.6e6 # Pa
rho_0 = 28.23 # kg / m^3
V = 43e-3 # m^3
A = 3.141e-6 # m^2
In [11]:
def time_to_empty(F, P_0, rho_0, V, A):
    return (F ** ((1-k)/2.) - 1) * (2/(k-1)) * V / C / A * 1/sqrt((k * P_0 / rho_0) * (2 / (k + 1)) ** ((k + 1) / (k - 1)))
In [12]:
time_to_empty(0.1, P_0, rho_0, V, A) 
In [13]:
fractions = arange(0, 1, 0.01)
t = map(lambda s: time_to_empty(s, P_0, rho_0, V, A), fractions)
-c:2: RuntimeWarning: divide by zero encountered in double_scalars
In [14]:
plot(fractions, t)
xlabel('fraction of gas remaining in the container')
ylabel('time needed to empty container')

If we increase the nozzle width as suggested by the blog post by a factor of 5, we manage to empty one canister in:

In [15]:
one_canister_empty_time = time_to_empty(0.1, P_0, rho_0, V, A * 25) 
print '%.2f s' % one_canister_empty_time
4.88 s

This is indeed an improvement, as the total emptying time now becomes

In [16]:
print '%.2f s' % (number_canisters * one_canister_empty_time)
53.68 s

In the blog post however, the author suggests to use an apparatus to release all canisters at once. This yields a total emptying time equal to the one it takes to empty only one canister:

In [17]:
print '%.2f s' % one_canister_empty_time
4.88 s

However, by emptying the gas so quickly into the balloon, a drag force will appear. This drag force is usually expressed like:

$$ F_d = C_d \; \left( 1/2 \; \rho \; u^2 \; A \right) $$

where $F_d$ is the drag force, $C_d$ the drag coefficient, $\rho$ the density of the fluid where the drag force is created, $u$ the speed at which the object is moving and $A$ the cross section in the flow direction of the object.

Wikipedia has a nice page about the drag coefficient. See also this page from NASA. From Wikipedia we learn that a streamlined body has a drag coefficient of $0.04$ and that for a sphere it's $0.47$. Therefore, taking $0.1$ seems reasonable for a start.