Introduction

The KAM theorem, named after Kolmogorov [1], Arnold [2] and Moser [3] has at last offered a theoretical answer to the well known “small divisor” problem. But while it is of major theoretical importance in celestial mechanics, practical applications have not materialized. This seems to be as true today as it was 50 years ago when M. Henon [4] first noticed it.

In an earlier effort, Wiesel [5], the current author compared the Von Ziepel method to a KAM theorem derived method for a simple problem. There were several differences between the two methods. First, there do exist perturbations in the coordinates, not just the momenta as the KAM proof postulated. Second, the frequencies change when a degenerate system is used as the reference problem, an effect the KAM theorem rules out. These difficulties were overcome for a coupled harmonic oscillator, producing a perturbation algorithm that is at once numerically based, retains the literal dependence of the variables, and which can be iterated to convergence.

In this paper, that method is further developed, and successfully applied to the problem of a satellite orbiting a non-spherical Earth. The methods of [5] are extended, eliminating the dependence on numerical partial derivatives. Rather, the first two orders of the Hamilton-Jacobi equation are solved by iterative techniques. This is sufficient to describe not only the KAM torus itself, but to also extract its state transition matrix. Frequency corrections can be found through integrations over the torus as convergence proceeds.

The goal of this paper is to construct a specified KAM torus and its immediate environs in the full Earth geopotential problem. A KAM torus is more than an orbit. It is a three dimensional surface embedded in a six dimensional phase space. On this surface, all the momenta J i are constant, and all three frequencies are constant. Three angle coordinates 𝜗 i parameterize the surface, and all increment linearly with time. It is a local realization of the Hamilton-Jacobi theorem. The torus is a static, geometric object, here rotating with the Earth below. As all three frequencies are constant on the torus, it is the ideal reference solution for either Walker constellations or for formation flight of groups of satellites. To the extent satellites can be maneuvered precisely into the torus, they will not drift with respect to each other. This is of paramount importance for navigation satellites, but still important for minimum fuel formation flight. So, a KAM torus is more than an orbit, and a single torus would contain an entire Walker constellation, or a satellite cluster; but it is less than a complete general perturbation solution. To navigate and maneuver in the torus vicinity, the state transition matrix will be needed. This will also be obtained in the current paper. And all of this, the torus and its state transition matrix, can be described by just four scalar Fourier series with numerical coefficients, but still retaining all the literal variable dependence necessary.

Dynamics

A canonical perturbation theory maps one Hamiltonian system onto another. For an attempt to apply the KAM theorem methods, both systems should be expressed in action angle variables, and should be “close” to each other. The two dynamical systems will be the problem of orbiting in the Earth’s geopotential field, and the classical two body problem. This problem will employ three sets of variables. The first, the “physical” variables, will be written as the rectangular state vector X T = (x,y,z,p x ,p y ,p z ). The second set will be various possible sets of action - angle variables for the two body problem. These will be written as the state vector Y T = (𝜃 i ,I i ). Finally, the action angle variables for the KAM torus will be written as Z T = (𝜗 i ,J i ) when state vector formalism is more convenient.

Begin with the Hamiltonian for satellite orbits about the non-spherical Earth in the Earth-centered rotating frame

$$\begin{array}{@{}rcl@{}} {\mathcal H} &=& {1 \over 2} \left( {p_{x}^{2}} + {p_{y}^{2}} + {p_{z}^{2}} \right) + \omega_{\oplus} \left( y p_{x} - x p_{y} \right) \\ &-& {{ \mu } \over r } \sum\limits_{n = 0}^{\infty} \sum\limits_{m = 0}^{n} \left( { r \over { R_{\oplus} }} \right)^{-n} {P_{n}^{m}} (\cos \theta ) \left( C_{nm} \cos m \lambda + S_{nm} \sin m \lambda \right) \end{array} $$
(1)

Here the Earth-centered rotating rectangular coordinates are x,y,z, and the conjugate momenta are the inertial velocity components, but resolved along the rotating axes. The quantities μ, R , and ω are the gravitational parameter, the equatorial radius of the Earth, and the Earth’s rotation rate. The \( {P_{n}^{m}} \) are the usual associated Legendre polynomials, and the coefficients C n m , S n m are the spherical harmonic coefficients of the gravity model. Since a KAM torus is supposed to be a static geometric structure, using the Earth-centered rotating frame removes the time dependence of the system. Although the co-latitude 𝜃 and longitude λ appear, (1) is most conveniently thought of as a function of the rectangular coordinates.

A classical perturbation theory would at this point need to express the Hamiltonian in the two body problem variables. Transforming this system into two body action angle variables will be done numerically. That is, the physical Hamiltonian written in two body action angle variables is simply \( {\mathcal H}(\textbf {X}(\textbf {Y})) \). In this paper the EGM-96 [6] Earth gravity model will be used, usually truncated at order and degree twenty. Units will be nondimensional, using Earth radii, setting μ = 1, and making the time units about 13.44 minutes. Exact conversion values are set from the gravity model.

The two body problem appears twice in this method. The first time it is the change of variables from physical quantities to an action - angle set for the unmodified two body problem. The second appearance will be in modified form, as the target Hamiltonian onto which the native system will be mapped. Since this will be an application of KAM theorem techniques, the dynamics must begin with action angle variables. The two body problem action angle variables take several forms, but to avoid time dependence in the dynamics, the node must be replaced with the node measured from Greenwich. The fact that this makes the node a function of time is not relevant, since all three angles will shortly be functions of time. For the two body problem the Delaunay variables are one set of action angle variables. In terms of the classical elements a, the semimajor axis, e the eccentricity, i the inclination, M the mean anomaly, ω the argument of perigee, and Ω the node, the Delaunay elements are

