robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
robotoc::BackwardRiccatiRecursionFactorizer Class Reference

Factorizer of the backward Riccati recursion. More...

#include <backward_riccati_recursion_factorizer.hpp>

Public Types

using MatrixXdRowMajor = Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >
 

Public Member Functions

 BackwardRiccatiRecursionFactorizer (const Robot &robot)
 Constructs a factorizer. More...
 
 BackwardRiccatiRecursionFactorizer ()
 Default constructor. More...
 
 ~BackwardRiccatiRecursionFactorizer ()
 Destructor. More...
 
 BackwardRiccatiRecursionFactorizer (const BackwardRiccatiRecursionFactorizer &)=default
 Default copy constructor. More...
 
BackwardRiccatiRecursionFactorizeroperator= (const BackwardRiccatiRecursionFactorizer &)=default
 Default copy operator. More...
 
 BackwardRiccatiRecursionFactorizer (BackwardRiccatiRecursionFactorizer &&) noexcept=default
 Default move constructor. More...
 
BackwardRiccatiRecursionFactorizeroperator= (BackwardRiccatiRecursionFactorizer &&) noexcept=default
 Default move assign operator. More...
 
void factorizeKKTMatrix (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual)
 Factorizes the split KKT matrix and split KKT residual of a time stage for the backward Riccati recursion. More...
 
void factorizeHamiltonian (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, SplitRiccatiFactorization &riccati, const bool has_next_sto_phase) const
 Factorizes the derivatives of the Hamiltonian of a time stage for the backward Riccati recursion. More...
 
void factorizeKKTMatrix (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix)
 Factorizes the split KKT matrix and split KKT residual of this impact stage for the backward Riccati recursion. More...
 
void factorizeRiccatiFactorization (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const LQRPolicy &lqr_policy, SplitRiccatiFactorization &riccati)
 Factorizes the Riccati factorization matrix and vector. More...
 
void factorizeSTOFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const LQRPolicy &lqr_policy, SplitRiccatiFactorization &riccati, const bool has_next_sto_phase)
 Factorizes the STO factorization vector and scalars. More...
 
void factorizeRiccatiFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati)
 Factorizes the Riccati factorization matrix and vector. More...
 
void factorizeSTOFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati)
 Factorizes the STO factorization vector and scalars. More...
 

Detailed Description

Factorizer of the backward Riccati recursion.

Member Typedef Documentation

◆ MatrixXdRowMajor

using robotoc::BackwardRiccatiRecursionFactorizer::MatrixXdRowMajor = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>

Constructor & Destructor Documentation

◆ BackwardRiccatiRecursionFactorizer() [1/4]

robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer ( const Robot robot)

Constructs a factorizer.

Parameters
[in]robotRobot model.

◆ BackwardRiccatiRecursionFactorizer() [2/4]

robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer ( )

Default constructor.

◆ ~BackwardRiccatiRecursionFactorizer()

robotoc::BackwardRiccatiRecursionFactorizer::~BackwardRiccatiRecursionFactorizer ( )

Destructor.

◆ BackwardRiccatiRecursionFactorizer() [3/4]

robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer ( const BackwardRiccatiRecursionFactorizer )
default

Default copy constructor.

◆ BackwardRiccatiRecursionFactorizer() [4/4]

robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer ( BackwardRiccatiRecursionFactorizer &&  )
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ factorizeHamiltonian()

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeHamiltonian ( const SplitRiccatiFactorization riccati_next,
const SplitKKTMatrix kkt_matrix,
SplitRiccatiFactorization riccati,
const bool  has_next_sto_phase 
) const

Factorizes the derivatives of the Hamiltonian of a time stage for the backward Riccati recursion.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in]kkt_matrixSplit KKT matrix of this time stage.
[in,out]riccatiRiccati factorization of time time stage.
[in]has_next_sto_phaseFlag for wheather this phase has the next phase involving the STO problem.
Note
Please call factorizeKKTMatrix() before this function.

◆ factorizeKKTMatrix() [1/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeKKTMatrix ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix 
)

Factorizes the split KKT matrix and split KKT residual of this impact stage for the backward Riccati recursion.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in,out]kkt_matrixSplit KKT matrix of this impact stage.

◆ factorizeKKTMatrix() [2/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeKKTMatrix ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix,
SplitKKTResidual kkt_residual 
)

Factorizes the split KKT matrix and split KKT residual of a time stage for the backward Riccati recursion.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in,out]kkt_matrixSplit KKT matrix of this time stage.
[in,out]kkt_residualSplit KKT residual of this time stage.

◆ factorizeRiccatiFactorization() [1/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeRiccatiFactorization ( const SplitRiccatiFactorization riccati_next,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
SplitRiccatiFactorization riccati 
)

Factorizes the Riccati factorization matrix and vector.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in]kkt_matrixSplit KKT matrix of this impact stage.
[in]kkt_residualSplit KKT residual of this impact stage. ImpactBackwardRiccatiRecursionFactorizer::factorizeKKTMatrix().
[out]riccatiThe Riccati factorization of this impact stage.

◆ factorizeRiccatiFactorization() [2/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeRiccatiFactorization ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
const LQRPolicy lqr_policy,
SplitRiccatiFactorization riccati 
)

Factorizes the Riccati factorization matrix and vector.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in,out]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in]lqr_policyThe state feedback control policy of the LQR subproblem.
[out]riccatiThe Riccati factorization of this time stage.

◆ factorizeSTOFactorization() [1/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeSTOFactorization ( const SplitRiccatiFactorization riccati_next,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
const LQRPolicy lqr_policy,
SplitRiccatiFactorization riccati,
const bool  has_next_sto_phase 
)

Factorizes the STO factorization vector and scalars.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in]lqr_policyThe state feedback control policy of the LQR subproblem.
[in,out]riccatiThe Riccati factorization of this time stage.
[in]has_next_sto_phaseFlag for wheather this phase has the next phase involving the STO problem.

◆ factorizeSTOFactorization() [2/2]

void robotoc::BackwardRiccatiRecursionFactorizer::factorizeSTOFactorization ( const SplitRiccatiFactorization riccati_next,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
SplitRiccatiFactorization riccati 
)

Factorizes the STO factorization vector and scalars.

Parameters
[in]riccati_nextRiccati factorization of the next time stage.
[in]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in,out]riccatiThe Riccati factorization of this time stage.

◆ operator=() [1/2]

BackwardRiccatiRecursionFactorizer & robotoc::BackwardRiccatiRecursionFactorizer::operator= ( BackwardRiccatiRecursionFactorizer &&  )
defaultnoexcept

Default move assign operator.

◆ operator=() [2/2]

BackwardRiccatiRecursionFactorizer & robotoc::BackwardRiccatiRecursionFactorizer::operator= ( const BackwardRiccatiRecursionFactorizer )
default

Default copy operator.


The documentation for this class was generated from the following file: