<< CL_man_dvHohmann Trajectory and maneuvers CL_man_dvHohmannRotP >>

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, res="d"]])
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:
kep0 = [ai; ei; 1; 0; 0; CL_kp_v2M(ei, anv1)];
kep1 = CL_man_applyDvKep(kep0, dv1);
kep1(6) = CL_kp_v2M(kep1(2), 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:
kep0 = [ai; ei; 1; 0; 0; CL_kp_v2M(ei, anv1)];
kep1 = CL_man_applyDvKep(kep0, dv1);
kep1(6) = CL_kp_v2M(kep1(2), anv2);
kep2 = CL_man_applyDvKep(kep1, dv2)

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