combined speed change + plane change (law of cosines)
Each maneuver is ultimately a difference of two vis-viva speeds (Ch. 6): find your speed on the orbit
you have and on the orbit you want, at the point they share, and subtract.
What every symbol means (and its units)
Symbol
Name
Units
Notes
$r_1, r_2$
inner / outer circular radii
km
measured from the body's center, not the surface
$a_t$
transfer-ellipse semi-major axis
km
$=(r_1+r_2)/2$ for a Hohmann transfer
$v_a$
transfer-orbit speed at apogee
km/s
slow — the good place to change plane
$\Delta i$
plane-change angle
degrees
the tilt between old and new orbital planes
$\Delta v$
delta-v of a burn
km/s
priced into propellant by the rocket equation (Ch. 3)
$r_b$
bi-elliptic intermediate apoapsis
km
$> r_2$; where the cheap middle burn happens
The four maneuver types at a glance
Maneuver
Burns
Cost driver
When to use
Impulsive burn
1
changes velocity at a point; opposite side of orbit moves
the atom of every maneuver
Hohmann transfer
2 (both prograde to raise)
tangent ellipse; minimum fuel
almost always, for $r_2/r_1 < 11.94$
Bi-elliptic transfer
3 (via high $r_b$)
cheap middle burn far out
only for $r_2/r_1 \gtrsim 11.94$; costs much time
Plane change
1 (normal)
$\propto v$ — brutal
avoid; if forced, do it slow (high, at apoapsis)
Read the numbers (LEO→GEO benchmark)
Quantity
Value
LEO→GEO Hohmann
$2.40 + 1.46 = \mathbf{3.86\ \text{km/s}}$, over $\approx 5.3$ hours
$3.78\ \text{km/s}$ (nearly as much as reaching orbit!)
$28.5^\circ$ plane change at GEO
$1.51\ \text{km/s}$ (slower = cheaper)
Combined circularize + $28.5^\circ$ at GTO apogee
$\approx \mathbf{1.83\ \text{km/s}}$ (saves $\approx 1.15$ vs separate)
$60^\circ$ plane change
$= v$, the entire orbital velocity
The threshold concepts
A transfer is two vis-viva speeds subtracted. Delta-v is a difference of speeds; the rocket equation
turns it into propellant. Whole journeys reduce to arithmetic on two orbits sharing a point.
Plane changes cost $\propto v$, so change your plane where you are slowest (high up, at apoapsis) — and
launch into the right plane in the first place, because fixing it later is unaffordable.
Slow down to catch up (Ch. 6): to reach a target ahead, drop into a lower, faster, shorter-period
orbit; to fall back to one behind, rise into a higher, slower orbit.
Delta-vs add as vectors, not scalars. Combining a speed change and a plane change into one burn is
never more expensive, and usually much cheaper, than doing them separately.
Decision aid — "which maneuver do I use?"
You want to…
Use
Key relation
raise/lower between coplanar circles
Hohmann transfer
$\Delta v_1, \Delta v_2$ above
change altitude by a huge factor ($>12\times$)
consider bi-elliptic
3 burns via high $r_b$
change the orbital plane
plane change, done slow
$2v\sin(\Delta i/2)$
change your timing/position on an orbit
phasing orbit
Kepler III: $T = 2\pi\sqrt{a^3/\mu}$
circularize and change plane at once
combined burn
law of cosines
meet another spacecraft
rendezvous = phasing + proximity ops
all of the above
Common pitfalls
Pitfall
Reality
Adding a combined burn's parts as scalars
Delta-vs are vectors; use the law of cosines — the sum overcharges you.
Doing a plane change in LEO to "get it over with"
Cost $\propto v$; do it high and slow (apoapsis). LEO is the worst place.
Thrusting toward a target ahead to catch it
That raises your orbit and drops you behind. Burn retrograde to catch up.
Thinking bi-elliptic always saves fuel
Only for $r_2/r_1 \gtrsim 11.94$, and then barely, at a huge time cost.
Fixing the orbital plane after launch
Launch into the plane; a $10^\circ$ LEO fix costs $\approx 1.3\ \text{km/s}$.
Mission / astrotools additions this chapter
MDR: added a Transfers section to the delta-v budget — each orbit change priced with this
chapter's tools (Track A: LEO→GEO $\approx 4.23\ \text{km/s}$ with the combined apogee burn).
maneuvers.py:hohmann(mu, r1, r2) → (dv1, dv2, total); plane_change(v, di_deg) → $2v\sin(\Delta i/2)$;
dv_budget(legs) → rolls a list of (label, dv) legs into a total. (Uses speeds from orbits.py, Ch. 6;
feeds mission.py, Ch. 29.)