1 Introduction

By definition, the relative motion between two particles is the difference between their respective absolute motions. When their relative separation is small, this difference is linearized and the relative state vector is computed directly without the need for solving the dynamics of the two particles independently. Although this simplification may depreciate the accuracy of the solution as the separation grows, it is preferred in most navigation and control strategies due to its simplicity. The linear approach provides a good insight into the dynamics of the problem. For example, it is easy to find the conditions for coorbital motion, or to design quasi-resonant configurations. Conversely, the direct subtraction of the absolute state vectors does not provide an intuitive interpretation of relative motion. In addition, if the relative separation is small enough the relative difference between the vectors to be subtracted may be close to the machine zero, leading to the loss of accuracy due to round-off errors. When dealing with multiple spacecraft each of them needs to be propagated separately. In the linear approach, however, one single propagation maps the entire neighborhood of the reference trajectory. Generally, the outcome of the linearization process depends on the parameterization of the dynamics, i.e. on the variables used to write the analytic solution to the problem.

Using Cartesian variables is possibly the most intuitive parameterization. This form of the equations of relative motion dates back to Laplace (1843, book II, Chap. II, §14). The same system was recovered and solved by Hill (1878) when deriving his analytic theory for the motion of the Moon. Almost a century later, with the rise of space exploration, Clohessy and Wiltshire (1960) posed a compact solution to the problem of spacecraft rendezvous for circular reference orbits. But the problem can be formulated using any set of variables or elements different from the Cartesian ones. Finding the most adequate form of the equations of motion for a given application may provide a deep insight into the dynamics of the problem, simplify its analysis, and even allow to obtain solutions that would be intractable otherwise. We refer the reader to the first part of this series of papers, Roa and Peláez (2017) (hereafter Paper I), for a more detailed overview of available methods. Many other reviews can be found in the literature, like for example in Alfriend et al. (2009, Chap. 5).

Carter (1990) found the connection between the equations in Lawden’s primer vector theory and the linearization of the relative dynamics by de Vries (1963). He recovered Lawden’s integral

$$\begin{aligned} I(\theta ) = \int _{\theta _0}^{\theta } \frac{\mathrm {d}\chi }{(1+e\cos \chi )^2\sin ^2\chi } \end{aligned}$$

and succeeded in solving it in closed form by replacing the true anomaly with the eccentric anomaly (here \(\theta \) is the true anomaly). Yamanaka and Ankersen (2002) advanced on Carter’s work and arrived to a simplified state-transition matrix for solving the elliptic rendezvous problem. The resulting state-transition matrix is explicit both in time and true anomaly. Because of how compact the solution is and the fact that it is valid for moderate eccentricities, this method has been applied in many practical scenarios. Casotto (2014) presented an enlightening discussion about the classification of state-transition matrices.

Most formulations become singular as the eccentricity of the reference orbit approaches unity. There are intrinsic assumptions that make the solution only valid for elliptic orbits, typically related to using the eccentric anomaly when dealing with Kepler’s equation. The accuracy of the propagation might be affected when the elliptic orbit is quasi-parabolic. Motivated by these facts, Carter (1990) examined the parabolic and hyperbolic cases and tried to unify them. He introduced the eccentric anomaly for solving Lawden’s integral in the elliptic case, and the hyperbolic anomaly in the hyperbolic case. The result is a solution written in terms of \(I(\theta )\), which takes different forms depending on the type of reference orbit. There has been a renewed interest in relative motion about hyperbolic orbits. Missions designed to fly by a certain asteroid, comet, or planet and to deploy a landing probe may fall in this category. The concept of the Aldrin cycler (Byrnes et al. 1993) is a good example. Landau and Longuski (2007) proposed a solution to hyperbolic rendezvous based on impulsive maneuvers and geometric constructions. Carter (1996) analyzed optimal impulsive strategies to rendezvous with highly eccentric orbits.

Regularization first appeared in Celestial Mechanics to overcome the singularity related to the collision between particles, i.e. \(r\rightarrow 0\). Sundman (1913, Eq. 71) introduced a time transformation that removes the divisor \(r^3\) from the equations of orbital motion by considering the definitions of the derivatives with respect to fictitious time. As a result, the governing equations of motion become regular. Levi-Civita (1920) proposed a transformation in the complex plane to solve the planar orbital problem. Kustaanheimo and Stiefel (1965) extended the Levi-Civita transformation to the three-dimensional space. The so called Kustaanheimo–Stiefel (KS) transformation provides a regular description of the dynamics. It was written in quaternionic form by Vivarelli (1983) and Waldvogel (2006). Following a different approach, Sperling (1961) published a new method for describing conic sections introducing the Stumpff functions. Based on Sperling’s work, Burdet (1968) derived a perturbation method as part of his Ph.D. thesis that was to become the Sperling–Burdet (SB) regularization. In this method, the eccentricity vector and the energy are introduced naturally in the equations of motion. When neglecting external perturbations, the KS transformation and the SB regularization reduce to an oscillator (the later including a forcing term). Both systems of equations admit an analytic solution in terms of the Stumpff functions (equivalent to the universal functions). Everhart and Pitkin (1983) explained in detail how introducing the universal functions leads to universal solutions to the two-body problem, no matter the eccentricity of the reference orbit. Danby (1987) discussed exhaustively the role of the Stumpff functions in solving Kepler’s equation. Universal variables in the context of spacecraft relative motion were recovered by Folta and Quinn (1998) and Condurache and Martinuşi (2012), the latter dealing with the fully nonlinear solution. Details on their formulation can be found in Condurache and Martinuşi (2010).

Peláez et al. (2007) created the Dromo propagator, a regularization scheme based on the Hansen ideal reference frames (Hansen 1857, p. 66). We refer to Urrutxua et al. (2016) for an updated version of the formulation. Advances on Dromo have also been presented by Baù et al. (2015). Roa and Peláez (2015) extended the Dromo formulation to the problem of linear relative motion. Dromo incorporates a second-order Sundman transformation and the physical time is replaced by an angle-like fictitious time. The Dromo-based solution to relative motion relied in part on the theory of asynchronous relative motion presented in Paper I. This theory consists in computing the state-transition matrix with constant fictitious time, true anomaly, eccentric anomaly, etc. and then correcting the intrinsic time delay a posteriori to recover the true linear solution. Once the linear solution is known, the theory shows how nonlinear terms can be introduced to define an improved solution, which is more accurate than the linear one.

In this work we derive the solution to Keplerian relative motion using the SB and the KS regularizations (see Paper I for a generic method accounting for any perturbation). These formulations provide a universal description of the relative dynamics coming from the use of the Stumpff functions. As a result, there is no need to distinguish the type of reference orbit when implementing the method. The regular nature of the SB and KS schemes is inherited by the solution: it is completely free of singularities. The solutions are obtained based on the theory presented in Paper I. Once the linear solution is known, nonlinear terms can be introduced to improve the accuracy significantly. Preliminary results following this reasoning can be found in Roa (2016).

The present paper is organized as follows. First, in Sect. 2 the equations of motion and the required concepts from the theory of asynchronous relative motion are presented so the paper is self-contained. The detailed derivation can be found in Paper I. Section 3 introduces the Sperling–Burdet regularization. The variational SB equations are derived and the solution to relative motion is built upon them. The Kustaanheimo–Stiefel transformation is discussed in Sect. 4, including its variational form and the solution to relative motion. At the end of each section there is a short summary explaining how the formulation should be implemented. In Sect. 5 useful relations between the fictitious time, the physical time, and the true anomaly are provided. Finally, the solutions are compared through a set of numerical examples in Sect. 6. The Appendices revisit the properties of the Stumpff functions and the inverse KS transformation.

2 Relative dynamics and the theory of asynchronous relative motion

Let \({\mathbf {r}}\in {\mathbb {R}}^3\) be the position vector of a particle in an inertial reference I. The motion of the particle in a central gravity field is governed by:

$$\begin{aligned} \dfrac{{\mathrm {d}}{^2{\mathbf {r}}}}{{\mathrm {d}}{t^2}} = - \frac{\mu }{r^3}\,{\mathbf {r}} ,\qquad \text {with}\,\,r=||{\mathbf {r}}||. \end{aligned}$$
(1)

The gravitational parameter is denoted by \(\mu \). In what follows the problem is normalized so that \(\mu =1\). The position and velocity vectors define the state vector \({\mathbf {x}}\in {\mathbb {R}}^6\), with \({\mathbf {x}}^\top =[{\mathbf {r}}^\top ,{\mathbf {v}}^\top ]\). External perturbations are not taken into account. The solution to the two-body problem,

(2)

is written in terms of a set of integration constants (or elements) . Given a leader (\(\ell \)) and a follower (f) spacecraft, their states at t are defined in terms of their corresponding elements:

A well-known technique for modeling the relative motion of the follower spacecraft is to use the differences between their elements,

Assuming that the differential elements are small the difference \({\mathbf {x}}_f(t)-{\mathbf {x}}_\ell (t)\) can be expanded in series to provide the relative state vector \(\delta {\mathbf {x}}\):

The first-order solution is given by the Jacobian matrix

(3)

defined by the partial derivatives of the state vector with respect to the set of elements, which are computed with constant time. The linear solution reduces to

(4)

Even if in practice the solution in Eq. (2) cannot be referred directly to time because this will require inverting Kepler’s equation, this expression captures the physical meaning of the solution. Indeed, keeping constant the time in the derivatives in Eq. (3) requires differentiating Kepler’s equation.

