1 Introduction

The Vinti gravitational potential [1, 2], like that of the two-body problem [3, 4], can describe or capture the predominant natural motion of a small object traveling near a large gravitating body. The latter exactly describes satellite motion around a spherically symmetric body or point mass and the former exactly describes motion around an oblate spheroid, which better approximates the Earth’s basic shape. The utility of these gravitational models derives largely from the fact that they admit analytical solutions [4,5,6] to their respective initial value problems (IVPs), furnishing a past or future state given specified initial conditions. The Kepler or two-body prediction problem has been studied for several centuries and is one of the most fundamental problems in astrodynamics [4]. As a natural analogue of the Kepler problem for oblate spheroids and one of the few integrable problems in celestial mechanics, the Vinti problem warrants further study [7]. These gravitational models have merit because, for many of the bodies in the solar system, such as Earth and other planets, these computationally efficient approximations of the actual physics are good enough to support numerous applications, either directly or as building blocks of a larger architecture [8,9,10,11,12]. But the rising complexity and innovation in modern spacecraft missions, like active space debris removal (ASDR), often call for more accuracy than two-body gravity in preliminary trajectory designs. Replacing this model with Vinti’s potential, which reduces the modeling error by three orders of magnitude at Earth [1], is an attractive way to better satisfy these accuracy requirements and provides the incentive to study Vinti’s potential in the current work.

The importance of more accurate models like the Vinti potential motivates the continued refinement of analytical Vinti IVP solutions to improve performance metrics like computational speed and robustness. These metrics are important for complex preliminary mission design applications that require global searches of very large trade spaces, such as those encountered in ASDR, a time-dependent traveling salesman problem with moving nodes [13]. While numerical integration schemes may be simpler than analytical solutions, and more accurate, the integrator may be called on the order of a billion times in an ASDR application, and the implied long runtimes can make a numerical approach unappealing or less viable. In contrast, a hallmark of implemented analytical solutions to both Vinti and Kepler IVPs, accordingly called Vinti and Kepler propagators, is the innately high speed at which they predict or compute a spacecraft’s ballistic trajectory. State-of-the-art Kepler propagators have a runtime of roughly a microsecond and existing Vinti propagators are only five times slower on average [2], noting that those tested in that study also included \(J_3\) through Vinti’s asymmetric potential [14, 15]. A prior study by Biria and Russell [12] found for a low-altitude ASDR application that a 400 times speed-up was attainable with a Vinti propagator, using the “Vinti6” algorithm [2], as compared to an eighth-order Runge-Kutta numerical integrator taking 50 steps per spacecraft revolution over a 10-day transit. Similar speed-ups are expected from the solution proposed in this paper, although algorithm robustness is prioritized over computational speed. Specifically, the novel universal Vinti solution proposed in the current work aims to retain the described high computational speeds while leveraging astrodynamics concepts known to promote robustness.

Having motivated the utility of Vinti propagators, it is worth noting that, like Kepler propagators, a variety of source codes are publicly available. As fundamental tools, many analytical propagator codes are found in textbooks. For Kepler propagators, undergraduate textbooks like Vallado [8] and Curtis [16] offer straightforward implementations. For Vinti propagators, Vinti’s graduate textbook edited by Der and Bonavito [2] contains six source codes in multiple programming languages. More recently, Biria and Russell [11, 12, 17] developed enhanced versions that remove computational difficulties and indeterminate forms, substantially improving accuracy for bounded orbits, especially near the equatorial regime. Their source code is also publicly available online.Footnote 1

Universal solutions to these IVPs, such as those archived by Der and Bonavito [2], are attractive because they should in theory possess no computational difficulties or limitations in validity, being valid for all orbital regimes. As such, while Wiesel [18] and Wright [10] contributed notable advancements to Vinti theory using action-angle variables and numerical methods, the current effort is instead focused on universal techniques. Universal Kepler propagators are ubiquitous, computer programs commonly adopting the implementation of Bate et al. [4] in standard universal variables (UVs), which are notable for their robustness and connection to the Lagrange coefficients. Prior work on universal Vinti propagators [2, 19] use what Herrick [20] called “unified variables”, which, while retaining accuracy near the parabolic orbital regime, still utilize classical orbital elements and are not connected to oblate spheroidal (OS) Lagrange coefficients. Lacking a standard-UV solution to Vinti’s IVP, existing Vinti propagators must rely more on carefully chosen numerical algorithms to create and increase robustness. In contrast, a Vinti propagator based on standard UVs arguably inherits more robustness naturally. While such a formulation may still be paired with the same robust numerical methods, the incorporation of additional robustness by design implies an extra layer of robustness that enhances the entire propagator.

The main contribution of this paper is the development of an analytical third-order solution to the Vinti IVP using an analog of standard UVs adapted to OS geometry. Getchell [19] developed a universal third-order solution with OS “unified variables” (source code is available from Der and Bonavito [2]), but his solution does not remove all of the computational difficulties promised by the introduction of UVs. Note that UVs are not expected to mitigate computational issues for nearly rectilinear Vinti orbits, corresponding to the so-called forbidden zone [21] inside which an analytical solution is not known. Apart from nearly rectilinear orbits, the solution proposed in the current study is valid for all orbital regimes and is free of all computational difficulties, accurately handling circular, equatorial, polar, nearly parabolic, and hyperbolic orbits. To accomplish this result, the approach taken identifies desirable features unique to different analytical solution methods and blends those components together, unifying all of the individual benefits into a single algorithm. Drawbacks of the individual algorithms are circumvented and only the benefits are retained. Specifically, the proposed solution uses the definition of the node from Vinti’s 1969 solution [22], techniques to evaluate the integrals and avoid indeterminate forms at zero energy from Getchell’s 1970 solution [19], and finally, to avoid the computation of singular orbital elements, the solution adopts the standard definition of OS UVs [23] and leverages the OS equinoctial orbital elements (EOEs) developed recently by Biria and Russell [17]. Results are validated against numerically integrated Vinti trajectories to assess the accuracy of the third-order solution, where the third-order approximation refers only to the evaluation of various integrals, not the factoring of the quartics, which is carried out to double-precision accuracy. The presented algorithm’s runtime is also evaluated and compared to earlier findings, and its overall performance is directly compared to the benchmark Vinti6 propagator.

Another important aspect of the current study is the implication that it has for the closely related, congruent boundary value problem (BVP) governed by the Vinti potential. The reformulation of the equations of motion in terms of OS classical orbital element differences and coupling to OS equinoctial elements not only supports the solution of the IVP, but also enables the definition of the BVP, which is explored in related work by the author [24, 25]. In the BVP application, Biria essentially uses the results of the present work to generalize Lambert’s equation to a system of equations that can be solved iteratively, avoiding targeting algorithms and the need for shooting methods that are commonly employed in perturbed Lambert solvers.

2 Kinematic Equations

Vinti’s symmetric potential [1, 6] is written in terms of the oblate spheroidal (OS) coordinates \(\rho ,\phi ,\eta \) as

$$\begin{aligned} V = -\frac{\mu \rho }{\rho ^2 + c^2 \eta ^2} , \end{aligned}$$
(1)

where \(\mu \) is the gravitational parameter of the central body, \(\rho \) is the OS coordinate equal to the semiminor axis of the instantaneous oblate spheroid, \(\phi \) is the right ascension, and \(\eta \) is the OS coordinate tied to latitude, approximately the sine of declination in an Earth application. The parameter c is fit to the oblateness term, \(J_2\), of the spherical harmonic expansion as \(c^2 = R_e^2 J_2\), where \(R_e\) is the equatorial radius. Formal definitions of these quantities are available in many references [1, 6]. The analytical solution to Vinti’s IVP can be stated as \(\textbf{x}= \textbf{f} ( t, t_0, \textbf{x}_0)\), where \(\textbf{x}= [\textbf{r}^\top \;\;\; \textbf{v}^\top ]^\top = [x\;\;\; y\;\;\; z\;\;\; \dot{x}\;\;\; \dot{y}\;\;\; \dot{z}]^\top \) is the Earth-centered inertial (ECI) state, \(\textbf{r}\) and \(\textbf{v}\) are the position and velocity vectors, t is the time, and the subscript “\(0\)” denotes initial conditions (ICs) or the initial value of a quantity.

Using Getchell’s definitions [19] of the \(R_j\) and \(N_j\) integrals for \(j = 1,2,3\), Vinti’s classical element solution [6] to the IVP in terms of right ascension is given by

$$\begin{aligned} t - \tau = R_1 + c^2 N_1; \quad \omega = -R_2 + N_2; \quad \mathrm {\Omega }= \phi + c^2 R_3 - N_3 , \end{aligned}$$
(2)

where \(R_j\) are defined as

$$\begin{aligned} R_1&= \int _{\rho _p}^\rho \pm \rho ^2 F\left( \rho \right) ^{-1/2} \textrm{d} \rho \end{aligned}$$
(3)
$$\begin{aligned} R_2&= \alpha _2 \int _{\rho _p}^\rho \pm F\left( \rho \right) ^{-1/2} \textrm{d} \rho \end{aligned}$$
(4)
$$\begin{aligned} R_3&= \alpha _3 \int _{\rho _p}^\rho \pm (\rho ^2 + c^2)^{-1} F\left( \rho \right) ^{-1/2} \textrm{d} \rho, \end{aligned}$$
(5)

\(N_j\) are defined as

$$\begin{aligned} N_1&= \int _{0}^\eta \pm \eta ^2 G\left( \eta \right) ^{-1/2} \textrm{d} \eta \end{aligned}$$
(6)
$$\begin{aligned} N_2&= \alpha _2 \int _{0}^\eta \pm G\left( \eta \right) ^{-1/2} \textrm{d} \eta \end{aligned}$$
(7)
$$\begin{aligned} N_3&= \alpha _3 \int _{0}^\eta \pm (1 - \eta ^2)^{-1} G\left( \eta \right) ^{-1/2} \textrm{d} \eta, \end{aligned}$$
(8)

