<< CL_man_thrustDuration Trajectory and maneuvers CL_stela_convert >>

celestlab >> Trajectory and maneuvers > CL_man_vLambert

CL_man_vLambert

Lambert's problem

Calling Sequence

[vel1, vel2] = CL_man_vLambert(pos1, pos2, delta_t [[, meth, direction, nrev, branch, mu]])

Description

Parameters

pos1 :

Initial position vector [m] (3xN or 3x1)

pos2 :

Final position vector [m] (3xN or 3x1)

delta_t :

Time of flight from pos1 to pos2 [s] (1xN or 1x1)

meth :

(integer, optional) Selected method: 1 or 2. Default is 1. (1x1)

direction :

(optional) 'pro' for prograde, 'retro' for retrograde. Default is 'pro' (1x1)

nrev :

(optional, only used if meth = 2) Number of full revolutions. Default is 0 (1x1)

branch :

(optional, only used if meth = 2) Selected branch: "left" or "right". Default is "right" (1x1)

mu :

(optional) Gravitational constant. Default is %CL_mu [m^3/s^2]

vel1 :

Initial velocity vector [m/s] (3xN)

vel2 :

Final velocity vector [m/s] (3xN)

Authors

Bibliography

Examples

dt = 1000; // seconds
kep1 = [7000.e3; 0.1; 1; 0; 0; 0];
// Same orbit, dt seconds later
kep2 = CL_ex_kepler(0, kep1, dt/86400);
[pos1, vel1] = CL_oe_kep2car(kep1);
[pos2, vel2] = CL_oe_kep2car(kep2);

// CL_man_vLambert will find the keplerian arc from pos1 to pos2 in dt
[vel1b, vel2b] = CL_man_vLambert(pos1, pos2, dt);
// Velocities should be the same
CL_norm(vel1b - vel1) + CL_norm(vel2 - vel2b)

// Find the required impulses to reach pos2 faster
dt2 = 950; // seconds
[vel1c, vel2c] = CL_man_vLambert(pos1, pos2, dt2);
DV1 = vel1c - vel1;
DV2 = vel2 - vel2c;
// Total consumption
CL_norm(DV1) + CL_norm(DV2)

Report an issue
<< CL_man_thrustDuration Trajectory and maneuvers CL_stela_convert >>