Skip to content

The SSQP Solver

ssqp::solvers::ssqp is the outer SQP loop. See The SSQP Solver in Concepts for the conceptual explanation (termination criteria, line search methods, QP solver selection). The reference below is generated directly from include/solvers/ssqp.hpp's own doc comments, including the nested Params, Guess, IterationConvergenceData and ConvergenceData types (each also has its own full page, linked from the "Classes" table below).

Class ssqp::solvers::ssqp

ClassList > ssqp > solvers > ssqp

More...

  • #include <ssqp.hpp>

Classes

Type Name
struct ConvergenceData
struct Guess
struct IterationConvergenceData
struct Params

Public Types

Type Name
enum LineSearchMethod
enum QPSolverType

Public Functions

Type Name
const ConvergenceData convergenceData () const
MatX feedbackGain (const uint k) const
const model::Model & model () const
void reinitialize ()
void setReducedOutput (const bool reduced)
SolverState solve (Guess & guess)
ssqp (model::Model & model, const Params & params=Params::Default())
ssqp (const model::Model & model, const Params & params=Params::Default())
bool write (const std::string & filepath)

Detailed Description

SSQP class Defines an SSQP problem solver based on a given SSQP model and the desired parameters.

SSQP is a Structure-exploiting Sequential Quadratic Programming solver. The solver starts with an initial guess (either provided, or zero) for the states (x) and controls (u) of an optimization problem over a time horizon H.

At each step, SSQP constructs a Quadratic Program at the current SSQP guess with a quadratic cost function and linearized constraints. This is done using the SSQP model, a model of the system being optimized which provides the necessary methods to linearize at each guess, like gradients and hessians.

The solver then utilizes a QP solver to produce a solution to the constructed QP, which can act as an update step for the current SSQP guess. Based on this solution, a line search method is used to update the current guess.

Termination criteria are then checked for the new SSQP guess. The process is repeated until convergence is reached.

Public Types Documentation

enum LineSearchMethod

enum ssqp::solvers::ssqp::LineSearchMethod {
    Filter,
    Merit
};

enum QPSolverType

enum ssqp::solvers::ssqp::QPSolverType {
    ADMM,
    HPIPM
};

Public Functions Documentation

function convergenceData

const ConvergenceData ssqp::solvers::ssqp::convergenceData () const

function feedbackGain

MatX ssqp::solvers::ssqp::feedbackGain (
    const uint k
) const

function model

const model::Model & ssqp::solvers::ssqp::model () const

function reinitialize

void ssqp::solvers::ssqp::reinitialize () 

function setReducedOutput

void ssqp::solvers::ssqp::setReducedOutput (
    const bool reduced
) 

function solve

SolverState ssqp::solvers::ssqp::solve (
    Guess & guess
) 

function ssqp [1/2]

ssqp::solvers::ssqp::ssqp (
    model::Model & model,
    const Params & params=Params::Default()
) 

function ssqp [2/2]

ssqp::solvers::ssqp::ssqp (
    const model::Model & model,
    const Params & params=Params::Default()
) 

function write

bool ssqp::solvers::ssqp::write (
    const std::string & filepath
) 


The documentation for this class was generated from the following file /home/runner/work/ssqp/ssqp/include/solvers/ssqp.hpp