The physical time t can be replaced by a different angle-like variable, \(\vartheta \), (usually called fictitious time) by introducing a certain time transformation. The solution to Kepler’s problem reads

(5)
(6)

The physical time becomes a dependent variable, defined by Eq. (6). Reproducing the above steps yields the asynchronous solution to relative motion,

which connects the states of the leader and follower spacecraft at \(\vartheta \), and not t. The solution

now involves the asynchronous Jacobian

(7)

The derivatives are computed with constant \(\vartheta \). This motivates the name asynchronous solution (or \(\vartheta \)-synchronous), because a certain time delay \(\delta t\) appears in the solution. The time delay stems from the variational form of Eq. (6):

(8)

In Paper I we proved that the time delay can be easily corrected by means of

$$\begin{aligned} \delta {\mathbf {x}} = \delta {\mathbf {x}}_\mathrm {asyn} - \dfrac{\partial {\mathbf {f}_\ell }}{\partial {t}}\,\delta t. \end{aligned}$$
(9)

Under this formalism Eqs. (4) and (9) turn out to be completely equivalent. Equation (9) decomposes in:

$$\begin{aligned} \delta {\mathbf {r}}= & {} \delta {\mathbf {r}}_\mathrm {asyn} - {\mathbf {v}}_\ell \delta t \end{aligned}$$
(10)
$$\begin{aligned} \delta {\mathbf {v}}= & {} \delta {\mathbf {v}}_\mathrm {asyn} + \frac{{\mathbf {r}}_\ell }{r_\ell ^3}\delta t \end{aligned}$$
(11)

in which \(\delta {\mathbf {v}}\) is the relative velocity defined from the perspective of the inertial frame, and \({\mathbf {r}}_\ell \) and \({\mathbf {v}}_\ell \) are the absolute position and velocity vectors of the leader spacecraft.

Given the time delay, it is possible not only to correct the solution to first order, but also to introduce nonlinear terms given by the second-order expansion:

$$\begin{aligned} \delta {\mathbf {x}} = \delta {\mathbf {x}}_\mathrm {asyn} - \dfrac{\partial {\mathbf {f}_f}}{\partial {t}}\Bigg |_\mathrm {asyn}\delta t + \frac{1}{2}\dfrac{\partial {^2\mathbf {f}_f}}{\partial {t^2}}\Bigg |_\mathrm {asyn}\delta t^2. \end{aligned}$$
(12)

Nonlinear terms improve the accuracy of the propagation when compared to the purely linear one. Once the linear solution is known, it can be refined thanks to (see Paper I)

$$\begin{aligned} \delta {\mathbf {r}}^\star= & {} \delta {\mathbf {r}} -\delta {\mathbf {v}}\, \delta t + \frac{{\mathbf {r}}_\ell }{2r_\ell ^3}\delta t^2 \end{aligned}$$
(13)
$$\begin{aligned} \delta {\mathbf {v}}^\star= & {} \delta {\mathbf {v}} + \frac{\delta t}{2r_\ell ^3}\left[ {{\mathbf {\mathsf{{U}}}}}_3 - 3(\mathbf {i}\otimes \mathbf {i}) \right] (2\delta {\mathbf {r}} + {\mathbf {v}}_\ell \delta t ). \end{aligned}$$
(14)

Here \({{\mathbf {\mathsf{{U}}}}}_3\) is the three-by-three identity matrix, and \(\otimes \) is the dyadic product.Footnote 1 The star \(\square ^\star \) denotes the improved solution including nonlinearities. The unit vector \(\mathbf {i}\) is parallel to the leader’s radius vector, \(\mathbf {i}={\mathbf {r}}_\ell /r_\ell \). It is one of the vectors forming the basis that defines the Euler–Hill frame \(\mathcal {L}=\{\mathbf {i},\mathbf {j},\mathbf {k}\}\). The unit vector \(\mathbf {k}\) follows the direction of the leader’s angular momentum, \(\mathbf {k}=\mathbf {h}_\ell /h_\ell \), and \(\mathbf {j}=\mathbf {k}\times \mathbf {i}\).

These equations are valid for any independent variable \(\vartheta \) different from time, and for any set of constant of integration . The problem of relative motion reduces to finding the asynchronous Jacobian matrix and the time delay. Then, the linear solution is obtained from Eqs. (1011). If more accuracy is needed, Eqs. (1314) define an improved solution. In Paper I, it is demonstrated that the linear solution improved with the theory of asynchronous relative motion may be more accurate than the solution to the second and even third-order equations of motion.

3 The Sperling–Burdet (SB) regularization

Consider the first-order Sundman transformation

$$\begin{aligned} \dfrac{{\mathrm {d}}{t}}{{\mathrm {d}}{s}} = r \end{aligned}$$
(15)

defining the fictitious time s. The time derivatives of the state vector transform into

$$\begin{aligned} \dfrac{{\mathrm {d}}{{\mathbf {r}}}}{{\mathrm {d}}{t}} = \frac{1}{r}\,\dfrac{{\mathrm {d}}{{\mathbf {r}}}}{{\mathrm {d}}{s}}, \qquad \text {and}\qquad \dfrac{{\mathrm {d}}{^2{\mathbf {r}}}}{{\mathrm {d}}{t^2}} = \frac{1}{r^3}\left( r\dfrac{{\mathrm {d}}{^2{\mathbf {r}}}}{{\mathrm {d}}{s^2}} - \dfrac{{\mathrm {d}}{r}}{{\mathrm {d}}{s}}\,\dfrac{{\mathrm {d}}{{\mathbf {r}}}}{{\mathrm {d}}{s}} \right) . \end{aligned}$$
(16)

In what remains of the paper derivatives with respect to t will be denoted \(\dot{{\mathbf {r}}}\), whereas derivatives with respect to s will be \({\mathbf {r}}^\prime \). The fictitious radial velocity \(r^\prime \) is given by \(r^\prime = ({\mathbf {r}}\cdot {\mathbf {r}}^\prime )/r = ({\mathbf {r}}\cdot {\mathbf {v}})\). Introducing Eq. (16) in the governing equation of the two-body problem, Eq. (1), the dynamics are referred to fictitious time,

$$\begin{aligned} {\mathbf {r}}^{\prime \prime } - \frac{({\mathbf {r}}\cdot {\mathbf {r}}^\prime )}{r^2} \,{\mathbf {r}}^\prime + \frac{{\mathbf {r}}}{r} = 0, \end{aligned}$$
(17)

written in normalized variables and neglecting external perturbations.

Let \(\mathbf {e}\in {\mathbb {R}}^3\) be the eccentricity vector, and \(\mathbf {h}={\mathbf {r}}\times {{\mathbf {v}}}\) the angular momentum of the particle. From the definition of \(\mathbf {e}\) it follows that:

$$\begin{aligned} \mathbf {e} = {{\mathbf {v}}}\times \mathbf {h} - \frac{{\mathbf {r}}}{r}= \frac{1}{r^2}\Big [ ({\mathbf {r}}^\prime \cdot {\mathbf {r}}^\prime )\,{\mathbf {r}} - ({\mathbf {r}}^\prime \cdot {\mathbf {r}})\,{\mathbf {r}}^\prime \Big ]- \frac{{\mathbf {r}}}{r}. \end{aligned}$$
(18)

Subtracting Eqs. (18) to (17) embeds the eccentricity vector in the equations of motion:

$$\begin{aligned} {\mathbf {r}}^{\prime \prime } + \bigg [ \frac{2}{r} - \frac{({\mathbf {r}}^\prime \cdot {\mathbf {r}}^\prime )}{r^2} \bigg ]\,{\mathbf {r}} = -\mathbf {e}. \end{aligned}$$

The term in brackets is none other than the energy referred to the fictitious velocity,

$$\begin{aligned} 2{\mathcal {E}} = \frac{({\mathbf {r}}^\prime \cdot {\mathbf {r}}^\prime )}{r^2} - \frac{2}{r}, \end{aligned}$$

where \({\mathcal {E}}\) denotes the Keplerian energy of the particle.

It follows:

$$\begin{aligned} {\mathbf {r}}^{\prime \prime } +\omega ^2\,{\mathbf {r}} = -\mathbf {e},\qquad \text {with}\,\,\omega ^2=-2{\mathcal {E}}. \end{aligned}$$
(19)

The two-body problem transforms into a forced oscillator under the Sperling–Burdet regularization. It needs to be integrated from the initial conditions at \(s=0\), \({\mathbf {r}}(0)={\mathbf {r}}_0\) and \({\mathbf {r}}^\prime (0) = {\mathbf {r}}^\prime _0\), together with the Sundman transformation in Eq. (15). An explicit solution to Eq. (19) can be found in terms of the Stumpff functions \(\mathscr {C}_k(z)\) (Bond and Allman 1996, §9.3.3),

$$\begin{aligned} {\mathbf {r}}(s) = {\mathbf {r}}_0 + s\,r_0\mathscr {C}_1(z){\mathbf {v}}_0 + s^2\mathscr {C}_2(z)\,\mathbf {d}, \end{aligned}$$
(20)

with \(\mathbf {d} = -(\omega ^2{\mathbf {r}}_0+\mathbf {e})\) and \(z=\omega ^2s^2\). The Stumpff functions are introduced formally in Appendix 1. The fictitious velocity is obtained by deriving Eq. (20):

$$\begin{aligned} {\mathbf {r}}^\prime (s) = r_0\mathscr {C}_0(z){\mathbf {v}}_0 + s\mathscr {C}_1(z)\,\mathbf {d}. \end{aligned}$$
(21)