$$ \begin{array}{ll} I_{1} = L = \sqrt{ \mu a } & \;\;\; \theta_{1} = l = M \\ I_{2} = G = \sqrt{ \mu a } \sqrt{ 1 - e^{2} } & \;\;\; \theta_{2} = g = \omega \\ I_{3} = H = \sqrt{ \mu a } \sqrt{ 1 - e^{2} } \cos i & \;\;\; \theta_{3} = h = {\Omega} \end{array} $$
(2)

Since the node is measured from Greenwich, a simple canonical transformation shows the two body Hamiltonian has the form

$$ {\mathcal H}_{TBP} = - {{ \mu^{2} } \over { 2 {I_{1}^{2}} }} - \omega_{\oplus} I_{3} $$
(3)

The Poincaré action angles are a variant of these, and have the advantage that they are always defined for any orbital elements. They are

$$ \begin{array}{l l} I_{1} = L & \;\;\; \theta_{1} = l + g + h \\ I_{2} = L - G & \;\;\; \theta_{2} = - g - h \\ I_{3} = G - H & \;\;\; \theta_{3} = - h \end{array} $$
(4)

with a Hamiltonian in the rotating frame of

$$ {\mathcal H}_{TBP} = - {{ \mu^{2} } \over { 2 {I_{1}^{2}} }} + \omega_{\oplus} (-I_{1} + I_{2} + I_{3} ) $$
(5)

Here, \( {\mathcal H}_{TBP} \) will stand for the unaltered two body Hamiltonian. Not covered in detail here is the fact that the first and second derivative matrices of the physical state X with respect to the action angle variables Y will be needed. That is, we have available both X i / Y j , a six by six matrix, but also the cubical tensor 2 X i / Y j Y k . The need for both of these will become apparent shortly.

To serve as the target system onto which the native Hamiltonian will be mapped, the classical two body problem must be modified somewhat. The target Hamiltonian is a function of the new constant momenta, which are the J i in the notation of this paper. Measuring the node from Greenwich matches the Earth’s rotation and introduces a second frequency into the two body problem. As the target Hamiltonian must be in action angle form, it is not a function of the coordinates 𝜗 i . However, the KAM Newton-Rhapson iteration method introduced below will fail with zero frequencies, and it is well known that orbiting a non-spherical planet forces non-zero frequencies in all three angle variables. This will avoid the well-known non-degeneracy condition on the reference Hamiltonian in the KAM theorem. The author found in [5] that frequency corrections are an essential part of adapting the KAM theorem for practical problems. Accordingly, let all three angle variables have corrections added to their frequencies. Insert the possibility of frequency corrections by adding an extra unknown potential function to the two body Hamiltonian

$$\begin{array}{@{}rcl@{}} {\mathcal K} &=& {\mathcal H}_{TBP} (J) + {\Delta} V(J )\\ &=& {\mathcal H}_{TBP} (J) + J_{\alpha} {\Delta} \omega_{\alpha} + {1 \over 2 } {{ \partial {\Delta} \omega_{\alpha} } \over { \partial J_{\beta} }} {\Delta} J_{\alpha} {\Delta} J_{\beta} + ... \end{array} $$
(6)

In the above the convention that Greek indices are summed is introduced, and will be used frequently in what is to follow. The first order term in the potential directly adds a correction Δω i to the frequencies of the two body problem. This correction will be present on the reference torus, so it is multiplied by J i instead of the offset from the reference torus, ΔJ i = J i J i0. The Δω i will be initialized using the well known J 2 oblateness rates calculated from the secular potential

$$ V(J) \approx {{ \mu^{4} J_{2} R_{\oplus}^{2} } \over { L^{3} G^{3} }} \left( {1 \over 4 } - { 3 \over 4 } {{ H^{2} } \over { G^{2} }} \right) $$
(7)

and an equivalent form in the Poincaré variables. But this is only an approximation, and will be corrected by a method to be introduced shortly. The last term, quadratic in ΔJ i = J i J i0, the displacement off the nominal torus specified by the J i0, affirms that nearby trajectories also lie on KAM tori. Their frequencies must depend only on the action momenta, but may be different from that of the reference torus. The frequency partial derivative matrix will also be determined in what is to follow. What this transform does is to change the system frequencies by specified amounts

$$ \omega_{i} = {{ \partial {\mathcal K} } \over { \partial J_{i} }} = {{ \partial {\mathcal H}_{TBP} } \over { \partial J_{i} }} + {\Delta} \omega_{i} $$
(8)

on the reference torus itself Δω. For nearby tori, JJ 0 additional frequency corrections appear, first order in the ΔJ i . This means that we are free to use the two body problem geometry as a reference solution, while decoupling the geometry of the two body problem from its traditional frequencies. Assuming that the frequency corrections depend on the action momenta is simply an affirmation that the system is still in action-angle form. As this is no longer quite the two body problem, this system will be referred to as the target, or reference Hamiltonian.

A Hamilton-Jacobi Solution Algorithm

The underlying approach will be to change variables using the Hamilton-Jacobi equation to map the physical system (1) onto the target problem (6), \( {\mathcal H} \rightarrow {\mathcal K}\). A classical F 2 = S generating function will be used, where S = S(𝜃,J) is a function of the old angles and the new momenta. Transform relationships are

$$ \vartheta_{i} = {{ \partial S } \over { \partial J_{i} }}, \;\;\; I_{i} = {{ \partial S } \over { \partial \theta_{i} }} $$
(9)

To be useful in actual applications, the solution must not just construct the torus, but should also include nearby tori. This will involve a Taylor’s expansion in the new momenta about the chosen torus values J i0.