and \(\alpha _j\) and \(\beta _j\) are the constants of integration with \(\tau = -\beta _1\), \(\omega = \beta _2\), and \({\mathrm {\Omega }=\beta _3}\). These quantities are all defined in other references, but for convenience, note that \(\alpha _1\) is the energy integral, \(\alpha _3\) is the polar component of the angular momentum, \(\alpha _2\) is similar to the total angular momentum and obtained from separating the Hamilton-Jacobi equation, \(\tau \) is the time of OS periapsis passage, \(\omega \) is the argument of OS periapsis, and \(\mathrm {\Omega }\) is the right ascension of the OS ascending node (spheroidal RAAN) [12]. Further note that \(F\left( \rho \right) \) and \(G\left( \eta \right) \) are the quartics that must be factored to obtain the classical OS orbital elements a, e, and \(I = \arcsin Q\), which are the OS semimajor axis, eccentricity, and inclination, respectively. For universal variables, a is not directly pursued; instead, when factoring \(F\left( \rho \right) \), two other quantities are obtained: p, the OS semilatus rectum, and \(\gamma \), the inverse of a, where \(\gamma = -1/a\) for elliptical orbits so that \(\gamma < 0\) for elliptical orbits (\(0 \le e < 1\)) and \(\gamma > 0\) for hyperbolic orbits (\(e > 1\)). Orbital elements with a “0” subscript denote the prime constants [2] obtained directly from the \(\alpha _j\) Jacobi constants. For the lower limits of integration, \(\rho _p\) is the OS periapsis radius and Getchell’s lower limit on the \(N_j\) integrals is zero when \(J_3 = 0\) in the potential. In the following, elements should generally be interpreted as spheroidal or OS unless noted otherwise.

Going forward, it is helpful to continue to combine the contributions of Vinti [22] and Getchell [19] because their solutions possess important but different features that enable the current work. To exploit them, the solutions must be merged in some way. Specifically, many of Getchell’s results are desirable because he removes indeterminate forms in the \(R_j\) integrals. It is convenient to use his expressions for \(N_j\) as well. Vinti’s solution in terms of a slowly-varying OS RAAN [22], \(\mathrm {\Omega }^\prime \), is desirable because it enables the coupling of OS equinoctial elements to universal variables, which seems necessary for a solution devoid of angle ambiguities and singular orbital elements. Getchell defined a quantity \(N_4\) without explanation, but it is actually the slow, nonsensitive part of \(N_3\), which means it can be used to write the kinematic equations in terms of \(\mathrm {\Omega }^\prime \) as

$$\begin{aligned} t - \tau = R_1 + c^2 N_1; \quad \omega = -R_2 + N_2; \quad \mathrm {\Omega }= \mathrm {\Omega }^\prime + c^2 R_3 - N_4 , \end{aligned}$$
(9)

where, if \(N_{4_g}\) is Getchell’s definition of \(N_4\), then \(N_4 \equiv \alpha _3 N_{4_g}\) in Eq. (9). This redefinition is made so that \(N_3\) and \(N_4\) have consistent definitions. Using Getchell’s notation, it is straightforward to show that

$$\begin{aligned} \phi = \mathrm {\Omega }^\prime + d_{10} \psi _1 + d_{20} \psi _2 , \end{aligned}$$
(10)

where \(\psi _1\) and \(\psi _2\) are quantities defined by Getchell [19] and not related to \(\psi \), the true argument of OS latitude. Equation (10) relates \(\phi \) to a different OS RAAN (\(\mathrm {\Omega }^\prime \ne \mathrm {\Omega }\)) and has not previously appeared in the literature.

To express the solution in terms of universal variables [23], a different form of the kinematic equations is required that depends on the difference in anomalistic and other angles. To obtain such a form, it is assumed that Eq. (9) is computed at two different times, t and \(t_0\), and the corresponding equations are then differenced. Since \(\beta _j\) are constants of the motion, the result is

$$\begin{aligned} \mathrm {\Delta }t = \mathrm {\Delta }R_1 + c^2 \mathrm {\Delta }N_1; \quad 0 = -\mathrm {\Delta }R_2 + \mathrm {\Delta }N_2; \quad 0 = \mathrm {\Delta }\mathrm {\Omega }^\prime + c^2 \mathrm {\Delta }R_3 - \mathrm {\Delta }N_4 , \end{aligned}$$
(11)

where \(\mathrm {\Delta }\) is shorthand for taking the difference of scalars (\(\mathrm {\Delta }t = t - t_0\)) or long expressions like \(R_j\) and \(N_j\). The \(R_j\) integrals are ultimately a function of anomalistic angles like true and eccentric anomaly, \(f\) and E, respectively, and the \(N_j\) integrals a function of \(\psi = f+ \omega ^\prime \), where \(\omega ^\prime \) is a different OS argument of periapsis (\(\omega ^\prime \ne \omega \)). When differenced, \(\mathrm {\Delta }R_1 \equiv \mathrm {\Delta }R_1 \left( \hat{x}, \mathrm {\Delta }f\right) \), \(\mathrm {\Delta }R_j \equiv \mathrm {\Delta }R_j \left( \mathrm {\Delta }f\right) \) for \(j = 2,3\), and \(\mathrm {\Delta }N_j \equiv \mathrm {\Delta }N_j \left( \mathrm {\Delta }\psi \right) \) for \(j = 1,2,3,4\), where \(\hat{x}\) is the OS universal variable identified by Biria [23]. Notice that the time of flight (TOF), \(\mathrm {\Delta }t\), appears explicitly in Eq. (11). In this new form, Vinti’s IVP is now stated as \(\textbf{x}= \textbf{f} ( \mathrm {\Delta }t, \textbf{x}_0)\).

2.1 Universal Spheroidal Time of Flight Equation

The first kinematic equation in Eq. (11) is the OS time of flight equation. After a considerable amount of algebra, and adopting Izsak’s and Vinti’s conic parameterization [5, 6], this equation can be written to \(O(J_2^3)\) as

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }t&= \frac{1}{\sqrt{\mu \gamma _1}} \left[ \sigma _0\hat{x}^2 C \left( \hat{z}\right) + \left( 1 + \rho _0\gamma \right) \hat{x}^3 S \left( \hat{z}\right) + \left( \rho _0+ A_1 \right) \hat{x} + \frac{1}{\sqrt{p}} \sum _{k=0}^{4} A_{k+2} \mathrm {\Delta }W_k \right] + c^2 \frac{1}{\sqrt{\mu p_0 S_1}} \sum _{k=0}^{6} C_k \mathrm {\Delta }\left( Q^k T_k \right) \end{aligned} \end{aligned}$$
(12)

with Getchell’s notation, where Biria [23] defines \(\sigma _0\) and the UVs \(\hat{x}\) and \(\hat{z}\) for OS geometry (under Vinti’s potential), and also explains how the Stumpff functions, \(C\left( \hat{z}\right) \) and \(S\left( \hat{z}\right) \), may be adapted to OS UVs. Equation (12), which directly relates TOF to the standard OS UVs for the first time, represents a significant development that is central to all of the present work, for both the IVP and BVP. While Eq. 36 in Getchell [19] requires the computation of the singular orbital element \(\beta _1\) before the root-solve of various orbital elements, Eq. (12) of this paper circumvents the computation of \(\beta _1\) and instead prescribes the root-solve of the orbital element differences discussed in the context of Eq. (11). Note in Eq. (12) that \(\hat{x}= \sqrt{a}\mathrm {\Delta }E\) for elliptical orbits and \(\hat{z}= -\gamma \hat{x}^2\). The symbol \(W_k\) represents a special recursive function defined by Getchell [19], seeded with \(W_0 = f\), \({W_1 = \left( f+ e V_1 \right) /p}\), where \(V_k\) is a different recursive function seeded with \(V_0 = f\), \(V_1 = \sin f\).

Since \(J_3 = 0\), odd \(C_k\) are zero, \(C_0 = 0\), \(C_2 = 1\), \(C_4 = Q_1/2\), and \({C_6 = 3Q_1^2/8}\). Then, only even \(T_k\) matter, and the even \(Q^k T_k\) can be expressed as

$$\begin{aligned} T_0 = \psi ; \quad Q^k T_k = \frac{1}{k} \left[ \left( k-1 \right) Q^2 \left( Q^{k-2} T_{k-2} \right) - Q \cos \psi \left( Q \sin \psi \right) ^{k-1} \right] \end{aligned}$$
(13)

by manipulating Getchell’s equations. Substituting for \(Q\sin \psi = \eta \), Eq. (13) can be simplified as

$$\begin{aligned} T_0 = \psi ; \quad Q^k T_k = \frac{1}{k} \left[ \left( k-1 \right) Q^2 \left( Q^{k-2} T_{k-2} \right) - \eta ^{k-1} Q \cos \psi \right] \end{aligned}$$
(14)

and Eq. (14) can be differenced at two times to obtain \(\mathrm {\Delta }(Q^k T_k)\) as

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }T_0&= \mathrm {\Delta }\psi ; \quad \\ \mathrm {\Delta }\left( Q^k T_k \right)&= \frac{1}{k} \left[ \left( k-1 \right) Q^2 \mathrm {\Delta }\left( Q^{k-2} T_{k-2} \right) - \mathrm {\Delta }\left( \eta ^{k-1} Q \cos \psi \right) \right] . \end{aligned} \end{aligned}$$
(15)

Computational details for \(\mathrm {\Delta }W_k\) and \(\mathrm {\Delta }T_k\) are discussed in Appendix A.

2.2 Universal Spheroidal Argument of Periapsis or Apsidal Drift Equation

The second kinematic equation in Eq. (11) is the OS argument of periapsis equation, which can be stated as

$$\begin{aligned} g_2 \equiv -\mathrm {\Delta }R_2 \left( \mathrm {\Delta }f\right) + \mathrm {\Delta }N_2 \left( \mathrm {\Delta }\psi \right) = 0 , \end{aligned}$$
(16)

or, using Getchell’s notation [19], to \(O(J_2^3)\) as

$$\begin{aligned} \begin{aligned} 0&= - \sqrt{\frac{p_0}{p \gamma _1}} \sum _{k=0}^{6} A_{k} \mathrm {\Delta }W_k \\&\quad + \frac{1}{\sqrt{S_1}} \left[ \mathrm {\Delta }\psi + \frac{1}{2} Q_1 \mathrm {\Delta }\left( Q^2 T_2 \right) + \frac{3}{8} Q_1^2 \mathrm {\Delta }\left( Q^4 T_4 \right) + \frac{5}{16} Q_1^3 \mathrm {\Delta }\left( Q^6 T_6 \right) \right] , \end{aligned} \end{aligned}$$
(17)

