<< CL_man_dvHohmannG Trajectory and maneuvers CL_man_dvInc >>

celestlab >> Trajectory and maneuvers > CL_man_dvHohmannRotP

CL_man_dvHohmannRotP

Hohmann transfer with orbit plane rotation

Calling Sequence

[deltav, dv1, dv2, alpha] = CL_man_dvHohmannRotP(ai, af, rotang [[, c_mode, alpha, mu, res="d"]])
man = CL_man_dvHohmannRotP(ai, af, rotang [[, c_mode, alpha, mu, res="s"]])

Description

Parameters

ai :

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

af :

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

rotang :

Plane rotation angle in [-%pi, %pi]. [rad] (1xN or 1x1)

c_mode :

(string, optional) "o": optimize DV, "c": use alpha values. Default is "o" (1x1)

alpha :

(optional) Proportion of rotation angle for the first velocity increment. Only used if c_mode = "c". Default value is 0.5 (1xN or 1x1)

mu :

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

res :

(string, optional) Type of output: "d" for multiple outputs or "s" for a single structure output. Default is "d".

deltav :

Som of norms of velocity increments. [m/s] (1xN)

dv1:

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

dv2:

Second velocity increment at opposite location in cartesian coordinates in the "qsw" local orbital frame. [m/s] (3xN)

alpha (output) :

Proportion of rotation angle actually used for the first velocity increment.

man:

Structure containing all the output data.

Authors

See also

Examples

// Change of semi-major axis and inclination by 2 maneuvers
ai = 7000.e3;
af = 7100.e3;
rotang = 0.01; // rad
[deltav_opt, dv1, dv2, alpha_opt] = CL_man_dvHohmannRotP(ai, af, rotang);

// Check results:
// First maneuver at the ascending node
kep0 = [ai; 0; 1; 0; 0; 0];
kep1 = CL_man_applyDvKep(kep0, dv1, dv_frame = "qsw");
// 2nd maneuver at the descending node (also the apogee)
kep1(6) = CL_kp_v2M(kep1(2), %pi - kep1(4));
kep2 = CL_man_applyDvKep(kep1, dv2, dv_frame = "qsw")

// Effect of inclination change ratio between the 2 maneuvers
alpha = linspace(0, 1, 100); // proportion at 1st impulse
deltav = CL_man_dvHohmannRotP(ai, af, rotang, c_mode="c", alpha=alpha);
scf();
plot(alpha, deltav);
plot(alpha_opt, deltav_opt, "o");

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