The following 2 papers and accompanying codes present a survey of Lambert’s problem parameter space, an improved vercosine formulation of the Lambert’s equation, and two new solution methods that exploit interpolation. The paper [2] is an extension and improvement over paper [1], as it includes sensitivity calculations, a smaller data file (single ~1MB file), and has essentially no limits on TOF or N. The parameter space of Lambert and the vercosine formulation is explored and explained in more detail in paper [1].
Please send questions/comments/bugs to ryan.russell@utexas.edu
Paper [2]:
Russell, Ryan P., “Complete Lambert Solver Including Second-Order Sensitivities,” Journal of Guidance, Control, and Dynamics, vol. 45, no. 2, pp. 196–212, 2022, https://doi.org/10.2514/1.G006089
Code and Data: (Fortran src, .lib, and .dll for MATLAB callable routines):
Russell, R. P., “ivLam2 (Version 2.41),” Zenodo, http://doi.org/10.5281/zenodo.5196639, Sep. 2021.
link to most recent version (if any): http://doi.org/10.5281/zenodo.3479923
Abstract:
The complete parameter space for Lambert’s problem includes all possible geometries, flight times, and revolutions. An earlier work exploited a rectangular form of this parameter space to interpolate the solution for each revolution. Here, new variable transformations are introduced to efficiently allow for any number of revolutions. The iteration variable is fit using the new transformations and customized tree data structures, leading to a single 1-megabyte coefficient file. The interpolated initial guess seeds a root-solver that typically converges in 1-2 iterations. The new vercosine formulation solver is rigorously tested across the complete domain. Compared to Gooding’s state-of-the-art method, the solver is 1.7 to 2.5 times faster and maintains accuracy even for the so-called ultra-revolution problem. First- and second-order sensitivities of the output terminal velocities with respect to the input flight time and terminal positions are derived via a general method for differentiating a root-solved process. The new sensitivity expressions are exact and 6 to 17 times faster to compute than finite difference approximations. The new quadratic model of the Lambert problem solution results from an optional post-processing step and is useful for a variety of estimation and optimization applications.
Paper [1]:
Russell, Ryan P., “On the Solution to Every Lambert Problem,” Celestial Mechanics and Dynamical Astronomy, Vol. 131, Article No. 50, 2019, pp. 1–33, https://dx.doi.org/10.1007/s10569-019-9927-z; Preprint (post-peer-review, pre-copyedit)
Code and Data: (Fortran src, .lib, and .dll for MATLAB callable routines):
Ryan P. Russell. (2019, October 14). ivLam (Version 1.06). Zenodo. http://doi.org/10.5281/zenodo.3479924
link to most recent version (if any): http://doi.org/10.5281/zenodo.3479923
Abstract:
Lambert’s Problem is the two-point boundary value problem for Keplerian dynamics. The parameter and solution space is surveyed for both the zero- and multiple-revolution problems, including a detailed look at the stress cases that typically plague Lambert solvers. The problem domain, independent of formulation, is shown to be rectangular for each revolution case, making the elusive initial guess and the solution itself amenable for interpolation. Biquintic splines are implemented to achieve continuous derivatives and quick evaluation. Resulting functions may be used directly as low-fidelity solutions or used with a single update iteration without safeguards. A concise, improved vercosine formulation of the Lambert problem is presented, including new singularity-free and precision-saving equations. The interpolation scheme is applied for up to 100 revolutions. The domain considered includes all practically conceivable flight times, and every possible geometry except a small region near the only physical singularity of the problem: the equal terminal vector case. The solutions are archived and benchmarked for accuracy, memory footprint and speed. For typical scenarios, users can expect ~6 or more digits of velocity vector accuracy using an interpolated solution without iteration. Using a single, unguarded iteration leads to solutions with near machine precision accuracy over the full domain, including the most extreme scenarios. Depending on desired resolution, coefficient files vary in size from ~3 to 65 MB for each revolution case. Evaluation runtimes vary from ~2 to 5 times faster than the industry benchmark Gooding algorithm. The coefficient files and driver routines are provided online. While the method is currently demonstrated on the vercosine formulation, the 2D interpolation scheme stands to benefit all Lambert problem formulations.