arora Module¶
Summary¶
Functions
Solves Lambert problem using Arora’s devised algorithm |
Description¶
A module hosting all algorithms devised by Arora
Module Details¶
- lamberthub.universal_solvers.arora.arora2013(mu, r1, r2, tof, M=0, is_prograde=True, is_low_path=True, maxiter=35, atol=1e-05, rtol=1e-07, full_output=False)[source]¶
Solves Lambert problem using Arora’s devised algorithm
- Parameters:
- mu: float
Gravitational parameter, equivalent to \(GM\) of attractor body.
- r1: numpy.array
Initial position vector.
- r2: numpy.array
Final position vector.
- tof: float
Time of flight between initial and final position vectors.
- M: int
Number of revolutions. Must be equal or greater than 0 value.
- is_prograde: bool
If True, specifies prograde motion. Otherwise, retrograde motion is imposed.
- is_low_path: bool
If two solutions are available, it selects between high or low path.
- maxiter: int
Maximum number of iterations.
- atol: float
Absolute tolerance \(abs(x_{i+1} - x_{i})\)
- rtol: float
Relative tolerance \(abs(\frac{x_{i+1}}{x_{i}} - 1)\)
- full_output: bool
If True, the number of iterations and time per iteration are also returned.
- Returns:
- v1: numpy.array
Initial velocity vector
- v2: numpy.array
Final velocity vector
- numiter: int
Number of iterations.
- tpi: float
Time per iteration in seconds.
Notes
Lambert’s problem solver using the method proposed by Nitin Arora and Ryan P. Rusell in 2013, see [1]. This algorithm exploits the universal formulae by defining a new cosine-based transformation and developing a robust initial guess. Although based on arbitrary conditions, the algorithm shows a high performance.
References
[1] Arora, N., & Russell, R. P. (2013). A fast and robust multiple revolution Lambert algorithm using a cosine transformation. Paper AAS, 13, 728.