-
Notifications
You must be signed in to change notification settings - Fork 0
Trajectory Simulation
This page covers the procedures used when simulating satellites' motion about primary objects and the formulae used to arrive at these individual solutions.
Below are the methods for determination of a satellite's motion based on the type of trajectory (circular, elliptical, parabolic, hyperbolic):
- ODE integration (any trajectory)
- Analytical (circular)
- Bessel summation (elliptical)
- Newton-Raphson (hyperbolic)
Simulating a satellite's orbit using ordinary differential equation integration is perhaps the most physically intuitive method for estimating the motion of the satellite, as it relies on Newtonian gravitational physics. However, ODE integration is also subject to fluctuation as each subsequent data point is dependent on the solution to the previous points.
The only data necessary to compute the motion of a satellite is the system's standard gravitational parameter
From the initial position
Which then is fed back into the SciPy odeint
function along with the initial velocity
Lastly, though not necessary for plotting, the Cartesian state vectors are used to determine the eccentricity vector
Which can be used to determine the true anomaly
And the rest of the Keplerian elements can be computed using the cartesian_2_keplerian
function.
Circular trajectories are the simplest orbits to predict as it is a special case of an elliptical orbit.
First, circular trajectories are unique in that the eccentricity
From Kepler's Third Law, the orbital period of a satellite in a bound orbit (
The mean angular motion of the satellite in its circular orbit is then closely related to the above, and is therefore useful in determining the true anomaly
Then, Kepler's equation can be used in conjunction with the equation for mean angular motion to determine the true anomaly of the satellite from its initial mean anomaly
Finally, the Cartesian state vectors representing the position and velocity vectors is calculated by supplying the keplerian_2_cartesian
function with
Elliptical trajectories are most accurately calculated by determining the initial mean eccentric anomaly
And thus there is not an analytical solution to solve for the eccentric anomaly as a function of time and must be solved numerically. If it is assumed the epoch
Which can be substituted into Kepler's equation:
Due to the lack of a closed-form solution, the relations can be solved using the Newton-Raphson method and finding the root of the function:
Whose solution can be expressed as a Fourier series including a Bessel function of the first kind
Once the eccentric anomaly at each time
Finally, the Cartesian state vectors then can be determined with the keplerian_2_cartesian
function.
Simulating hyperbolic trajectories by determination of the true anomaly as a function of time is more accurate than ODE integration albeit more computationally expensive. Hyperbolic trajectories also have certain unique caveats setting them apart from bound orbits: the semi-major axis is negative, the eccentricity is greater than 1, and the orbit is aperiodic, etc.
As usual, before simulation, it is necessary to determine the initial mean anomaly
The hyperbolic anomaly also must have the same sign as the true anomaly, provided the true anomaly is negative and the satellite is approaching periapsis. With the initial hyperbolic anomaly, the corresponding mean anomaly is obtained from the Kepler equation for hyperbolic trajectories:
Next, the mean anomaly can be expressed as a function of time:
The relation between the mean anomaly and the hyperbolic anomaly newton
algorithm. The function
After solving for the hyperbolic anomaly at each time being simulated, the next steps are slightly more complicated, as Astrodynamics handles the hyperbolic anomalies differently. When the results of the Newton-Raphson solver are returned, depending on where the satellite is along its trajectory, the returned anomaly may be outside the allowed domain:
For the indices in the solution array where the hyperbolic anomaly is not within the allowed domain, hyperbolic_2_true_anom
function to the absolute values of the estimated hyperbolic anomalies.
The array of true anomalies then must be made negative at the same indices as are negative in the array of hyperbolic anomalies, corresponding to a negative radial velocity. If the radial velocities are positive (and the satellite is moving away from the primary body), the hyperbolic anomalies can be converted to their equivalent true anomaly values without any special treatment. Why? Well:
- It ensures that the angles are within the allowed domain
- It is virtually identical to the plot of true anomalies derived from an equivalent simulation using ODE integration
- I think the resulting true anomalies to make more sense in the context of gravitational encounters
- It emphasizes the aperiodicity of hyperbolic trajectories
- It works.
To elaborate, the true anomaly is defined as the angle between a satellite's argument of periapsis and the position of the satellite, meaning the satellite's true anomaly at periapsis is
Anyway, with the hyperbolic anomalies converted to the corresponding true anomalies, the state vectors can again be computed with the keplerian_2_cartesian
function.
For more information on simulating hyperbolic trajectories, please see the source and inspiration the Astrodynamics algorithm was adapted from.