The radial distance admits a similar regularization. The expression \(r^\prime =({\mathbf {r}}\cdot {\mathbf {v}})\) is derived with respect to fictitious time and, considering the definition of the eccentricity vector, simplifies to

$$\begin{aligned} r^{\prime \prime } + \omega ^2r = 1, \qquad s=0:\,\,r(0)=r_0,\,\,r^\prime (0)=({\mathbf {r}}_0\cdot {\mathbf {v}}_0). \end{aligned}$$

The solution to this equation is

$$\begin{aligned} r(s) = r_0\mathscr {C}_0(z) + r_0^\prime s \,\mathscr {C}_1(z) + s^2 \mathscr {C}_2(z). \end{aligned}$$
(22)

The universal form of Kepler’s equation defines the physical time as a function of the fictitious time:

$$\begin{aligned} t = T(s;{\mathbf {r}}_0,{\mathbf {v}}_0) \equiv t_0 + sr_0\mathscr {C}_1(z) + s^2r_0^\prime \mathscr {C}_2(z) + s^3\mathscr {C}_3(z). \end{aligned}$$
(23)

The regularization of the motion provides a universal solution to Kepler’s problem, independent from the type of reference orbit. This is achieved by generalizing the trigonometric functions with the Stumpff functions, and replacing the eccentric/hyperbolic anomaly with the fictitious time s.

3.1 Variational form of the Sperling–Burdet solution

The solution to Kepler’s problem under the SB regularization is given in Eqs. (20) and (21), and Eq. (23) relates the physical time with the fictitious time. Recovering the notation from Sect. 2, the fictitious time is the independent variable \(s\equiv \vartheta \) and the initial conditions define the constants of integration, . As discussed in the referred section the solution to the relative dynamics requires the asynchronous Jacobian matrix and the time delay, defined respectively in Eqs. (7) and (8). These derivations are equivalent to computing how vectors \({\mathbf {r}}_\ell \) and \({\mathbf {v}}_\ell \) change given a set of differences in the initial conditions \(\delta {\mathbf {r}}_{0}\) and \(\delta {\mathbf {v}}_0\). The relative velocity will be solved from the fictitious velocity \({\mathbf {r}}^\prime _\ell \). In what remains of the paper all variables are referred to the leader spacecraft; to alleviate the notation the subscript \(\ell \) will be omitted. The asynchronous solution reads

$$\begin{aligned} \delta {\mathbf {x}}_\mathrm {asyn} = {{\mathbf {\mathsf{{J}}}}}_s(s)\,\delta {\mathbf {x}}_0. \end{aligned}$$

Because of using the initial state vector to parameterize the problem, \({{\mathbf {\mathsf{{J}}}}}_s\) is equivalent to the asynchronous state-transition matrix, \(\varvec{\mathrm {\Phi }}_\mathrm {asyn}\equiv {{\mathbf {\mathsf{{J}}}}}_s\). It can be written in blocks as:

$$\begin{aligned} {{\mathbf {\mathsf{{J}}}}}_s(s) = \left[ \begin{array}{ll} \nabla _{{\mathbf {r}}_0}\big |_s\,{\mathbf {r}}, &{} \nabla _{{\mathbf {v}}_0}\big |_s\,{\mathbf {r}} \\ \nabla _{{\mathbf {r}}_0}\big |_s\,{\mathbf {v}}, &{} \nabla _{{\mathbf {v}}_0}\big |_s\,{\mathbf {v}} \end{array} \right] \end{aligned}$$
(24)

The blocks correspond to the partial derivatives of the position and velocity vectors with respect to the initial conditions, computed with constant fictitious time s.

Each block is computed as the gradient of the corresponding vector field. The resulting rank-two tensors (represented by \(3\times 3\) matrices) are

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {r}}= & {} {{\mathbf {\mathsf{{U}}}}}_3 + s r_0\big ({\mathbf {v}}_0\otimes \nabla _{{\mathbf {r}}_0}\big |_s\mathscr {C}_1\big ) + s^2\big [\big (\mathbf {d}\otimes \nabla _{{\mathbf {r}}_0}\big |_s\mathscr {C}_2\big ) +\mathscr {C}_2\nabla _{{\mathbf {r}}_0}\big |_s\mathbf {d}\big ] \end{aligned}$$
(25)
$$\begin{aligned} \nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {r}}= & {} sr_0\big [\mathscr {C}_1{{\mathbf {\mathsf{{U}}}}}_3 + \big ({\mathbf {v}}_0\otimes \nabla _{{\mathbf {v}}_0}\big |_s\mathscr {C}_1\big )\big ] + s^2\big [\big (\mathbf {d}\otimes \nabla _{{\mathbf {v}}_0}\big |_s\mathscr {C}_2\big ) + \mathscr {C}_2\nabla _{{\mathbf {v}}_0}\big |_s\mathbf {d}\big ]\end{aligned}$$
(26)
$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {v}}= & {} \frac{1}{r^2}\big [ r\,\nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {r}}^\prime - ({\mathbf {r}}^\prime \otimes \nabla _{{\mathbf {r}}_0}\big |_sr) \big ] \end{aligned}$$
(27)
$$\begin{aligned} \nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {v}}= & {} \frac{1}{r^2}\big [ r\,\nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {r}}^\prime - ({\mathbf {r}}^\prime \otimes \nabla _{{\mathbf {v}}_0}\big |_sr) \big ] \end{aligned}$$
(28)

The gradients of the Stumpff functions \(\mathscr {C}_k(z)\equiv \mathscr {C}_k\) are obtained attending to the derivation rules (5556) established in Appendix 1:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s\mathscr {C}_k = \dfrac{\partial {\mathscr {C}_k}}{\partial {\omega }} \,\nabla _{{\mathbf {r}}_0}\big |_s\omega = \frac{s^2}{r_0^3}\mathscr {C}_{k+2}^*{\mathbf {r}}_0, \\ \nabla _{{\mathbf {v}}_0}\big |_s\mathscr {C}_k = \dfrac{\partial {\mathscr {C}_k}}{\partial {\omega }}\,\nabla _{{\mathbf {v}}_0}\big |_s\omega = s^2\mathscr {C}_{k+2}^*{{\mathbf {v}}_0}. \end{aligned}$$

Equations (2526) then become:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {r}}= & {} {{\mathbf {\mathsf{{U}}}}}_3 + \frac{s^3}{r_0^2}\mathscr {C}_3^*({\mathbf {v}}_0\otimes {\mathbf {r}}_0) + \frac{s^4}{r_0^3}\mathscr {C}_4^*(\mathbf {d}\otimes {\mathbf {r}}_0) + s^2\mathscr {C}_2\nabla _{{\mathbf {r}}_0}\big |_s\mathbf {d} \end{aligned}$$
(29)
$$\begin{aligned} \nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {r}}= & {} sr_0\mathscr {C}_1{{\mathbf {\mathsf{{U}}}}}_3 + s^3 r_0\mathscr {C}_3^*({\mathbf {v}}_0\otimes {\mathbf {v}}_0) + s^4\mathscr {C}_4^*(\mathbf {d}\otimes {\mathbf {v}}_0) + s^2\mathscr {C}_2\nabla _{{\mathbf {v}}_0}\big |_s\mathbf {d} \end{aligned}$$
(30)

The gradients of vector \(\mathbf {d}\) are required. From the definition \(\mathbf {d} = -(\omega ^2{\mathbf {r}}_0+\mathbf {e})\) it follows:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s\mathbf {d} = -\omega ^2{{\mathbf {\mathsf{{U}}}}}_3 + \frac{2}{r_0^3}({\mathbf {r}}_0\otimes {\mathbf {r}}_0) - \nabla _{{\mathbf {r}}_0}\big |_s\mathbf {e}, \qquad \nabla _{{\mathbf {v}}_0}\big |_s\mathbf {d} = 2({\mathbf {r}}_0\otimes {\mathbf {v}}_0) - \nabla _{{\mathbf {v}}_0}\big |_s\mathbf {e}. \end{aligned}$$

The gradients of the eccentricity vector are obtained directly from Eq. (18),

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s\mathbf {e}= & {} \left( v_0^2 - \frac{1}{r_0}\right) {{\mathbf {\mathsf{{U}}}}}_3 + \frac{1}{r_0^3}({\mathbf {r}}_0\otimes {\mathbf {r}}_0) - {\mathbf {v}}_0\otimes {\mathbf {v}}_0,\\ \nabla _{{\mathbf {v}}_0}\big |_s\mathbf {e}= & {} 2({\mathbf {r}}_0\otimes {\mathbf {v}}_0) - {\mathbf {v}}_0\otimes {\mathbf {r}}_0 - r_0^\prime {{\mathbf {\mathsf{{U}}}}}_3. \end{aligned}$$

Recall that \(r_0^\prime =({\mathbf {r}}_0\cdot {\mathbf {v}}_0)\). At this point, the solution is completely referred to the initial conditions \({\mathbf {r}}_0\) and \({\mathbf {v}}_0\). The gradients of vector \(\mathbf {d}\) reduce to

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s\mathbf {d} = -\frac{1}{r_0^3}\big [ r_0^2{{\mathbf {\mathsf{{U}}}}}_3 - ({\mathbf {r}}_0\otimes {\mathbf {r}}_0)\big ] + {\mathbf {v}}_0\otimes {\mathbf {v}}_0,\qquad \text {and}\qquad \nabla _{{\mathbf {v}}_0}\big |_s\mathbf {d} = r_0^\prime {{\mathbf {\mathsf{{U}}}}}_3 + {\mathbf {v}}_0\otimes {\mathbf {r}}_0. \end{aligned}$$

