Tutorial: MATLAB Implementation of a Successive Convexification Algorithm for 3 DoF Rocket Landings
The primary objective of this work is to fill in gaps and explore an alternate way of solving the 3 DoF rocket-powered landing problem presented in the 2016 AIAA paper by Szmuk, Ackimese, and Berning using successive convexification (SCvx). In the original paper, CVX, an automatic parsing package, was used to transcribe the high-level trajectory optimization problem into a format that could be read by a conic solver. The parsing step, generally computationally intensive, is hidden from the user. The use of CVX is sufficient for the generation of trajectories off-line due to the lack of runtime and flight software implementation constraints. For on-line applications, it is necessary to parse the problem for flight software implementation. References on hand-parsing powered descent guidance (PDG) problems are sparse. In this Tech Memo, the process of transcribing the 3 DoF PDG problem into the format required by MATLAB’s built-in second-order cone solver, coneprog.m, is presented in detail. Due to the abridged 3 DoF dynamics and the relatively simple nonlinearities, this reference is the natural starting point for anyone interested in grasping the concepts behind SCvx pertaining to PDG and the parsing step. Simulation results shown in this report were independently created by solving the problem using coneprog.m. The intent of this memo is to serve as a supplemental material to the original paper by breaking down the concept behind successive convexification and shed light into the parsing process. Readers are encouraged to first familiarize themselves with the material laid out in the original reference.