Skip to content

13. Two-stage orbital insertion in polar coordinates

Most launch vehicles discard an empty first stage instead of carrying its tanks and engines to orbit. Add stage separation to the two-dimensional ascent in Example 12 and optimize when to separate and how each stage should thrust.

ItemDefinition
StatesRadius RR, angle θ\theta, radial and tangential velocities Vr,VtV_r,V_t, mass mm
ControlsThrust components Tr,TtT_r,T_t
ObjectiveMaximize second-stage mass at orbital insertion
PhasesTwo phases, 20 nodes each; free separation and final times
New conceptsTwo-dimensional staging and phase-dependent vehicle parameters

Launch mass is 20 t, including a 1 t second stage. First-phase mass cannot fall below 2 t. At separation, the second stage starts at 1 t; the discarded mass is the pre-separation mass minus 1 t.

The second-stage engine has higher specific impulse (350 s versus 300 s) but much lower thrust (14.7 kN versus 294 kN). The target is a 500 km circular orbit. Earth rotation is neglected, and acceleration is limited to 8 G.

Use the polar coordinates of Example 12. Altitude is R−ReR-R_e, downrange distance is ReθR_e\theta, and radial and tangential components are local vertical and horizontal components.

At the optimized separation time tst_s, position and velocity are continuous while mass resets:

R(ts+)=R(ts−),θ(ts+)=θ(ts−),Vr(ts+)=Vr(ts−),Vt(ts+)=Vt(ts−),m(ts+)=1 t.\begin{aligned} R(t_s^+)&=R(t_s^-),&\theta(t_s^+)&=\theta(t_s^-),\\ V_r(t_s^+)&=V_r(t_s^-),&V_t(t_s^+)&=V_t(t_s^-),\\ m(t_s^+)&=1\ \mathrm t. \end{aligned}

Disable automatic mass continuity and impose the linkage explicitly (linking phases).

For stage i=1,2i=1,2,

R˙=Vr,θ˙=Vt/R,V˙r=(Tr−Dr)/m−μ/R2+Vt2/R,V˙t=(Tt−Dt)/m−VrVt/R,m˙=−Tr2+Tt2/(g0Isp,i).\begin{aligned} \dot R&=V_r,&\dot\theta&=V_t/R,\\ \dot V_r&=(T_r-D_r)/m-\mu/R^2+V_t^2/R,\\ \dot V_t&=(T_t-D_t)/m-V_rV_t/R,\\ \dot m&=-\sqrt{T_r^2+T_t^2}/(g_0I_{sp,i}). \end{aligned} V=Vr2+Vt2,Dr=12ρ(h)VrVCD,iAi,Dt=12ρ(h)VtVCD,iAi,V=\sqrt{V_r^2+V_t^2},\qquad D_r=\tfrac12\rho(h)V_rVC_{D,i}A_i,\qquad D_t=\tfrac12\rho(h)V_tVC_{D,i}A_i, ρ(h)=1.225e−h/8500,g(R)=μ/R2.\rho(h)=1.225e^{-h/8500},\qquad g(R)=\mu/R^2.

The polar velocity terms express centrifugal acceleration and conservation of angular momentum.

R(0)=Re,θ(0)=0,Vr(0)=Vt(0)=0,m(0)=20 t,R(0)=R_e,\quad\theta(0)=0,\quad V_r(0)=V_t(0)=0,\quad m(0)=20\ \mathrm t, R(tf)=Re+500 km,Vr(tf)=0,Vt(tf)=μ/R(tf).R(t_f)=R_e+500\ \mathrm{km},\qquad V_r(t_f)=0,\qquad V_t(t_f)=\sqrt{\mu/R(t_f)}.

Target speed is about 7616.6 m/s. Final angle and time are free.

