Skip to content

What is Successive Convexification?

Successive Convexification is an approach to solve infinite dimensional nonconvex trajectory optimization problems. It works by successively convexifying or linearizing a problem and solving the convex subproblem. The solution to the convex subproblem is then used to update the original problem, and the process is repeated until convergence.

CT-SCvx_dark CT-SCvx_light

Problem Formulation

In this repository, the user will likely find it most useful to specify their problem in the Mayer Form in order to take full advantage of the features of this repo, but do not worry, this is quite easy.

\[ \begin{align} \min_{x,u}\ &L_{f}(x(t_f)), \\ \mathrm{s.t.}\ &\dot{x}(t) = f(t, x(t),u(t)) & \forall t\in[t_i, t_f], \\ & g(t,x(t),u(t)) \leq 0_{n_g} & \forall t\in[t_i, t_f],\\ & h(t,x(t),u(t)) = 0_{n_h} & \forall t\in[t_i, t_f],\\ & P(t_i, x(t_i), t_f, x(t_f)) = 0_{n_P} , \\ & Q(t_i, x(t_i), t_f, x(t_f)) = 0_{n_Q} , \\ \end{align} \]

Lets break down whats happening here. The first line, \(L_{f}(x(t_f))\), is specifying a terminal cost as a function of state. The second is describing the nonlinear dynamics of the system, \(\dot{x}(t) = f(t, x(t),u(t))\) where \(x\) and \(u\) are the system state and control respectively. The third and fourth lines are describing the inequality, \(g(t,x(t),u(t)) \leq 0_{n_g}\), and equality, \(h(t,x(t),u(t)) = 0_{n_h}\), constraints on the system respectively. Finally, the initial and terminal inequality and equality constraints are specified by \(P(t_i, x(t_i), t_f, x(t_f)) = 0_{n_P}\) and \(Q(t_i, x(t_i), t_f, x(t_f)) = 0_{n_Q}\) respectively.