astrodynx.gravity.j4_acc

Contents

astrodynx.gravity.j4_acc#

astrodynx.gravity.j4_acc(t, x, args={'J4': 0.0, 'R_eq': 1.0, 'mu': 1.0})[source]#

Returns the acceleration due to J4 perturbation.

Parameters:
  • t (DTypeLike) – The time.

  • x (ArrayLike) – The state vector.

  • args (PyTree[Any]) – Static arguments.

Return type:

ArrayLike

Returns:

The acceleration due to J4 perturbation.

Notes

The acceleration due to J4 perturbation is defined as:

\[\begin{split} \begin{align*} a_x &= \frac{15}{8} \frac{\mu J_4 R_{eq}^4}{r^7} x \left( 1 - \frac{14 z^2}{r^2} + \frac{21 z^4}{r^4} \right) \\ a_y &= \frac{15}{8} \frac{\mu J_4 R_{eq}^4}{r^7} y \left( 1 - \frac{14 z^2}{r^2} + \frac{21 z^4}{r^4} \right) \\ a_z &= \frac{15}{8} \frac{\mu J_4 R_{eq}^4}{r^7} z \left( 5 - \frac{70 z^2}{3 r^2} + \frac{21 z^4}{r^4} \right) \end{align*} \end{split}\]
where \(\boldsymbol{a}\) is the acceleration, \(\mu\) is the gravitational parameter, \(J_4\) is the fourth zonal harmonic, \(R_{eq}\) is the equatorial radius, and \(\boldsymbol{r} = [x, y, z]\) is the position vector.

References

Vallado, 2013, pp.594.

Examples

>>> import jax.numpy as jnp
>>> import astrodynx as adx
>>> t = 0.0
>>> x = jnp.array([1.0, -1.0, 1.0, 0.0, 0.0, 0.0])
>>> args = {"mu": 1.0, "J4": 1e-6, "R_eq": 1.0}
>>> expected = jnp.array([-5.345836e-08, 5.345836e-08, -1.781946e-08])
>>> actual = adx.gravity.j4_acc(t, x, args)
>>> jnp.allclose(expected, actual)
Array(True, dtype=bool)