but the drift in the OS argument of periapsis, \(\mathrm {\Delta }\omega ^\prime \), is not apparent or accessible in this form. Note in Eq. (17) that a number of simplifications have been made assuming \(J_3 = 0\). Now, to extract \(\mathrm {\Delta }\omega ^\prime \) from Eq. (17), there are multiple ways to proceed. The simplest option is to substitute \(\mathrm {\Delta }\psi = \mathrm {\Delta }f+ \mathrm {\Delta }\omega ^\prime \) into the isolated \(\mathrm {\Delta }\psi \) term and rearrange Eq. (17) so that \(\mathrm {\Delta }\omega ^\prime \) is on the left-hand side as

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }\omega ^\prime&= \sqrt{\frac{p_0 S_1}{p \gamma _1}} \sum _{k=0}^{6} A_{k} \mathrm {\Delta }W_k \\&\quad - \left[ \mathrm {\Delta }f+ \frac{1}{2} Q_1 \mathrm {\Delta }\left( Q^2 T_2 \right) + \frac{3}{8} Q_1^2 \mathrm {\Delta }\left( Q^4 T_4 \right) + \frac{5}{16} Q_1^3 \mathrm {\Delta }\left( Q^6 T_6 \right) \right] , \end{aligned} \end{aligned}$$
(18)

or, defining the right-hand side (RHS) in Eq. (18) as \(\tilde{g}_2\), identify a recursive relationship as

$$\begin{aligned} \mathrm {\Delta }\omega ^\prime \equiv \tilde{g}_2 \left( \mathrm {\Delta }\omega ^\prime \right) . \end{aligned}$$
(19)

For convenience, define \(\mathrm {\Delta }\tilde{N}_2\) as the modified \(\mathrm {\Delta }N_2\) integral in Eq. (18) with \(\mathrm {\Delta }f\) in the secular term. When the constants and \(\mathrm {\Delta }f\) are known, Eq. (18) can be used to iteratively solve for \(\mathrm {\Delta }\omega ^\prime \). If the derivative of \(\tilde{g}_2 \left( \mathrm {\Delta }\omega ^\prime \right) \) with respect to \(\mathrm {\Delta }\omega ^\prime \) has an absolute value less than unity, then the method of successive approximations will converge [26]. To verify this sufficient condition, the derivative is evaluated as

$$\begin{aligned} \tilde{g}_2^\prime \left( \mathrm {\Delta }\omega ^\prime \right) = - \frac{1}{2} Q_1 \frac{\textrm{d} \mathrm {\Delta }\left( Q^2 T_2 \right) }{\textrm{d} \mathrm {\Delta }\omega ^\prime } - \frac{3}{8} Q_1^2 \frac{\textrm{d} \mathrm {\Delta }\left( Q^4 T_4 \right) }{\textrm{d} \mathrm {\Delta }\omega ^\prime } - \frac{5}{16} Q_1^3 \frac{\textrm{d} \mathrm {\Delta }\left( Q^6 T_6 \right) }{\textrm{d} \mathrm {\Delta }\omega ^\prime } . \end{aligned}$$
(20)

Each derivative in Eq. (20) contains terms either equal to factors of \(Q^2\) or \(\eta ^2\), or the product of multiple trigonometric functions, which all have a maximum absolute value of unity (see Appendix C). Each of these terms has a coefficient of \(Q_1^k\) for \(k = 1,2,3\), where \(Q_1 = O(J_2)\). Therefore, if evaluated from left to right, the terms have maximum values on the order of \(10^{-3}\), \(10^{-6}\), and \(10^{-9}\) for the Earth, respectively. Since \(| \tilde{g}_2^\prime \left( \mathrm {\Delta }\omega ^\prime \right) | < 1\), the method of successive approximations will converge, and because the derivative is small, with \(| \tilde{g}_2^\prime \left( \mathrm {\Delta }\omega ^\prime \right) | < O \left( J_2 \right) \), it will converge rapidly. The maximum error of the nth approximation can be stated as \(|\mathrm {\Delta }\omega ^\prime _n - \mathrm {\Delta }\omega ^\prime | < O \left( J_2^n \right) |\mathrm {\Delta }\omega ^\prime _0 - \mathrm {\Delta }\omega ^\prime |\), which means that for an Earth application with a worst-case initial guess error of 1 radian, the fourth iteration will have an error of roughly \(10^{-12}\) in the approximation of the root \(\mathrm {\Delta }\omega ^\prime \). In practice, the initial error \(|\mathrm {\Delta }\omega ^\prime _0 - \mathrm {\Delta }\omega ^\prime |\) is orders of magnitude smaller than unity, even for a many-revolution (many-rev) orbit, e.g. for a representative low-Earth orbit (LEO) 20-rev scenario inclined 30 degrees, the observed initial error in apse line drift is only \(2.6 \times 10^{-3}\) radians or about 0.15 degrees.

Note that alternatives to Eq. (18) may be obtained. For example, define the secular coefficient for the \(R_2\) integral as \(C_{R_2}\) and subtract \(C_{R_2} \mathrm {\Delta }\omega ^\prime \) from both sides of Eq. (17) to obtain

$$\begin{aligned} \begin{aligned} -C_{R_2} \mathrm {\Delta }\omega ^\prime&= - C_{R_2} \mathrm {\Delta }\psi - \sqrt{\frac{p_0}{p \gamma _1}} \sum _{k=1}^{6} A_{k} \left( \mathrm {\Delta }W_k \right) _{p} + \mathrm {\Delta }N_2 , \end{aligned} \end{aligned}$$
(21)

where \(\left( \mathrm {\Delta }W_k \right) _{p}\) represents the periodic part of each \(\mathrm {\Delta }W_k\) term. Solving Eq. (21) for \(\mathrm {\Delta }\omega ^\prime \) leads to

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }\omega ^\prime&= \mathrm {\Delta }\psi + \frac{1}{C_{R_2}} \left[ \sqrt{\frac{p_0}{p \gamma _1}} \sum _{k=1}^{6} A_{k} \left( \mathrm {\Delta }W_k \right) _{p} - \mathrm {\Delta }N_2 \right] . \end{aligned} \end{aligned}$$
(22)

For convenience, define \(\mathrm {\Delta }\tilde{R}_2\) as the modified \(\mathrm {\Delta }R_2\) integral in Eq. (22) with \(\mathrm {\Delta }\psi \) in the secular term.

2.3 Universal Spheroidal RAAN or Nodal Drift Equation

The third kinematic equation in Eq. (11) is the spheroidal RAAN equation, which in general enables the computation of the spheroidal RAAN drift as

$$\begin{aligned} \mathrm {\Delta }\mathrm {\Omega }^\prime = - c^2 \mathrm {\Delta }R_3 + \mathrm {\Delta }N_4 . \end{aligned}$$
(23)

To \(O(J_2^3)\), Eq. (23) can be expressed with Getchell’s notation as

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }\mathrm {\Omega }^\prime&= -c^2 \frac{\alpha _3}{\sqrt{\mu p \gamma _1}} \left[ \mathrm {\Delta }W_2 + A_1 \mathrm {\Delta }W_3 + \left( A_2 - c^2 \right) \mathrm {\Delta }W_4 \right. \\&\quad + \left. \left( A_3 - A_1 c^2 \right) \mathrm {\Delta }W_5 + \left( A_4 - A_2 c^2 + c^4 \right) \mathrm {\Delta }W_6 \right] \\&\quad - \frac{\alpha _3}{2\sqrt{\mu p_0 S_1}} \left[ \sum _{k=0}^{5} C_{1k} \mathrm {\Delta }\left( Q^k T_k \right) + \sum _{k=0}^{5} C_{2k} \left( -1 \right) ^k \mathrm {\Delta }\left( Q^k T_k \right) \right] , \end{aligned} \end{aligned}$$
(24)

where

$$\begin{aligned} C_{1k} = \sum _{\alpha =k+1}^6 d_\alpha ; \quad C_{2k} = \sum _{\alpha =k+1}^6 (-1)^\alpha d_\alpha , \end{aligned}$$
(25)

\(d_k\) are zero for odd k, \(d_2 = Q_1/2\), \(d_4 = 3 Q_1^2/8\), and \(d_6 = 5 Q_1^3/16\), which means that \(C_{1k}\) and \(C_{2k}\) are nonzero for all k. Observe that using Vinti’s potential with \(J_3 = 0\) has resulted in a number of simplifications and will also cause the \(C_{1k}\) terms to cancel with the \(C_{2k}\) terms for odd k.

3 Universal Vinti Orbit Propagator

The new form of the kinematic equations established in the previous section enables the development of a novel, universal Vinti orbit propagator, but several additional components are required to furnish a complete algorithm. It is helpful to have in Fig. 1 an outline of the author’s computational procedure for the propagator, showing how to initialize the algorithm and how to use UVs and OS equinoctial elements in concert. The computational procedure is discussed in detail in the following sections.

Fig. 1
figure 1

Proposed and validated computational procedure for a universal Vinti propagator

3.1 On the Spheroidal Equinoctial Elements

It seems a nonsingular solution based on the standard UVs, as presented here, would not be possible without the definition of OS equinoctial orbital elements [17], because a nonsingular coordinate transformation between the ECI frame and an orbital frame is required before and after the root-solve. A new, simple method based on vectors is proposed for the computation of the OS equinoctial elements \(p_1\) and \(p_2\), which physically represent the components of the OS ascending node vector [17]. The OS position vector in ECI coordinates is given by

$$\begin{aligned} \varvec{\rho }= \left[ \begin{array} {ccc} \dfrac{ \rho }{ \sqrt{\rho ^2 + c^2}} x\\\dfrac{ \rho }{ \sqrt{\rho ^2 + c^2}} y\\z\end{array} \right] \end{aligned}$$
(26)

and taking the time derivative gives the OS inertial velocity as

