Zonals and Tesserals

Top  Previous  Next

Due to the Earth’s non-spherical shape and non-uniform density profile, its gravitational field can be derived from a potential function (the geopotential) that depends on the radial distance and the angular location of the Spacecraft with respect to the center of mass of the Earth. The Earth’s equatorial bulge and the flattening of the poles produce the dominant features of the Earth’s geopotential. Spacecraft orbits are affected by the geopotential field; the dominant effects are long-term secular variations in the argument of perigee and right ascension of the ascending node due to the oblateness of the Earth. The Earth's oblate gravitational field can be modeled as a function of Zonal and Tesseral components. The Zonal terms represent an expansion of the Geopotential that is latitude dependent. The Tesseral terms represent the geopotential that is both latitude and longitude dependent.


This page is divided into the following sections:

Enabling Zonal and Tesseral Potential

Setting the Number of Potential Terms

Setting a Custom Potential File



Enabling Zonal and Tesseral Potential

Zonal and Tesseral gravitational affects can be modeled on the Spacecraft for a number of celestial bodies, including custom Celestial objects, by editing the Spacecraft object, proceeding to the Force Models page, and clicking the checkbox next to the body, as shown in the image below.


Once the desired celestial body has been checked, ensure that the body is modeled using Zonal (and Tesseral if desired) potential terms using the Field Type drop-down menu.


Spacecraft ForceModel with Mars modeled using Zonal and Tesseral Potential Terms

Spacecraft ForceModel with Mars modeled using Zonal and Tesseral Potential Terms


To set the field type to model Zonals or Zonals and Tesserals via FreeFlyer script, use the following syntax:


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


fm.PlanetFieldType[3] = 1; // Zonals Only

fm.PlanetFieldType[3] = 2; // Zonals and Tesserals


Where PlanetFieldType can be one of the following:


0 for Point Mass gravity

1 for Zonal potential only

2 for Zonal and Tesseral potential

3 for Zonal and Tesseral potential with Solid Tides


and the [3] represents Mars. The bodies are assigned the following array elements:


[0] = Mercury

[1] = Venus

[2] = Earth

[3] = Mars

[4] = Jupiter

[5] = Saturn

[6] = Uranus

[7] = Neptune

[8] = Pluto

[9] = Moon

[10] = Sun



Setting the Number of Potential Terms

Once "Zonal Potential Terms" or "Zonal and Tesseral Potential Terms" have been selected in the drop-down menu or set via script, set the number of terms in the Potential Field using the numerical input boxes shown in the image above. There is no maximum limit on the number of zonals and tesserals FreeFlyer can model - this will be limited only by the gravity model file you use. The highest-order Earth gravity model packaged with FreeFlyer is the EGM96, which can be used to model anything from 1x1 (point mass) to 360x360.


To set the number of Zonal and Tesseral potential terms via FreeFlyer script, use the following syntax:


fm.PlanetFieldDegree[3] = 4;
fm.PlanetFieldOrder[3]  = 4;



PlanetFieldDegree specifies the number of zonal terms

PlanetFieldOrder specifies the number of tesseral terms. Note that the Field Order must be less than or equal to the Degree.

[3] represents Mars, as indicated in the bulleted list above.



Setting a Custom Potential File

By default, FreeFlyer uses the "EGM96.potential" data file for modeling the geopotential of Earth, but custom files can be specified for Earth or any other celestial body using the file browser shown in the image above or via FreeFlyer script using this syntax:


fm.PlanetoPotentialFilename[2] = "potentialfile.dat";


Where "potentialfile.dat" specifies the path and filename of the custom Geopotential file and the [2] represents Earth, as indicated in the bulleted list above.


The potential file used for each celestial body contains values for the physical properties of the body (Gravity Constant (mu), Body Radius, Reciprocal Flattening). These values are used when propagating the Spacecraft any time a potential file is used. For other calculations that depend on the physical properties of a celestial body, such as Spacecraft.Height or propagation of a Spacecraft with a point mass gravitational model, the celestial body physical properties are set through FreeFlyer script as shown in the examples for setting Earth.Mu below:


// Either of these 2 lines will accomplish the same effect

// Setting one of these properties will also update the value of the other


Earth.Mu = 389600.442;

fm.CelestialObjects[2].Mu = 389600.442;


FreeFlyer includes a variety of potential files for the Earth, Moon, Mars, and Venus. For a complete list of the gravity models included with FreeFlyer, see the Gravity Model Files page in the Data Files section of the Appendix.



See Also

ForceModel Properties and Methods

Solar System settings that affect Spacecraft Propagation