Air Drag

For air drag, set the following parameters:

Drag Model
Parameter Description
Use

Select among:

  • Based on Orbit - Model air drag if the perigee of the spacecraft's orbit falls below the threshold for the orbit class. Applicable thresholds can be set at the scenario level.
  • No - Do not model air drag, even if the perigee falls below the threshold.
  • Yes - Model air drag, even if the perigee is above the threshold.
WillUseAirDrag

This is a read-only field, with a boolean (true/false) value that reflects the result of the selection made in the Use field:

  • If Yes is selected: always true.
  • If No is selected: always false.
  • If Based on Orbit is selected: true if the perigee falls below the threshold, otherwise false.
AtmDensityModel

Select one of the following:

  • Jacchia 1970 - Computes atmospheric density based on the composition of the atmosphere, which depends on the satellite's altitude as well as a divisional and seasonal variation. Valid range is 90km - 2500 km.
  • Jacchia 1971 - Computes atmospheric density based on the composition of the atmosphere, which depends on the satellite's altitude as well as a divisional and seasonal variation. Valid range is 100km - 2500 km.
  • Jacchia-Bowman 2008 – Jacchia model with improvements due to Bowman. Detailed reference materials are available at sol.spacenvironment.net/~JB2008/publications.html. Requires special solar and geomagnetic indices which are available at sol.spacenvironment.net/~JB2008/indices.html.
  • Jacchia-Roberts - Similar to Jacchia 1971 but uses analytical methods to improve performance.
  • CIRA 1972 - Empirical model of atmospheric temperature and densities as recommended by the Committee on Space Research (COSPAR). Same as Jacchia 1971.
  • MSISE 1990 - Empirical density model developed by Hedin based on satellite data. Finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1990 version, valid range of 0-1000 km.
  • NRLMSISE 2000 - Empirical density model developed by the US Naval Research Laboratory based on satellite data. Finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. Includes anomalous oxygen above 500 km. 2000 version, valid range of 0-1000 km. This implementation always calls the gtd7d routine (in contrast to switching between it and gtd7) per the recommendation of Mike Picone, one of the code authors.

The MSIS models are available at the Office of Naval Research website.


The Jacchia-Bowman models are available at sol.spacenvironment.net/~JB2008/index.html.

LowAltAtmDensityModel Select an atmospheric density model to be used when the altitude of the spacecraft goes below the minimum modeled altitude of the primary atmospheric density model given by the AtmDensityModel setting. Options are None, MSISE 1990 and NRLMSISE 2000. The MSIS models both extend downwards to the surface of the Earth. This setting is useful for cases where a Jacchia atmospheric density model is desired for normal operations, but OD is desired up to re-entry. The density computed by the low altitude density model is blended with the density computed by the primary density model during a region above the minimum altitude supported by the primary density model as specified through the setting DensityBlendingAltRange.
DensityBlendingAltRange Used in conjunction with the LowAltAtmDensityModel setting to specify the range of altitudes during which the density computation will consist of a weighted average of the primary density model result and the low altitude density model result. For a value of 30 Km, the density will be computed solely from the primary model as long as the altitude of the spacecraft is at least 30 Km above the minimum altitude supported by the primary model. Between the minimum altitude supported by the primary model and 30 Km above the minimum altitude supported by the primary model, the density is computed as a weighted average of the two models. Below the minimum altitude supported by the primary model, the density is computed solely by the low altitude density model.
EstimateDensity A correction to the local atmospheric density (δρ/ρ) will be estimated by the filter if set to true and drag effects are modeled. Also controls if the local atmospheric density can be perturbed by the simulator.
EstimateBallisticCoeff A correction (ΔB/B) to the nominal ballistic coefficient, B, will be estimated by the filter if set to true and drag effects are modeled. Also controls whether the ballistic coefficient can be varied by the Simulator. The estimate flag must also be set to true if this parameter is to be used as a Least Squares Consider State. When used as a consider state it is modeled as a constant.
Model Select either "Spherical" and enter the SpecMethod, CD, Area, and BallisticCoeffModel parameters immediately below, or select DragPlugin for a user defined Atmospheric Drag Plugin model.
SpecMethod Specifies the method for input of ballistic coefficient information, where B = Cd A / M.
  • BallisticCoeff - If set to this method, the ballistic coefficient, B, is entered directly. This is the common case for space surveillance where the individual constituents are not known. Changes to area or mass will cause the Cd value to be updated.
  • MassAreaCd - If set to this method, then the individual constituents (Mass, Drag Area and coefficient of drag) are entered. This is the common case of satellite operators who have specific knowledge of the satellite physical characteristics. Changes to Cd, area or mass will cause the ballistic coefficient value to be updated.