The comparison of an attempted KAM solution with a Von Ziepel literal approach in [5] showed that there do exist periodic perturbations along the KAM angle variable directions, at least when the perturbations are finite. The missing information in the local generating function is the dependence on the action momenta J i and on time. Until information on the local dependence of S 1 on the action momenta J i is obtained, it is not possible to map both the final action angle variables 𝜗 i ,J i back onto the osculating variables 𝜃 i ,I i , and further onto physical space. Also, a KAM torus alone will be of only theoretical interest without the means to do orbit determination and maneuver planning. Both of these considerations show that the generating function for a single torus, S = S(𝜃 i ,J i0) must be extended beyond single constant values J i0 of the action momenta. In other words, we need to add some thickness to the torus to make it usable.

If the nearby space is also filled with KAM tori, then two types of terms are expected as we calculate a Taylor’s expansion for S in the J i about the reference value J i0. Begin by affirming the near identity transform, but now including orbits near the reference torus, and the possibility of frequency changes. So the lead term in S is 𝜃 α J α = 𝜃 α (J α,0 + ΔJ α ). The periodic part of S 1 should expand into further terms in ΔJ i = J i J i0 which will also be periodic in the angles 𝜃 i . So close to the reference torus, S should have the form

$$\begin{array}{@{}rcl@{}} S(\theta, J ) &=& \theta_{\alpha} (J_{\alpha, 0} + {\Delta} J_{\alpha} ) + S_{1} (\theta ) + {{ \partial S_{1} (\theta) } \over { \partial J_{\alpha} }} {\Delta} J_{\alpha} \\ &&+ \,{1 \over 2! } {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{\alpha} \partial J_{\beta} }} {\Delta} J_{\alpha} {\Delta} J_{\beta} + ... \end{array} $$
(10)

The generating function is shown as an explicit Taylor’s expansion about the reference torus (ΔJ i = 0), but a generalized function of the angles 𝜃 i . This is because we propose to calculate the functions of the 𝜃 i as Fourier series with numerically determined coefficients. This will be done via a set of Newton-Rhapson iterations, to be developed below. The generating function is shown truncated to second order in the ΔJ i . As we are only interested in motion on, and in the immediate vicinity of a specified KAM torus (J i0 given ), this will prove to be sufficient to fully describe both the KAM torus surface and all adjacent trajectories. Actually, the quadratic term will vanish in all but one instance as we evaluate partial derivatives on the torus itself, ΔJ i = 0. In that one instance, an alternate method will be used to produce a closed, self-consistent algorithm, making higher order terms unnecessary.

A generating function transform produces explicit equations for half of the variables, and implicitly determines the other half of the variables. Practical questions of implementation are put aside here to concentrate on the construction of the generating function solution. This generating function produces the variable transformation

$$\begin{array}{@{}rcl@{}} \vartheta_{i} &=& {{ \partial S } \over { \partial J_{i} }} = \theta_{i} + {{ \partial S_{1} (\theta) } \over { \partial J_{i} }} + {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{i} \partial J_{\alpha} }} {\Delta} J_{\alpha} + ... \end{array} $$
(11)
$$\begin{array}{@{}rcl@{}} I_{i} &=& {{ \partial S } \over { \partial \theta_{i} }} = J_{i,0} + {\Delta} J_{i} + {{ \partial S_{1} } \over { \partial \theta_{i} }} + {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{\alpha} \partial \theta_{i} }} {\Delta} J_{\alpha} \\ &&+\, { 1 \over 2 } {{ \partial^{3} S_{1} (\theta) } \over { \partial J_{\alpha} \partial J_{\beta} \partial \theta_{i} }} {\Delta} J_{\alpha} {\Delta} J_{\beta} + ... \end{array} $$
(12)

Since the generating function terms S(𝜃) are obtained as Fourier series, additional partial derivatives with respect to the 𝜃 i can be calculated as needed. If this expression only included the identity transform and S 1(𝜃) term, this would be an attempt to directly apply the KAM theorem methodology. It would also ignore the first order terms in ΔJ i , which become zero order terms in the angle transformation (11). Since these terms only change the angles, they do not change the geometry of the torus. But they must be included to model actual time-dependent orbits. The only terms a direct KAM analysis would produce are the periodic perturbations in the momentum transform. This changes the shape of the torus, producing a static, geometric object. However, it ignores periodic perturbations within the surface of the torus itself, as well as the possibility of changes in the system frequencies. This may well explain why practical attempts to apply KAM theory have such a poor reputation.

Now, to continue the KAM transformation, take the full Hamilton-Jacobi equation

$$ {\mathcal H} \left( \theta_{i} , I_{i} = J_{i, 0} + {\Delta} J_{i} + {{ \partial S } \over { \partial \theta_{i} }} + {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{\alpha} \partial \theta_{i} }} {\Delta} J_{\alpha} + ... \right) = {\mathcal K} (J_{i,0} + {\Delta} J_{i} ) $$
(13)

after inserting (10), and ignoring the time portion of the classical Hamilton-Jacobi equation. Expanding in a Taylor’s series in the ΔJ i and grouping terms yields, at order zero

$$ {\mathcal H} \left( \theta_{i} , I_{i} = J_{i,0} + \partial S_{1} / \partial \theta_{i} \right) = {\mathcal K} \left( J_{i,0} \right) $$
(14)

At the first order, the conditions are

$$ \left. {{ \partial {\mathcal H} } \over { \partial J_{k} }} \right|_{\Delta J_{i} = 0} = {{ \partial {\mathcal H} } \over { \partial I_{\alpha} }} {{ \partial I_{\alpha} } \over { \partial J_{k} }} = \left. {{ \partial {\mathcal K} } \over { \partial J_{k} }} \right|_{\Delta J_{i} = 0} $$
(15)

Calculating I i / J k = δ i k + 2 S 1/ J k 𝜃 i from (12), and substituting in the native Hamiltonian reduces the above to

$$ {{ \partial {\mathcal H}} \over { \partial I_{\alpha} }} \left( \delta_{\alpha k } + {{ \partial^{2} S_{1} } \over { \partial \theta_{\alpha} \partial J_{k} }} \right) = {{ \partial {\mathcal K} } \over { \partial J_{k} }} $$
(16)

