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

Riccati factorizer. More...

#include <riccati_factorizer.hpp>

Public Member Functions

 RiccatiFactorizer (const Robot &robot, const double max_dts0=0.1)
 Constructs a factorizer. More...
 
 RiccatiFactorizer ()
 Default constructor. More...
 
 ~RiccatiFactorizer ()
 Destructor. More...
 
 RiccatiFactorizer (const RiccatiFactorizer &)=default
 Default copy constructor. More...
 
RiccatiFactorizeroperator= (const RiccatiFactorizer &)=default
 Default copy operator. More...
 
 RiccatiFactorizer (RiccatiFactorizer &&) noexcept=default
 Default move constructor. More...
 
RiccatiFactorizeroperator= (RiccatiFactorizer &&) noexcept=default
 Default move assign operator. More...
 
void setRegularization (const double max_dts0)
 Sets the regularization on the STO. More...
 
void backwardRiccatiRecursion (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati, LQRPolicy &lqr_policy)
 Performs the backward Riccati recursion. More...
 
void backwardRiccatiRecursion (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati, LQRPolicy &lqr_policy, const bool sto, const bool has_next_sto_phase)
 Performs the backward Riccati recursion. More...
 
void backwardRiccatiRecursionPhaseTransition (const SplitRiccatiFactorization &riccati, SplitRiccatiFactorization &riccati_m, STOPolicy &sto_policy, const bool has_next_sto_phase) const
 Performs the backward Riccati recursion for the phase transition. More...
 
void backwardRiccatiRecursion (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati)
 Performs the backward Riccati recursion. More...
 
void backwardRiccatiRecursion (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati, const bool sto)
 Performs the backward Riccati recursion. More...
 

Detailed Description

Riccati factorizer.

Constructor & Destructor Documentation

◆ RiccatiFactorizer() [1/4]

robotoc::RiccatiFactorizer::RiccatiFactorizer ( const Robot robot,
const double  max_dts0 = 0.1 
)

Constructs a factorizer.

Parameters
[in]robotRobot model.
[in]max_dts0Maximum magnitude of the nominal direction of the switching time. Used in a heuristic regularization on the dynamic programming recursion. Must be positive. Default is 0.1.

◆ RiccatiFactorizer() [2/4]

robotoc::RiccatiFactorizer::RiccatiFactorizer ( )

Default constructor.

◆ ~RiccatiFactorizer()

robotoc::RiccatiFactorizer::~RiccatiFactorizer ( )

Destructor.

◆ RiccatiFactorizer() [3/4]

robotoc::RiccatiFactorizer::RiccatiFactorizer ( const RiccatiFactorizer )
default

Default copy constructor.

◆ RiccatiFactorizer() [4/4]

robotoc::RiccatiFactorizer::RiccatiFactorizer ( RiccatiFactorizer &&  )
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ backwardRiccatiRecursion() [1/4]

void robotoc::RiccatiFactorizer::backwardRiccatiRecursion ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix,
SplitKKTResidual kkt_residual,
SplitRiccatiFactorization riccati 
)

Performs the backward Riccati recursion.

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

◆ backwardRiccatiRecursion() [2/4]

void robotoc::RiccatiFactorizer::backwardRiccatiRecursion ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix,
SplitKKTResidual kkt_residual,
SplitRiccatiFactorization riccati,
const bool  sto 
)

Performs the backward Riccati recursion.

Parameters
[in]riccati_nextRiccati factorization of the next stage.
[in,out]kkt_matrixSplit KKT matrix of this impact stage.
[in,out]kkt_residualSplit KKT residual of this impact stage.
[in,out]riccatiRiccati factorization of this impact stage.
[in]stoIf true, the STO sensitivities are also considered.

◆ backwardRiccatiRecursion() [3/4]

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

Performs the backward Riccati recursion.

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

◆ backwardRiccatiRecursion() [4/4]

void robotoc::RiccatiFactorizer::backwardRiccatiRecursion ( const SplitRiccatiFactorization riccati_next,
SplitKKTMatrix kkt_matrix,
SplitKKTResidual kkt_residual,
SplitRiccatiFactorization riccati,
LQRPolicy lqr_policy,
const bool  sto,
const bool  has_next_sto_phase 
)

Performs the backward Riccati recursion.

Parameters
[in]riccati_nextRiccati factorization of the next stage.
[in,out]kkt_matrixSplit KKT matrix of this stage.
[in,out]kkt_residualSplit KKT residual of this stage.
[in,out]riccatiRiccati factorization of this stage.
[in,out]lqr_policyLQR policy of this stage.
[in]stoIf true, the STO sensitivities are also considered.
[in]has_next_sto_phaseFlag for wheather this phase has the next phase involving the STO problem.

◆ backwardRiccatiRecursionPhaseTransition()

void robotoc::RiccatiFactorizer::backwardRiccatiRecursionPhaseTransition ( const SplitRiccatiFactorization riccati,
SplitRiccatiFactorization riccati_m,
STOPolicy sto_policy,
const bool  has_next_sto_phase 
) const

Performs the backward Riccati recursion for the phase transition.

Parameters
[in]riccatiRiccati factorization of this stage.
[in,out]riccati_mData for modified Riccati factorization.
[in,out]sto_policySTO policy.
[in]has_next_sto_phaseFlag for wheather this phase has the next phase involving the STO problem.

◆ operator=() [1/2]

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

Default copy operator.

◆ operator=() [2/2]

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

Default move assign operator.

◆ setRegularization()

void robotoc::RiccatiFactorizer::setRegularization ( const double  max_dts0)

Sets the regularization on the STO.

Parameters
[in]max_dts0Maximum magnitude of the nominal direction of the switching time. Used in a heuristic regularization on the dynamic programming recursion. Must be positive.

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