Available when "Spherical" Model is selected.
CorrectionType

Specify the estimation solve to be used in estimating corrections to acceleration due to atmospheric drag. Choose between:

  • Cd Additive – estimate an additive correction to CD
  • Ballistic Coeff Additive – estimate an additive correction to B = (CD AD / M)
  • Ballistic Coeff Relative - estimate a relative correction to (ΔB / B)

See the equations below.

Available when "Spherical" Model is selected.

CD Specify the drag coefficient (CD) to be used in calculating acceleration due to atmospheric drag. See the equations below.

Available when "Spherical" Model is selected.
Area Cross-sectional area of the spacecraft in the selected distance unit squared, for computation of atmospheric drag.

Available when "Spherical" Model is selected.
BallisticCoeff

Specify the ballistic coefficient (CD AD / M) to be used in calculating acceleration due to atmospheric drag. See the equations below.

Available when "Spherical" Model is selected.

BallisticCoeffModel

Identifies the Stochastic sequence to be used to represent the Ballistic Coefficient correction (ΔB/B). Note in the following models the B "const" value is either entered directly or computed based on CD, Area values.

  • GaussMarkov = The correction, (ΔB/B), will be modeled as a scalar exponential Gauss Markov sequence.
  • RandomWalk = The correction, (ΔB/B), will be modeled using a Wiener (Brownian motion) sequence.
  • Vasicek = The correction, (ΔB/B), will be modeled using a Vasicek stochastic sequence. This is a two-parameter model that solves for both a short-term and long-term bias.
Reference the Stochastic Model page for the description and inputs associated with each model.

Available when "Spherical" Model is selected.

Note: Constant is a read-only field whose value is defined by the selected SpecMethod.

DensityCorrHalflife Enter the time that it takes for dr/r to decay to one half its value in the absence of measurements. dr/r is the estimated correction to the atmospheric drag, where the latter is calculated via the CIRA 1972 model. This is the user-supplied value t associated with exponential half-life in the Gauss-Markov processes used in ODTK.
DensityCorrInitialEstimate This property contains the initial condition for the density correction, dr/r, where r is the atmospheric density. While it is possible to specify this value manually, it is more typically updated during the Transfer to Satellite operation on the LeastSquares object if the LeastSquares process has been set to estimate a density correction.
DensityCorrSigmaScale Enter a multiplicative scale factor for the atmospheric density uncertainty computed by ODTK. The computed density uncertainty is based on the historical performance of the CIRA 1972 (Jacchia 1971) atmospheric density model considering the current satellite state.

NOTE: A nominal value of 1.0 is recommended for most applications; use of other values should be considered experimental.

DensityRatioRoot Enter the reciprocal of the exponent to be applied to the ratio of the local atmospheric density divided by the baseline density. The density ratio is computed as (current density / baseline density)^(1/DRR) where DRR is the DensityRatioRoot. The density ratio is then used to drive the atmospheric density process noise model. The local density is computed using the current solar flux and geomagnetic activity while the baseline density is computed using average conditions.

NOTE: A nominal value of 1.0 is recommended for most applications; use of other values should be considered experimental.

