Atmospheric Forces

Top  Previous  Next

Spacecraft in low Earth orbits experience significant orbital perturbations due to atmospheric forces (drag and lift). Drag acts as a dissipative force in the velocity direction, which reduces the orbit's size (semi-major axis), and hence shortens the orbital period. As the orbit is further restricted, the drag force becomes amplified due to the increased atmospheric density. Lift provides an outward force to the orbit. In FreeFlyer, forces due to Atmospheric Drag and Lift use the same density model.


The formulas used for calculating the forces due to Drag and Lift are:




CD ≡ Spacecraft coefficient of drag

CL ≡ Spacecraft coefficient of lift

AD ≡ Spacecraft drag area

AL ≡ Spacecraft lift area

ρ ≡ Density at Spacecraft's current location (depends on atmospheric density model in use, see below)

vrel ≡ Magnitude of Spacecraft velocity relative to the rotating atmosphere


v ≡ Spacecraft velocity vector in MJ2000 frame

ωE ≡ Earth spin axis vector in MJ2000 frame

R ≡ Spacecraft position vector in MJ2000 frame

UD ≡ Unit vector in the vrel direction

UL ≡ Unit vector in the vrel x (R x vrel) direction


There are several Atmospheric Density Models available in FreeFlyer:


Analytic Model

Harris-Priester Model

Jacchia-Roberts Model

MSIS-2000, MSIS-90, MSIS-86


If desired, the user can also define custom density models or use Schatten Solar Flux files with the Jacchia-Roberts drag type.


In addition to choosing a density model, FreeFlyer also allows you to choose whether to enable or disable Lift or Drag, and to specify a density scale factor if desired:

Enabling Lift and/or Drag

Setting the Density Scale Factor



Enabling Lift and/or Drag

By default, drag effects will be included in a Spacecraft's Force Model, but not lift. If drag is enabled, FreeFlyer will calculate and apply drag forces to the propagation so long as the Spacecraft is within the Earth’s atmosphere, regardless of its central body. This behavior also applies to lift. You can change these settings by editing the Spacecraft, proceeding to the Force Model page, and selecting Earth from the list of celestial bodies. Then, enter use the Lift and Drag checkboxes shown in the image below to enable or disable each force.



To enable or disable lift or drag via FreeForm script, use the syntax shown below:


Alias fm = (Spacecraft1.Propagator AsType RK89).ForceModel; // This alias is used to shorten the script examples below


// To enable Lift and Drag

fm.Drag = 1;
fm.Lift = 1;


// To disable Lift and Drag

fm.Drag = 0;
fm.Lift = 0;


Spacecraft.Accelerations is an array containing the accelerations due to various forces on the Spacecraft and can be used to view the drag or lift forces acting on a Spacecraft. The example below shows how to view force contributions from each source. The dimension of the Accelerations array is dependent on the Spacecraft Force Model.


For i = 0 to Spacecraft1.Accelerations.Count-1;


      // Report the value of each acceleration component

      Report Spacecraft1.Accelerations[i].Description, Spacecraft1.Accelerations[i].Acceleration;





Setting the Density Scale Factor

In addition to the nominal atmospheric density discussed in the pages linked above, FreeFlyer allows you to modify the density profile via the density scale factor, Rho1 (ρ1). This property is set to zero by default. FreeFlyer computes an effective density based on the following equation:




ρ ≡ Effective density

ρ0 ≡ Nominal density

ρ1 ≡ Density scale factor


To set the density scale factor via the Spacecraft object editor, edit the Spacecraft, proceed to the Force Model page, and select Earth from the list of celestial bodies. Then, enter a value in the Rho1 numeric entry field shown in the image below.



To set the density scale factor via FreeForm script, use the following syntax:


fm.Rho1 = 0;


Setting the scale factor via FreeForm script allows you to update the value at each Step command if desired. The Rho1 Sigma (ForceModel.Sigma_Rho1) is the uncertainty in the density scale factor used by the OrbitDetermination object.



See Also

ForceModel Properties and Methods

Solar System settings that affect Spacecraft Propagation