$$\begin{aligned} {}^{N}{\varvec{\dot{\rho }}}= \left[ \begin{array}{ccc} \dot{\rho }\hat{\rho }_x + \rho \dot{\hat{\rho }}_x \\ \dot{\rho }\hat{\rho }_y + \rho \dot{\hat{\rho }}_y \\ \dot{z}\end{array} \right], \end{aligned}$$
(27)

where \(\varvec{\hat{\rho }}\) and \(\varvec{{\dot{{\hat{\rho }}}}}\) denote the OS position unit vector and its inertial velocity, respectively,

$$\begin{aligned} \dot{\hat{\rho }}_x= \frac{1}{\sqrt{\rho ^2 + c^2}} \left( \dot{x}- \frac{\rho \dot{\rho }}{ \rho ^2 + c^2} x\right) ; \quad \dot{\hat{\rho }}_y= \frac{1}{\sqrt{\rho ^2 + c^2}} \left( \dot{y}- \frac{\rho \dot{\rho }}{ \rho ^2 + c^2} y\right) , \end{aligned}$$
(28)

the subscripts xy denote x and y components, and the superscript N denotes the Newtonian or ECI frame. Letting the superscript R denote the rotating frame attached to the OS orbital plane with angular velocity \({\varvec{\omega } = [0 \;\;\; 0 \;\;\; \dot{\mathrm {\Omega }}^\prime ]^\top }\), the OS velocity relative to the R frame attached to the OS orbital plane is given by

$$\begin{aligned} {}^{R}{\varvec{\dot{\rho }}}= {}^{N}{\varvec{\dot{\rho }}}- \varvec{\omega } \times \varvec{\rho }= \left[ \begin{array}{ccc} \dot{\rho }\hat{\rho }_x + \rho \dot{\hat{\rho }}_x+ \dot{\mathrm {\Omega }}^\prime \rho _y \\ \dot{\rho }\hat{\rho }_y + \rho \dot{\hat{\rho }}_y- \dot{\mathrm {\Omega }}^\prime \rho _x \\ \dot{z}\end{array} \right], \end{aligned}$$
(29)

where \({}^{R}{\varvec{\dot{\rho }}}\) is constrained to lie in the orbital plane by definition. The OS specific angular momentum vector relative to the OS orbital plane can then be computed as

$$\begin{aligned} {}^{R}{\varvec{h}} = \varvec{\rho }\times {}^{R}{\varvec{\dot{\rho }}}\end{aligned}$$
(30)

and the OS equinoctial unit vector \(\hat{\textbf{w}}\) parallel to \({}^{R}{\varvec{h}}\) as \(\hat{\textbf{w}}= {}^{R}{\varvec{h}}/\Vert {}^{R}{\varvec{h}} \Vert \) in ECI coordinates. Note that while \(\Vert {}^{R}{\varvec{h}} \Vert \) can be computed directly from Eq. (30), consideration of its physical meaning as the total angular momentum normal to the OS orbital plane points to a simple expression for the magnitude of \({}^{R}{\varvec{h}}\) as

$$\begin{aligned} \Vert {}^{R}{\varvec{h}} \Vert = \rho ^2 \dot{\psi }, \end{aligned}$$
(31)

which can be verified from Eq. (30). Finally, \(p_1\) and \(p_2\) can be computed as

$$\begin{aligned} p_1 = -\frac{\hat{w}_y}{1 + K \hat{w}_z}; \quad p_2 = \frac{\hat{w}_x}{1 + K \hat{w}_z} \end{aligned}$$
(32)

using the same formulas as Danielson et al. [27] with K as the retrograde factor. The guidelines for computing \(\dot{\mathrm {\Omega }}^\prime \) offered by Biria and Russell [17] may be used in Eq. (29), although a better alternative is proposed here that is free of singularities at the poles.

One of the two exact expressions for \(\dot{\mathrm {\Omega }}^\prime \) put forward by Biria and Russell [17] has the following form:

$$\begin{aligned} \dot{\mathrm {\Omega }}^\prime = \frac{ 1 }{ \rho ^2 + c^2 \eta ^2} \left[ -\frac{ c^2 \alpha _3 }{ \rho ^2 + c^2} + \frac{ \alpha _3 }{ 1 - \eta ^2} \left( 1 - \frac{ \sqrt{ 1 - Q_1 \eta ^2} }{ \sqrt{ 1 - Q_1 } } \right) \right] , \end{aligned}$$
(33)

where \(Q_1\) is \(O(J_2)\) and determined from factoring the \(G\left( \eta \right) \) quartic. The \(\alpha _3 / (1 - \eta ^2)\) expression is indeterminate near the poles, but the term it multiplies on the right in Eq. (33) can be manipulated. First, rewrite the right term inside the brackets as

$$\begin{aligned} \frac{ \alpha _3 }{ 1 - \eta ^2} \left( 1 - \frac{ \sqrt{ 1 - Q_1 \eta ^2} }{ \sqrt{ 1 - Q_1 } } \right) = \frac{ \alpha _3 }{ 1 - \eta ^2} \frac{ \sqrt{ 1 - Q_1 } - \sqrt{ 1 - Q_1 \eta ^2} }{ \sqrt{ 1 - Q_1 } } . \end{aligned}$$
(34)

Then, rationalize the numerator and simplify to obtain

$$\begin{aligned} \begin{aligned}&\frac{ \alpha _3 }{ 1 - \eta ^2} \frac{ \sqrt{ 1 - Q_1 } - \sqrt{ 1 - Q_1 \eta ^2} }{ \sqrt{ 1 - Q_1 } } \\&\quad = \frac{ \alpha _3 }{ 1 - \eta ^2} \frac{ - Q_1 \left( 1 - \eta ^2\right) }{\sqrt{ 1 - Q_1 } \left( \sqrt{ 1 - Q_1 } + \sqrt{ 1 - Q_1 \eta ^2} \right) } , \end{aligned} \end{aligned}$$
(35)

so that the problematic \(1 - \eta ^2\) term can be canceled out of the denominator. Substituting the result in Eq. (35) back into Eq. (33) yields a final expression for \(\dot{\mathrm {\Omega }}^\prime \), analogous to those for \(\dot{f}\) or \(\dot{\psi }\), that is exact, always nonsingular, and independent of any method for evaluating the integrals, given by

$$\begin{aligned} \dot{\mathrm {\Omega }}^\prime = -\frac{\alpha _3}{ \rho ^2 + c^2 \eta ^2} \left[ \frac{c^2}{ \rho ^2 + c^2} + \frac{ Q_1 }{\sqrt{ 1 - Q_1 } \left( \sqrt{ 1 - Q_1 } + \sqrt{ 1 - Q_1 \eta ^2} \right) } \right] . \end{aligned}$$
(36)

When obtaining \(\dot{\mathrm {\Omega }}^\prime \) from OS orbital elements, an alternative expression for \(\alpha _3\) may be used to give

$$\begin{aligned} \begin{aligned} \dot{\mathrm {\Omega }}^\prime&= -\frac{R_e^2 J_2 \sqrt{\mu p_0 \left( 1 - Q_1 S_0 \right) }}{ \rho ^2 + c^2 \eta ^2} \\&\quad \times \left[ \frac{1}{ \rho ^2 + c^2} - \frac{ \gamma _0/(p_0 S_1) }{ 1 - Q_1 + \sqrt{ 1 - Q_1 } \sqrt{ 1 - Q_1 \eta ^2} } \right] \cos I , \end{aligned} \end{aligned}$$
(37)

where \(c^2 = R_e^2 J_2\) and \(Q_1 = -c^2 \gamma _0/(p_0 S_1)\) have been used to write \(\dot{\mathrm {\Omega }}^\prime \) in a more familiar form. Equation (37) indicates that \(\dot{\mathrm {\Omega }}^\prime \) is \(O(J_2)\) and proportional to \(\cos I\) as expected. All quantities on the right-hand side are constant except for \(\rho \) and \(\eta \), which cause the rate to vary over time. Interestingly, since \(\gamma _0 = 0\) for parabolic orbits, the term on the right inside the brackets does not contribute to \(\dot{\mathrm {\Omega }}^\prime \) in that orbital regime:

$$\begin{aligned} \dot{\mathrm {\Omega }}^\prime _{\textrm{parabola}} = -\frac{R_e^2 J_2 \sqrt{\mu p_0}}{ \left( \rho ^2 + c^2\right) \left( \rho ^2 + c^2 \eta ^2\right) } \cos I .\end{aligned}$$
(38)

The various connections to standard concepts for two-body dynamics evident in Eqs. (30) and (32) highlight the role and utility of OS vectors in a way not previously shown. While the approach by Biria and Russell [17] establishes useful relationships for computing \(p_1\) and \(p_2\) in certain contexts, the physical insight and simplicity offered by the above algorithm is considered an improvement over previous methods. Furthermore, the introduction of an exact, nonsingular expression for \(\dot{\mathrm {\Omega }}^\prime \) in Eq. (36) finally removes all singularities from the OS equinoctial coordinate transformation, greatly simplifying the transformation and making it easier to use.

3.2 Well-Behaved Exact Forms for the Mean Frequencies

Let \(C_{R_j}\) be Getchell’s three secular coefficients for the respective \(R_j\) integrals and \(C_{N_j}\) be his three secular coefficients for the \(N_j\) integrals (see Appendix B). From here, defining a mean-motion-like quantity as

$$\begin{aligned} n_v\equiv \sqrt{\frac{\mu \gamma _1}{a^3}} = \sqrt{ -\mu \gamma _1 \gamma ^3} \end{aligned}$$
(39)

for convenience, the anomalistic and draconitic mean frequencies can be written respectively as

$$\begin{aligned} 2\pi \nu _1 = \frac{n_v}{\frac{1}{\gamma _1} + n_v\left( C_{R_1} + c^2 \frac{C_{N_1}}{C_{N_2}} C_{R_2} \right) } \end{aligned}$$
(40)

and

$$\begin{aligned} 2\pi \nu _2 = \frac{ n_v\; \frac{C_{R_2}}{C_{N_2}} }{\frac{1}{\gamma _1} + n_v\left( C_{R_1} + c^2 \frac{C_{N_1}}{C_{N_2}} C_{R_2} \right) } . \end{aligned}$$
(41)

From Eqs. (40) and (41), the secular rate for OS argument of periapsis can be obtained as