DensityRatioIncreaseThreshold Specifies a threshold for the stepwise change of a ratio of the density evaluated at perigee at the current solar and geomagnetic conditions to an evaluation of the density at mean solar and geomagnetic conditions. When this threshold is exceeded in the filter, the process noise for atmospheric density changes from the baseline model to the active sun model to open up the covariance under conditions of high solar activity. This process is described in Chapter 11 of ODTK Orbit Determination: Theorems & Equations. Recommended values are 0.1 when polynomial smoothing of Ap and F10.7 is enabled and 1.0 when polynomial smoothing of Ap and F10.7 is not enabled.
SunPosMethod Specifies the algorithm to be used in the computation of the position of the Sun for input to the atmospheric density model. Options are to compute the true position of the Sun or the apparent position of the Sun to an observer at the center of the Earth. The latter option is consistent with the use of the apparent Sun position for drag in HPOP in STK.
UseInVariationalEquations Set to true to have drag accelerations included in the variational equations for the propagation of covariance. It is recommended that this flag be set to true for low altitude satellites.
AddProcessNoise This controls the addition of white process noise in two components (specified via the OutOfPlaneFraction and the InPlaneFraction attributes) normal to the Earth fixed velocity direction. This is useful when significant drag accelerations exist in these directions, since the spherical drag model cannot account for such accelerations. Process noise along the Earth fixed velocity direction is added when the ballistic coefficient is estimated.
OutOfPlaneFraction When drag process noise is added, the acceleration noise added in the direction normal to the Earth fixed velocity and normal to the satellite position vector is computed as the magnitude of the nominal drag acceleration multiplied by the OutOfPlaneFraction. For example, to add white noise equal to 50% of the nominal acceleration in the Out Of Plane direction, specify a value of 0.5.
InPlaneFraction When drag process noise is added, the acceleration noise added in the direction normal to the Earth fixed velocity and in the plane defined by the satellite position and the Earth fixed velocity is computed as the magnitude of the nominal drag acceleration multiplied by the InPlaneFraction. For example, to add white noise equal to 50% of the nominal acceleration in the In Plane direction, specify a value of 0.5.

Scripting Examples

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  Example Spherical model represented by a Scalar Gauss Markov sequence
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

drag.Model.Type = "Spherical"
drag.Model.SpecMethod = "Mass Area Cd"
drag.Model.CD = 2.0
drag.Model.Area.Set 25,"m^2" 

drag.Model.BallisticCoeffModel.Type = "GaussMarkov"
''''Constant Value determined by CD, Area, and Mass
drag.Model.BallisticCoeffModel.InitialEstimate = 0 
drag.Model.BallisticCoeffModel.Sigma = 0.2
drag.Model.BallisticCoeffModel.HalfLife.Set 2880,"min"

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'  Example Spherical model represented by a Vasicek sequence
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

drag.Model.Type = "Spherical"
drag.Model.SpecMethod = "Ballistic Coeff"
''''' CD implied by BallicCoeffModel constant, Area, and Mass
drag.Model.Area.Set 18,"m^2" 

drag.Model.BallisticCoeffModel.Type = "Vasicek"
drag.Model.BallisticCoeffModel.LongTerm.Constant = 0.06 
drag.Model.BallisticCoeffModel.LongTerm.Sigma = 0.25
drag.Model.BallisticCoeffModel.ShortTerm.InitialEstimate = 0
drag.Model.BallisticCoeffModel.ShortTerm.Sigma = 0.05
drag.Model.BallisticCoeffModel.ShortTerm.HalfLife.Set 60,"min"

Drag Coefficient

The air-drag acceleration estimate has the form:

where B is the ballistic coefficient, CD is the drag coefficient, A is the drag area, m is the spacecraft mass, is the speed of the spacecraft with respect to the atmosphere (where the atmosphere rotates with the Earth), and is calculated according to:

The latter equation defines the method to map the filter estimate at perigee height hp to the optimal estimate of atmospheric density, at current height h, for use in trajectory propagation. is the current estimate of the ballistic coefficient that is constructed from the nominal value of B and the current state estimate , where b = DB/B.

The variable K in the air-drag acceleration estimate is the 3x1 matrix of components of the King-Hele unit vector K on the inertial vector basis [i]. The latter vector is defined by:

where

with (the velocity of the spacecraft with respect to the co-rotating Earth atmosphere) defined as:

See ODTK Orbit Determination: Theorems & Algorithms.

Initialization

A correction to atmospheric density is estimated using a Gauss-Markov process, wherein the user defines the half-life. The sigma is calculated internally based on the atmospheric model. However, you have the opportunity to define an initialization period, in which you define a sigma and half-life that is applied for a specified length of time, at the end of which the normal process begins.

Drag Model Initialization
Parameter Description
Duration Length of time of the initialization period, applied from filter start time. Not used when restarting. Setting the initialization period to 0 turns off initialization.
DensityCorrSigma Value of the sigma during the initialization period. Following the initialization period, the sigma is calculated internally.
DensityCorrHalfLife Value of the half-life during the initialization period. Following the initialization period, the normal half-life is used.