Implement zonal harmonic representation of planetary gravity
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, degreeGravityModel)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel, degreeGravityModel)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel, degreeGravityModel, action)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord,
'Custom', equatorialRadius, planetaryGravitional,
zonalHarmonicCoeff, action)
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord)
implements the mathematical representation of zonal harmonic planetary
gravity based on planetary gravitational potential. For input,
it takes an m-by-3 matrix that contains planet-centered planet-fixed
coordinates from the center of the planet in meters. This function
calculates the arrays of m gravity values in the x-, y-,
and z-axes of the planet-centered planet-fixed
coordinates. It uses the fourth order zonal coefficients for Earth by default.
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, degreeGravityModel) uses
the degree of harmonic model.
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel) uses
the planetary model.
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel, degreeGravityModel) uses
the degree of harmonic model and planetary model.
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord, planetModel, degreeGravityModel, action) specifies
the action for out-of-range input.
[gravityXcoord gravityYcoord, gravityZcoord] = gravityzonal(planetCoord,
'Custom', equatorialRadius, planetaryGravitional,
zonalHarmonicCoeff, action) uses the equatorial radius,
planetary gravitational parameter, and zonal harmonic coefficients
for the custom planetary model.
This function does not include the potential due planet rotation, which excludes the centrifugal effects of planetary rotation and the effects of a precessing reference frame.
|
m-by-3 matrix that contains planet-centered planet-fixed coordinates
from the center of the planet in meters. If | |||
|
Planetary model. Enter one:
Default: | |||
|
Degree of harmonic model.
Default: | |||
|
Planetary equatorial radius in meters. Use this parameter only
if you specify | |||
|
Planetary gravitational parameter in meters cubed per second
squared. Use this parameter only if you specify | |||
|
3-element array defining the zonal harmonic coefficients that
the function uses to calculate zonal harmonics planetary gravity.
Use this parameter only if you specify | |||
|
Action for out-of-range input. Specify one:
|
|
Array of m gravity values in the x-axis of the planet-centered planet-fixed coordinates in meters per second squared. |
|
Array of m gravity values in the y-axis of the planet-centered planet-fixed coordinates in meters per second squared. |
|
Array of m gravity values in the z-axis of the planet-centered planet-fixed coordinates in meters per second squared. |
Calculate the gravity in the x-axis at the equator on the surface of Earth using the fourth degree model with no warning actions:
gx = gravityzonal( [-6378.1363e3 0 0] ) gx = 9.8142
Calculate the gravity using the close approximation method at 100 m over the geographic South Pole of Earth with error actions:
[gx, gy, gz] = gravityzonal( [0 0 -6356.851e3], 'Error' )
gx =
0
gy =
0
gz =
9.8317 Calculate the gravity at 15000 m over the equator and 11000 m over the geographic North Pole using a second order Mars model with warning actions:
p = [2412.648e3 -2412.648e3 0; 0 0 3376.2e3]
[gx, gy, gz] = gravityzonal( p, 'Mars', 2, 'Warning' )
p =
2412648 -2412648 0
0 0 3376200
gx =
-2.6224
0
gy =
2.6224
0
gz =
0
-3.7542 Calculate the gravity at 15000 m over the equator and 11000 m over the geographic North Pole using a custom planetary model with no actions:
p= [2412.648e3 -2412.648e3 0; 0 0 3376e3] GM = 42828.371901e9 % m^3/s^2 Re = 3397e3 % m Jvalues = [1.95545367944545e-3 3.14498094262035e-5 ... -1.53773961526397e-5] [gx, gy, gz] = gravityzonal( p, 'custom', Re, GM, ... Jvalues, 'None' )
gravityzonal is implemented using the following
planetary parameter values for each planet:
| Planet | Equatorial Radius (Re) in Meters | Gravitational Parameter (GM) in m3/s2 | Zonal Harmonic Coefficients (J Values) |
|---|---|---|---|
| Earth | 6378.1363e3 | 3.986004415e14 | [ 0.0010826269 -0.0000025323 -0.0000016204 ] |
| Jupiter | 71492.e3 | 1.268e17 | [0.01475 0 -0.00058] |
| Mars | 3397.2e3 | 4.305e13 | [ 0.001964 0.000036 ] |
| Mercury | 2439.0e3 | 2.2032e13 | 0.00006 |
| Moon | 1738.0e3 | 4902.799e9 | 0.0002027 |
| Neptune | 24764e3 | 6.809e15 | 0.004 |
| Saturn | 60268.e3 | 3.794e16 | [0.01645 0 -0.001] |
| Uranus | 25559.e3 | 5.794e15 | 0.012 |
| Venus | 6052.0e3 | 3.257e14 | 0.000027 |
Zonal Harmonic Gravity Model (Aerospace Blockset) block
Vallado, D. A., Fundamentals of Astrodynamics and Applications, McGraw-Hill, New York, 1997.
Fortescue, P., J. Stark, G. Swinerd, (Eds.). Spacecraft Systems Engineering, Third Edition, Wiley & Sons, West Sussex, 2003.
Tewari, A., Atmospheric and Space Flight Dynamics Modeling and Simulation with MATLAB and Simulink, Birkhäuser, Boston, 2007.