$$\begin{aligned} \dot{\omega }_s^\prime = 2\pi \nu _2 - 2\pi \nu _1 = \frac{ n_v\left( \frac{C_{R_2}}{C_{N_2}} - 1 \right) }{\frac{1}{\gamma _1} + n_v\left( C_{R_1} + c^2 \frac{C_{N_1}}{C_{N_2}} C_{R_2} \right) } . \end{aligned}$$
(42)

Similarly, assuming \(\alpha _3\) is factored out of \(C_{R_3}\) and \(C_{N_3}\), the secular rate for OS RAAN can be determined as

$$\begin{aligned} \dot{\mathrm {\Omega }}_s^\prime = - \frac{ n_v\left( c^2 C_{R_3} - C_{R_2} \frac{C_{N_3}}{C_{N_2}} \right) }{\frac{1}{\gamma _1} + n_v\left( C_{R_1} + c^2 \frac{C_{N_1}}{C_{N_2}} C_{R_2} \right) } \sqrt{\mu p_0 \left( 1 - Q_1 S_0 \right) } \cos I , \end{aligned}$$
(43)

where \(\alpha _3 = \sqrt{\mu p_0 \left( 1 - Q_1 S_0 \right) } \cos I\) has been used to make the dependence on \(\cos I\) explicit.

3.3 Initial Guesses for a One-Dimensional, Two-Tier, Nested Root-Solve

Taking an approach analogous to Bate et al. [4], good initial guesses can be derived depending on the orbital regime. By choosing the definition of Vinti UVs proposed by Biria [23], the arguments presented by Bate et al. to derive various initial guesses for \(\hat{x}\) also follow for Vinti dynamics. New arguments are presented to derive initial guesses for \(\mathrm {\Delta }\omega ^\prime \), which is zero under Keplerian dynamics.

For elliptical orbits [23], \(\hat{x}= \sqrt{a} \mathrm {\Delta }E\), which means \({\hat{x}= 2\pi \sqrt{a}}\) after one orbital period in the sense of one revolution of an anomalistic angle. Following Bate et al. [4], note that

$$\begin{aligned} \frac{\hat{x}}{2\pi \sqrt{a}} \approx \frac{\mathrm {\Delta }t}{t_{p}} , \end{aligned}$$
(44)

where \(t_{p}\) is the anomalistic orbital period. Let \(t_{p}= 2\pi /2\pi \nu _1 = 1/\nu _1\) and solve for \(\hat{x}\) to obtain

$$\begin{aligned} \hat{x}\approx \sqrt{a} (2\pi \nu _1) \mathrm {\Delta }t . \end{aligned}$$
(45)

Substituting \(2\pi \nu _1\) from Eq. (40) into Eq. (45) and noting that

$$\begin{aligned} \sqrt{a}n_v= \sqrt{\mu \gamma _1}/a = -\gamma \sqrt{\mu \gamma _1} , \end{aligned}$$
(46)

a good initial guess for \(\hat{x}\) in the elliptical regime can finally be expressed as

$$\begin{aligned} \hat{x}_{{\textrm{guess}}} = \frac{-\gamma \sqrt{\mu \gamma _1}}{\frac{1}{\gamma _1} + n_v\left( C_{R_1} + c^2 \frac{C_{N_1}}{C_{N_2}} C_{R_2} \right) } \mathrm {\Delta }t . \end{aligned}$$
(47)

Using mean frequencies or Eq. (42), a good guess for \(\mathrm {\Delta }\omega ^\prime \) in the elliptical regime (\(\gamma < 0\)) is given by

$$\begin{aligned} \mathrm {\Delta }\omega ^\prime _{{\textrm{guess}}} = \dot{\omega }_s^\prime \mathrm {\Delta }t . \end{aligned}$$
(48)

For hyperbolic orbits with a large change in hyperbolic eccentric anomaly, the arguments by Bate et al. [4] can be applied to obtain the approximations:

$$\begin{aligned} C \approx -\frac{e^{\sqrt{-\hat{z}}}}{2\hat{z}} = -\frac{ae^{\sqrt{-\hat{z}}}}{2\hat{x}^2}; \quad S \approx -\frac{a\sqrt{-a}e^{\sqrt{-\hat{z}}}}{\textrm{sgn}\left( \mathrm {\Delta }t\right) 2\hat{x}^3} , \end{aligned}$$
(49)

where “e” in this section refers to the exponential function. Recall the universal TOF equation in Eq. (12) and neglect not only the \(\rho _0\hat{x}\) term, as Bate et al. did, but also \(O(J_2)\) and smaller terms, to give

$$\begin{aligned} \sqrt{\mu \gamma _1} \mathrm {\Delta }t \approx \sigma _0\hat{x}^2 C + \left( 1 + \rho _0\gamma \right) \hat{x}^3 S . \end{aligned}$$
(50)

Substituting Eq. (49) into Eq. (50) gives

$$\begin{aligned} \sqrt{\mu \gamma _1} \mathrm {\Delta }t \approx -\frac{a\sigma _0}{2}e^{\sqrt{-\hat{z}}} - \textrm{sgn}\left( \mathrm {\Delta }t\right) \frac{a\sqrt{-a}}{2} \left( 1 + \rho _0\gamma \right) e^{\sqrt{-\hat{z}}} \end{aligned}$$
(51)

and solving for \(\sqrt{-\hat{z}}\) leads to

$$\begin{aligned} \sqrt{-\hat{z}} = \pm \frac{\hat{x}}{\sqrt{-a}} \approx \ln \left\{ \frac{-2\sqrt{\mu \gamma _1} \mathrm {\Delta }t}{a\left[ \sigma _0+ \textrm{sgn}\left( \mathrm {\Delta }t\right) \sqrt{-a} \left( 1 + \rho _0\gamma \right) \right] } \right\} \end{aligned}$$
(52)

after taking the logarithm. Noting from Bate et al. [4] that \(\hat{x}\) is positive when \(\mathrm {\Delta }t\) is positive, the initial guess for \(\hat{x}\) when dealing with hyperbolic orbits can finally be stated as

$$\begin{aligned} \hat{x}_{{\textrm{guess}}} = \textrm{sgn}\left( \mathrm {\Delta }t\right) \sqrt{-a} \ln \left[ \frac{2\gamma \sqrt{\mu \gamma _1} \mathrm {\Delta }t}{\sigma _0+ \textrm{sgn}\left( \mathrm {\Delta }t\right) \sqrt{-a} \left( 1 + \rho _0\gamma \right) } \right] . \end{aligned}$$
(53)

Over the span of a typical hyperbolic orbit, \(\omega ^\prime \) will not change much, so the drift \(\mathrm {\Delta }\omega ^\prime \) can be guessed as

$$\begin{aligned} \mathrm {\Delta }\omega ^\prime _{{\textrm{guess}}} = 0 \;. \end{aligned}$$
(54)

For nearly parabolic orbits, the same assumptions are made for Vinti dynamics as for Keplerian dynamics. Accordingly, an appropriate guess for \(\hat{x}\) in this orbital regime is \(\hat{x}_{{\textrm{guess}}} = 0\), which may be applied for nearly parabolic orbits in the bounded or unbounded case, perhaps with a tolerance of \(| \gamma | < 10^{-5}\), depending on how many terms are retained for the approximations of the C and S functions in this regime [4]. When nearly parabolic orbits are escape trajectories (\(\gamma \ge 0\)), then \(\mathrm {\Delta }\omega ^\prime _{{\textrm{guess}}} = 0\) is a good guess, as for hyperbolic orbits.

Striking similarities are observed for the initial guesses of \(\hat{x}\) between Keplerian and Vinti dynamics. While the guess for \(\hat{x}\) is different between elliptical, nearly parabolic, and hyperbolic regimes, the guess for \(\mathrm {\Delta }\omega ^\prime \) is binary: zero for escape trajectories (\(\gamma \ge 0\)), but with a dependence on mean frequencies for bounded trajectories (\(\gamma < 0\)). When employed in a root-solve procedure, these initial guesses for \(\hat{x}\) and \(\mathrm {\Delta }\omega ^\prime \) will speed up convergence and increase robustness of the root-solve in a universal Vinti orbit propagator.

3.4 Initialization and Root-Solve Procedure

An outline of the initialization and root-solve procedure employed in this study and depicted in Fig. 1 is offered here. For the majority of the algorithm’s initialization phase, the procedure developed in Biria and Russell [17] is used to convert an initial ECI state to initial OS equinoctial elements and compute all the intermediate constants. In other words, the first eight steps in the flow chart follow the procedure in that reference, except that \(\dot{\mathrm {\Omega }}^\prime \) is computed from Eq. (36) and \(p_{1_0},p_{2_0}\) from Eqs. (2632), the improved algorithm developed in an earlier section. Next, since the current propagator uses universal variables, Getchell’s method [19] is used to compute the coefficients of the six integrals and certain initial values, with subtle differences to avoid indeterminate forms. For the \(\mathrm {\Delta }R_j\) integrals, the coefficients \(A_k\) are computed from Getchell’s equations [19] and the initial values \(e^k V_{k_0}\) are computed from Eqs. (7274) in Appendix A. Additional constant coefficients generated by the recursive functions \(W_k\) in Eq. (69) and \(e^k V_k\) are computed and stored for later use at this stage, noting that \(e^j\) is factored out of each coefficient such that the exponent matches the number of trigonometric functions multiplied together in a given term. The \(e^j\) factors are discarded from the coefficients and accounted for by grouping them with the appropriate terms in \(V_k\). This bookkeeping process avoids divisions by e that could cause issues for nearly circular orbits when \(e \approx 0\). For the \(\mathrm {\Delta }N_j\) integrals, the coefficients \(C_k, C_{1k}, C_{2k}\) and initial values \(Q^k T_{k_0}\) are required. Expressions for coefficients are given explicitly just before Eq. (13) to compute \(C_k\) for \(\mathrm {\Delta }N_1\), explicitly in Eq. (17) for \(\mathrm {\Delta }N_2\), and in Eq. (25) to compute \(C_{1k}, C_{2k}\) for \(\mathrm {\Delta }N_4\). The \(Q^k T_{k_0}\) terms can be computed from Eqs. (14) and (68).

