Skip to content

What is Succesive Convexification?

Warning

This page is still under development 🚧.

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 specify there problem in the Mayer Form order to take full advantage of the features of this repo, but 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.