Lambert problem solver (Battin's method).
Given two position vectors and time of flight, find the transfer orbit velocities. Algorithm 61, Vallado 2022, pp. 505-510.
Summary
Functions
Solve Lambert's problem using Battin's method.
Types
Functions
@spec solve(vec3(), vec3(), vec3(), integer(), integer(), non_neg_integer(), number()) :: {{float(), float(), float()}, {float(), float(), float()}}
Solve Lambert's problem using Battin's method.
Parameters
r1,r2- initial and final ECI position vectors in kmv1- initial velocity in km/s (needed for 180° transfers)dm- direction of motion:0= short way,1= long wayde- direction of energy:0= low,1= highnrev- number of revolutions (0, 1, 2, ...)dtsec- time of flight in seconds
Returns
{v1t, v2t} - transfer velocity vectors at r1 and r2 in km/s.