Barometric formula

The barometric formula, sometimes called the exponential atmosphere or isothermal atmosphere, is a formula used to model how the pressure (or density) of the air changes with altitude.

Pressure equations

Pressure as a function of the height above the sea level

There are two different equations for computing pressure at various height regimes below 86 km (or 278,400 feet). The first equation is used when the value of standard temperature lapse rate is not equal to zero; the second equation is used when standard temperature lapse rate equals zero.

Equation 1:

Equation 2:

where

= static pressure (Pa)
= standard temperature (K)
= standard temperature lapse rate (K/m) in ISA
= height above sea level (m)
= height at bottom of layer b (meters; e.g., h1 = 11 000 m)
= universal gas constant: 8.3144598  J /mol/K
= gravitational acceleration: 9.80665 m/s2
= molar mass of Earth's air: 0.0289644 kg/mol

Or converted to imperial units:[1]

where

= static pressure (inches of mercury, inHg)
= standard temperature (K)
= standard temperature lapse rate (K/ft) in ISA
= height above sea level (ft)
= height at bottom of layer b (feet; e.g., h1 = 36,089 ft)
= universal gas constant; using feet, kelvins, and (SI) moles: 8.9494596×104 lb·ft2/(lb-mol·K·s2)
= gravitational acceleration: 32.17405 ft/s2
= molar mass of Earth's air: 28.9644 lb/lb-mol

The value of subscript b ranges from 0 to 6 in accordance with each of seven successive layers of the atmosphere shown in the table below. In these equations, g0, M and R* are each single-valued constants, while P, L, T, and h are multivalued constants in accordance with the table below. The values used for M, g0, and R* are in accordance with the U.S. Standard Atmosphere, 1976, and the value for R* in particular does not agree with standard values for this constant.[2] The reference value for Pb for b = 0 is the defined sea level value, P0 = 101 325 Pa or 29.92126 inHg. Values of Pb of b = 1 through b = 6 are obtained from the application of the appropriate member of the pair equations 1 and 2 for the case when h = hb+1.[2]

Subscript b Height above sea level Static pressure Standard temperature
(K)
Temperature lapse rate
(m) (ft) (Pa) (inHg) (K/m) (K/ft)
0 0 0 101 325.00 29.92126 288.15 -0.0065 -0.0019812
1 11 000 36,089 22 632.10 6.683245 216.65 0.0 0.0
2 20 000 65,617 5474.89 1.616734 216.65 0.001 0.0003048
3 32 000 104,987 868.02 0.2563258 228.65 0.0028 0.00085344
4 47 000 154,199 110.91 0.0327506 270.65 0.0 0.0
5 51 000 167,323 66.94 0.01976704 270.65 -0.0028 -0.00085344
6 71 000 232,940 3.96 0.00116833 214.65 -0.002 -0.0006096

Density equations

The expressions for calculating density are nearly identical to calculating pressure. The only difference is the exponent in Equation 1.

There are two different equations for computing density at various height regimes below 86 geometric km (84 852 geopotential meters or 278,385.8 geopotential feet). The first equation is used when the value of standard temperature lapse rate is not equal to zero; the second equation is used when standard temperature lapse rate equals zero.

Equation 1:

Equation 2:

where

= mass density (kg/m3)
= standard temperature (K)
= standard temperature lapse rate (see table below) (K/m) in ISA
= height above sea level (geopotential meters)
= universal gas constant for air: 8.3144598 N·m/(mol·K)
= gravitational acceleration: 9.80665 m/s2
= molar mass of Earth's air: 0.0289644 kg/mol

or, converted to English gravitational foot-pound-second units:[1]

= mass density (slug/ft3)
= standard temperature (K)
= standard temperature lapse rate (K/ft)
= height above sea level (geopotential feet)
= universal gas constant: 8.9494596×104 ft2/(s·K)
= gravitational acceleration: 32.17405 ft/s2
= molar mass of Earth's air: 0.0289644 kg/mol

The value of subscript b ranges from 0 to 6 in accordance with each of seven successive layers of the atmosphere shown in the table below. The reference value for ρb for b = 0 is the defined sea level value, ρ0 = 1.2250 kg/m3 or 0.0023768908 slug/ft3. Values of ρb of b = 1 through b = 6 are obtained from the application of the appropriate member of the pair equations 1 and 2 for the case when h = hb+1.[2]

In these equations, g0, M and R* are each single-valued constants, while ρ, L, T and h are multi-valued constants in accordance with the table below. The values used for M, g0 and R* are in accordance with the U.S. Standard Atmosphere, 1976, and that the value for R* in particular does not agree with standard values for this constant.[2]

