astrodynx.gravity.j3_acc#
- astrodynx.gravity.j3_acc(t, x, args={'J3': 0.0, 'R_eq': 1.0, 'mu': 1.0})[source]#
Returns the acceleration due to J3 perturbation.
- Parameters:
- Return type:
- Returns:
The acceleration due to J3 perturbation.
Notes
The acceleration due to J3 perturbation is defined as:
\[\begin{split} \begin{align*} a_x &= -\frac{5}{2} \frac{\mu J_3 R_{eq}^3}{r^7} x \left( 3 z - \frac{7 z^3}{r^2} \right) \\ a_y &= -\frac{5}{2} \frac{\mu J_3 R_{eq}^3}{r^7} y \left( 3 z - \frac{7 z^3}{r^2} \right) \\ a_z &= -\frac{5}{2} \frac{\mu J_3 R_{eq}^3}{r^7} \left( 6 z^2 - \frac{7 z^4}{r^2} - \frac{3}{5} r^2 \right) \end{align*} \end{split}\]where \(\boldsymbol{a}\) is the acceleration, \(\mu\) is the gravitational parameter, \(J_3\) is the third 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, "J3": 1e-6, "R_eq": 1.0} >>> expected = jnp.array([-3.5638898e-08, 3.5638898e-08, -9.9788920e-08]) >>> actual = adx.gravity.j3_acc(t, x, args) >>> jnp.allclose(expected, actual) Array(True, dtype=bool)