7R21. Practical Methods for Optimal Control using Nonlinear Programming. - JT Betts (Res and Tech Div, Boeing Co, Seattle WA). SIAM, Philadelphia. 2001. 190 pp. ISBN 0-89871-488-5. $51.00.

Reviewed by I Kolmanovsky (Sci Res Lab, MD-2036, Ford Motor Co, 2101 Village Rd, Dearborn MI 48124).

System models are routinely developed in engineering and other disciplines for system analysis and simulation. They now find widespread use in industry in all phases of design and development of technological systems. Model-based trajectory optimization and optimal control are among key tools that facilitate finding better ways to operate and control complex engineering systems. They are also becoming essential in the design phase, to determine system parameters which meet stringent performance objectives and constraints.

In this regard, this book is quite timely. Its detailed treatment of methods and strategies used to solve such optimal control and trajectory optimization problems (complete with in-depth discussion of implementation, tricks, and “what can go wrong” issues) will be useful to optimization practitioners and insightful to researchers focused on various aspects of optimization. The focus of the book is a family of techniques (often referred to as direct methods) wherein the optimal control problem is converted into a finite-dimensional optimization problem using method of transcription. The finite-dimensional problem can be solved using nonlinear programming techniques. The basic idea of transcription is to treat the values of the state and control variables at discrete-time instants as free variables to which constrained, nonlinear programming optimization can then be applied. The constraints are inherited from the original optimal control problem formulation and are also induced by the discretization/integration of the differential equations governing the system dynamics. Efficient computational strategies can be developed if the nonlinear programming algorithm used in the second stage takes advantage of the structure of the problem (sparsity), which is induced as a result of integrating the dynamics equations in the first phase.

The book is very readable. In part, it is due to its theorem-free format while relying instead on a detailed discussion and illustration of how to setup numerical methods and strategies to solve optimal control problems, what can happen, and what can go wrong. Enough detail is given so that the reader also gets a good flavor of the nature of rigorous theoretical results (found in the references provided in the book).

The book is organized as follows. The first chapter reviews the main ideas and techniques of nonlinear programming, including unconstrained minimization methods (Newton and quasi-Newton methods) and constrained optimization techniques (such as Sequential Quadratic Programming or SQP). The review is concise and self-contained, providing the reader quick access to the main ideas used in high-performance optimization codes. Practical issues of what can go wrong such as infeasible constraints, discontinuous objective functions, rank-deficient constraints, and constraint redundancy are illustrated with specific examples. Practical remedies to handle these difficulties are discussed. Chapter 2 discusses large scale nonlinear programming problems and, in particular, the case when the Hessian matrix and Jacobian matrix are sparse, that is most of their elements are zero. In this situation, sparse finite differences can be used to approximate first and second derivatives in a computationally efficient fashion. This and the resulting sparse SQP algorithm are described in detail. Chapter 3 reviews several classical numerical methods for solving initial and boundary value problems for ordinary differential equations. It is the central idea of the book that numerical methods for solving (integrating or discretizing) ODEs give rise to nonlinear programming problems which are sparse, and the sparsity properties depend on a particular method used for discretization. Thus after the transcription, it is possible to take advantage of a particular sparse structure (induced by a particular discretization method) in solving the nonlinear programming problem. This is basically the subject of Chapter 4. What can go wrong is discussed including how to recognize the emergence of singular arcs and discontinuous control, as well as consideration of the issues involved in problems with state constraints. Strategies to switch from lower order ODE integration routines (used at the beginning) to higher order routines as well as mesh refinement strategies are detailed. Chapter 5 reports several of the numerical case studies that the author successfully solved in the past using the techniques described in the book. They are examples of realistic trajectory optimization problems, primarily drawn from the aerospace field. They are, respectively: Space shuttle reentry trajectory optimization, minimum time to climb for an aeroplane, low-thrust orbit transfer for a spacecraft, and two burn orbit transfer for a spacecraft, as well as trajectory optimization for an industrial robot and a multibody mechanism. These case studies provide a good illustration of the techniques described in the book and describe additional strategies to deal with particular issues and problem formulations.

On a critical side, the book only covers one particular class of techniques for solving optimal control problems. Methods based on dynamic programming (which provide optimal control policy in a feedback form) and methods based on calculated gradients through the solution of adjoint equations are not covered. The latter are discussed, with an argument that the adjoint equation approach may not often be applied to the complex models anyway since they may not admit a readily available symbolic representation adequate for the development of linearized equations. The techniques described in the book are implemented in software called SOCS, commercially available from Boeing. This software is briefly described in the Appendix. A limited version of this software (trial version) or other computational codes for the reader to experiment with would amplify the appeal of this book, but are presently not available.

In summary, Practical Methods for Optimal Control using Nonlinear Programming will be useful and is recommended to researchers and engineers in industry and academia whose projects involve solving optimal control/trajectory optimization problems. The book can also be used, as a supplemental text, in graduate-level university courses on optimal control and numerical methods in optimal control. It should also be possible to develop a special topics graduate-level course based on the material in this book, supplemented with theoretical details from the reference literature.