Considering the dyadic products

$$\begin{aligned} \mathbf {d}\otimes {\mathbf {r}}_0\, = \left( r_0^\prime {{\mathbf {v}}_0}-\frac{{\mathbf {r}}_0}{r_0}\right) \otimes {{\mathbf {r}}_0}, \qquad \text {and}\qquad \mathbf {d}\otimes {\mathbf {v}}_0 = \left( r_0^\prime {{\mathbf {v}}_0}-\frac{{\mathbf {r}}_0}{r_0}\right) \otimes {{\mathbf {v}}_0}, \end{aligned}$$

Equations (2930) transform into:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {r}}= & {} {{\mathbf {\mathsf{{U}}}}}_3 + \frac{s}{r_0^4}\big [r^2_0(r_0\mathscr {C}_1+s^2\mathscr {C}_3^*){\mathbf {v}}_0+r_0s\mathscr {C}_2{\mathbf {r}}_0+s^3\mathscr {C}_4^*(r_0r_0^\prime {\mathbf {v}}_0-{\mathbf {r}}_0)\big ]\otimes {\mathbf {r}}_0\\&\quad - \mathscr {C}_2\frac{s^2}{r_0}[{{\mathbf {\mathsf{{U}}}}}_3-r_0({\mathbf {v}}_0\otimes {\mathbf {v}}_0)] \\ \nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {r}}= & {} s r_0\mathscr {C}_1{{\mathbf {\mathsf{{U}}}}}_3 + s^2\mathscr {C}_2\big [r_0^\prime {{\mathbf {\mathsf{{U}}}}}_3+({\mathbf {v}}_0\otimes {\mathbf {r}}_0)\big ]\nonumber \\&-\frac{s^4}{r_0}\mathscr {C}_4^*({\mathbf {r}}_0-r_0r_0^\prime {\mathbf {v}}_0)\otimes {\mathbf {v}}_0 + s^3 r_0\mathscr {C}_3^*({\mathbf {v}}_0\otimes {\mathbf {v}}_0) \end{aligned}$$

These expressions are the first two blocks of the Jacobian matrix \({{\mathbf {\mathsf{{J}}}}}_s(s)\), which are given in terms of the initial conditions and the fictitious time.

The gradients of the velocity vector require the gradients of both the fictitious velocity vector \({\mathbf {r}}^\prime \) and the radial distance r. From the solution to the radial distance r(s)—Eq. (22),—it follows:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{r}= & {} s\mathscr {C}_1{\mathbf {v}}_0 + \frac{1}{r_0^3}\big ( r_0^2\mathscr {C}_0 + s^2r_0\mathscr {C}_1 + s^3r_0^\prime \mathscr {C}_3^*+ s^4\mathscr {C}_4^*\big ){{\mathbf {r}}_0}\\ \nabla _{{\mathbf {v}}_0}\big |_s{r}= & {} s\mathscr {C}_1{\mathbf {r}}_0 +s^2\big ( r_0\mathscr {C}_1 + r_0^\prime s\mathscr {C}_3^*+ s^2\mathscr {C}_4^*\big ){\mathbf {v}}_0 \end{aligned}$$

No further derivation is required since these equations are already referred to \({\mathbf {r}}_0\) and \({\mathbf {v}}_0\).

Taking the partial derivatives of Eq. (21) renders

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s {\mathbf {r}}^\prime= & {} \frac{1}{r_0^4}\Big [ sr_0\mathscr {C}_1{{\mathbf {r}}_0}+ r_0^2(r_0\mathscr {C}_0+s^2\mathscr {C}_1) {{\mathbf {v}}_0} - s^3\mathscr {C}_3^*({\mathbf {r}}_0-r_0r_0^\prime {\mathbf {v}}_0)\Big ]\otimes {\mathbf {r}}_0\\&\quad + \frac{s}{r_0}\mathscr {C}_1\big [r_0({\mathbf {v}}_0\otimes {\mathbf {v}}_0)-{{\mathbf {\mathsf{{U}}}}}_3\big ]\\ \nabla _{{\mathbf {v}}_0}\big |_s {\mathbf {r}}^\prime= & {} r_0\mathscr {C}_0{{\mathbf {\mathsf{{U}}}}}_3 + s\mathscr {C}_1\big [ r_0^\prime {{\mathbf {\mathsf{{U}}}}}_3 + {\mathbf {v}}_0\otimes ({\mathbf {r}}_0+r_0s{\mathbf {v}}_0)\big ] -\frac{s^3}{r_0}\mathscr {C}_3^*({\mathbf {r}}_0 - r_0r_0^\prime {\mathbf {v}}_0)\otimes {\mathbf {v}}_0 \end{aligned}$$

These results complete the gradients of the velocity. The four blocks of matrix \({{\mathbf {\mathsf{{J}}}}}_s\), given in Eqs. (2528), take the form:

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s{\mathbf {r}}= & {} {{\mathbf {\mathsf{{U}}}}}_3 + \frac{s}{r_0^4}\big [r_0(r_0 a_{13}^+ +s^3 r_0^\prime \mathscr {C}_4^*){\mathbf {v}}_0+s a_{24}^-{\mathbf {r}}_0\big ]\otimes {\mathbf {r}}_0 - \mathscr {C}_2\frac{s^2}{r_0}[{{\mathbf {\mathsf{{U}}}}}_3-r_0({\mathbf {v}}_0\otimes {\mathbf {v}}_0)] \end{aligned}$$
(31)
$$\begin{aligned} \nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {r}}= & {} s b_{12}^+{{\mathbf {\mathsf{{U}}}}}_3 + s^2\mathscr {C}_2({\mathbf {v}}_0\otimes {\mathbf {r}}_0) - \frac{s^4}{r_0}\mathscr {C}_4^*({\mathbf {r}}_0-r_0r_0^\prime {\mathbf {v}}_0)\otimes {\mathbf {v}}_0 + s^3 r_0\mathscr {C}_3^*({\mathbf {v}}_0\otimes {\mathbf {v}}_0) \end{aligned}$$
(32)
$$\begin{aligned} r^2\nabla _{{\mathbf {r}}_0}\big |_s {\mathbf {v}}= & {} \frac{s}{r_0^4}\Big \{ \big [r_0 b_{01}^+\mathscr {C}_1+s^2 a_{14}^+\mathscr {C}_1 + a_{02}^+ a_{13}^-\big ]{{\mathbf {r}}_0}+ r_0s\big [ r_0^2\mathscr {C}_0\mathscr {C}_2 + s^2( b_{13}^+\mathscr {C}_2- b_{01}^+\mathscr {C}_4^*) \big ]{{\mathbf {v}}_0}\Big \}\otimes {{\mathbf {r}}_0}\nonumber \\&\quad -\frac{sr}{r_0}\mathscr {C}_1{{\mathbf {\mathsf{{U}}}}}_3 + \frac{s^2}{r_0}\big (\mathscr {C}_1^2{{\mathbf {r}}_0}+ r_0s\mathscr {C}_1\mathscr {C}_2{{\mathbf {v}}_0}\big )\otimes {{\mathbf {v}}_0} \end{aligned}$$
(33)
$$\begin{aligned} r^2\nabla _{{\mathbf {v}}_0}\big |_s{\mathbf {v}}= & {} \frac{s^3}{r_0}\big [( a_{14}^+\mathscr {C}_1 - a_{02}^+\mathscr {C}_3^*){{\mathbf {r}}_0} + r_0s( b_{13}^+\mathscr {C}_2- b_{01}^+\mathscr {C}_4^*){{\mathbf {v}}_0}\big ]\otimes {{\mathbf {v}}_0}\nonumber \\&\quad + r b_{01}^+ {{\mathbf {\mathsf{{U}}}}}_3 + \frac{s^2}{r_0}(\mathscr {C}_1^2{{\mathbf {r}}_0} + r_0s\mathscr {C}_1\mathscr {C}_2{{\mathbf {v}}_0})\otimes {{\mathbf {r}}_0} \end{aligned}$$
(34)

having introduced the auxiliary terms:

$$\begin{aligned} a_{ij}^\pm = r_0\mathscr {C}_i\pm s^2\mathscr {C}_j^*\qquad \text {and} \qquad b_{ij}^\pm = r_0\mathscr {C}_i\pm sr_0^\prime \mathscr {C}_j^*. \end{aligned}$$

The physical time is given explicitly by Eq. (23), the generalized form of Kepler’s equation, \(t=T(s;{\mathbf {r}}_0,{\mathbf {v}}_0)\). The gradients of time with respect to the initial state vector are obtained by differentiating this equation, and result in

$$\begin{aligned} \nabla _{{\mathbf {r}}_0}\big |_s T= & {} \frac{{s}}{r_0^3}\big (r_0 a_{13}^+ + s^3r_0^\prime \mathscr {C}_4^*+ {s^4}\mathscr {C}^*_5\big ){\mathbf {r}}_0 + s^2\mathscr {C}_2{\mathbf {v}}_0, \\ \nabla _{{\mathbf {v}}_0}\big |_s T= & {} s^2\mathscr {C}_2{\mathbf {r}}_0 + s^3\big (r_0\mathscr {C}_3^*+ s\mathscr {C}_4^*r_0^\prime + s^2\mathscr {C}_5^*\big ){\mathbf {v}}_0. \end{aligned}$$

