cyqlone develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
Loading...
Searching...
No Matches
conversion.hpp File Reference

Detailed Description

Conversion utilities for optimal control problems.

For example: converting an OCP into a sparse “multiple shooting” quadratic program, or computing the gradient of the quadratic OCP cost function.

Definition in file conversion.hpp.

#include <cyqlone/config.hpp>
#include <cyqlone/ocp.hpp>
#include <guanaqo/linalg/sparsity.hpp>
#include <vector>

Go to the source code of this file.

Classes

struct  cyqlone::LinearOCPSparseQP
 Represents a sparse multiple shooting formulation of the standard optimal control problem. More...
struct  cyqlone::LinearOCPSparseQP::KKTMatrix
struct  cyqlone::SparseCSC< class Index, class StorageIndex >

Namespaces

namespace  cyqlone

Functions

void cyqlone::reference_to_gradient (const LinearOCPStorage &ocp, std::span< const real_t > ref, std::span< real_t > qr)
 Simply computes the gradient of the quadratic cost \( J(x, u) = \sum_{j=1}^{N-1} \ell_j(x^j, u^j) + \ell_N(x^N) \), with \( \ell_j(x, u) = \tfrac12 \left\| \begin{pmatrix} x - x^j_\text{ref} \\ u - u^j_\text{ref} \end{pmatrix} \right\|_{H_j}^2 \), with the Hessian \( H_j = \begin{pmatrix} Q_j & S_j^\top \\ S_j & R_j \end{pmatrix} \).
void cyqlone::reference_to_gradient (LinearOCPStorage &ocp, std::span< const real_t > ref)
 Simply computes the gradient of the quadratic cost \( J(x, u) = \sum_{j=1}^{N-1} \ell_j(x^j, u^j) + \ell_N(x^N) \), with \( \ell_j(x, u) = \tfrac12 \left\| \begin{pmatrix} x - x^j_\text{ref} \\ u - u^j_\text{ref} \end{pmatrix} \right\|_{H_j}^2 \), with the Hessian \( H_j = \begin{pmatrix} Q_j & S_j^\top \\ S_j & R_j \end{pmatrix} \).

Class Documentation

◆ cyqlone::LinearOCPSparseQP::KKTMatrix

struct cyqlone::LinearOCPSparseQP::KKTMatrix
Class Members
vector< index_t > outer_ptr
vector< index_t > inner_idx
vector< real_t > values
SparseCSC< index_t, index_t > sparsity