After computing all of the necessary constants, the next step is to initialize the root-solve. Of the three kinematic equations, the root-solve only involves Eq. (12) for \(\hat{x}\) and Eq. (18) for \(\mathrm {\Delta }\omega ^\prime \). Equation (24) for \(\mathrm {\Delta }\mathrm {\Omega }^\prime \) is decoupled and is not used until after the root-solve. The root-solve is initialized by guessing \(\hat{x}\) and \(\mathrm {\Delta }\omega ^\prime \) using the methods developed in the previous section. Guess \(\hat{x}\) from Eq. (47) in the elliptical case or Eq. (53) in the hyperbolic case, or set \(\hat{x}_{\textrm{guess}} = 0\) in the parabolic case. Guess \(\mathrm {\Delta }\omega ^\prime \) from Eq. (48) in the elliptical case or Eq. (54) in the hyperbolic or parabolic case.

A desired root-solve procedure follows the calculation of the two initial guesses described above, where the one-dimensional root-solve depicted in Fig. 1 searches for the value of the universal variable \(\hat{x}\) that solves Eq. (12). It is one-dimensional in the sense of Vinti’s solution [6] or that of Getchell [19], where the equation governing the OS argument of periapsis, \(\omega ^\prime \), is used in an intermediate step. In those references, with \(J_3 = 0\), the equation for \(\omega ^\prime \) is used to sequentially obtain the value of \(\psi \). In the current approach, where the value of \(\mathrm {\Delta }\omega ^\prime \) is unknown but a good initial guess is available, a straightforward method of successive approximations is applied to Eq. (18) to solve for \(\mathrm {\Delta }\omega ^\prime \) at each iteration of the root-solve on \(\hat{x}\). This approach is taken while acknowledging that better alternatives may exist. For the described outer loop, a Newton–Raphson algorithm combined with a bisection method [28] is used, a technique that Press et al. [28] describe as a fail-safe alternative to the less robust Newton–Raphson method. While robustness may improve with a variable order Laguerre’s method [9, 29], its implementation in this framework is left to future work. For iteration \(j = 0\), set \(\hat{x}_j = \hat{x}_{\textrm{guess}}\) and \(\mathrm {\Delta }\omega ^\prime _j = \mathrm {\Delta }\omega ^\prime _{\textrm{guess}}\), and compute \(\hat{z}_j\), \(C_j\), and \(S_j\) from the definitions described in Biria [23], \(\mathrm {\Delta }f_j\) from Eq. (84), and \(\mathrm {\Delta }\psi _j\) from

$$\begin{aligned} \mathrm {\Delta }\psi _j = \mathrm {\Delta }f_j + \mathrm {\Delta }\omega ^\prime _j . \end{aligned}$$
(55)

As a safeguard, a quadrant check is performed to ensure \(\textrm{sgn}\left( \mathrm {\Delta }f_j\right) = \textrm{sgn}\left( \mathrm {\Delta }t\right) \), which could be violated near the full-rev boundary if the derivatives are inaccurate; \(\mathrm {\Delta }f_j\) is appropriately shifted to the range \(\left[ 0, \textrm{sgn}\left( \mathrm {\Delta }t\right) 2\pi \right] \) as necessary. The quantities \(\mathrm {\Delta }R_{1_j}\) and \(\mathrm {\Delta }N_{1_j}\) are required to calculate the right-hand side of Eq. (12). Compute \(\mathrm {\Delta }W_{k_j}\) from Eq. (70) and \(\mathrm {\Delta }R_{1_j}\) from

$$\begin{aligned} \begin{aligned} \mathrm {\Delta }R_{1_j}&= \frac{1}{\sqrt{\mu \gamma _1}} \left[ \sigma _0\hat{x}_j^2 C \left( \hat{z}_j \right) + \left( 1 + \rho _0\gamma \right) \hat{x}_j^3 S \left( \hat{z}_j \right) + \left( \rho _0+ A_1 \right) \hat{x}_j + \frac{1}{\sqrt{p}} \sum _{k=0}^{4} A_{k+2} \mathrm {\Delta }W_{k_j} \right] . \end{aligned} \end{aligned}$$
(56)

Also compute \(\mathrm {\Delta }R_{2_j}\) in the outer loop as

$$\begin{aligned} \mathrm {\Delta }R_{2_j} = \sqrt{\frac{p_0}{p \gamma _1}} \sum _{k=0}^{6} A_{k} \mathrm {\Delta }W_{k_j} . \end{aligned}$$
(57)

To obtain \(\mathrm {\Delta }N_{1_j}\), a converged value of \(\mathrm {\Delta }\omega ^\prime _j\) is required, which is furnished by the method of successive approximations. First, for iteration \(i = 0\), set \(\mathrm {\Delta }\omega ^\prime _{ji} = \mathrm {\Delta }\omega ^\prime _j\) and \(\mathrm {\Delta }\psi _{ji} = \mathrm {\Delta }\psi _j\), and compute \(\mathrm {\Delta }(Q^k T_{k})_{ji}\) from Eqs. (15) and (6568). Then, compute \(\mathrm {\Delta }\omega ^\prime _{j(i+1)}\) from Eq. (18). If \(|\mathrm {\Delta }\omega ^\prime _{j(i+1)} - \mathrm {\Delta }\omega ^\prime _{ji}| > 10^{-12}\) or a desired tolerance, apply Eq. (55) to update \(\mathrm {\Delta }\psi _{ji}\) to \(\mathrm {\Delta }\psi _{j(i+1)}\), set \(i = i + 1\), and return to Eq. (15). Otherwise, \(\mathrm {\Delta }\omega ^\prime _{j(i+1)}\) has converged to within the desired tolerance, which was found to take only a few iterations in practice since the initial guess is a good estimate. Use Eqs. (55) and (15) to update \(\mathrm {\Delta }\psi _{ji}\) and \(\mathrm {\Delta }(Q^k T_{k})_{ji}\) one more time, respectively, and then compute \(\mathrm {\Delta }N_{1_j}\) as

$$ \Delta N_{{1_{j} }} = \frac{1}{{\sqrt {\mu p_{0} S_{1} } }}\sum\limits_{{k = 0}}^{6} {C_{k} } \Delta \left( {Q^{k} T_{k} } \right)_{j} $$
(58)

and the right-hand side of Eq. (12) as \(\mathrm {\Delta }t_j = \mathrm {\Delta }R_{1_j} + c^2 \mathrm {\Delta }N_{1_j}\). The Newton update \(\mathrm {\Delta }\hat{x}_j\) can be obtained from

$$\begin{aligned} \hat{x}_{j+1} = \hat{x}_{j} + \mathrm {\Delta }\hat{x}_j; \qquad \mathrm {\Delta }\hat{x}_j = - \frac{g_1 \left( \hat{x}_j \right) }{g_1^\prime \left( \hat{x}_j \right) } , \end{aligned}$$
(59)

where

$$\begin{aligned} g_1 \left( \hat{x}_j \right) = \mathrm {\Delta }R_{1_j} + c^2 \mathrm {\Delta }N_{1_j} - \mathrm {\Delta }t = \mathrm {\Delta }t_j - \mathrm {\Delta }t , \end{aligned}$$
(60)

and its derivative

$$\begin{aligned} g_1^\prime \left( \hat{x}_j \right) = \left. \frac{\textrm{d} \mathrm {\Delta }t}{\textrm{d} \hat{x}} \right| _{\hat{x}= \hat{x}_j} \end{aligned}$$
(61)

is obtained from Eqs. (86), (92), and (93), with computational details on the first derivatives given in Appendix C, to be calculated in the outer loop. Using a simple stopping criterion like the one in Curtis [16], if the update \(|\mathrm {\Delta }\hat{x}_j| > 10^{-12}\) or a desired tolerance, set \(j = j + 1\), update \(\hat{x}_j\), \(\hat{z}_j\), \(C_j\), \(S_j\), \(\mathrm {\Delta }f_j\), and return to Eq. (55) to update \(\mathrm {\Delta }\psi _j\) and repeat the process, including the evaluation of Eq. (18) as part of the method of successive approximations. Otherwise, \(\hat{x}_j\) has converged to within the desired tolerance and the root-solve is terminated. Then, compute \(\mathrm {\Delta }\mathrm {\Omega }^\prime \) from Eqs. (2425). Note that any desired one-dimensional root-solve on \(\hat{x}\) could be substituted into the above process, but it must be ensured that any time \(\hat{x}\) is updated, such as right before terminating the root-solve, all derived quantities that flow from \(\hat{x}\) need to be updated as well to be consistent, including \(\mathrm {\Delta }f\), \(\mathrm {\Delta }\psi \), \(\mathrm {\Delta }W_k\), \(\mathrm {\Delta }(Q^k T_{k})\), and the evaluation of Eq. (18) as part of the method of successive approximations.

At this stage in the propagator, differential OS orbital elements have been obtained for the classical OS elements that vary with time: \(\mathrm {\Delta }f\) and UVs for the anomalistic motion, and \(\mathrm {\Delta }\omega ^\prime \) and \(\mathrm {\Delta }\mathrm {\Omega }^\prime \) to describe the total drift of the trajectory within the rotating OS orbital plane and the total drift of the OS orbital plane itself, respectively. The intermediate determination of the secular drift and evolution of the system [6] has been circumvented, and singular elements have been bypassed. If indeterminate calculations are to be avoided, a nonsingular orbital reference frame is required to map the state back to the ECI frame, and the OS equinoctial reference frame can be employed again for this purpose.

3.5 Propagating OS Equinoctial Elements

At the conclusion of the root-solve and after solving for \(\mathrm {\Delta }\mathrm {\Omega }^\prime \), three of the relevant equinoctial elements can be propagated, which amounts to adding \(\mathrm {\Delta }L\) to the initial true longitude \(L_0\) as

$$\begin{aligned} L = L_0+ \mathrm {\Delta }L = L_0+ \mathrm {\Delta }\psi + K \mathrm {\Delta }\mathrm {\Omega }^\prime \end{aligned}$$
(62)

and appropriately rotating the OS ascending node vector by \(\mathrm {\Delta }\mathrm {\Omega }^\prime \) as