where δ i j is Kroenecker’s delta function. This rearranges somewhat to give

$$ {{ \partial {\mathcal H} } \over { \partial I_{\alpha} }} { \partial \over { \partial \theta_{\alpha} }} {{ \partial S_{1} } \over { \partial J_{k} }} = {{ \partial {\mathcal K} } \over { \partial J_{k} }} - {{ \partial {\mathcal H} } \over { \partial I_{k} }} $$
(17)

This is a set of partial differential equations for the unknown series S 1/ J k . All partial derivatives are, of course, evaluated on the reference torus.

Now, the assumption is that the Hamiltonian functions \( {\mathcal H} \) and \( {\mathcal K } \) are quite close to each other. In the KAM theorem proof they are assumed to be infinitesimally close, but in the current application we will assume that the differences are “small”. For the Earth the largest term is the oblateness J 2 term, which is about order 10− 3 compared to the two body problem. Rather than the traditional power series expansions in a small parameter, following the KAM theory proof methodology, we will attempt solutions to (14) and (17) by Newton-Rhapson linearization methods. In the zero order equation, assume there is a small correction to the generating function S 1S 10 + δ S 1, and expand (14) to obtain

$$\begin{array}{@{}rcl@{}} \delta {\mathcal H} & = & {\mathcal K} (J_{0} ) - {\mathcal H} (\theta, I = J_{0} + \partial S_{10} / \partial \theta ) \approx {{ \partial {\mathcal H} } \over { \partial I_{\alpha} }} { \partial \over { \partial \theta_{\alpha} }} \delta S_{1} (\theta ) \\ & \approx & \omega_{\alpha} { \partial \over { \partial \theta_{\alpha} }} \delta S_{1} (\theta ) \end{array} $$
(18)

The first approximation indicates truncating the expansion at the first order in δ S 1, while the second notes the additional approximation \( \partial {\mathcal H} / \partial I_{i} \approx \omega _{i}\). This is the standard approach in the KAM theorem proof, but here with finite perturbations we will not see true quadratic convergence. The “slope” coefficient on the linearized term has been approximated.

In [5] the first order terms were obtained by numerical partial derivatives. Here, they are calculated by a Newton-Rhapson method, as in the zero order equation. Assume a small correction S 1/ J k →( S 1/ J k )0 + δ S 1/ J k . Then inserting this into (17) and expanding to first order in small quantities produces

$$\begin{array}{@{}rcl@{}} \delta {{ \partial {\mathcal H}} \over { \partial J_{k} }} & = & {{ \partial {\mathcal K} } \over { \partial J_{k} }} (J_{0} ) - {{ \partial {\mathcal H} } \over { \partial I_{k} }} (\theta, I ) - {{ \partial {\mathcal H} } \over { \partial I_{\alpha} }} { \partial \over { \partial \theta_{\alpha} }} \left( {{\partial S_{1} } \over { \partial J_{k} }} \right)_{0} \approx {{ \partial {\mathcal H} } \over { \partial I_{\alpha} }} { \partial \over { \partial \theta_{\alpha} }} \delta {{\partial S_{1} } \over { \partial J_{k} }} \\ & \approx & \omega_{\alpha} { \partial \over { \partial \theta_{\alpha} }} \delta {{\partial S_{1} } \over { \partial J_{k} }} , \;\;\;\; k = 1, 2, 3 \end{array} $$
(19)

Again, the same two approximations have been made: first that the corrections δ S 1/ J k are small, and second that the physical Hamiltonian partial derivatives yield the system frequencies. While the perturbations are finite, the corrections have been truncated at first order, this is the usual approximation in a Newton-Rhapson algorithm. It will be iterated to convergence.

In mathematical proofs of the KAM theorem, it is assumed that the Hamiltonian error \( \delta {\mathcal H} \) and corrections to the generating function δ S 1 are expanded as Fourier series. That is

$$\begin{array}{@{}rcl@{}} \delta {\mathcal H}&=& \sum\limits_{{\vec i}= 1}^{\infty} \left\{ C_{i, H} \cos (\vec i \cdot \vec \theta ) + S_{i, H} \sin (\vec i \cdot \vec \theta ) \right\} \\ \delta S_{1} &=& \sum\limits_{{\vec i}= 1}^{\infty} \left\{ C_{i, S} \cos (\vec i \cdot \vec \theta ) + S_{i, S} \sin (\vec i \cdot \vec \theta ) \right\} \end{array} $$
(20)

The three summation indices \( \vec i \) are written as a vector, as are the angles \( \vec \theta \), making the trigonometric arguments a dot product. Here, it can’t just be assumed that these functions are available, but both \( \delta \; {\mathcal H}\) and the three \( \delta \partial {\mathcal H} / \partial J_{k} \) can be calculated numerically at a given set of 𝜃 i and J 0. This means that the Fourier series for \( \delta {\mathcal H} \) and the \( \delta \partial {\mathcal H} / \partial J_{k} \) can be found by numerical quadratures using the classical Fourier coefficient formulae. Inserting (20) into the zeroth order Eq. 18 and equating coefficients produces the solution

$$ C_{i, S} = - {{ S_{i, H} } \over { \vec i \cdot \vec \omega }}, \;\; S_{i, S} = {{ C_{i, H} } \over { \vec i \cdot \vec \omega }} $$
(21)

The exact same approach suffices to solve (19) for the Fourier coefficients of δ S 1/ J k . The quantities \( \vec i \cdot \vec \omega \) are the familiar small divisors of perturbation theory. While the KAM proof shows that these are strongly non-resonant almost everywhere and that the series therefore are convergent, when dealing with finite perturbations we can only hope this is true.

A Frequency Algorithm

