In the numerical implementation, all Jacobians were calculated using the JAX package [20
] utilizing automatic differentiation [22
]. In the nonlinear least-squares steps, NumPy’s pinv()
was used to calculate the Moore–Penrose pseudo-inverse through singular-value decomposition (SVD). Additionally, a just-in-time compiler was used to optimize the code. All timing was handled by the process_time()
from the Python package time
. For all problems, we considered the Earth–Moon system with the parameters given in Table 1
. Additionally, for the TFC implementation, the parameters used are summarized in Table 2
For all numerical tests, the unknown vector must be initialized. First, the terms
were all initialized by a null vector, which ultimately represents the simplest interpolating expression for the state variables. This initialization represents the worst-case scenario when there is no estimation of the trajectory, but just fitting the constraints. Next, the other unknown values of
, and b
(which are associated with the position, velocity, and the period of the orbit) were initialized using Richardson’s third-order analytical method for Halo-type periodic motion [23
]. This initialization was used to find the first orbit of the specified Jacobi constants. For the following orbits, the desired Jacobi constant was incrementally increased, and the converged values from the prior Jacobi constant level were used to initialize each following step.
The same process was utilized for the differential corrector method [5
], which was implemented to compare with TFC. In the differential corrector inner-loop, the desired Jacobi constant was obtained by an iterative least-squares approach to update the initial guess.
4.2. Lyapunov Orbits
First, the TFC method was used to explore the computation of Lyapunov orbits, which lie in the x
plane, the orbital plane of the two primaries. For our test, the Lyapunov orbits were computed over a range of Jacobi constants, starting close to the equilibrium point’s specific energy levels and terminating at a Jacobi constant of 2.92. The associated trajectories for the orbits around L1 and L2 are provided in Figure 2
For the solution of Lyapunov orbits, it was important to transform the time for orbits of lower Jacobi constants, i.e., orbits closer to the secondary body,
. This was done by the time transformation from Ref. [5
, such that
This produces the following chain of transformations
, or rather
, which produces the final transformation:
To stress the importance of this scaling, Figure 3
shows both the scaled and non-scaled TFC solution for Lyapunov orbits around L1 (Figure 3
a) and L2 (Figure 3
It can be seen that this scaling has a drastic effect on the accuracy of the converged solution. For orbits around L1, without scaling, significant accuracy loss is observed starting at a Jacobi constant of around 3.15. For orbits around L2, this accuracy reduction starts at a Jacobi constant of around 3.06, but is just as drastic.
Additionally, a comparison with the differential corrector method is provided in terms of speed and accuracy. Figure 4
compares the residuals for both methods, where it can be seen that the TFC approach is around two orders of magnitude more accurate than the differential corrector at higher Jacobi constants. Furthermore, the computation of the TFC solution is slightly faster, a little over 0.25 s in the extreme case, as displayed in Figure 5
To further understand the computation time associated with the TFC approach, consider the computational breakdown given in Figure 6
. Additionally, the statistics associated with this breakdown, in terms of mean and standard deviation, are given in Table 3
. In the TFC method, the three major computations in each nonlinear least-squares iteration are evaluating the loss vector, the Jacobian, and the least-squares. Figure 6
shows that around 77% of the total computation time is associated with the least-squares portion. This should come as no surprise since the Jacobian is a 4 N × 2 m matrix—
for this problem.
While the least-squares, i.e., matrix inversion, is the main bottleneck with the computational efficiency, a marginal speed gain could be achieved by removing the reliance on automatic differential through JAX [20
] for the computation of the loss vector and Jacobian. Admittedly, these two could be “hard-coded” since the partial derivatives populating the Jacobian can be analytically derived. However, the speed gain associated with this is unknown and should be the focus of future implementations and numerical tests.
Similar to the L1 Lagrange point test, Figure 2
a displays the computed trajectories around the L2 Lagrange point. Additionally, as in Figure 4
and Figure 5
, the accuracy and computation time for these tests are provided in Figure 7
and Figure 8
. In Figure 7
, the TFC method is more accurate, albeit only slightly. At a Jacobi constant level of around 3.00 and above, the differential corrector method does not converge, as shown by the jump in accuracy. At this Jacobi constant level, the TFC method’s accuracy starts to decrease before failing to converge at the Jacobi constant value of 2.92. This drop-off in the accuracy of the TFC method can easily be seen by analyzing Figure 8
, where the red box highlights where the TFC method’s max iteration limit is reached. In other words, at the Jacobi constant levels lower than 3.00, the representation of the orbit through the free function composed of Chebyshev polynomials starts to fail.
In both Lyapunov orbits around L1 and L2, the reduction in accuracy can be attributed to the definition of the free function, , not fully capturing the solution space of the trajectory. As the Jacobi constant decreases, the complexity of the trajectory’s shape increases and therefore an increasing number of basis functions is needed. However, contrary to this, increasing the basis terms to more than 130 does not provide a more accurate solution in the numerical implementation. Therefore, when solving lower Jacobi constant level Lyapunov orbits, a different definition of the free function must be used; future effort should focus on exploring other basis types.
4.3. Halo Orbits
Next, the proposed technique was utilized to compute Halo orbits around L1 and L2. These orbits differ from the Lyapunov orbit because they are not
restricted to the x
plane and are therefore three-dimensional. In fact, this family of orbits is a bifurcation of the Lyapunov orbits computed in the previous section and is characterized by “northern” and “southern” bifurcations. However, using the TFC method to compute these Halo orbits, the only difference is in the initialization of the
, and b
parameters. Additionally, for Halo orbits, the time transformation introduced in Equation (23
) was not used because it produced unfavorable convergence properties, i.e., the method would simply converge to the Lyapunov family of orbits. First, we look at the computation of the “northern” family of Halo orbits around L1 and L2, as plotted in Figure 9
In these plots, we can see that, around the L1 equilibrium point, the method converged to Lyapunov orbits for higher Jacobi constants. However, as the Jacobi constant decreases below 3.025, the method does not converge to a periodic orbit, as shown by the increase in residuals around the Jacobi constant value of 3.025. At the other equilibrium point, L2, the method converges for all Jacobi constant values; however, at values below 3.025, the solution jumps to a circular orbit around the Moon. Therefore, these orbits were not plotted. This “jumping” from the Halo orbit bifurcation to the circle orbit bifurcation is the major drawback with the algorithm in its current state; however, it is noted that the differential corrector approach also suffers from this. The reason that the TFC method exhibits this behavior is that the numerical solution, i.e. the nonlinear least-squares optimization step, has no information on the desired bifurcation. Therefore, the solution becomes closely linked to (1) the initialization of the unknown parameters and (2) the definition of the free function . In other words, the initialized parameters will converge to the closest local minimum.
Like the Lyapunov orbit tests, the loss vector’s maximum residual was recorded and is plotted in Figure 10
. For almost all converged solutions, the residuals were on the order of
; however, around a Jacobi constant level of 3.025, the accuracy decreases for orbits around L1. The convergence for Halo orbits took longer, with some cases taking 8 s, while, on average, the solution time was around 2 s, as shown in Figure 11
. Similar to the “northern” Halo orbits plotted in Figure 9
, the Halo orbits of the “southern” bifurcation were computed with similar findings and, therefore, omitted from this paper for brevity.