Code covered by the BSD License  

Highlights from
Solve Lambert's Problem in Two-Body Dynamics

Be the first to rate this file! 15 Downloads (last 30 days) File Size: 1.92 KB File ID: #44789

Solve Lambert's Problem in Two-Body Dynamics

by

 

24 Dec 2013 (Updated )

Solve Lambert's problem in two-body dynamics using universal variables

| Watch this File

File Information
Description

Solve the boundary value problem in two-body dynamics (known as Lambert's problem) using the universal variable formulation as presented in Bate, Mueller, and White. The function has been tested for elliptic, parabolic, and hyperbolic orbits.

The function does not currently handle the case where the secondary completes multiple revolutions about the central body within the specified time.

Inputs:
<mu>: Standard gravitational parameter of central body
<t1>,<r1>: Time scalar and column position vector for initial position in orbit
<t2>,<r2>: Time scalar and column position vector for final position in orbit
<path>: If equal to 1, solve for the long path (delta_nu >= pi), else for the short path (delta_nu < pi)

Outputs:
<v1>,<v2>: Velocity vectors at initial and final times
<iter>: Number of iterations needed for convergence

Example:

mu = 398600.44; % Earth [km^3/s^2]
T1 = [0 0];
T2 = [600 600];
R1 = [-1.4619E3 2.4442E3 6.5242E3; % Initial positions of 2 different earth satellites
      -3.7511E3 1.6838E4 2.0927E1]';
R2 = [-1.0435E3 5.8479E3 3.7741E3; % Final positions
      -5.2268E3 1.8596E4 2.2488E3]';

for (i = 1:size(R1, 2))
% Short path. Gives elliptic orbit.
[v1,v2,iter] = lambert_universal(mu, T1(:,i), R1(:,i), T2(:,i), R2(:,i), 0);
% Long path. Gives hyperbolic orbit.
[v1,v2,iter] = lambert_universal(mu, T1(:,i), R1(:,i), T2(:,i), R2(:,i), 1);
end

MATLAB release MATLAB 8.1 (R2013a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
27 Dec 2013

Added a file stumpff.m which contains a required function.

Contact us