$$\begin{aligned} \left[ \begin{array}{c} p_{1} \\ p_{2} \end{array} \right] = \left[ \begin{array}{cr} \cos \mathrm {\Delta }\mathrm {\Omega }^\prime &{} -\sin \mathrm {\Delta }\mathrm {\Omega }^\prime \\ \sin \mathrm {\Delta }\mathrm {\Omega }^\prime &{} \cos \mathrm {\Delta }\mathrm {\Omega }^\prime \end{array} \right] \left[ \begin{array}{c} p_{1_0} \\ p_{2_0} \end{array} \right] . \end{aligned}$$
(63)

Then, with the final \(\dot{\mathrm {\Omega }}^\prime \) obtained from Eq. (36) and \(\dot{\rho }\) and \(\dot{\eta }\) from Eqs. 21 and 17 in Vinti [22], respectively, as

$$\begin{aligned} \dot{\rho }= \frac{\rho ^2 \dot{f}}{p} e \sin f; \qquad \dot{\eta }= \dot{\psi }Q \cos \psi , \end{aligned}$$
(64)

where \(e\sin f\) and \(Q\sin \psi \) are computed from angle sum identities and \(\dot{f}\) and \(\dot{\psi }\) from Biria and Russell [17], the transformation to ECI coordinates is almost complete. Finally, the steps outlined in Biria and Russell [17] can be followed to compute the remaining final scalar time derivative, \(\dot{L}\), final OS equinoctial unit vectors, \(\hat{\textbf{f}}\) and \(\hat{\textbf{g}}\), their time derivatives, \(\varvec{\dot{{\hat{\textrm{f}}}}}\) and \(\varvec{\dot{{\hat{\textrm{g}}}}}\), and ultimately the ECI position and velocity.

3.6 Mitigating Degradation of Accuracy in Elliptical Many-Rev Scenarios

In elliptical many-rev scenarios, \(\mathrm {\Delta }t\), \(\hat{x}\), \(\hat{z}\), and root-solved angular quantities can grow very large if a naive approach is adopted that does not leverage knowledge of the orbital period, incurring computational errors that grow over time and become large for ultra-high-rev scenarios. To avoid this degradation of accuracy, a robust version of the universal Vinti orbit propagator should reduce the TOF and angular quantities to a range within a single orbital period. Such a reduction is complicated to achieve under the Vinti potential, but it is possible and has been implemented in this work.

Under Keplerian dynamics, it is trivial to apply the modulo operation to the orbital period to achieve the desired reduction [4]. When this approach is adapted to the Vinti propagator developed in this study, however, the orbital “period” is not constant; it is slightly different for each rev, where the (anomalistic) period is defined here as the time it takes for \(| \mathrm {\Delta }f|\) to go from 0 to 2\(\pi \) for a particular rev. The desired quantity then becomes the time \(\mathrm {\Delta }t_N\) required to complete N revs, which can be found iteratively. The iteration required is nowhere near as complex as the root-solve depicted in Fig. 1, mainly because \(\mathrm {\Delta }\omega ^\prime _N\) is the only unknown, with \(\mathrm {\Delta }f_N = \textrm{sgn}\left( \mathrm {\Delta }t\right) 2\pi N\), \(\hat{x}_N = \textrm{sgn}\left( \mathrm {\Delta }t\right) \sqrt{a} 2\pi N\), \(\hat{z}_N = (2\pi N)^2\), \(C(\hat{z})_N = 0\), and \(S(\hat{z})_N = 1/\hat{z}_N\). The propagator uses the method of successive approximations to iteratively solve Eq. (18) for \(\mathrm {\Delta }\omega ^\prime _N\) with the initial guess \(\mathrm {\Delta }\omega ^\prime _N = \textrm{sgn}\left( \mathrm {\Delta }t\right) \dot{\omega }_s^\prime t_p N_{\textrm{guess}}\), and then, once converged, it is trivial to compute \(\mathrm {\Delta }t_N\) from Eq. (12). Computational details, including a method for guessing N, are provided in Appendix D. The implied small increase in compute time is considered a small sacrifice in exchange for accuracy preservation.

4 Examples: Universal Propagator Accuracy, Speed, and Robustness

Having introduced, in full, a novel Vinti orbit propagator, the performance of the presented algorithm must be assessed in terms of accuracy, runtime, and robustness. First, accuracy is evaluated for a small set of carefully chosen orbital regimes of interest. Then, computational speed is measured from a large set of random initial conditions, from which robustness statistics are also extracted. Finally, additional performance comparisons are made to the benchmark Vinti6 algorithm [2].

4.1 Accuracy

The accuracy of Vinti dynamics has been evaluated against spherical harmonics techniques in multiple prior studies [11, 30, 31] and is not examined further in this work. The modeling of non-conservative forces under Vinti’s potential has been explored as well, Vinti [32] and Tong and Wu [33] taking a generalized approach while Sherrill [34] and Watson et al. [35] focused on atmospheric drag. While perturbations due to non-conservative forces are important for certain applications, they are outside the scope of this work. Instead, the present work focuses on evaluating the accuracy of the third-order approximation of the \(R_j\) and \(N_j\) integrals in different orbital regimes and the computational runtime of the proposed universal Vinti propagator.

The propagator’s accuracy in four different orbital regimes is examined in Fig. 2 to validate the approach and implementation, with ICs for each scenario given in Table 1. Other parameters are \(\mu = 3.986004415 \times 10^{5}\) km\(^3\)/sec\(^2\), \(R_e = 6378.137\) km, and \(J_2 = 1.082636022984 \times 10^{-3}\). Depending on the orbital regime, the trajectories are initialized with Keplerian mean anomaly, \(M_k\), or true anomaly, \(f_k\). The examples include a geostationary orbit (GEO) (Fig. 2a) and a Molniya orbit (Fig. 2b) taken directly from Appendix C in Der and Bonavito [2], in addition to two examples of inclined escape trajectories: an exactly parabolic case (Fig. 2c) and a retrograde hyperbolic case (Fig. 2d). Figure 2 shows the 3D trajectory and log-scale position error for each example. The position error metric is the magnitude of the vector error between the third-order analytical solution and the numerically integrated equations of motion in ECI coordinates [36]. Numerical integration is performed in MATLAB using ode45, a variable-step fourth-order Runge–Kutta method, with a \(2.224 \times 10^{-14}\) relative accuracy tolerance and a \(1.0 \times 10^{-20}\) absolute tolerance. In the Vinti propagator, the tolerance on \(\mathrm {\Delta }\omega ^\prime \) is set to \(10^{-15}\) rad in both the primary and full-rev root-solve algorithms, to extract as much accuracy as possible, and \(\hat{x}\) is iterated upon until the solution cannot be further improved in double precision. The accuracy and reliability of the propagator is found to be high across all orbital regimes, with errors in Fig. 2 seen to be within about \(10^{-8}\) km over a range of flight times for escape trajectories and within roughly \(10^{-6}\) km for long many-rev propagations up to 20 days. OS Lagrange coefficients are used to help assess and monitor convergence [23]. The secular error growth observed may be attributed to two factors: 1) the computation of approximate orbital element coordinates (the momenta are computed to double-precision accuracy), meaning the representation of the Vinti trajectory in orbital element space does not exactly match its representation in initial ECI coordinates; 2) the secular terms in the propagation step are only accurate to the third order in \(J_2\). Additional testing showed that the present algorithm generally matches the accuracy of the Vinti6 algorithm [2] when the many-rev accuracy retention measure is applied. These details are presented in Section 4.3 along with some runtime comparisons.

Table 1 Initial osculating Keplerian orbital elements for Fig. 2 examples
Fig. 2
figure 2

Propagated trajectories at Earth (left column) and log-scale position errors (right column) for four orbital regimes. The new analytical Vinti propagator agrees well with numerically integrated Vinti trajectories

In accordance with the goals of this work, the long propagation times described above are chosen to assess the algorithm’s performance and identify any limitations, not to demonstrate its performance in practice. For example, while a Vinti GEO propagation of a few days may be useful in preliminary mission design, time spans in a catalog building application may be limited to a day or so and is subject to nonphysical constraints like data processing schedules. That being said, the practicality of long Vinti propagations in GEO depends not only on the application, but also on how the algorithm is used. As noted by Getchell [19], for comparisons to perturbation theories or numerical integration, fitting the Vinti solution to an ephemeris would extract the greatest performance from the algorithm, where principal differences would be due to neglecting equatorial obliquity.

The results above also shed light on some important qualitative differences that can occur between various dynamical models. In particular, Fig. 2c is a notable example of a set of ICs that leads to a qualitative discrepancy between the Kepler and Vinti propagators. Two-body dynamics predict a bounded orbit with \(e_k =\) 0.99998 (see Table 1 for the exact value), while Vinti dynamics predict an escape trajectory with \(e =\) 1.0, which is exactly parabolic. Other tests identified cases where the inverse occurs, where the Keplerian dynamics predict an escape trajectory and the Vinti dynamics predict a bounded one. For objects orbiting oblate bodies, the Vinti theory offers a quick way to evaluate boundedness more accurately, of practical importance for preliminary, interplanetary mission design that typically starts with two-body dynamics. When considering orbit insertion at Saturn, for example, such oblateness effects would be even more pronounced, and employing a universal Vinti propagator would imply a more efficient orbit design process.

4.2 Speed and Robustness

Computational speed and robustness are evaluated on an HP EliteBook 830 G5 laptop computer with an Intel Core i5-8350U CPU operating at a base speed of 1.9 GHz with 16 GB of RAM. The maximum speed at which a single one of these cores is capable of operating is 3.6 GHz, and the CPU operated at this maximum speed during tests, where the universal Vinti propagator is benchmarked in runtime against a universal Kepler propagator. Both algorithms are implemented in Fortran 90 and compiled with Intel Fortran Compiler Classic for Windows in 64-bit mode with O3 and Qip optimization settings enabled. ICs and times of flight are given in Table 2: 1,536,000 ICs spanning a range of orbital regimes are propagated for \(\mathrm {\Delta }t\) values ranging from 1 sec to 1 day, specifically for [1; 10; 100; 1,000; 10,000; 86,400] sec, totaling 9,216,000 function calls. For each of \(r_{p_k}\), \(e_k\), and \(i_k\), 40 samples are randomly chosen from a uniform distribution, except that the exact values \(r_{p_k} =\) 2,500 km, \(e_k =\) (0, 1), and \(i_k =\) (0, 90, 180) deg are explicitly sampled. The value of \(\mathrm {\Omega }_k\) is explicitly set to 60 deg for all ICs because RAAN intuitively should not affect convergence properties or runtime; the values of \(\omega _k\) and \(f_k\) are similarly not random and are explicitly given in Table 2, overall ensuring the inclusion of potential stress cases associated with the following orbit types: nearly circular and/or exactly equatorial (direct and retrograde), exactly polar, initialized exactly on a pole, and nearly parabolic (both elliptical and hyperbolic).