Examining the Newton-Rhapson iteration solutions above, it is obvious that the \( \vec i = 0 \) term is missing. As shown in [5], the constant term in the Fourier series would normally be a function of the momenta J i , and would be paired with the S/ t terms in the Hamilton-Jacobi equation, producing secular terms in S, and then corrections to the orbital frequencies. The mathematicians’ KAM theorem proof offers no guidance, so frequency corrections must be found another way. In [5], the corrected system frequencies were extracted by calculating numerical partial derivatives of the constant term in the S 1 Fourier expansion, since this term in a literal development would be \( C_{0, S} = {\sum }_{k} {\Delta } \omega _{k} J_{k}\). Here a more robust, but still numerical method will be used.

As the two Hamiltonians converge to each other, \( {\mathcal H} \rightarrow {\mathcal K}\), their derivatives should also do the same. It would be hoped, then, that

$$ \omega_{i} = {{ \partial {\mathcal K}} \over { \partial J_{i} }} = {{ \partial {\mathcal H }} \over { \partial J_{i} }} $$
(22)

This will not happen without intervention. The target Hamiltonian \( {\mathcal K} \) has an adjustable frequency correction for this reason. The native Hamiltonian is a function of the J i through the transformation, but will have residual angle dependence until convergence is achieved. This suggests calculating a correction δΔω i as the current discrepancy between the two values, with the native system averaged over the current torus

$$\begin{array}{@{}rcl@{}} \delta {\Delta} \omega_{i} &=& {1 \over { (2 \pi)^{3} }} {\int}_{0}^{2 \pi} {{ \partial {\mathcal H}} \over { \partial J_{i} }} d \vec \theta - {{\partial {\mathcal K}} \over { \partial J_{i} }}\\ &=& {1 \over { (2 \pi)^{3} }} {\int}_{0}^{2 \pi} {{ \partial {\mathcal H}} \over { \partial I_{\beta} }} \left( \delta_{\beta i } + {{ \partial^{2} S_{1} } \over { \partial \theta_{\beta} \partial J_{i} }} \right) d \vec \theta - {{\partial {\mathcal K}} \over { \partial J_{i} }} \\ &=& {1 \over { (2 \pi)^{3} }} {\int}_{0}^{2 \pi} {{ \partial {\mathcal H}} \over { \partial X_{\alpha} }} {{\partial X_{\alpha} } \over { \partial I_{\beta} }} \left( \delta_{\beta i } + {{ \partial^{2} S_{1} } \over { \partial \theta_{\beta} \partial J_{i} }} \right) d \vec \theta - {{\partial {\mathcal K}} \over { \partial J_{i} }} \end{array} $$
(23)

carrying the transformations all the way back to the native coordinates X j , where the calculations are carried out. [Of course, α is summed to six, while β is summed to three.] In the computer code, this is mechanized alongside the integrations for the Fourier coefficients for the \( \delta {\mathcal H} \) series.

This calculation will yield the corrections to the three fundamental frequencies on the torus. But for motion in the vicinity of the target torus, the additional matrix

$$ {{ \partial {\Delta} \omega_{i} } \over { \partial J_{k} }} = {{ \partial^{2} {\mathcal K} } \over { \partial J_{i} \partial J_{k} }} $$
(24)

is required to follow the relative drift on nearby tori. Again, a correction term to modify the two body frequency derivatives is included in the target Hamiltonian (6). This matrix should be symmetric by construction. As with the frequencies themselves, note that at convergence the chain rule gives

$$ \omega_{i} = {{ \partial {\mathcal H}} \over { \partial J_{i} }} = {{ \partial {\mathcal H}} \over { \partial X_{\alpha} }} {{ \partial X_{\alpha} } \over { \partial I_{\beta} }} {{ \partial I_{\beta} } \over { \partial J_{i} }} $$
(25)

The matrix ω i / J k is initialized to the partial derivatives of the well known J 2 secular rates. Then, locally this matrix can be found from the physical Hamiltonian by change of variables

$$ {{ \partial \omega_{i} } \over { \partial J_{k} }} = \left( {{ \partial^{2} {\mathcal H} } \over { \partial X_{\alpha} \partial X_{\beta} }} {{ \partial X_{\alpha} } \over { \partial I_{\gamma} }} {{ \partial X_{\beta} } \over { \partial I_{\delta} }} + {{ \partial {\mathcal H}} \over { \partial X_{\alpha} }} {{ \partial^{2} X_{\alpha} } \over { \partial I_{\gamma} \partial I_{\delta} }} \right) {{ \partial I_{\gamma} } \over { \partial J_{i} }} {{ \partial I_{\delta} } \over { \partial J_{k} }} $$
(26)

This is, of course, the next derivative of (25). Averaging over the torus, corrections to the frequency partial derivative matrix are found as

$$ \delta \left( {{ \partial {\Delta} \omega_{i} } \over { \partial J_{k} }} \right) = {1 \over { (2 \pi)^{3} }} {\int}_{0}^{2 \pi} {{ \partial \omega_{i} } \over { \partial J_{k} }} ({\vec \theta}) d {\vec \theta} - {{ \partial {\Delta} \omega_{i} } \over { \partial J_{k} }} $$
(27)

While this matrix should be symmetric, all nine components were calculated as a check. No violations of symmetry were observed.

Algorithm Performance

In this section an example of the algorithm will be presented. Numerically, each iteration involves numerical quadratures to obtain the Fourier coefficients of the function \( \delta {\mathcal H}\) from (18), three more sets of Fourier series coefficients for the \( \delta \partial {\mathcal H}/ \partial J_{k} \), (19), three more integrals to obtain the frequency corrections δΔω i , (23), and an additional nine integrals for the corrections to the frequency partial derivative matrix δ Δω i / J k , (27). All these integrals are conveniently done together, since they are integrations over the same torus geometry. In general, it is to be hoped that the method will converge. This means that first the transformed Hamiltonians and their partial derivatives will approach each other, \( {\mathcal H} \rightarrow {\mathcal K}\). Second, the increments to the generating function series for S 1 and its partial derivatives will go to zero. And finally, the frequency corrections will also approach zero. In evaluating the convergence of a Fourier series, there is a norm on multiply periodic functions