R≥Re,2 t≤m≤20 t(phase 1),200 kg≤m≤1 t(phase 2),Tr2+Tt2≤Tmax⁡,i,−Tmax⁡,i≤Tr,Tt≤Tmax⁡,i,∣T−Dm∣≤8g0.\begin{aligned} R&\ge R_e,\\ 2\ \mathrm t\le m\le20\ \mathrm t&\quad\text{(phase 1)},\\ 200\ \mathrm{kg}\le m\le1\ \mathrm t&\quad\text{(phase 2)},\\ \sqrt{T_r^2+T_t^2}&\le T_{\max,i},\\ -T_{\max,i}&\le T_r,T_t\le T_{\max,i},\\ \left|\frac{\boldsymbol T-\boldsymbol D}{m}\right|&\le8g_0. \end{aligned}

Unlike Example 12, thrust components can be negative, allowing downward and backward thrust. The second-stage mass lower bound is its 200 kg dry mass. Acceleration excludes gravity.

J=−m(tf)/(20 t).J=-m(t_f)/(20\ \mathrm t).
ParameterStage 1Stage 2
Phase-start mass20 t1 t
Mass lower bound2 t200 kg
CD,AC_D,A0.2, 3.14 m²0.2, 3.14 m²
IspI_{sp}300 s350 s
Tmax⁡T_{\max}294.2 kN14.7 kN

Use Re=6371R_e=6371 km, g0=9.80665g_0=9.80665 m/s², and μ=3.986×1014\mu=3.986\times10^{14} m³/s². Units follow Example 12 with mass scaled by 20 t.

Use times 0→100→2000\to100\to200 s. Radius and angle rise cubically to target altitude and 25°. Radial velocity is zero; tangential velocity increases linearly to target. Mass decreases cubically from 20 to 2 t and from 1 t to 200 kg in the respective phases. Radial and tangential thrust decrease cubically from 0.9 and 0.1 times each stage’s maximum to zero.

Altitude versus downrange distance, exaggerated vertically. Blue and orange show the two stages; dots are nodes and orange arrows indicate thrust at selected powered nodes.
Altitude versus downrange distance, exaggerated vertically. Blue and orange show the two stages; dots are nodes and orange arrows indicate thrust at selected powered nodes.
Altitude, velocities, mass, thrust magnitude, thrust elevation, and non-gravitational acceleration. Dashed vertical lines mark separation; red lines mark thrust and acceleration limits.
Altitude, velocities, mass, thrust magnitude, thrust elevation, and non-gravitational acceleration. Dashed vertical lines mark separation; red lines mark thrust and acceleration limits.
Ascent with velocity, thrust magnitude, and elevation histories. Coasting is played faster.
  • Separation occurs at 215.5 s, with mass 2,000 kg at the phase-1 lower bound.
  • Tangential speed at separation is 5,536 m/s, so stage 1 supplies much of the orbital speed.
  • Stage 2 burns until about 2,312 s, coasts, then burns again from about — to 2,312 s.
  • Delivered mass is 476.5 kg; subtracting 200 kg of dry structure leaves capacity for payload and remaining propellant.
  • Final altitude and speed are 500.0 km and 7,616.6 m/s.
  • Maximum node acceleration reaches 8.00 G.

Applying 294 kN to a 2 t vehicle would produce about 15 G, exceeding the 8 G limit. The first stage must throttle near separation. With few nodes, its interpolated thrust oscillates, and acceleration can exceed 8 G between nodes even though the node constraints hold.

The second stage accelerates near 100–150 km altitude, then coasts around Earth to 500 km apogee. Insertion occurs 15,476 km downrange. A final burn circularizes the orbit. This resembles a Hohmann transfer: accelerate low, coast outward, and circularize at apogee. The low-thrust upper stage produces longer burns, with a coast exceeding 30 minutes in this solution.

Discarding roughly 1 t of first-stage structure leaves a lighter vehicle for the second-stage engine, which is also more efficient in near-vacuum conditions. Unlike Example 12’s very optimistic 1% dry mass, staging permits less extreme structural assumptions.

  • Raise stage-2 Isp from 350 to 450 and compare delivered mass and burn duration.
  • Relax MaxG from 8 to 15 and inspect throttling and oscillations near separation.
  • Increase [20, 20] to [30, 30] nodes and compare thrust oscillation.
Terminal window
uv run python examples/13_rocket_ascent_polar_tsto.py

View the Python source on GitHub.