10. Single-stage rocket ascent
Apply the Goddard problem to a rocket described in meters, seconds, kilograms, and newtons. How should thrust vary to carry a 5000 kg rocket as high as possible with 3000 kg of propellant?
| Item | Definition |
|---|---|
| States | Distance from Earth’s center , vertical velocity , mass |
| Control | Thrust |
| Objective | Maximize final radius, hence altitude |
| Phases | One phase, 50 nodes, free final time |
| New concepts | Physical rocket parameters, specific impulse, and scaling |
Situation
Section titled “Situation”The rocket flies vertically from the surface, burning propellant and becoming lighter. Drag grows with speed but decreases with atmospheric density. Gravity also decreases with altitude. As in Example 07, maximum thrust throughout is not necessarily optimal. Here all equations use physical units.
Formulation
Section titled “Formulation”Dynamics
Section titled “Dynamics”is distance from Earth’s center; altitude is . Specific impulse measures engine efficiency; is effective exhaust velocity. Larger uses less propellant for the same thrust. Atmospheric density falls by a factor per scale height m.
Boundary conditions
Section titled “Boundary conditions”The endpoint is the highest point after consuming all 3000 kg of propellant.
Constraints and objective
Section titled “Constraints and objective”Dividing by Earth radius scales the objective without changing its optimum.
Parameters
Section titled “Parameters”| Symbol | Meaning | Value |
|---|---|---|
| Earth gravitational parameter | m³/s² | |
| Earth radius | 6371 km | |
| Standard gravity | 9.80665 m/s² | |
| Initial and dry masses | 5000, 2000 kg | |
| Drag coefficient and area | 0.2, 10 m² | |
| Specific impulse | 300 s | |
| Surface density and scale height | 1.225 kg/m³, 8500 m |
At maximum thrust, consumption is about 33.3 kg/s, so all propellant would be exhausted in 90 s.
Scaling
Section titled “Scaling”Use radius unit , velocity unit km/s, mass unit 5000 kg, time unit about 805 s, and thrust unit about 49.1 kN. Equations and output stay in physical units (scaling).
Initial guess
Section titled “Initial guess”Use time 0 to 600 s, cubic radius from to km with zero endpoint slopes, and zero velocity. Mass is cubic from 5000 to 2000 kg, with initial slope −0.6 kg/s and final slope zero. Thrust decreases cubically from maximum to zero with zero endpoint slopes.
Results
Section titled “Results”
- Maximum altitude: 65.5 km.
- Burnout: about 114 s; highest point: 188 s.
- Thrust follows maximum → intermediate → zero, as in Example 07.
Explanation
Section titled “Explanation”For about the first 20 s, maximum thrust builds speed. As drag grows, thrust falls to roughly 70–80 kN, balancing drag and gravity losses along a singular arc. Once the atmosphere thins, the rocket consumes the remaining propellant and coasts upward. Throttling extends the burn beyond the 90 s maximum-thrust duration. The physical structure matches the dimensionless Goddard problem.
Thrust oscillations and a rounded burnout transition arise from representing a discontinuity with one polynomial. Splitting near burnout, as in Example 08, can improve this representation (multiple phases).
Try it
Section titled “Try it”- Set
self.Cdto zero and compare the singular arc and maximum altitude with the drag-free result. - Raise
self.Ispfrom 300 to 450 and inspect the increase in altitude. - Lower
self.max_thrust, the initial thrust-to-weight ratio, to 1.5 and compare maximum-thrust and intermediate-thrust durations.
uv run python examples/10_rocket_ascent_single_stage.py