File Exchange

## Gravity-perturbed Earth Orbit Lambert Problem - OTB

version 1.0.0 (560 KB) by
Optimization Toolbox version of the lambert4.m MATLAB script which solves the gravity-perturbed Lambert problem

Updated 12 Dec 2019

PDF document and MATLAB script that demonstrates how to solve the Earth orbit, J2-perturbed form of Lambert’s problem. Lambert’s problem is concerned with the determination of an orbit that passes between two positions within a specified time-of-flight. This classic astrodynamic problem is also known as the orbital two-point boundary value problem (TPBVP) or the flyby and rendezvous problems.

### Cite As

David Eagle (2020). Gravity-perturbed Earth Orbit Lambert Problem - OTB (https://www.mathworks.com/matlabcentral/fileexchange/73662-gravity-perturbed-earth-orbit-lambert-problem-otb), MATLAB Central File Exchange. Retrieved .

David Eagle

Machine epsilon is about 2.23e-16. As you discovered Lamont, some cases may require more iterations.

Lamont Granquist

I think I figured it out, the "tol" check in the continued fraction needs to be replaced by ~1e-15 and then niter needs to be allowed to hit >= 22

Lamont Granquist

I think I may have found a bug in the stm2.m routine in this download (along with several other downloads that I spot checked):

[rf, vf, stm] = stm2(1, 18.96, [ 1 0 0 ]', [ -1.3673 -2.5865 -0.6116 ]')

results in:

rf =
-8.3039e+14 -9.9561e+14 -2.3542e+14
vf =
-1.6594 -1.9896 -0.47046

u0,u1,u2,u3 seem to be growing up to about 1/MAXEPS

This nearby point works fine:

[rf, vf, stm] = stm2(1, 18.96, [ 0.9995 0.00018849 0.00021848 ]', [ -1.3673 -2.5865 -0.6116 ]')

rf =
-30.729 -38.385 -9.0782
vf =
-1.6644 -1.9949 -0.47183

The elements of the bad point are:

oev = eci2orb1(1, [ 1 0 0 ]', [ -1.3673 -2.5865 -0.6116 ]')
oev =
-0.14423 7.0696 2.9094 3.6815 3.1416 5.7433

##### MATLAB Release Compatibility
Created with R2019b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux