Maximize the final altitude of a vertically launched rocket, using the thrust as a control and given the initial mass, the fuel mass, and the drag characteristics of the rocket.

This is a classical problem in dynamic optimization that
is typical of control problems with a singular arc.
See Bryson [8, pages 392-394] for background information.
The equations of motion for the rocket are

The drag and the gravitational force are defined by

where and are constants, and is the gravitational force at the earth's surface. The rocket is initially at rest (), and the mass at the end of the flight is a fraction of the initial mass,

where is the flight time and is a constant. In addition to the bounds on the thrust, there are bounds

on the mass, altitude, and velocity of the rocket. These bounds are a direct consequence of the equations of motion .

The equations of motion can be made dimension free by scaling the
equations and choosing the model parameters in terms of
, , and .
We follow [8] and use

With these choices we can assume, without loss of generality, that . We also follow [8] and choose

We discretize the equations of motion with the trapezoidal rule, and a uniform mesh with intervals. Data for this problem appears in Table 10.1.

Variables | |

Constraints | |

Bounds | |

Linear equality constraints | 0 |

Linear inequality constraints | 0 |

Nonlinear equality constraints | |

Nonlinear inequality constraints | 0 |

Nonzeros in | 0 |

Nonzeros in |

Results for the AMPL implementation are shown in Table 10.2.
For starting points we use and the functions ,

evaluated at the grid points. The initial value for the thrust is .

For the rocket problem with
, MINOS makes no progress,
declaring it to be an *unbounded (or badly scaled) problem*.

Solver | ||||

LANCELOT | ||||

violation | ||||

iterations | ||||

LOQO | 3.34 s | 3.38 s | 4.65 s | 12.42 s |

1.01281e+00 | 1.01283e+00 | 1.01283e+00 | 1.01283e+00 | |

violation | 2.1e-10 | 4.5e-10 | 8.2e-10 | 7.5e-10 |

iterations | 123 | 64 | 43 | 48 |

MINOS | 1.69 s | 4.48 s | 1.12 s | 3.93 s |

1.01280e+00 | 1.01278e+00 | 9.85326e+03 | 6.11246e+03 | |

violation | 4.8e-13 | 6.1e-16 | 3.6e+03 | 1.1e+03 |

iterations | 11 | 11 | 2 | 2 |

SNOPT | 3.04 s | 9.5 s | 31.5 s | 64.48 s |

1.01281e+00 | 1.01280e+00 | 1.01281e+00 | 1.01238e+00 | |

violation | 1.9e-09 | 4.1e-08 | 3.5e-09 | 5.2e-07 |

iterations | 37 | 29 | 43 | 39 |

Errors or warnings. Timed out. |

Figure 10.1 shows the altitude and mass of the rocket as a function of time. Note that altitude increases until a maximum altitude of is reached, while the mass of the rocket steadily decreases until the final mass of is reached at .

Figure 10.2 shows the velocity and thrust
as a function of time. The thrust is bang-singular-bang,
with the region of singularity occurring when

This figure shows that the optimal flight path involves using maximal thrust until , and no thrust for , at which point the final mass is reached, and the rocket coasts to its maximal altitude. The oscillations that appear at the point of discontinuity in the thrust parameter can be removed by using more grid points.

2001-01-02