next up previous contents

Subsections


10 Goddard Rocket

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.

Formulation

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

\begin{displaymath}
h' = v, \qquad
v' = \frac{T-D(h,v)}{m}-g(h) , \qquad
m' = -\frac{T}{c} ,
\end{displaymath} (7)

where $ h $ is the altitude from the center of the earth, $ v $ is the vertical velocity, $ T $ is the rocket thrust, $ D $ is the aerodynamic drag, $ g $ is the gravitational force, and $ c $ is a constant that measures the impulse of the rocket fuel. The thrust must satisfy

\begin{displaymath}
0 \le T ( t ) \le T_{\max} .
\end{displaymath}

The drag and the gravitational force are defined by

\begin{displaymath}
D(h,v) = D_c v^2
\exp \left ( - h_c \left ( \frac{h - h(0)}{...
...ght ) , \qquad
g (h) = g_0 \left ( \frac{h(0)}{h} \right )^2 ,
\end{displaymath}

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

\begin{displaymath}
m ( t_f ) = m_c m(0) ,
\end{displaymath}

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

\begin{displaymath}
m(t_f) \le m(t) \le m(0) , \qquad
h(t) \ge h(0), \qquad
v(t) \ge 0 ,
\end{displaymath}

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 $ h (0) $, $ m(0) $, and $ g_0 $. We follow [8] and use

\begin{displaymath}
T_{\max} = 3.5 \, g_0 m(0) , \qquad
D_c = {\textstyle{\frac{...
...} , \qquad
c = {\textstyle{\frac{1}{2}}}( g_0 h(0) ) ^ {1/2}.
\end{displaymath}

With these choices we can assume, without loss of generality, that $ h (0) = m(0) = g_0 = 1 $. We also follow [8] and choose

\begin{displaymath}
h_c = 500, \qquad
m_c = 0.6, \qquad
v_c = 620 .
\end{displaymath}

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



Table 10.1: Goddard rocket problem data
Variables \( 4 (n_h+1) + 1 \)
Constraints \( 3 n_h \)
Bounds \( 3 ( n_h+1 ) \)
Linear equality constraints 0
Linear inequality constraints 0
Nonlinear equality constraints \( 3 n_h\)
Nonlinear inequality constraints 0
Nonzeros in \( \nabla ^{2}f(x) \) 0
Nonzeros in \( c'(x) \) \( 21 n_h \)

Performance

Results for the AMPL implementation are shown in Table 10.2. For starting points we use $ t_f = 1 $ and the functions $ h = 1 $,

\begin{displaymath}
v(t) = \frac{t}{t_f} \left ( 1 - \frac{t}{t_f} \right ) , \qquad
m(t) = (m_f - m_0 ) \left ( \frac{t}{t_f} \right ) + m_0 ,
\end{displaymath}

evaluated at the grid points. The initial value for the thrust is $ T = T_{\max}/2 $.

For the rocket problem with $n_h = 200,\ 400$, MINOS makes no progress, declaring it to be an unbounded (or badly scaled) problem.



Table 10.2: Performance on Goddard rocket problem
Solver $n_h=50$ $n_h=100$ $n_h=200$ $n_h=400$
LANCELOT $\ddagger$ $\ddagger$ $\ddagger$ $\ddagger$
$f$ $\ddagger$ $\ddagger$ $\ddagger$ $\ddagger$
$c$ violation $\ddagger$ $\ddagger$ $\ddagger$ $\ddagger$
iterations $\ddagger$ $\ddagger$ $\ddagger$ $\ddagger$
LOQO 3.34 s 3.38 s 4.65 s 12.42 s
$f$ 1.01281e+00 1.01283e+00 1.01283e+00 1.01283e+00
$c$ 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
$f$ 1.01280e+00 1.01278e+00 9.85326e+03$\dagger$ 6.11246e+03$\dagger$
$c$ violation 4.8e-13 6.1e-16 3.6e+03$\dagger$ 1.1e+03$\dagger$
iterations 11 11 2 2
SNOPT 3.04 s 9.5 s 31.5 s 64.48 s
$f$ 1.01281e+00 1.01280e+00 1.01281e+00 1.01238e+00
$c$ violation 1.9e-09 4.1e-08 3.5e-09 5.2e-07
iterations 37 29 43 39
$\dagger$ Errors or warnings. $\ddagger$ 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 $ h = 1.01 $ is reached, while the mass of the rocket steadily decreases until the final mass of $ m(t_f) = 0.6 $ is reached at $ t = 0.073 $.

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

\begin{displaymath}
0 < T(t) < T_{\max} .
\end{displaymath}

This figure shows that the optimal flight path involves using maximal thrust until $ t = 0.022 $, and no thrust for $ t \ge 0.073 $, 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.

Figure 10.1: Altitude and mass for the Goddard rocket problem
\includegraphics[width=2.5in]{ps/rocket_h.eps} \includegraphics[width=2.5in]{ps/rocket_m.eps}

Figure 10.2: Velocity and thrust for the Goddard rocket problem
\includegraphics[width=2.5in]{ps/rocket_v.eps} \includegraphics[width=2.5in]{ps/rocket_c.eps}


next up previous contents
Liz Dolan
2001-01-02