Orbital Mechanics: Kepler's Laws, Orbits & Velocities
How satellites stay up. Learn Newton's gravitation and the two-body problem, circular and elliptical orbits, Kepler's three laws, orbital elements (a, e, i, Ω, ω, ν), the vis-viva equation, orbital period, escape velocity, types of orbits (LEO, MEO, GEO, SSO, Molniya, HEO), ground tracks and perturbations (J2, drag) — with Python computing ISS, GPS and GEO orbits.
A satellite is falling around the Earth: it moves sideways so fast (7.7 km/s in low orbit) that the ground curves away beneath it as quickly as it falls. There is gravity in orbit — astronauts float because they and their spacecraft fall together.
Orbital mechanics (astrodynamics) was worked out by Kepler and Newton four centuries ago, yet it governs every modern space mission, from Starlink constellations to Mars landers.
An analogy
Newton's cannonball: fire a cannonball horizontally from a mountain top — faster and faster — and it lands further away each time, until at orbital speed the Earth curves away as fast as the ball falls and it never lands.
Kepler's laws
Three empirical laws, later derived by Newton:
- 1. Orbits are ellipses with the central body at one focus
- 2. A line from the planet to the satellite sweeps equal areas in equal times (faster at perigee)
- 3. T² ∝ a³ — bigger orbits take disproportionately longer
Orbital elements
Six numbers define an orbit and the satellite's position: size (a) and shape (e); orientation (inclination i, right ascension of the ascending node Ω, argument of perigee ω); and position along the orbit (true anomaly ν, or time since perigee). Two-line element sets (TLEs) publish these for tracked objects.
Orbit types
Chosen by mission:
- LEO (200–2000 km) — Earth observation, ISS, Starlink; low latency, drag decays orbits
- Sun-synchronous (≈ 600–800 km, i ≈ 98°) — same local time each pass; imaging
- MEO (≈ 20 000 km) — navigation (GPS, Galileo, GLONASS)
- GEO (35 786 km, i = 0) — communications, weather; fixed ground antennas
- Molniya / HEO — long dwell over high latitudes
- Lagrange-point halo orbits — JWST at Sun–Earth L2
Perturbations
Real orbits drift: Earth's oblateness (J2) precesses the node (used deliberately for sun-synchronous orbits) and the perigee; atmospheric drag lowers LEO orbits (solar activity changes density 10×); lunar and solar gravity and solar radiation pressure perturb GEO satellites, requiring station-keeping. Precise orbit determination fuses GNSS, laser ranging and radar tracking; space-debris conjunction assessment is now routine.
Formulas
- Circular velocity:
v_c = √(μ/r) - Vis-viva equation:
v² = μ(2/r − 1/a) - Period (Kepler III):
T = 2π√(a³/μ) - Escape velocity:
v_esc = √(2μ/r) = √2·v_c - Orbit equation:
r = a(1 − e²)/(1 + e·cos ν) - Perigee / apogee:
r_p = a(1 − e), r_a = a(1 + e)
Worked example: ISS velocity
Given: h = 420 km
Find: v and period.
- r = 6798 km
- v = √(μ/r)
Answer: 7.66 km/s, 93 min
Worked example: Elliptical orbit speeds
Given: Perigee 300 km, apogee GEO (r_a = 42 164 km)
Find: Perigee speed.
- a = (6678 + 42 164)/2 = 24 421 km
- v_p = √(μ(2/r_p − 1/a))
Answer: ≈ 10.15 km/s
Worked example: Escape velocity
Given: Earth surface
Find: v_esc.
- √(2μ/R_E)
Answer: 11.18 km/s
Circular orbits, GEO and escape velocity
import math
mu, Re = 3.986004418e14, 6378.137e3
def circ(h):
r = Re + h
v = math.sqrt(mu / r)
T = 2 * math.pi * math.sqrt(r**3 / mu)
return v, T
for name, h in (("ISS", 420e3), ("GPS", 20200e3)):
v, T = circ(h)
print(f"{name}: h={h/1000:.0f} km v={v/1000:.2f} km/s period={T/60:.1f} min")
T_sid = 86164.1
r_geo = (mu * (T_sid / (2 * math.pi)) ** 2) ** (1 / 3)
print(f"GEO radius {r_geo/1000:.0f} km (altitude {(r_geo-Re)/1000:.0f} km), v={math.sqrt(mu/r_geo)/1000:.2f} km/s")
v_esc = math.sqrt(2 * mu / Re)
print(f"escape velocity at surface {v_esc/1000:.2f} km/s")
# ISS: h=420 km v=7.66 km/s period=93.0 min
# GPS: h=20200 km v=3.87 km/s period=718.7 min
# GEO radius 42164 km (altitude 35786 km), v=3.07 km/s
# escape velocity at surface 11.18 km/sGPS satellites orbit twice per sidereal day (≈ 718 min); geostationary satellites match Earth's rotation (one sidereal day, 23 h 56 min), so they hover over one longitude at 35 786 km. Higher orbits are slower.
Common mistakes
- Wrong: 'No gravity in orbit'. — Right: Gravity at ISS altitude is ~90% of surface; they are in free fall.
- Wrong: Using altitude instead of radius. — Right: r = R_E + h in all formulas.
- Wrong: Solar vs sidereal day for GEO. — Right: GEO period = 86 164 s (sidereal).
Applications
- Satellite constellations: Starlink, OneWeb, GNSS designs.
- Earth observation: Sun-synchronous imaging orbits.
- Space station logistics: Rendezvous with the ISS.
- Space situational awareness: Tracking debris and collision avoidance.
Key takeaways
- v = √(μ/r); vis-viva for ellipses.
- T = 2π√(a³/μ).
- Six elements define an orbit.
- Choose LEO/SSO/MEO/GEO by mission.
Going further
- Lambert's problem: Find the orbit connecting two positions in a given time.
- Three-body problem: Lagrange points and halo orbits.
- SGP4: Propagating TLEs with perturbation models.