Table 2 Initial osculating Keplerian orbital elements for the assessment of computational runtime, using each of the following six \(\mathrm {\Delta }t\) values: \({[1; \, 10; \, 100; \, 1,000; \, 10,000; \, 86, \, 400]}\) sec

For the described times of flight and ICs, the Vinti algorithm described above only takes \(\approx \) 4.15 \(\upmu \hbox {s}\) on average to compute a set of final ECI position and velocity vectors. The tolerance on \(\mathrm {\Delta }\omega ^\prime \) for this data set is reduced to \(10^{-13}\) rad in the main root-solve because the additional accuracy is not considered worth the trade in runtime. The Vinti propagator produces zero errors and is found to be only \(\approx \) 3.98 times slower than a comparable universal Kepler propagator based on the Bate et al. [4] formulation, which takes an average of \(\approx \) 1.04 \(\upmu \hbox {s}\) on the same machine and also produces zero errors. As before, both algorithms are set up to iterate until the solution cannot be further improved in double precision. Runtimes observed here are consistent with Der and Bonavito’s findings [2], where the Vinti propagators they examined, which add \(J_3\) to the baseline Vinti dynamics via Vinti’s asymmetric potential [14, 15], run five times slower than a Kepler propagator on average. It should be noted that other known universal Vinti propagators [2] require a function call to a universal Kepler propagator to obtain an initial guess for the independent UV in the Vinti algorithm. In contrast, the initial guesses implemented in the current algorithm are simple closed-form expressions that can be computed quickly. Assuming an average 1.04-\(\upmu \hbox {s}\) Kepler call, the current Vinti propagator is saving about \((1 - 4.15~\upmu \textrm{s}/5.19~\upmu \textrm{s}) \times 100 =~20\%\) in runtime relative to an identical implementation using a Kepler initial guess, which highlights the value of the proposed initial guess technique. Note that the baseline Kepler propagators are not identical between the current study and those performed by Der and Bonavito [2]. As such, conclusions on the relative computational speeds of the current algorithm and propagators like Vinti6 cannot be drawn with the given information. The direct runtime comparisons required to assess the efficiency of the Vinti6 algorithm are explored in the following section.

4.3 Comparisons to the Vinti6 Algorithm

For completeness, the presented Vinti propagator is directly compared to the Fortran version of Vinti6 [2] in terms of accuracy, robustness, and computational efficiency. Accuracy and robustness are compared in Fig. 3 using the same four examples defined in Table 1. While Vinti6, which is based on Vinti’s asymmetric potential [14], is capable of modeling both \(J_2\) and \(J_3\), the \(J_3\) effects are omitted (set to zero) to increase the fairness of the accuracy and robustness comparisons, the number of mathematical computations in the code remaining unchanged. Note that, before performing the comparisons, the author corrected an error in the original Vinti6 Fortran code located inside the root-solve, where the code originally exits the loop upon convergence without updating \(\psi \) and subsequently the \(T_k\) functions. The algorithm error is eliminated by removing line 614 and inserting it immediately after line 628 in the code.Footnote 2 Evidently, this correction is only needed in the Fortran version of Vinti6 and not in the C version. Now, to obtain accuracy assessments for Vinti6, the error metric discussed in the previous section is simply applied to the Vinti6 outputs and that error is plotted side-by-side with the error in Fig. 2. Der and Bonavito [2] note that Kepler1, the default Kepler propagator in Vinti6, may be replaced with any UV Kepler propagator, and so it is replaced with the Kepler propagator described in the previous section to make the comparisons as fair as possible. This choice to replace the Kepler algorithm promotes a fair comparison from the perspective of both robustness, since its robustness is demonstrated in the previous section, and runtime, since the measured runtime is recorded in the previous section. The panels in Fig. 3 are arranged in the same order as the panels in Fig. 2 to make comparisons easier.

Fig. 3
figure 3

Comparisons between the presented Vinti propagator and Vinti6 using log-scale position errors for four orbital regimes. The new analytical Vinti propagator consistently performs well, while Vinti6 fails for the GEO and parabolic cases

Focusing first on Fig. 3b, d, which are the Molniya and hyperbolic cases, respectively, Vinti6 is observed to agree almost exactly with the presented algorithm. This level of agreement is expected because the approximations in both algorithms are correct to \(O(J_2^3)\) and both leverage some form of universal variables. However, in Fig. 3a, c, which are the GEO and parabolic cases, respectively, there are some clear discrepancies. Over the chosen time spans, while the presented Vinti propagator maintains millimeter-level or better accuracy, the Vinti6 errors are consistently on the order of a few kilometers for these two examples, representing two orbital regimes that should be easily handled by universal techniques, but which are not handled well by Vinti6. Further investigation suggested that the large Vinti6 errors result from the algorithm converging to poor solutions for the GEO and parabolic examples. Based on the GEO results and a few additional quick tests, the accuracy degradation is found to exist for nearly circular and/or equatorial orbits and is worse for the exactly equatorial scenario. Further study is required to understand the cause of the parabolic discrepancy. The findings not only indicate that the presented Vinti propagator is a significant improvement over a well-known benchmark, but they also suggest that the coupling of UVs to equinoctial orbital elements is a necessary theoretical development for enhancing the robustness of analytical Vinti orbit propagators.

Given the unequal levels of robustness observed between the presented Vinti propagator and Vinti6, it may be considered unfair to perform a runtime comparison of the two algorithms. The lack of robustness in one algorithm raises a number of challenges for runtime comparisons and raises questions on the usefulness of making the assessment. Generally, such a measurement of the computational speed of Vinti6 could be misleading. One area of concern is that when Vinti6 converges to poor solutions, the algorithm may converge more quickly or slowly than average, depending on the situation, which could unfairly benefit or hurt its performance. Further study would be required to determine if the convergence to poor solutions is predictable. Nevertheless, it is considered worthwhile to still evaluate the average Vinti6 runtime for archival purposes. For the times of flight and ICs specified in Table 2, Vinti6 takes an average of \(\approx \) 2.30 \(\upmu \hbox {s}\) to compute final ECI state vectors on the same machine described in Section 4.2. While Vinti6 can potentially compute a solution in 55% of the time as the presented Vinti propagator on average, the presented orbit propagator is much more robust. The practitioner must decide whether trading robustness for speed is acceptable for their application, keeping in mind that the speedup offered by Vinti6 may be less in practice because the runtime measured in this study includes Vinti6 solutions that failed to converge correctly. The speed and robustness of Vinti6 also has a strong dependence on the speed and robustness of the underlying UV Kepler propagator, which must be taken into consideration when deciding which algorithm to use.

5 Conclusions

A universal analytical solution is developed for Vinti’s symmetric, unperturbed dynamical problem, which uses oblate spheroidal (OS) geometry to add planetary oblateness to the dynamics. Standard OS universal variables are meshed with OS equinoctial orbital elements to eliminate all singularities and computational difficulties from the solution, rendering it universally valid for bounded and unbounded trajectories at any inclination, including polar and direct or retrograde equatorial orbits. The forbidden zone associated with nearly rectilinear orbits, a rarely encountered region in practice, remains the only regime for which an analytical solution is not known. Central to this approach, a generalized universal Kepler equation is developed, and a two-tier, nested root-solve is proposed to solve it, where steps are taken to guarantee that the simpler inner root-solve converges in a few iterations. Interestingly, the entire root-solve is viewed as operating in a rotating OS orbital reference frame, and the equinoctial elements enable a nonsingular mapping between this frame and the inertial frame. The algorithm design permits forward or backward propagation.

The presented Vinti solution is obtained with notable simplifications and improvements in accuracy relative to earlier solutions. In particular, the coordinate transformations between inertial position and velocity and OS equinoctial elements are now exact, where they previously relied on approximations to evaluate the transformations near the poles. Exactness is enabled by the derivation of an exact, nonsingular representation of the rate at which the OS ascending node drifts over time. The computation of OS ascending node vector components from inertial coordinates is also simplified using a new approach based on vectors that streamlines the algorithm. Otherwise, the accuracy of the solution is as high as previous analytical solutions, where the quartics are factored to double-precision accuracy and the integrals are evaluated to an accuracy of \(O(J_2^3)\). A technique to preserve solution accuracy in many-rev scenarios is also offered. Ultimately, with these mechanisms in place, the new Vinti propagator is demonstrated to be more robust than the benchmark Vinti6 with \(J_3 = 0\), especially in the nearly circular, equatorial, and parabolic regimes. When applied at Earth, the implemented Vinti algorithm, which includes novel, simple initial guess techniques that do not require a Kepler solution, is only slower than a universal Kepler propagator by a factor of 4.0 on average. The new Vinti algorithm is slower than Vinti6 by an average factor of 1.8, but the increased runtime comes with substantial gains in robustness for popular orbital regimes.

The formulation of a solution to Vinti’s dynamical problem that combines OS universal variables and equinoctial elements implies a level of robustness and efficiency, both expected and observed, that can be passed on to related applications. Depending on the primary body’s shape, preliminary mission design that typically relies on two-body approximations can benefit from the increased accuracy, enjoying a minor sacrifice in compute time relative to two-body propagation and a significant speed boost relative to numerical integration that includes \(J_2\) effects. The solution also prescribes singularity-free partial derivatives and an analytical, universal state transition matrix that is nonsingular for bounded and unbounded orbits in any nondegenerate orbital regime. Finally, the new form of the kinematic equations lends itself to the definition of a boundary value problem as a system of equations, which will be explored in a follow-on study.