AERO-420 · Lesson 1 of 12 · 27 min
The two-body problem
Every earlier course in this program kept the aircraft inside the atmosphere, held up by lift and pushed by propellers or jets. This course leaves the air behind. Borealis Aerospace in Winnipeg has started a small space division, Borealis Space Systems, and its first product is Crocus-1, a 130 kg Earth-observation microsatellite. Crocus-1 carries a multispectral camera and a thermal-infrared imager. Its customers are Manitoba Agriculture, who want crop-health maps of canola, wheat and soybeans in the Red River Valley, and the Manitoba Wildfire Service, who want early detection of boreal forest fires north of Lake Winnipeg. Each lesson takes one part of the mission, from the orbit itself to the debris rules that govern its end of life, and works it through with real numbers.
Dr. Kenji Watanabe, who chaired the aircraft design reviews, now leads the division. Arjun Mehta, an engineer in training, is the mission analyst; he owns the orbit numbers. Hélène Lavoie moves from flight controls to attitude control, Dr. Teresa Nakamura from engines to spacecraft propulsion, and Marcus Webb takes the structure. Dr. Soraya Benali, a remote sensing scientist from Red River Polytechnic University, defines what the cameras must see. Élise Fournier, the chief engineer, sits on the review board. The team works with the Canadian Space Agency on early studies and with commercial launch providers for the ride to orbit.
Why orbits are different from flight
An aircraft must keep producing lift to stay up. A satellite does not: once it has enough sideways speed, it falls around the Earth forever, or nearly so, because the curve of its fall matches the curve of the planet. At 550 km, the altitude chosen for Crocus-1, that speed is about 7.6 km/s. There is still a trace of atmosphere at that height, and drag slowly lowers the orbit over years, but over a single orbit the motion is governed almost entirely by gravity. That is why orbital mechanics starts with a problem that has no aerodynamics at all: two bodies attracting each other.
Newton's law of gravitation says that two masses attract with a force proportional to the product of their masses and inversely proportional to the square of the distance between them. For a spacecraft of mass \(m\) near a planet of mass \(M\), the spacecraft's mass is negligible, and the planet can be treated as fixed. The equation of motion of the spacecraft relative to the planet's centre then takes a remarkably simple form.
Here \(\mathbf{r}\) is the position vector from the planet's centre, \(r\) is its length, and \(\mu\) is the gravitational parameter. For Earth, \(\mu = 398\,600.4\ \mathrm{km^3/s^2}\). The gravitational parameter is known far more precisely than \(G\) or \(M\) separately, because it is measured directly from the motion of satellites and the Moon. Everything in this lesson follows from this one vector equation.
The two-body model makes three assumptions: the planet is a perfect sphere (or a point mass), no other forces act, and the spacecraft is much lighter than the planet. None is exactly true. Earth's equatorial bulge, the pull of the Moon and Sun, atmospheric drag and solar radiation pressure all add small accelerations. Lesson 6 treats them as perturbations of the two-body answer. For most early mission design, the two-body orbit is accurate enough to size burns, estimate periods and plan ground contacts.
Two quantities that never change
Two properties of the motion stay constant in the two-body problem, and they are the key to almost every calculation. The first is the specific mechanical energy, the sum of kinetic and potential energy per unit mass:
The potential energy is negative and approaches zero at infinite distance, so a spacecraft bound to Earth has negative energy. The second form of the equation links energy to the semi-major axis \(a\) of the orbit: the larger the orbit, the closer its energy is to zero. A spacecraft with exactly zero energy is on a parabola and just escapes; positive energy means a hyperbola, which Lesson 8 uses for trips to other planets.
The second constant is the specific angular momentum, the cross product of position and velocity:
Because gravity always points along \(\mathbf{r}\), it produces no torque about the planet's centre, and \(\mathbf{h}\) cannot change. A constant vector \(\mathbf{h}\) means two things. Its direction is fixed, so the orbit stays in one plane through the planet's centre. Its size is fixed, so the spacecraft sweeps out equal areas in equal times, which is Kepler's second law: it moves fast near the planet and slowly far away.
The orbit is a conic section
Solving the equation of motion shows that the path is always a conic section with the planet's centre at one focus. The orbit equation gives the distance \(r\) as a function of the angle \(\nu\), called the true anomaly, measured from the closest point:
The eccentricity \(e\) sets the shape. A circle has \(e = 0\), an ellipse \(0 < e < 1\), a parabola \(e = 1\) and a hyperbola \(e > 1\). The closest point to Earth is perigee and the farthest is apogee; for an ellipse they lie at \(r_p = a(1 - e)\) and \(r_a = a(1 + e)\). Altitudes are measured from Earth's surface, so the radius at 550 km altitude is \(6378 + 550 = 6928\) km, using Earth's equatorial radius.
Combining the energy equation with \(\varepsilon = -\mu/2a\) gives the vis-viva equation, the most used formula in this course. It gives the speed anywhere on an orbit from the local radius and the semi-major axis:
For a circular orbit \(r = a\), so the circular speed is \(v_c = \sqrt{\mu/r}\). For Crocus-1 at 6928 km that is \(\sqrt{398600/6928} = 7.585\) km/s. Escape speed, with \(a\) going to infinity, is \(\sqrt{2}\) times the circular speed: 10.73 km/s at the same radius.
Kepler's third law follows as well. The period of an elliptical orbit depends only on its semi-major axis:
Crocus-1 completes one orbit every 95.6 minutes, about 15 orbits a day. A geostationary satellite, with \(a = 42\,164\) km, has a period of one sidereal day, 23 h 56 min, and so hangs above one spot on the equator. The period sets almost everything about an Earth-observation mission: how often the satellite passes over Manitoba, how long each ground-station contact lasts, and how many charge-discharge cycles the battery sees.
Propagating an orbit numerically
For two bodies the analytical answer is complete, but real missions add perturbations, and then the equations must be integrated numerically. Arjun's first piece of software for the division is a propagator: a program that steps the state vector, position and velocity, forward in time. He starts with the pure two-body equation so that he can check the integrator against the exact answer before adding anything else. The check uses the two constants: if energy and angular momentum drift, the integrator or its step size is wrong.
# Two-body propagation of Crocus-1 with a fourth-order Runge-Kutta integrator.
# Checks that specific energy and angular momentum stay constant, and compares the period with 2*pi*sqrt(a^3/mu).
import math
MU = 398600.4418 # km^3/s^2, Earth's gravitational parameter
RE = 6378.137 # km, equatorial radius
def accel(r):
d = math.sqrt(r[0]**2 + r[1]**2 + r[2]**2)
k = -MU / d**3
return [k * r[0], k * r[1], k * r[2]]
def rk4(r, v, dt):
def f(r, v): return v, accel(r)
k1r, k1v = f(r, v)
k2r, k2v = f([r[i] + dt/2*k1r[i] for i in range(3)], [v[i] + dt/2*k1v[i] for i in range(3)])
k3r, k3v = f([r[i] + dt/2*k2r[i] for i in range(3)], [v[i] + dt/2*k2v[i] for i in range(3)])
k4r, k4v = f([r[i] + dt*k3r[i] for i in range(3)], [v[i] + dt*k3v[i] for i in range(3)])
r = [r[i] + dt/6*(k1r[i] + 2*k2r[i] + 2*k3r[i] + k4r[i]) for i in range(3)]
v = [v[i] + dt/6*(k1v[i] + 2*k2v[i] + 2*k3v[i] + k4v[i]) for i in range(3)]
return r, v
def invariants(r, v):
d = math.sqrt(sum(x*x for x in r)); s = math.sqrt(sum(x*x for x in v))
eps = s*s/2 - MU/d
h = [r[1]*v[2]-r[2]*v[1], r[2]*v[0]-r[0]*v[2], r[0]*v[1]-r[1]*v[0]]
return eps, math.sqrt(sum(x*x for x in h))
for name, rp, ra in (("Crocus-1 circular 550 km", 550, 550), ("rideshare drop 520 x 610 km", 520, 610)):
rp_k, ra_k = RE + rp, RE + ra
a = (rp_k + ra_k) / 2
vp = math.sqrt(MU * (2/rp_k - 1/a))
r, v = [rp_k, 0.0, 0.0], [0.0, vp, 0.0]
e0, h0 = invariants(r, v)
T = 2*math.pi*math.sqrt(a**3/MU)
n = 120; dt = T / n
for _ in range(n): r, v = rk4(r, v, dt)
e1, h1 = invariants(r, v)
err = math.dist(r, [rp_k, 0.0, 0.0])
print(f"{name}: a = {a:.1f} km, v_perigee = {vp:.4f} km/s, period = {T/60:.2f} min")
print(f" energy {e0:.5f} -> {e1:.5f} km^2/s^2, h {h0:.3f} -> {h1:.3f} km^2/s")
print(f" position error after one period with {n} steps: {err*1000:.2f} m")Crocus-1 circular 550 km: a = 6928.1 km, v_perigee = 7.5851 km/s, period = 95.65 min energy -28.76678 -> -28.76679 km^2/s^2, h 52550.533 -> 52550.531 km^2/s position error after one period with 120 steps: 9.74 m rideshare drop 520 x 610 km: a = 6943.1 km, v_perigee = 7.6262 km/s, period = 95.96 min energy -28.70464 -> -28.70464 km^2/s^2, h 52606.285 -> 52606.283 km^2/s position error after one period with 120 steps: 9.67 m
With 120 steps per orbit, about 48 seconds each, the fourth-order integrator returns to its starting point within about 10 m after a full revolution, and energy and angular momentum agree to every printed digit. Halving the step size cuts the error by a factor of about 16, the signature of a fourth-order method. For mission planning over days the team uses smaller steps or a higher-order integrator with automatic step control, and compares against an independent tool. The habit of checking invariants carries forward: whenever a propagator gives a surprising result, the first test is whether energy behaves as the physics says it should.
Reference frames and time
Orbit calculations need a frame of reference that does not rotate with the Earth. The usual choice is an Earth-centred inertial frame: the origin at Earth's centre, the \(z\)-axis toward the north pole, and the \(x\)-axis toward the vernal equinox, the direction from Earth to the Sun at the March equinox. Because the equinox slowly moves, the frame is tied to a reference epoch; current practice uses frames realized by the International Earth Rotation and Reference Systems Service. Ground stations and cameras, on the other hand, sit on the rotating Earth, so the team must also convert to an Earth-fixed frame, using the same terrestrial reference frames the geomatics courses used for GNSS positions.
Time needs the same care. Orbits are propagated in a uniform time scale, while clocks on the ground follow UTC, which includes leap seconds. A ground station that points its antenna using the wrong time scale can miss a pass entirely; at 7.6 km/s, one second of timing error moves the satellite by 7.6 km along its track. The division's operations software keeps all internal times in a uniform scale and converts to UTC only for display.
What two-body analysis is good for
Kenji asks Arjun to list what the team can decide with two-body mechanics alone. The list is long: the orbit altitude and period, the speed needed to reach orbit, the size of orbit-raising burns, the time between passes over a ground station, the eclipse length that sets battery size, and the energy needed to leave Earth for another planet. All of these come from vis-viva, the period equation and the orbit equation. Perturbations refine these numbers and matter greatly over months, but the first answer always comes from two bodies.
| Quantity | Formula | Crocus-1 at 550 km |
|---|---|---|
| Orbit radius | \(r = R_E + h\) | 6928 km |
| Circular speed | \(v = \sqrt{\mu/r}\) | 7.585 km/s |
| Period | \(T = 2\pi\sqrt{a^{3}/\mu}\) | 95.6 min |
| Specific energy | \(\varepsilon = -\mu/2a\) | \(-28.77\ \mathrm{km^2/s^2}\) |
| Angular momentum | \(h = r v\) for a circle | \(52\,551\ \mathrm{km^2/s}\) |
| Escape speed at this radius | \(\sqrt{2\mu/r}\) | 10.73 km/s |
Worked problem
Speed at perigee and apogee
After separation from the rideshare launcher, Crocus-1 is in a 520 km by 610 km orbit. Find its speed at perigee and apogee.
Show solution
- Radii: \(r_p = 6378 + 520 = 6898\) km, \(r_a = 6378 + 610 = 6988\) km, so \(a = 6943\) km.
- Perigee: \(v_p = \sqrt{398600(2/6898 - 1/6943)} = 7.626\) km/s.
- Apogee: by conservation of angular momentum, \(v_a = v_p r_p / r_a = 7.626 \times 6898/6988 = 7.528\) km/s.
Answer: About 7.63 km/s at perigee and 7.53 km/s at apogee; the 90 km difference in height changes the speed by about 100 m/s.
Worked problem
Energy check
Show that the specific energy at perigee and at apogee of the same orbit is the same.
Show solution
- Perigee: \(7.626^{2}/2 - 398600/6898 = 29.08 - 57.78 = -28.70\ \mathrm{km^2/s^2}\).
- Apogee: \(7.528^{2}/2 - 398600/6988 = 28.34 - 57.04 = -28.70\ \mathrm{km^2/s^2}\).
- Both equal \(-\mu/2a = -398600/13886 = -28.70\).
Answer: Energy is the same everywhere on the orbit, as the code's check confirmed.
Worked problem
Period of a higher orbit
What is the period of a circular orbit at 800 km altitude?
Show solution
- \(a = 7178\) km.
- \(T = 2\pi\sqrt{7178^{3}/398600} = 6052\) s.
Answer: About 100.9 minutes, five minutes longer than at 550 km.
Common mistakes
MistakeUsing altitude instead of radius in vis-viva or the period equation.
InsteadAdd Earth's radius first; altitudes are measured from the surface, radii from the centre.
MistakeAssuming a higher orbit means a faster satellite.
InsteadHigher circular orbits are slower; only the energy needed to get there is greater.
MistakeTrusting a propagator without checking energy and angular momentum.
InsteadRun the pure two-body case first and confirm the invariants stay constant.
MistakeMixing units of km and m in \(\mu\).
InsteadKeep \(\mu\) in \(\mathrm{km^3/s^2}\) with km and km/s, or convert everything to SI.
MistakeTreating the orbit as fixed in a frame that rotates with Earth.
InsteadPropagate in an inertial frame and convert to Earth-fixed coordinates only for ground use.
Summary and key terms
- In the two-body problem a spacecraft moves under a single inverse-square attraction.
- The orbit is a conic section with the planet's centre at one focus, and it lies in a fixed plane.
- Specific energy and angular momentum are constant, which gives the vis-viva equation for speed and Kepler's third law for period.
- Crocus-1 at 550 km moves at 7.585 km/s and circles Earth every 95.6 minutes.
- Numerical propagators extend the analysis to perturbations, and checking energy is the first test of any propagator.
- Gravitational parameter
- The product \(\mu = GM\), measured directly from satellite motion.
- Specific mechanical energy
- Kinetic plus potential energy per unit mass; negative for bound orbits.
- Specific angular momentum
- The cross product of position and velocity; constant in two-body motion.
- Eccentricity
- The number that sets the shape of a conic orbit.
- Perigee and apogee
- The closest and farthest points of an Earth orbit.
- Vis-viva equation
- The relation between speed, radius and semi-major axis.
- Propagator
- A program that steps an orbit forward in time.
- True anomaly
- The angle from perigee to the spacecraft, measured at the focus.
Practice problems
Work each problem on paper first, then reveal the answer to check.
What is the circular speed at 550 km?
Show answer
About 7.585 km/s.
Why does the orbit stay in one plane?
Show answer
Gravity produces no torque about the planet's centre, so the angular momentum vector is constant.
What is the period of Crocus-1?
Show answer
About 95.6 minutes.
What sign does the specific energy of a bound orbit have?
Show answer
Negative.
What happens to the error of a fourth-order integrator when the step is halved?
Show answer
It falls by a factor of about 16.
Which point of an ellipse has the highest speed?
Show answer
Perigee.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.