The time delay \(\delta t\) is then defined as

$$\begin{aligned} \delta t = (\nabla _{{\mathbf {r}}_0}\big |_s T\cdot \delta {\mathbf {r}}_0) + (\nabla _{{\mathbf {v}}_0}\big |_s T\cdot \delta {\mathbf {v}}_0). \end{aligned}$$
(35)

Having derived the asynchronous state-transition matrix and the time delay, the solution is now complete.

3.2 Summary

An efficient way to implement the algorithm and to reduce the overall length of the code is to follow the sequence:

  1. 1.

    Given the initial position and velocity of the leader spacecraft, \({\mathbf {r}}_0\) and \( {\mathbf {v}}_0\), compute the gradients of the state vector defined in Eqs. (3134). Recall that all variables are referred to the leader spacecraft although the subscript \(\ell \) has been obviated.

  2. 2.

    Build the asynchronous state-transition matrix \({{\mathbf {\mathsf{{J}}}}}_s(s)\) following Eq. (24), and find the asynchronous relative state vector, \(\delta {\mathbf {x}}_\mathrm {asyn}={{\mathbf {\mathsf{{J}}}}}_s(s)\delta {\mathbf {x}}_0\).

  3. 3.

    Solve the time delay from Eq. (35).

  4. 4.

    Recover the solution to the linear dynamics using the first-order correction defined in Eqs. (1011).

  5. 5.

    (Optional) The accuracy of the linear solution can be increased by computing the improved nonlinear solution, given in Eqs. (1314).

4 The Kustaanheimo–Stiefel (KS) transformation

Kustaanheimo and Stiefel (1965) introduced a special transformation to regularize the two-body problem. The position of the particle is represented by a four-vector \(\mathbf {u}=[u_1,u_2,u_3,u_4]^\top \) in KS space. Denoting \([x,y,z,0]^\top \) the components of the position vector \({\mathbf {r}}\) in the inertial frame and extended to \({\mathbb {R}}^4\), the KS regularization establishes a transformation between \(\mathbf {u}\) and \({\mathbf {r}}\) of the form:

$$\begin{aligned} {\mathbf {r}} = {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}, \end{aligned}$$
(36)

