zaid a.

Orbital Odyssey and Spiral Struggles

Ever since CubeSats became a thing, I've wondered whether you could sling a 2 kg one from low Earth orbit at 300 km altitude, a 6700 km radius, out to geostationary orbit at 35,786 km altitude, a 42,164 km radius. A CubeSat is a compact little satellite, roughly 10x10x10 cm and about 2 kg, and GEO is the prize orbit, the altitude where a satellite parks over one spot on Earth, which is why the TV broadcast and weather monitoring fleets live there. Earth's gravitational parameter for everything that follows is μ=398,600.4km3/s2. The original plan was tidy, a Hohmann transfer for the orbit raise and reaction wheels for attitude control. Reality had other ideas, so the project pivoted through low-thrust spirals, a Kalman filter for navigation, and a pass through perturbations, power, and thermal constraints. Let's see what happened.

Start with the vehicle. A 10 cm cube, l=b=w=0.1m, mass m=2kg. The moment of inertia for a uniform cube along its principal axes:

Ix=Iy=Iz=16m(l2+b2+w2)=16·2·(0.12+0.12+0.12)=0.00667kg·m2

So 0.00667 kg·m², with the standing caveat that a real CubeSat has an uneven mass distribution and a moment of inertia that shifts as propellant burns off, which we'll come back to.

The Hohmann transfer is the textbook move for changing between circular orbits, and the textbook deserves its reputation, it's the minimum-energy two-impulse solution. One burn at LEO perigee, one at GEO apogee. With ri=6700km and rf=42,164km, the circular orbit velocities are

vi=μri=398,600.46700≈7.712km/svf=μrf=398,600.442,164≈3.074km/s

The transfer ellipse has semi-major axis a=(ri+rf)/2=24,432km, giving a perigee velocity of

vt1=μ(2ri−1a)≈10.134km/s

so the first impulse is Δv1=vt1−vi=2.422km/s. At apogee,

vt2=μ(2rf−1a)≈1.604km/s

and the circularising impulse is Δv2=vf−vt2=1.470km/s. Total Δv=3.892km/s, with a time of flight of

T=πa3μ≈19,350s(5.375hours)

Five and a half hours from LEO to GEO. The geometry is in the illustration below, LEO, transfer ellipse, GEO.

hohmann

Here's the problem, and it's worth being precise about what kind of problem it is. Hohmann isn't a method that "doesn't work well" for CubeSats, it's the solution to a different problem entirely. The whole derivation assumes impulsive burns, the velocity changes arriving effectively instantaneously relative to the orbital period. A big satellite with a proper apogee motor can approximate that assumption well enough for the maths to hold. A CubeSat carrying something like a BIT-3 ion thruster produces 1 mN, and 1 mN on 2 kg lives in a completely different dynamical regime, one where the burn duration is comparable to, or much longer than, the orbit itself, and every impulsive result above becomes a benchmark rather than a flight plan. So for a CubeSat with current propulsion, Hohmann is a non-starter, not because the numbers are wrong but because its founding assumption never gets satisfied.

The honest alternative is the low-thrust spiral, so I simulated one with the BIT-3, 1 mN of thrust at an exhaust velocity of c=30km/s. After correcting the dynamics, the results were grim. The radius crawled from 6700 km to 10,000 km in 20 million seconds, which is 231 days.

7

The velocity trace climbed toward ~40,000 km/s, and I want to flag that number rather than slide past it, because a 2 kg spacecraft moving at 13% of the speed of light on 1 mN of thrust is not physics, it's a solver telling you your dynamics are broken. A result that violates conservation of energy that flagrantly is the simulation's way of failing loudly, and the correct response is gratitude that it failed loudly instead of plausibly.

8

The trajectory itself came out as a tight spiral, nowhere near GEO.

9

Propellant consumed was 0.5 kg for a Δv≈8.64km/s, and extrapolating the climb rate puts GEO arrival somewhere around 1000 days out. Whatever the solver artefacts, the underlying conclusion survives them, the BIT-3's 1 mN is simply too weak to take a CubeSat to GEO in any timeframe worth planning around.

Since nothing on the current market closes the problem, I gave myself permission to invent something that might, the FuvahmulahDrive-212, a hypothetical ion thruster with c=50km/s and a power-efficient 20 W design. The interesting question then becomes finding the right thrust level, and the iterations are instructive precisely because of how they failed. First attempt, 1 N of thrust, giving m˙=T/c=1/50,000=2·10−5kg/s, so the 0.5 kg propellant budget burns through in 25,000 s, about 7 hours, delivering Δv=50ln(2/1.5)≈14.4km/s. The result overshot GEO by a margin that's almost comic, 1.6 × 10⁹ km in 1.16 days, velocity around 20,000 km/s, the spacecraft leaving not just the target orbit but, at face value, the solar neighbourhood.

10

11

Second attempt, thrust cut to 0.05 N, m˙=0.05/50,000=1·10−6kg/s, propellant lasting 500,000 s, about 5.8 days. Still overshot, 3 × 10⁶ km in 1.16 days, with the velocity spiking to 25 km/s before falling back to 2 km/s, better behaved than the first run but still not an orbit anyone would recognise as GEO.

