Local discretisation methods approximate the time-dependent functions of an optimal control problem using piecewise polynomials (splines) defined over a mesh of intervals, and can be seen as implementations of implicit Runge–Kutta integrators. The differential equations and path constraints are enforced at nodes of the mesh, and the integrals associated with the problem are computed using well-known quadrature formulas.
PSOPT implements the following local discretisation methods:
Trapezoidal discretisation, a second-order method in which the dynamics are enforced using the trapezoidal integration rule over each mesh interval.
Hermite–Simpson discretisation, a fourth-order method in which the state is approximated by cubic Hermite polynomials and the dynamics are enforced using Simpson’s quadrature rule.
Local methods produce highly sparse nonlinear programming problems, which are handled efficiently by sparse NLP solvers such as IPOPT. They are often preferred for problems with non-smooth solutions or with many mesh intervals, where the locality of the discretisation limits the propagation of interpolation error.
PSOPT includes an implementation of Betts’ automatic mesh refinement method for local discretisations. The refinement algorithm estimates the discretisation error on each mesh interval by computing the integral of the absolute local error, and adds nodes where the error exceeds the specified tolerance, repeating the process until the requested accuracy is achieved.