<< CL_man_dvHohmann Trajectory and maneuvers CL_man_dvInc >>

CelestLab >> Trajectory and maneuvers > CL_man_dvHohmannG

CL_man_dvHohmannG

Generalized Hohmann transfer

Calling Sequence

[deltav,dv1,dv2,anv1,anv2] = CL_man_dvHohmannG(ai,ei,af,ef [,posman1,rotation,mu])
man = CL_man_dvHohmannG(ai,ei,af,ef [,posman1,rotation,mu], res="s")

Description

Parameters

ai :

Semi-major axis of initial orbit [m] (1xN or 1x1)

ei :

Eccentricity of initial orbit (1xN or 1x1)

af :

Semi-major axis of final orbit [m] (1xN or 1x1)

ef :

Eccentricity of final orbit (1xN or 1x1)

posman1:

(optional) Flag indicating the location of the first maneuver: 0 or "per" -> periapsis, 1 or "apo" -> apoapsis. Default is at the periapsis. (1xN or 1x1)

rotation:

(optional) Flag indicating whether the final orbit should have its perigee rotated 180deg relative to the initial orbit (0->no rotation, 1->rotation ; default is 0) (1xN or 1x1)

mu :

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

res :

(string, optional) Type of output: "d" or "s" for . Default is "d".

deltav :

Sum of norms of velocity increments = |dv1|+|dv2| [m/s] (1xN)

dv1 :

First velocity increment (in cartesian coordinates) in the "qsw" frame [m/s] (3xN)

dv2 :

Second velocity increment (in cartesian coordinates) in the "qsw" frame [m/s] (3xN)

anv1 :

True anomaly at the location of the first velocity increment (in the initial orbit). [rad] (1xN)

anv2 :

True anomaly at the location of the second velocity increment (in the intermediate orbit). [rad] (1xN)

man :

Structure containing all the output data.

Authors

See also

Examples

// Maneuver at apogee, no rotation
ai = 7200.e3;
af = 7000.e3;
ei = 0.1;
ef = 0.1;
[deltav,dv1,dv2,anv1,anv2] = CL_man_dvHohmannG(ai,ei,af,ef,posman1="apo",rotation=0)

// Check results:
kep = [ai ; ei ; %pi/2 ; 0 ; 0 ; anv1];
kep1 = CL_man_applyDvKep(kep,dv1);
kep1(6) = anv2;
kep2 = CL_man_applyDvKep(kep1,dv2)

// Maneuver at apogee, with rotation
ai = 7200.e3;
af = 7000.e3;
ei = 0.1;
ef = 0.1;
[deltav,dv1,dv2,anv1,anv2] = CL_man_dvHohmannG(ai,ei,af,ef,posman1="apo",rotation=1)

// Check results:
kep = [ai ; ei ; %pi/2 ; 0 ; 0 ; anv1];
kep1 = CL_man_applyDvKep(kep,dv1);
kep1(6) = anv2;
kep2 = CL_man_applyDvKep(kep1,dv2)

Report an issue
<< CL_man_dvHohmann Trajectory and maneuvers CL_man_dvInc >>