  Current direct-collocation-based optimal control software is either easy to
use or fast, but not both. This is a major limitation for users that are trying
to formulate complex optimal control problems (OCPs) for use in on-line
applications. This paper introduces NLOptControl, an open-source modeling
language that allows users to both easily formulate and quickly solve nonlinear
OCPs using direct-collocation methods. To achieve these attributes,
NLOptControl (1) is written in an efficient, dynamically-typed computing
language called Julia, (2) extends an optimization modeling language called
JuMP to provide a natural algebraic syntax for modeling nonlinear OCPs; and (3)
uses reverse automatic differentiation with the acrylic-coloring method to
exploit sparsity in the Hessian matrix. This work explores the novel design
features of NLOptControl and compares its syntax and speed to those of PROPT.
The syntax comparisons shows that NLOptControl models OCPs more concisely than
PROPT. The speeds of various collocation methods within PROPT and NLOptControl
are benchmarked over a range of collocation points using performance profiles;
overall, NLOptControl's single, two, and four interval pseudospectral methods
are roughly $14$, $26$, and $36$ times faster than PROPT's, respectively.
NLOptControl is well-suited to improve existing off-line and on-line control
systems and to engender new ones.