$$ \left\Arrowvert \delta S \right\Arrowvert^{2} = \left\Arrowvert C_{0} \right\Arrowvert^{2} + {1 \over 2 } \sum\limits_{\vec j}^{\infty} \left( \left\Arrowvert C_{\vec j} \right\Arrowvert^{2} + \left\Arrowvert S_{\vec j} \right\Arrowvert^{2} \right) $$
(28)

that we will find useful. The sample torus reported here has a perigee distance of 1.1 Earth radii, an eccentricity of approximately e = 0.1, and an inclination of i = 0.2 radians. Poincaré variables were used. The native Hamiltonian (1) was truncated at n,m ≤ 20.

Fig. 1
figure 1

Convergence of the norm of the Hamiltonian error \( \delta {\mathcal H}\) and its partial derivatives

Figure 1 shows the convergence of the Hamiltonian error and the errors of its partial derivatives as a function of iteration. As in [5], the convergence is only geometric, not quadratic. In the linearized Newton iterations, the derivative term is approximated, and true quadratic convergence is not obtained. No attempt has been made to identify the actual partial derivative curves on the figure, the intention being to merely verify convergence. It seems the usual case that the Hamiltonian error itself converges faster than its derivatives. Initial errors for \( \delta {\mathcal H} \) are of order 10− 3 as expected. While the oblateness frequency approximations are being used to initialize the iteration, other oblateness perturbations are not initially included. Also, the first iteration can be considered the equivalent of a first order literal variable perturbation solution. The advantage of expanding in action-angle variables is that only limited terms are needed in the momenta directions to model a given torus, and so it is possible to numerically iterate without generating an ever increasing number of terms in the Fourier series.

Figure 2 shows the equivalent result for the generating function itself. As with the Hamiltonian results, the generating function increment δ S 1 converges faster than its derivatives. However, the orbit does not seem to be overly troubled by any particular small divisors. Convergence again continues to be geometric, not quadratic.

Fig. 2
figure 2

Convergence of the norm of the increment to the generating function δ S 1 and its partial derivatives

The behavior of the frequency corrections is displayed in Fig. 3. There are three corrections to the fundamental orbital frequencies, and nine elements of the frequency partial derivative matrix. While all nine of the latter were calculated independently, the symmetry condition Δω i / J k = Δω k / J i was obeyed to machine precision in all cases. Hence, there does not appear to be 12 curves in the figure, but only nine. In [5] the first order frequency corrections were obtained by numerical partial derivatives, while here they are found directly from the Hamiltonian, as are the frequency partial derivatives. The accuracy of the frequencies will shortly be evaluated by comparison to numerical integration.

Fig. 3
figure 3

Convergence of the orbital frequencies and the frequency partial derivative matrix

The Fourier norm (28) can be used to examine the frequency spectrum and convergence of these series. In particular, the bounds on the angles must be chosen before the Fourier integrals are performed, and if any significant coefficients are prematurely truncated, they will distort the results in other ways. Figure 4 shows the power in the 𝜃 1, 𝜃 2 directions, with the remaining sum in (28) being over the 𝜃 3 coefficient

$$ \left\Arrowvert S \right\Arrowvert_{i_{1}, i_{2} } = \left( \left\Arrowvert C_{0} \right\Arrowvert^{2} + {1 \over 2 } \sum\limits_{i_{3}}^{\infty} \left( \left\Arrowvert C_{i_{1} i_{2} i_{3}} \right\Arrowvert^{2} + \left\Arrowvert S_{i_{1} i_{2} i_{3}} \right\Arrowvert^{2} \right) \right)^{1/2} $$
(29)

Over the integer grid (i 1,i 2) of two of the Fourier series indices, this plots the power in the remaining index i 3. The desire here is to confirm that truncation limits in these indices have been chosen appropriately. Since Poincaré variables have been used, the integer coefficients refer to the angles in (4). While Fourier coefficients were calculated across the entire rectangle, the plot used 10− 12 as a floor for truncation. The fact that the power distribution is cut off on all sides indicates that the full spectrum has been captured to this level of accuracy. A similar plot using two different angles completes the verification, and also indicates where the Fourier series might be profitably truncated before use. Alternately, significant power appearing at the edge of the graph would indicate higher order frequency combinations must be included. In this paper we have tried to convincingly achieve convergence. This involves many more terms than might be used in a real world application.

Fig. 4
figure 4

Depiction of the Fourier spectrum of S 1 as a function of the integer coefficient i 1 of 𝜃 1 and i 2 of 𝜃 2

Implementing The KAM Variable Transform

The end result of the construction algorithm discussed up to here is a set of four Fourier series for S 1(𝜃) and the three S 1(𝜃)/ J k , the torus frequencies ω k , and the frequency partial derivative matrix ω j / J k . But there are some practical details to be worked out to implement the transformation developed herein. In the days of literal variable perturbation development, the generating function approach used here was often criticized, since it seems to require the inversion of infinite series. The transformation laws (11) and (12) each supply one half of the complete transform, but in opposite directions. A more modern approach to literal variable development would be the Lie series based approaches of Hori [7] and Deprit [8], which do not require a series inversion. Both transform laws are, however, near identity transformations, and can be re-arranged to find near Newton-Rhapson iterations to complete the transform in the other direction.