where \({{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\) is referred to as the KS matrix:

$$\begin{aligned} {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}) = \left[ \begin{array}{llll} u_1 &{}\quad -u_2 &{}\quad -u_3 &{}\qquad u_4\\ u_2 &{}\qquad u_1 &{}\quad -u_4 &{}\quad -u_3\\ u_3 &{}\qquad u_4 &{}\qquad u_1 &{}\qquad u_2\\ u_4 &{}\quad -u_3 &{}\qquad u_2 &{}\quad -u_1 \end{array} \right] \end{aligned}$$

The KS matrix is r-orthogonal, i.e. \({{\mathbf {\mathsf{{L}}}}}^{-1}(\mathbf {u}) =(1/r){{\mathbf {\mathsf{{L}}}}}^\top (\mathbf {u})\). The radial distance r is given by \(r =(\mathbf {u}\cdot \mathbf {u})\). When dealing with the derivatives of the KS matrix it is worth noticing that \({{\mathbf {\mathsf{{L}}}}}^\prime (\mathbf {u}) = {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}^\prime )\). The arguments in the product \({{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,{\mathbf {v}}\) are interchangeable if, and only if, the bilinear relation \(\rho (\mathbf {u},{\mathbf {v}}) = 0\) holds;

$$\begin{aligned} {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,{\mathbf {v}} = {{\mathbf {\mathsf{{L}}}}}({\mathbf {v}})\,\mathbf {u} \iff \rho (\mathbf {u},{\mathbf {v}})\equiv u_1v_4 - u_2v_3 + u_3 v_2 - u_4 v_1 = 0. \end{aligned}$$
(37)

Note that \(\rho ({\mathbf {v}},\mathbf {u})=-\rho (\mathbf {u},{\mathbf {v}})\). Stiefel and Scheifele (1971, p. 29) proved the existence of an integral of motion related to the bilinear relation, namely \(\rho (\mathbf {u},\mathbf {u}^\prime ) = 0\). When deriving the extended position vector \({\mathbf {r}}\) with respect to fictitious time, as defined in Eq. (15), it is

$$\begin{aligned} {\mathbf {r}}^\prime = {{\mathbf {\mathsf{{L}}}}}^\prime (\mathbf {u})\,\mathbf {u} + {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}^\prime , \end{aligned}$$

and the fact that \(\mathbf {u}\) and \(\mathbf {u}^\prime \) satisfy the bilinear relation \(\rho (\mathbf {u},\mathbf {u}^\prime )=0\) gives

$$\begin{aligned} {\mathbf {r}}^\prime = 2{{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}^\prime . \end{aligned}$$
(38)

The second derivative with respect to s becomes

$$\begin{aligned} {\mathbf {r}}^{\prime \prime } = 2\big [ {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}^\prime )\,\mathbf {u}^\prime + {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}^{\prime \prime } \big ]. \end{aligned}$$
(39)

Equations (17) and (39) and taking into account the properties of the KS matrix renders

$$\begin{aligned} \mathbf {u}^{\prime \prime } + \left[ \frac{1 - 2(\mathbf {u}^\prime \cdot \mathbf {u}^\prime )}{2(\mathbf {u}\cdot \mathbf {u})}\right] \,\mathbf {u} = 0. \end{aligned}$$
(40)

The orbital energy of the particle is written in KS language as

$$\begin{aligned} {\mathcal {E}} = \frac{v^2}{2} - \frac{1}{r} = \frac{1}{(\mathbf {u}\cdot \mathbf {u})}\big [ 2(\mathbf {u}^\prime \cdot \mathbf {u}^\prime ) - 1 \big ], \end{aligned}$$

meaning that the term between brackets in Eq. (40) is simply \(-{\mathcal {E}}/2\). The governing equation of motion then reduces to

$$\begin{aligned} {\mathbf {u}}^{\prime \prime } + \psi ^2\, \mathbf {u} = 0, \qquad \text {with}\,\,\psi ^2 = -\frac{{\mathcal {E}}}{2} = \frac{\omega ^2}{4}. \end{aligned}$$
(41)

This equation needs to be integrated from the initial conditions at \(s=0\), \(\mathbf {u}(0) = \mathbf {u}_0\) and \(\mathbf {u}^\prime (0) = \mathbf {u}^\prime _0\). The problem has been reduced to a harmonic oscillator of natural frequency \(\psi \), which remains constant when no perturbations are considered. An exhaustive analysis of the linearization achieved by the KS transformation can be found in the works by Ferrándiz (1987) and Deprit et al. (1994). This equation admits an analytic solution in terms of the Stumpff functions:

$$\begin{aligned} \mathbf {u}(s)= & {} \mathbf {u}_0 \,\mathscr {C}_0(z/4) +\quad s\,\mathbf {u}_0^\prime \mathscr {C}_1(z/4) \end{aligned}$$
(42)
$$\begin{aligned} \mathbf {u}^\prime (s)= & {} \mathbf {u}^\prime _0 \,\mathscr {C}_0(z/4) - \psi ^2 s\,\mathbf {u}_0\mathscr {C}_1(z/4) \end{aligned}$$
(43)

To simplify the notation, in the following the Stumpff functions will be written

$$\begin{aligned} \mathscr {C}_k(z/4) = \mathscr {D}_k(z) \equiv \mathscr {D}_k. \end{aligned}$$

Note that the \(\mathscr {C}_k\) and \(\mathscr {D}_k\) functions relate through the half-angle formulas, given in Appendix 1.

The inverse KS map transforms the initial conditions in Cartesian space (\({\mathbf {r}}_0\) and \({\mathbf {v}}_0\)) to the initial conditions in KS space (\(\mathbf {u}_0\) and \(\mathbf {u}_0^\prime \)). Details about the inverse map, based on the Hopf fibration, can be found in Appendix 2. Recently, Roa et al. (2016) exploited the connection between the stability properties of the KS transformation and the topology of this fiber bundle.

The universal Kepler equation is written in terms of vectors \(\mathbf {u}_0\) and \(\mathbf {u}_0^\prime \) as

$$\begin{aligned} t = T(s;\mathbf {u}_0,\mathbf {u}_0^\prime ) \equiv \frac{s}{2}r_0[ 1+\mathscr {D}_1(4z) ] + 2s^2\,(\mathbf {u}_0\cdot \mathbf {u}_0^\prime )\,\mathscr {D}_2(4z) + 2s^3(\mathbf {u}_0^\prime \cdot \mathbf {u}_0^\prime )\,\mathscr {D}_3(4z). \end{aligned}$$
(44)

Notice that \(\mathscr {D}_k(4z)=\mathscr {C}_k(z)\).

4.1 Variational form of the Kustaanheimo–Stiefel transformation

Equations (36) and (38) define the transformation from \(\mathbf {u}\) and \(\mathbf {u}^\prime \) to the (extended) state vector. Grouping \(\mathbf {u}\) and \(\mathbf {u}^\prime \) under vector \(\mathbf {y}^\top =[\mathbf {u}^\top ,{\mathbf {u}^\prime }^\top ]\), the state vector \({\mathbf {x}}\) takes the form

$$\begin{aligned} {\mathbf {x}} = \mathbf {g}(s;\mathbf {y}), \end{aligned}$$

and Eqs. (4243) define the functional relation

$$\begin{aligned} \mathbf {y} = \mathbf {g}_u(s;\mathbf {u}_0,\mathbf {u}_0^\prime ). \end{aligned}$$

The asynchronous Jacobian \({{\mathbf {\mathsf{{J}}}}}_s\) is obtained by computing the partials with respect to the initial conditions in KS space,

$$\begin{aligned} {{\mathbf {\mathsf{{J}}}}}_s(s) = \dfrac{\partial {\mathbf {g}}}{\partial {\mathbf {y}_0}} = \dfrac{\partial {\mathbf {g}}}{\partial {\mathbf {y}}}\,\dfrac{\partial {\mathbf {g}_u}}{\partial {\mathbf {y}_0}} = {{\mathbf {\mathsf{{P}}}}}(s){{\mathbf {\mathsf{{Q}}}}}(s). \end{aligned}$$

The Jacobian matrix is decomposed naturally in two terms to simplify its derivation, namely

$$\begin{aligned} {{\mathbf {\mathsf{{P}}}}}(s)= \dfrac{\partial {\mathbf {g}}}{\partial {\mathbf {y}}} \qquad \text {and} \qquad {{\mathbf {\mathsf{{Q}}}}}(s)= \dfrac{\partial {\mathbf {g}_u}}{\partial {\mathbf {y}_0}}, \end{aligned}$$

which are \(4\times 4\) matrices. Like in the preceding section, all variables relate to the leader spacecraft.

In practical applications the set of differences \(\delta \mathbf {y}_0\) needs to be referred to the state vector in Cartesian coordinates \(\delta {\mathbf {x}}_0\). The inverse KS transformation discussed in Appendix 2 can be linearized assuming that \(\delta \mathbf {y}_0\) is small compared to the nominal values of \(\mathbf {u}_0\) and \(\mathbf {u}_0^\prime \). It provides:

$$\begin{aligned} \delta \mathbf {y}_0 = {{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\,\delta {\mathbf {x}}_0. \end{aligned}$$

The linear operator \({{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\) is defined explicitly in Appendix 3. With this, the asynchronous solution is obtained from

$$\begin{aligned} \delta {\mathbf {x}}_\mathrm {asyn} = {{\mathbf {\mathsf{{P}}}}}(s){{\mathbf {\mathsf{{Q}}}}}(s){{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\,\delta {\mathbf {x}}_0 = {{\mathbf {\mathsf{{J}}}}}_s(s){{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\,\delta {\mathbf {x}}_0 = \varvec{\mathrm {\Phi }}_\mathrm {asyn}(s)\,\delta {\mathbf {x}}_0, \end{aligned}$$

which means that the asynchronous state-transition matrix is

$$\begin{aligned} \varvec{\mathrm {\Phi }}_\mathrm {asyn}(s) = {{\mathbf {\mathsf{{P}}}}}(s){{\mathbf {\mathsf{{Q}}}}}(s){{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0). \end{aligned}$$

The relative position vector is obtained by differentiating Eq. (36), which provides:

$$\begin{aligned} \delta {\mathbf {r}} = \delta {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u} + {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\delta \mathbf {u} = {{\mathbf {\mathsf{{L}}}}}(\delta \mathbf {u})\,\mathbf {u} + {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\delta \mathbf {u} = 2{{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\delta \mathbf {u}. \end{aligned}$$
(45)

Note that the bilinear relation \(\rho (\mathbf {u},\delta \mathbf {u})=0\) from Eq. (37) holds. Similarly, the relative velocity results in

$$\begin{aligned} \delta {{\mathbf {v}}} = \frac{2}{r}\big [ {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}^\prime )\,\delta \mathbf {u} + {{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\delta \mathbf {u}^\prime \big ] - \frac{4}{r^2}(\mathbf {u}\cdot \delta \mathbf {u})\,{{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}^\prime . \end{aligned}$$
(46)

Equations (45) and (46) can be written in matrix form to provide

$$\begin{aligned} \delta {\mathbf {x}} = {{\mathbf {\mathsf{{P}}}}}(s)\,\delta \mathbf {y}. \end{aligned}$$

Consequently, the matrix \({{\mathbf {\mathsf{{P}}}}}(s)\) reads

$$\begin{aligned} {{\mathbf {\mathsf{{P}}}}}(s) = \left[ \begin{array}{ccc} 2 {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}), &{} &{} {{\mathbf {\mathsf{{0}}}}}_4 \\ \dfrac{2}{r} {{\mathbf {\mathsf{{L}}}}}(\mathbf {u}^\prime ), &{} &{} \dfrac{2}{r^2}\left\{ r{{\mathbf {\mathsf{{L}}}}}(\mathbf {u}) - 2\big [ \{{{\mathbf {\mathsf{{L}}}}}(\mathbf {u})\,\mathbf {u}^\prime \}\otimes \mathbf {u} \big ] \right\} \end{array} \right] \end{aligned}$$
(47)

The second matrix defining the Jacobian, matrix \({{\mathbf {\mathsf{{Q}}}}}\), decomposes in four blocks:

$$\begin{aligned} {{\mathbf {\mathsf{{Q}}}}}(s) = \left[ \begin{array}{lll} \nabla _{\mathbf {u}_0}\big |_s\mathbf {u}, &{} &{} \nabla _{\mathbf {u}^\prime _0}\big |_s\mathbf {u} \\ \nabla _{\mathbf {u}_0}\big |_s\mathbf {u}^\prime , &{} &{} \nabla _{\mathbf {u}^\prime _0}\big |_s\mathbf {u}^\prime \end{array} \right] \end{aligned}$$

and provides

$$\begin{aligned} \delta \mathbf {y} = {{\mathbf {\mathsf{{Q}}}}}(s)\,\delta \mathbf {y}_0. \end{aligned}$$

What remains of the present section is devoted to computing the gradients that form matrix \({{\mathbf {\mathsf{{Q}}}}}\), as well as the time delay. Kriz (1978) also studied the partial derivatives of \(\mathbf {u}\) and \(\mathbf {u}^\prime \) with respect to \(\mathbf {u}_0\) and \(\mathbf {u}_0^\prime \) when solving the perturbed two-point boundary value problem using the KS transformation. See Shefer (2007) and the references therein for an overview of some works on this topic that appeared in the Russian literature.

Applying the gradients \(\nabla _{\mathbf {u}_0},\nabla _{\mathbf {u}_0^\prime } :{\mathbb {R}}^4\rightarrow {\mathbb {R}}^4\times {\mathbb {R}}^4\) to Eqs. (4243) yields:

$$\begin{aligned} \begin{array}{llll} \nabla _{\mathbf {u}_0}\big |_s \mathbf {u} =&{}&{}\mathscr {D}_0\,{{\mathbf {\mathsf{{U}}}}}_4 + \mathbf {u}_0\otimes \nabla _{\mathbf {u}_0}\mathscr {D}_0 +&{} s( \mathbf {u}_0^\prime \otimes \nabla _{\mathbf {u}_0}\mathscr {D}_1) \\ \nabla _{\mathbf {u}^\prime _0}\big |_s \mathbf {u} = &{}s&{}\mathscr {D}_1\,{{\mathbf {\mathsf{{U}}}}}_4 + \mathbf {u}_0\otimes \nabla _{\mathbf {u}_0^\prime }\mathscr {D}_0 + &{}s(\mathbf {u}_0^\prime \otimes \nabla _{\mathbf {u}_0^\prime }\mathscr {D}_1)\\ \nabla _{\mathbf {u}_0}\big |_s \mathbf {u}^\prime = -\psi ^2&{}s&{}\mathscr {D}_1\,{{\mathbf {\mathsf{{U}}}}}_4 + \mathbf {u}_0^\prime \otimes \nabla _{\mathbf {u}_0}\mathscr {D}_0 -\psi ^2&{}s (\mathbf {u}_0\otimes \nabla _{\mathbf {u}_0}\mathscr {D}_1)\\ \nabla _{\mathbf {u}^\prime _0}\big |_s \mathbf {u}^\prime =&{}&{}\mathscr {D}_0\,{{\mathbf {\mathsf{{U}}}}}_4 + \mathbf {u}_0^\prime \otimes \nabla _{\mathbf {u}_0^\prime }\mathscr {D}_0-\psi ^2&{}s ( \mathbf {u}_0\otimes \nabla _{\mathbf {u}_0^\prime }\mathscr {D}_1) \end{array} \end{aligned}$$

From the properties of the Stumpff functions it follows:

$$\begin{aligned} \nabla _{\mathbf {u}_0}\big |_s\mathscr {D}_0= & {} \dfrac{\partial {\mathscr {D}_0}}{\partial {\psi }} \,\nabla _{\mathbf {u}_0}\big |_s\psi = s^2\frac{\psi }{r_0}\,\mathscr {D}_1\,\mathbf {u}_0,\qquad \nabla _{\mathbf {u}_0}\big |_s\mathscr {D}_1 = s^3\frac{\psi }{r_0}\,\mathscr {D}_3^*\,\mathbf {u}_0 \\ \nabla _{\mathbf {u}_0^\prime }\big |_s\mathscr {D}_0= & {} \dfrac{\partial {\mathscr {D}_0}}{\partial {\psi }}\,\nabla _{\mathbf {u}_0^\prime }\big |_s\psi =\frac{s^2}{r_0}\,\mathscr {D}_1\,{\mathbf {u}_0^\prime },\qquad \nabla _{\mathbf {u}_0^\prime }\big |_s\mathscr {D}_1 =\frac{s^3}{r_0}\,\mathscr {D}_3^*\,{\mathbf {u}_0^\prime } \end{aligned}$$

The gradients of vectors \(\mathbf {u}\) and \(\mathbf {u}^\prime \) then become

$$\begin{aligned} \nabla _{\mathbf {u}_0}\big |_s \mathbf {u}= & {} \mathscr {D}_0\,{{\mathbf {\mathsf{{U}}}}}_4 + {\psi ^2}\frac{s^2}{r_0}\big ( \mathscr {D}_1\mathbf {u}_0 + s\mathscr {D}_3^*\mathbf {u}^\prime _0 \big )\otimes {\mathbf {u}_0} \end{aligned}$$
(48)
$$\begin{aligned} \nabla _{\mathbf {u}^\prime _0}\big |_s \mathbf {u}= & {} s\mathscr {D}_1\,{{\mathbf {\mathsf{{U}}}}}_4 +\frac{s^2}{r_0}\big ( \mathscr {D}_1\mathbf {u}_0 + s\mathscr {D}_3^*\mathbf {u}^\prime _0 \big ) \otimes {\mathbf {u}^\prime _0} \end{aligned}$$
(49)
$$\begin{aligned} \nabla _{\mathbf {u}_0}\big |_s \mathbf {u}^\prime= & {} -\psi ^2s\mathscr {D}_1\,{{\mathbf {\mathsf{{U}}}}}_4 + \psi ^2\frac{s}{r_0}\Big [ \big ( 2\mathscr {D}_1-\psi ^2s^2\mathscr {D}_3^*\big ){\mathbf {u}_0} + s\mathscr {D}_1{\mathbf {u}_0^\prime } \Big ] \otimes {\mathbf {u}_0}\end{aligned}$$
(50)
$$\begin{aligned} \nabla _{\mathbf {u}_0^\prime }\big |_s \mathbf {u}^\prime= & {} \mathscr {D}_0\,{{\mathbf {\mathsf{{U}}}}}_4 + \frac{s}{r_0}\Big [ \big ( 2\mathscr {D}_1-\psi ^2s^2\mathscr {D}_3^*\big ){\mathbf {u}_0} + s\mathscr {D}_1{\mathbf {u}_0^\prime } \Big ] \otimes {\mathbf {u}_0^\prime } \end{aligned}$$
(51)

completing matrix \({{\mathbf {\mathsf{{Q}}}}}(s)\).

The time delay is determined by differentiating Eq. (44),

$$\begin{aligned} \delta t = \nabla _{\mathbf {u}_0}\big |_s T\cdot \delta \mathbf {u}_0 + \nabla _{\mathbf {u}^\prime _0}\big |_s T\cdot \delta \mathbf {u}_0^\prime , \end{aligned}$$
(52)

where the gradients of \(t=T(s;\mathbf {u}_0,\mathbf {u}_0^\prime )\) are

$$\begin{aligned} \nabla _{\mathbf {u}_0}\big |_sT= & {} s\big ( 1+\mathscr {C}_1 \big )\mathbf {u}_0 + 2s^2\mathscr {C}_2\,\mathbf {u}_{0}^\prime + \frac{8}{r_0}s^3\psi ^2\Big [s(\mathbf {u}_0\cdot \mathbf {u}_0^\prime )\,\mathscr {C}_4^*+ s^2(\mathbf {u}_0^\prime \cdot \mathbf {u}_0^\prime )\mathscr {C}_5^*+ \frac{r_0}{4}\,\mathscr {C}_3^*\Big ] \mathbf {u}_{0} \\ \nabla _{\mathbf {u}^\prime _0}\big |_s T= & {} \frac{2s^2}{r_0}\Big \{ 4s^2\big [ (\mathbf {u}_0^\prime \cdot \mathbf {u}_0^\prime )s\mathscr {C}_5^*+ (\mathbf {u}_0\cdot \mathbf {u}_0^\prime )\mathscr {C}_4^*\big ]\mathbf {u}_0^\prime + {r_0}\big [ \mathbf {u}^\prime _{0}( \mathscr {C}_2+ \mathscr {C}^*_3 )s + \mathbf {u}_{0}\mathscr {C}_2\big ] \Big \} \end{aligned}$$

and complete the definition of the time delay.

4.2 Summary

The following steps summarize the algorithm for computing the relative state vector using the KS transformation.

  1. 1.

    Transform the initial state of the leader spacecraft, \({\mathbf {x}}_0^\top =[{\mathbf {r}}_0^\top ,{\mathbf {v}}_0^\top ]\), to KS variables \(\mathbf {y}_0^\top =[\mathbf {u}_0^\top ,{\mathbf {u}_0^\prime }^\top ]\) following Appendix 2.

  2. 2.

    Transform the initial separation \(\delta {\mathbf {x}}_0\) to \(\delta \mathbf {y}_0\) using matrix \({{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\) (see Appendix 3).

  3. 3.

    Use Eqs. (4851) to compute matrix \({{\mathbf {\mathsf{{Q}}}}}(s)\).

  4. 4.

    Get matrix \({{\mathbf {\mathsf{{P}}}}}(s)\) from Eq. (47) and considering the state of the leader spacecraft.

  5. 5.

    Use the previous results to find the asynchronous solution to the problem:

    $$\begin{aligned} \delta {\mathbf {x}}_\mathrm {asyn} = {{\mathbf {\mathsf{{J}}}}}_\mathrm {asyn}(s)\,\delta \mathbf {y}_0= {{\mathbf {\mathsf{{P}}}}}(s){{\mathbf {\mathsf{{Q}}}}}(s){{\mathbf {\mathsf{{T}}}}}({\mathbf {x}}_0)\,\delta {\mathbf {x}}_0 = \varvec{\mathrm {\Phi }}_\mathrm {asyn}(s)\,\delta {\mathbf {x}}_0 \end{aligned}$$
  6. 6.

    Compute the time delay \(\delta t\) from Eq. (52).

  7. 7.

    Recover the solution to the linear dynamics using the first-order correction defined in Eqs. (1011).

  8. 8.

    (Optional) The accuracy of the linear solution can be increased by computing the improved nonlinear solution, given in Eqs. (1314).

5 On the fictitious time

In practice, the solution is propagated across a certain time interval, \(t\in [t_1,t_2]\). The fictitious time spans across \(s\in [s_1,s_2]\), and it is initially zero (\(s_1=0\)). The final value of the fictitious time, \(s_2\), is solved from the universal Kepler equation:

$$\begin{aligned} t_2 -t_1= s_2r_1\mathscr {C}_1(z_2) + s_2^2r_1^\prime \mathscr {C}_2(z_2) + s_2^3\mathscr {C}_3(z_2). \end{aligned}$$
(53)

Battin (1999, §4.5) wrote this equation in terms of the universal functions \(\mathscr {U}_k(z)\), which relate to the Stumpff functions by means of \(\mathscr {U}_k(z)=s^k\mathscr {C}_k(z)\). The universal functions are also referred to as generalized conic functions (Everhart and Pitkin 1983). Special attention has been paid to the numerical resolution of this equation (Burkardt and Danby 1983; Danby 1987).

Battin (1999, p. 179) credited Charles M. Newman with deriving an explicit expression for the final value of s in terms of

$$\begin{aligned} s_2 = \omega ^2( t_2- t_1) + r^\prime _2 - r^\prime _1, \qquad \text {with}\,\,r^\prime = ({\mathbf {r}}\cdot {\mathbf {v}}). \end{aligned}$$

This expression is useful when the relative state vector is to be computed given a specific position and velocity of the leader spacecraft. None of these equations changes its form when the Keplerian energy changes its sign.

The fictitious time can be easily related to the eccentric (E) and hyperbolic (H) anomalies in the cases \(e<1\) and \(e>1\), respectively, in terms of

$$\begin{aligned} e<1: \qquad&s_2 = \sqrt{a}(E_2-E_1)\\ e>1: \qquad&s_2 = \sqrt{|a|}(H_2-H_1) \end{aligned}$$

In the limiting case \(e\rightarrow 1\) the fictitious time relates to the true anomaly thanks to

$$\begin{aligned} s_2 = h\left( \tan \frac{\theta _2}{2} - \tan \frac{\theta _1}{2} \right) . \end{aligned}$$

6 Numerical examples

This section is devoted to testing the performance of the linear and the improved solutions for the four different types of reference orbits: circular, elliptic, parabolic, and hyperbolic. The accuracy of the proposed formulations is analyzed by comparing them with the exact solution to the problem. The error at each step is measured as:

$$\begin{aligned} \varepsilon = || \delta {\mathbf {r}} - \delta {\mathbf {r}}_{\mathrm {ref}} ||, \qquad \dot{\varepsilon } = || \delta \dot{{\mathbf {r}}} - \delta \dot{{\mathbf {r}}}_{\mathrm {ref}} ||, \end{aligned}$$

where \(\delta {\mathbf {r}}_{\mathrm {ref}}\) and \(\delta \dot{{\mathbf {r}}}_{\mathrm {ref}}\) are the exact relative position and velocity vectors. The exact solution is constructed by propagating the Keplerian two-body problem for the leader and the follower separately, and then subtracting the absolute state vectors. Vector \(\delta \dot{{\mathbf {r}}}=[\delta \dot{x},\delta \dot{y},\delta \dot{z}]^\top \) denotes the relative velocity from the perspective of the Euler–Hill reference frame that rotates with the leader spacecraft. The relative velocity referred to the rotating reference, \(\delta \dot{{\mathbf {r}}}\), relates to the absolute relative velocity \(\delta {\mathbf {v}}\) through:

$$\begin{aligned} \delta \dot{{\mathbf {r}}} = \delta {\mathbf {v}} - {\varvec{\omega }}_{\mathcal {LI}} \times \delta {\mathbf {r}} \end{aligned}$$

where \({\varvec{\omega }}_{\mathcal {LI}}=\mathbf {h}_\ell /r_\ell ^2\) denotes the angular velocity of the Euler–Hill frame with respect to the inertial reference, and \(\mathbf {h}_\ell \) is the angular momentum of the leader spacecraft. In the circular case the new solutions to relative motion with the Sperling–Burdet and the Kustaanheimo–Stiefel transformations (denoted RelSB and RelKS, respectively) are also compared to the Clohessy-Wiltshire (CW) solution, and to the Yamanaka–Ankersen (YA) state-transition matrix in the elliptic case. Roa and Peláez (2015) arrived to the linear solution to relative motion using a second-order Sundman transformation in terms of the Dromo elements. We recover this solution (to be denoted RelDromo) to compare its performance with the solutions presented in the present paper, and then we will also improve the RelDromo solution following the theory of asynchronous relative motion. The reason for considering this method is that RelKS and RelSB involve a Sundman transformation of order one, \(\mathrm {d}t/\mathrm {d}s=r\), whereas Dromo is based on a time transformation of order two, namely

$$\begin{aligned} \dfrac{{\mathrm {d}}{t}}{{\mathrm {d}}{s}} = \frac{r^2}{h}. \end{aligned}$$

Since the theory of asynchronous relative motion depends strongly on the definition of the time delay, and the time delay follows from the form of the time transformation, one would expect that using different time transformations would lead to different performances of the improved solution including nonlinear terms. The linear solutions, on the other hand, will coincide exactly.

Table 1 defines the four test cases by giving both the reference orbit and the initial relative conditions. In the circular and elliptic cases the solution is propagated for 15 complete revolutions. In the parabolic and hyperbolic cases the propagation spans from \(\theta _0\) to \(-\theta _0\), where \(\theta _0\) is the initial value of the true anomaly. Examples of equatorial-retrograde and polar orbits are selected to show that the RelKS and RelSB solutions are not affected by typical singularities such as \(i=0\) or \(e=0\). RelDromo is valid for any noncircular orbit, although it is not universal (different expressions are required for the elliptic, parabolic, and hyperbolic cases).

Table 1 Definition of the reference orbits and relative initial conditions in the Euler–Hill frame

Figure 1 displays the relative orbit and the error in position and velocity for Case 1, an equatorial-retrograde circular orbit. The solution is computed with the CW solution, RelKS, and RelSB (RelDromo is singular in this case). In the linear regime, the three formulations yield exactly the same results: this proves that the RelKS and RelSB solutions corrected to first order (using Eqs. 10, 11) are indeed the exact solution to the linear equations of relative motion, as predicted. To simplify the visualization only one line is plotted (“Linear”) instead of three overlapping lines. Then, we can take advantage of the theory of asynchronous relative motion to compute the improved solution, “RelKS-RelSB (\(\star \))” (using Eqs. 13, 14). In this way, we are introducing nonlinear terms in the solution. As a result, we adequately capture the nonlinear behavior of the dynamics, and the accuracy of the propagation is improved by one order of magnitude both in position and velocity. The improved RelSB and RelKS methods yield the same result. This means that the accuracy depends on the time transformation, and not on the variables the problem is formulated with.

Fig. 1
figure 1

Relative orbit and propagation error for Case 1 (circular)

Fig. 2
figure 2

Relative orbit and propagation error for Case 2 (elliptic)

The results for Case 2 are presented in Fig. 2. This case is an example of a polar and highly eccentric reference orbit. This case is propagated with the YA solution, RelSB, RelKS, and RelDromo. The linear solution (with the first-order correction) coincides in practice for the four methods and only one line is plotted. The improved version of the formulations (including second-order corrections of the time delay and marked with a star \(\star \)) yields error reductions of almost two orders of magnitude in position, and one in velocity. In this particular case, the second-order correction in Dromo elements (“RelDromo (\(\star \))”) is slightly more accurate than the equivalent solution using KS or SB variables (“RelKS-RelSB (\(\star \))”), which coincide exactly. This is due to the differences in the definition of the time delay, coming from the use of different time transformations. The Dromo formulation relies on a second-order Sundman transformation, whereas the time transformation for the KS and SB methods is of first order. The discretization of the orbit is different: the former is equivalent to the true anomaly, whereas the latter corresponds to the eccentric anomaly.

Figures 3 and 4 correspond to parabolic and hyperbolic reference orbits, respectively. The results in both cases are qualitatively similar. RelKS and RelSB are compared only to RelDromo. It is observed that the error in velocity is maximum around perigee no matter the formulation. This is caused by the strong divergence of the dynamics around periapsis. The improved solution with nonlinear terms partially mitigates this phenomenon in the parabolic case, although no clear improvements are observed in the hyperbolic case. The linear solutions coincide exactly. In the parabolic case the second-order Sundman transformation used by RelDromo exhibits small advantages in the propagation of the velocity with the improved method, whereas the propagation of the position is less accurate. RelDromo (\(\star \)) seems to be less accurate in the case of open orbits, possibly due to the faster growth of the fictitious time along the asymptote: it grows as \(r^2\) instead of r. This makes the time delay to grow rapidly and depreciates the accuracy of the correction. Roa et al. (2015) proved the existence of a singularity in Dromo when approaching infinity along an asymptote. RelDromo is not universal as the time delay takes different forms depending on the sign of the energy.

Fig. 3
figure 3

Relative orbit and propagation error for Case 3 (parabolic)

Fig. 4
figure 4

Relative orbit and propagation error for Case 4 (hyperbolic)

Table 2 Final error in position and velocity for the proposed formulations

Table 2 summarizes the previous discussions on the accuracy of the methods. The final errors in position and velocity are presented, showing both their absolute magnitude and the value relative to the final relative separation and velocity. In this way, the real impact of the error on the solution can be quantified, and the significance of the error reductions when introducing nonlinearities is easier to appreciate. The improved solutions are denoted with a star \((\star )\). This table clearly shows that the linear solutions coincide identically, as they are the exact solution to the same system of equations. The nonlinear correction, conversely, depends on the time transformation and therefore the accuracy of RelKS and RelSB coincides (both use \(\mathrm {d}t/\mathrm {d}s=r\)), but it is different from that of RelDromo (which uses \(\mathrm {d}t/\mathrm {d}s=r^2/h\)).

Finally, Table 3 compares the computational time of the methods derived in this paper with the CW and YA solutions. Simulations are run in Fortran using the Intel Fortran XE 15.0 compiler on a 2.8 GHz Intel Core i7 machine. In order to measure the runtime in a reliable way, we propagate the relative dynamics 500,000 times, and measure the total time. Thanks to this, unexpected overheads are averaged. The new universal solutions are slower than the YA method because of using the Stumpff functions for propagating the dynamics. But the evaluation is so fast (of the order of microseconds) that doubling the runtime is quite affordable. It is interesting to note that the improved nonlinear solution (\(\star \)) is practically as fast as the linear solutions. This demonstrates that improving the accuracy of the formulations using the theory of asynchronous relative motion has little impact on the computational effort.

Table 3 CPU time (in s) for 500000 consecutive runs of a single propagation

7 Conclusions

Based on the theory of asynchronous relative motion introduced in Paper I, two fully regular and universal solutions to the problem are built from the Sperling–Burdet and Kustaanheimo–Stiefel regularizations. The resulting formulations are regular because they present no singularities. In addition, the solutions are said to be universal because they take the exact same form no matter the type of orbit (circular, elliptic, parabolic, hyperbolic) and there is no need to distinguish the different cases. They are valid for any eccentricity and orbit geometry. This property may simplify the implementation in navigation and control algorithms.

In this paper, two solutions have been presented using two different parameterizations of the orbit. They yield exactly the same results. An important conclusion from this analysis is the fact that the definition of the time transformation (i.e. the selection of the independent variable) is more important than the selection of the variables the problem is formulated with. The correction of the time delay depends strongly on the definition of \(\delta t\), which is given by the time transformation. If the new independent variable evolves in a slow time scale the time delay will grow slowly and the linearization will hold for long. On the contrary, if the time delay grows rapidly then the series expansion of the time delay is no longer valid. This issue is particularly critical when applying the nonlinear correction to improve the accuracy: in Paper I it was shown that this improved solution is not the exact solution to the second or third-order equations of motion. Thus, the nonlinear correction changes its nature depending on the time delay.

The regularized schemes considered in this paper transform Kepler’s problem into an oscillator. Therefore, the solution is written in compact form and referred directly to the initial conditions. Thanks to introducing the Stumpff functions the sign of the energy no longer affects the formulations. Differentiating the equations of the oscillators yields the solution to relative motion in a compact tensorial form. The universal character of the formulations is preserved, as the solutions still involve the Stumpff functions.

The new solutions present three important advantages with respect to existing solutions. First, thanks to having computed the time delay it is easy to introduce second-order terms in the solution, improving the linear approach. Second, once the solution is implemented the program needs no flags related to the eccentricity of the reference orbit. Third, the tensorial form of the equations is compact and the solution is directly referred to the Cartesian initial conditions.