13

14

Third attempt kept the 0.05 N but added a thrust cutoff at GEO radius, and the dynamics still misbehaved, the velocity never settled at the required 3.074 km/s and the radius kept climbing past the cutoff, which tells you the problem sat deeper than the control logic, in the equations of motion or the solver settings themselves.

16

18

At this point the honest move is to stop asking the broken simulation and ask the theory instead, and this is where the distinction between demonstrated and computed matters, everything from here on is computed, closed-form, resting on stated assumptions rather than on a validated numerical model. The requirement is the Hohmann-equivalent Δv≈3.892km/s on a 0.5 kg propellant budget. The rocket equation gives the propellant actually needed:

Δv=cln(m0mf)⟹3.892=50ln(22−mp)⟹mp≈0.15kg

So 0.15 kg, comfortably inside budget. To burn that in a reasonable mission time, say one day, 86,400 s, the thrust needs to be

T=0.15·5086,400≈0.000087N(87μN)

which gives an acceleration of a=T/m≈0.000087/2=4.35·10−5km/s2. As a sanity check on transfer time, treating the 35,464 km radius gain (6700 to 42,164 km) under constant acceleration, a deliberate simplification,

Δr≈12at2⟹t≈2·35,4644.35·10−5≈40,360s(11.2hours)

And the arrival velocity takes care of itself in a way an impulsive analysis can't, because a spiral with tangential thrust vectoring adjusts velocity continuously along the climb, delivering approximately the circular 3.074 km/s at GEO rather than requiring a separate circularisation burn. So the theoretical configuration reads, 87 µN at c=50km/s, roughly 11.2 hours to GEO, arrival at ~3.074 km/s with proper thrust vectoring, 0.15 kg of propellant consumed. Notice how far 87 µN sits below both of my simulated attempts, three to four orders of magnitude, which is itself the lesson, the controlled spiral wants far less thrust, applied far more patiently, than intuition suggests.

Attitude control has to survive the mass change, so it's worth checking. Three reaction wheels torque the spacecraft through τs=−τw=−Jwω˙w, and I modelled them on the Maxon EC45, Jw=1.53·10−4kg·m2, R=1.16Ω, L=0.691mH, Ke=Kt=0.0451, b=0.00494, with wheel and motor dynamics

Jwω˙w=Kti−bωw,Li˙=V−Ri−Keωw

A PID controller with Kp=0.4095, Ki=0.2240, Kd=0.0078 gives a 1.5 s rise time and a 6 s settle, with torque peaking at 0.034 N·m. After burning the 0.15 kg, final mass 1.85 kg and I=0.00617kg·m2, the available angular acceleration is

αs=0.0340.00617≈5.51rad/s2

14

A slight decrease against the wet configuration, and still comfortably sufficient for attitude control, mass loss helps here rather than hurts, since the inertia falls with the mass.

Navigation ran through a Kalman filter tracking position through the measurement noise, and it held radius error to ±0.25 km and theta error to ±0.05 rad, which is about 0.0037% in radius and 4.3% in theta. Decent for this exercise, though a real CubeSat holding sub-km accuracy over days of spiral would be leaning on star trackers, not on this filter alone.

5

6

The perturbation picture rounds it out. The J2 acceleration from Earth's oblateness at 6700 km,

aJ2=3μJ2Re22r4,aJ2≈1.5·10−5km/s2

sits within an order of magnitude of the transfer acceleration itself, so it's not ignorable at the low end of the spiral. Drag contributes Fd≈4.6·10−5N at that altitude, and solar radiation pressure a comparatively gentle

Frad≈9·10−8N

By GEO, J2 has fallen to around 10⁻⁷ km/s², and station-keeping there costs roughly 0.05 m/s of Δv per year, which even 1 mN handles without effort. Getting to GEO is the hard part, staying there is administrative.

So where does the whole exercise land? The BIT-3's 1 mN was too weak, and a transfer measured in years isn't a mission, it's a monument. The FuvahmulahDrive-212 iterations, 1 N, 0.05 N, then the derived 87 µN, traced out the real difficulty, which was never raw capability but the three-way balance between thrust, time, and arrival velocity. The simulations were plagued by numerical trouble throughout, and I'll say plainly that the GEO-feasibility claim rests on the closed-form theory, not on a validated numerical demonstration, the theory closes, the simulation doesn't yet, and those are different grades of evidence. The reaction wheel model, the Kalman filter, and the perturbation analysis were the solid wins, while power and comms remain genuinely open problems I haven't dealt with here. So, CubeSat to GEO? With current propulsion, the spiral takes years and the answer is effectively no. Hohmann remains the right tool for the big satellites it was derived for, and CubeSats will need next-generation thrusters before this becomes routine. What the FuvahmulahDrive-212 exercise shows is that with advanced ion technology, maybe in a few decades, possibly sooner, fast spirals to GEO become feasible, and with enough thrust in a small enough package we might even revisit Hohmann-like transfers for spacecraft this size.

"Space is Hard!" - e.m.