Given a set of physical initial conditions, these can be traded for the osculating state (𝜃 i ,I i ) using the two body problem. The obvious choice of J i,0 = I i would probably be used to initialize the theory. The remaining problem is then to find the ΔJ i and the 𝜗 i which match the osculating state. Rearrange (12), expanding linear terms to find corrections δΔJ i to the momenta offsets. This then becomes a Newton - Rhapson iteration

$$ \left[ \delta_{i, \alpha } + {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{\alpha} \partial \theta_{i} }} \right] \delta {\Delta} J_{\alpha} = I_{i} - J_{i,0} -{\Delta} J_{i} - {{ \partial S_{1} } \over { \partial \theta_{i} }} - {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{\alpha} \partial \theta_{i} }} {\Delta} J_{\alpha} $$
(30)

where δ i j is the Kroenecker delta function. The obvious starting guess is to choose ΔJ i = 0. The matrix on the left side does not change, and needs to be factored only once. Knowing the ΔJ i , the 𝜗 i follow from (11) by direct calculation. Alternately, knowing the ΔJ i , the torus might be recalculated with the “correct” J i,0 and the ΔJ i set to zero.

The prediction problem begins with the solution to the target Hamiltonian system \( {\mathcal K}\), where the ΔJ i are constant, and where the 𝜗 i (t) = 𝜗 i (t 0) + ω i,0(tt 0). Then knowing the (𝜗 i J i ), the problem becomes to calculate the osculating variables (𝜃 i ,I i ) and then obtain the physical coordinates. Begin with the target Hamiltonian’s behavior

$$\begin{array}{@{}rcl@{}} \vartheta_{i} (t)&=& \vartheta_{i} (t_{0} ) + {{ \partial K } \over { \partial J_{i} }} (t - t_{0} ) \\ &=& \vartheta_{i} (t_{0} ) + \left( {{ \partial K_{TBP} } \over { \partial J_{i} }} + {\Delta} \omega_{i} + {{ \partial \omega_{i} } \over { \partial J_{\alpha} }} {\Delta} J_{\alpha} \right) (t - t_{0} ) \end{array} $$
(31)

grouping the terms that can grow linearly together. Starting with 𝜃 i 𝜗 i , then (11) rearranges to yield the Newton-Rhapson iteration equation

$$ \left[ \delta_{i, \alpha} + {{ \partial^{2} S_{1} (\theta) } \over { \partial J_{i} \partial \theta_{\alpha} }} \right] \delta \theta_{\alpha} = \theta_{i} - \vartheta_{i} + {{ \partial S_{1} (\theta) } \over { \partial J_{i} }} $$
(32)

for corrections δ 𝜃 i to the 𝜃 i . Once the 𝜃 i are known, (12) supplies the I i directly. Finally, the two body problem supplies the physical state.

Going to the first order partial derivatives is especially tempting, since this makes it possible to evaluate the “state transition matrix” of the system. Recall the vectors X and Y stand for the physical variables and the two body problem action-angle variables, while Z T = (𝜗 i ,J i ) is the torus state vector. Then the state transition matrix can be written as

$$\begin{array}{@{}rcl@{}} {\Phi} (t, t_{0} ) &=& {{ \partial \textbf{X} (t) } \over { \partial \textbf{X}(t_{0} ) }}\\ &=& \left\{ {{ \partial \textbf{X}} \over { \partial \textbf{Y} }} {{ \partial \textbf{Y} } \over { \partial \textbf{Z} }} (t) \right\} {{ \partial \textbf{Z} (t) } \over {\partial \textbf{Z} (t_{0}) }} \left\{ {{ \partial \textbf{X}} \over { \partial \textbf{Y} }} {{ \partial \textbf{Y} } \over { \partial \textbf{Z} }} (t_{0} ) \right\}^{-1} \end{array} $$
(33)

Since the solution in the Z variables is given by (31) and the statement that the action momenta are constant, the innermost matrix Z(t)/ Z(t 0) is easily found to be

$$ {{ \partial \textbf{Z}(t) } \over { \partial \textbf{Z}(t_{0} ) }} = \left\{ \begin{array}{c c } I & \left( {{ \partial^{2} {\mathcal K}_{TBP} } \over { \partial J_{i} \partial J_{j} }} + {{ \partial {\Delta} \omega_{i} } \over { \partial J_{j} }} \right) (t - t_{o} ) \\ 0 & I \end{array} \right\} $$
(34)

The next matrix, Y/ Z can be evaluated from the new solution (11), (12). In four sub blocks it is

$$ {{ \partial \textbf{Y}} \over { \partial \textbf{Z }}} = \left\{ \begin{array}{c c } \partial \theta / \partial \vartheta & \partial \theta / \partial J \\ \partial I / \partial \vartheta & \partial I / \partial J \end{array} \right\} $$
(35)

The required three by three blocks are given by

$$\begin{array}{@{}rcl@{}} {{ \partial \theta_{i} } \over { \partial \vartheta_{j} }} &=& \left\{ \delta_{ij} + {{ \partial^{2} S_{1} } \over { \partial J_{j} \partial \theta_{i} }} \right\}^{-1} \\ {{ \partial \theta_{i} } \over { \partial J_{j} }} &=& - {{ \partial^{2} S_{1} } \over { \partial J_{i} \partial J_{j} }} \\ {{\partial I_{i} } \over { \partial \vartheta_{j} }} &=& {{ \partial I_{i} } \over { \partial \theta_{\gamma} }} {{ \partial \theta_{\gamma} } \over { \partial \vartheta_{j} }} = \left( {{ \partial^{2} S_{1} } \over { \partial \theta_{i} \partial \theta_{\gamma} }} + {{ \partial^{3} S_{1} } \over { \partial J_{\alpha} \partial \theta_{i} \partial \theta_{\gamma} }} {\Delta} J_{\alpha} \right) {{ \partial \theta_{\gamma} } \over { \partial \vartheta_{j} }}\\ {{ \partial I_{i} } \over { \partial J_{j} }} &=& \delta_{ij} + {{ \partial^{2} S_{1} } \over { \partial J_{j} \partial \theta_{i} }} \end{array} $$
(36)

