control-toolbox: solving control problems within Julia
Résumé
There is a strong trend to use Julia in scientific computing, so as to take advantage not only of the performance but also of the high level traits of the language. These features allow to cast problems and algorithms in a form close to their mathematical definitions. As powerful Julia libraries to solve ODE's and optimisation problems are now available, it is possible to attack efficiently optimal control problems. Several methods will be presented, including direct transcription and shooting. While the first approach consists in a brutal approximation of the infinite dimensional control problem by a nonlinear program with sparse constraints, the second one leverages Pontrjagin maximum principle to ensure a very precise computation of optimal controls. Rather than competing methods, these two approaches must be made to collaborate: direct codes capture the structure of the solution (typically made of bang and singular arcs), which then allows to devise and initialise a tailored shooting function. These points will be illustrated in the framework of ongoing developments of Julia packages from the ct: \href{ https://control-toolbox.org/OptimalControl.jl/v0.9.2/fgs-2024.html}{\texttt{control-toolbox}} suite.