Subscript b Height Above Sea Level (h) Mass Density () Standard Temperature (T')
(K)
Temperature Lapse Rate (L)
(m) (ft) (kg/m3) (slugs/ft3) (K/m) (K/ft)
0 0 0 1.2250 2.3768908 x 10−3 288.15 -0.0065 -0.0019812
1 11 000 36,089.24 0.36391 7.0611703 x 10−4 216.65 0.0 0.0
2 20 000 65,616.79 0.08803 1.7081572 x 10−4 216.65 0.001 0.0003048
3 32 000 104,986.87 0.01322 2.5660735 x 10−5 228.65 0.0028 0.00085344
4 47 000 154,199.48 0.00143 2.7698702 x 10−6 270.65 0.0 0.0
5 51 000 167,322.83 0.00086 1.6717895 x 10−6 270.65 -0.0028 -0.00085344
6 71 000 232,939.63 0.000064 1.2458989 x 10−7 214.65 -0.002 -0.0006096

Derivation

The barometric formula can be derived fairly easily using the ideal gas law:

When density is known:

And assuming that all pressure is hydrostatic:

Dividing the by the expression we get:

Integrating this expression from the surface to the altitude z we get:

Assuming constant temperature, molar mass, and gravitational acceleration, we get the barometric formula:

In this formulation, R* is the gas constant, and the term R*T/Mg gives the scale height (approximately equal to 8.4 km for the troposphere).

(For exact results, it should be remembered that atmospheres containing water do not behave as an ideal gas. See real gas or perfect gas or gas for further understanding.)

Source code

Below is the C++ implementation of the US Standard Atmosphere version 1976. The calculations below 51 km are adopted from equations in Practical Meteorology[3] and the calculations above 51 km are adopted from Atmospheric Models at Rocket and Space Technology.[4] Some validation data is available at avs.org.

      float getStandardPressure(float altitude /* meters */)   //return Pa
      {
        //Below 51km: Practical Meteorology by Roland Stull, pg 12
        //Above 51km: http://www.braeunig.us/space/atmmodel.htm
        //Validation data: https://www.avs.org/AVS/files/c7/c7edaedb-95b2-438f-adfb-36de54f87b9e.pdf
    
        altitude = altitude / 1000.0f;  //convert meters to km
        float geopot_height = getGeopotential(altitude);
        
        float t = getStandardTemperature(geopot_height);
    
        if (geopot_height <= 11)
          return  101325 * pow(288.15f / t, -5.255877f);
        else if (geopot_height <= 20)
          return 22632.06 * exp(-0.1577f * (geopot_height - 11));
        else if (geopot_height <= 32)
          return 5474.889f * pow(216.65f / t, 34.16319f);
        else if (geopot_height <= 47)
          return 868.0187f * pow(228.65f / t, 12.2011f);
        else if (geopot_height <= 51)
          return 110.9063f * exp(-0.1262f * (geopot_height - 47));
        else if (geopot_height <= 71)
          return 66.93887f * pow(270.65f / t, -12.2011f);
        else if (geopot_height <= 84.85)
          return 3.956420f * pow(214.65f / t, -17.0816f);
    
        throw std::out_of_range("altitude must be less than 86km.");    
      }
    
      //geopot_height = earth_radius * altitude / (earth_radius + altitude) /// all in kilometers
      //temperature is in Kelvin = 273.15 + Celsius
      float getStandardTemperature(float geopot_height) 
      {
        //standard atmospheric pressure
        //Below 51km: Practical Meteorology by Roland Stull, pg 12
        //Above 51km: http://www.braeunig.us/space/atmmodel.htm
        if (geopot_height <= 11)          //troposphere
          return 288.15f - (6.5 * geopot_height);
        else if (geopot_height <= 20)     //Staroshere starts
          return 216.65f;
        else if (geopot_height <= 32)
          return 196.65f + geopot_height;
        else if (geopot_height <= 47)       
          return 228.65f + 2.8 * (geopot_height - 32);
        else if (geopot_height <= 51)     //Mesosphere starts
          return 270.65f;
        else if (geopot_height <= 71)       
          return 270.65f - 2.8 * (geopot_height - 51);
        else if (geopot_height <= 84.85)    
          return 214.65f - 2 * (geopot_height - 71);    
        //Thermospehere has high kinetic temperature (500c to 2000c) but temperature
        //as measured by thermometer would be very low because of almost vacuum
        throw std::out_of_range("geopot_height must be less than 84.85km.");
      }
    
      float getGeopotential(float altitude_km)
      {
        constexpr float EARTH_RADIUS =  6356.766; //km
        return EARTH_RADIUS * altitude_km / (EARTH_RADIUS + altitude_km);
      }

See also

References

  1. 1 2 Mechtly, E. A., 1973: The International System of Units, Physical Constants and Conversion Factors. NASA SP-7012, Second Revision, National Aeronautics and Space Administration, Washington, D.C.
  2. 1 2 3 4 U.S. Standard Atmosphere, 1976, U.S. Government Printing Office, Washington, D.C., 1976. (Linked file is 17 Mb)
  3. Stull, Roland. Practical Meteorology (PDF). p. 12.
  4. Braeunig, Robert. "ATMOSPHERIC MODELS". Rocket and Space Technology.
This article is issued from Wikipedia - version of the 11/27/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.