In the first line, it is the inverse of the desired quantity that is easily obtained. In the third line I i and 𝜃 j would normally be independent, but the I i are calculated after the 𝜃 j are found from the 𝜗 k . Of course, as Fourier series are available for S 1 and its first J i partial derivatives, further partial derivatives with respect to the 𝜃 i can be calculated during numerical summation. Unfortunately, on the second line the quadratic term 2 S 1/ J i J j makes its first appearance. The current paper has not developed the theory to evaluate this term. But there is a way to truncate this interleaved set of equations without calculating the second order terms. The matrix Y/ Z is the Jacobian matrix of a canonical transformation. As such it must satisfy the symplectic condition

$$ \left( {{ \partial \textbf{Y}} \over { \partial \textbf{Z }}} \right)^{T} \left\{ \begin{array}{r c } 0 & I \\ -I & 0 \end{array} \right\} {{ \partial \textbf{Y}} \over { \partial \textbf{Z }}} = \left\{ \begin{array}{r c } 0 & I \\ -I & 0 \end{array} \right\} $$
(37)

Evaluating the upper right block of this expression and simplifying yields

$$ {{ \partial \theta } \over { \partial J }} = - \left( {{ \partial I } \over { \partial \vartheta }}^{T} \right)^{-1} \left( I - \left( {{ \partial \theta } \over { \partial \vartheta }} \right)^{T} {{ \partial I } \over { \partial J }} \right) $$
(38)

This supplies the one block that cannot be computed from zero and first order quantities. Finally, the last matrix X/ Y is evaluated from the original dynamical system. Second order partial derivatives were necessary to include the secular frequency change terms in the second line above, otherwise the relative drift of adjacent tori would be missed.

Of course, it is hardly possible to contemplate orbit fitting without access to the Φ matrix. Given a KAM torus, a natural set of orbital parameters relative to that torus are the torus angles 𝜗 i and the offsets in the torus momenta ΔJ i at an epoch t 0. This means that for orbit fitting the matrix relating the physical state X(t) to the relative torus state at epoch Z(t 0) is required. It is given by a portion of (33)

$$ {{ \partial \textbf{X}(t) } \over { \partial \textbf{Z} (t_{0} ) }} = \left\{ {{ \partial \textbf{X}} \over { \partial \textbf{Y} }} {{ \partial \textbf{Y} } \over { \partial \textbf{Z} }} (t) \right\} {{ \partial \textbf{Z} (t) } \over {\partial \textbf{Z} (t_{0}) }} $$
(39)

This matrix has been used to implement a least squares torus fitting program.

The example cited in the earlier sections was used to generate a physical position and velocity vector. These were then used as initial conditions to perform a numerical integration of the orbit using a 20 by 20 geopotential expansion, identical to that used to develop the torus for this case. The integrated position vectors were then used as data in a least squares fit of the current theory. In all cases tried to date, convergence was quadratic, showing that the partial derivative matrices are correct. This was true even when the initial guess was displaced from the known torus state values. Figure 5 shows that theory and numerical integration agree to better than meter accuracy over a week. The author takes this to mean that the current theory is indeed the solution to constructing a KAM torus in the Earth’s actual gravity field. This is not to claim that results of this accuracy will be obtained with real world data. In the real world the data is of finite accuracy itself, and stochastic forces like air drag also operate. The two meter linear drift over a week indicates that the fundamental orbital frequencies are valid to at least ± 10− 10 radians per time unit.

Fig. 5
figure 5

Best fit residuals in the radial (U), orbit normal (W), and tangential direction (V), from a least squares fit to a numerically integrated orbit. Orbit normal (W) errors are the smallest, while in-track (V) errors show a tiny linear drift

Discussion and Conclusions

In this paper a method of solving the Hamilton-Jacobi equation has been developed, starting with the classical two body problem, and producing KAM torus solutions that can be pushed to numerical machine precision. Solutions to the geopotential orbit problem can be calculated, along with motion in the immediate vicinity of the KAM torus, and also including the state transition matrix. The method is numerical, producing four Fourier series for the generating function and its first momentum derivatives. As the momenta are constants on the torus, this suffices to produce a local solution with numerical coefficients, but with literal variable dependence on the (𝜗,J) variables still present.

The algorithm is computationally expensive in the torus construction, where literally thousands of Fourier coefficient integrals are being done. This portion should benefit greatly from parallelized computer code. In the tracking problem, only a few Fourier series summations are needed to generate both the physical state and the state transition matrix. It is probable that a constructed torus might be useful for quite a long period of time for a given satellite, perhaps months to years. And while initial construction of a torus may be somewhat computationally expensive, remember that a numerical integrator must also sum many terms for the Earth’s gravity field, at each and every timestep.

In exploring test cases, it was found that the present algorithm does not converge for eccentricities less than about e = 0.05. Since a KAM torus algorithm seems intimately tied to action angle variables, and since Lyddane [9] showed that zero eccentricity is not the center of the torus in the eccentricity / argument of perigee variables, this is quite understandable. The author’s previous work on low eccentricity KAM tori, Wiesel [10, 11] already is capable of constructing KAM tori including the Earth’s geopotential to arbitrary order and degree. But perhaps a Lyddane inspired transformation can be found to extend the current effort to smaller eccentricities.

The use of KAM tori as a reference for Walker constellations and for formation flight in orbit is very tempting. All orbits within the KAM torus have the same frequencies, and so will not drift with respect to each other in torus (𝜗,J) variables. Their motion with respect to each other in physical space will remain bounded. To the extent that orbit determination and maneuver errors permit, this will greatly reduce the need for stationkeeping.