- 3.0.2 optimal control module.
ct::optcon::CARE< STATE_DIM, CONTROL_DIM > Class Template Reference

Continuous-Time Algebraic Riccati Equation. More...

#include <CARE.hpp>

Public Types

typedef Eigen::Matrix< double, CONTROL_DIM, CONTROL_DIM > control_matrix_t
 
typedef Eigen::Matrix< double, CONTROL_DIM, STATE_DIM > control_state_matrix_t
 
typedef Eigen::Matrix< double, STATE_DIM, CONTROL_DIM > control_gain_matrix_t
 
typedef Eigen::Matrix< double, CONTROL_DIM, STATE_DIM > control_feedback_t
 
typedef Eigen::Matrix< double, 2 *STATE_DIM, 2 *STATE_DIM > schur_matrix_t
 
typedef Eigen::Matrix< double, 2 *STATE_DIM, STATE_DIM > factor_matrix_t
 

Public Member Functions

 CARE ()
 
bool solve (const state_matrix_t &Q, const control_matrix_t &R, const state_matrix_t &A, const control_gain_matrix_t &B, state_matrix_t &P, bool RisDiagonal, control_matrix_t &R_inverse, bool useIterativeSolver=false)
 
state_matrix_t computeSteadyStateRiccatiMatrix (const state_matrix_t &Q, const control_matrix_t &R, const state_matrix_t &A, const control_gain_matrix_t &B, const bool RisDiagonal=false, const bool useIterativeSolver=false)
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< double, STATE_DIM, STATE_DIM > state_matrix_t
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM>
class ct::optcon::CARE< STATE_DIM, CONTROL_DIM >

Continuous-Time Algebraic Riccati Equation.

  • solves the continuous-time Infinite-Horizon Algebraic Riccati Equation

    Template Parameters
    STATE_DIMsystem state dimension
    CONTROL_DIMsystem control input dimension

Member Typedef Documentation

◆ control_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, CONTROL_DIM, CONTROL_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::control_matrix_t

◆ control_state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, CONTROL_DIM, STATE_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::control_state_matrix_t

◆ control_gain_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, STATE_DIM, CONTROL_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::control_gain_matrix_t

◆ control_feedback_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, CONTROL_DIM, STATE_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::control_feedback_t

◆ schur_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, 2 * STATE_DIM, 2 * STATE_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::schur_matrix_t

◆ factor_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
typedef Eigen::Matrix<double, 2 * STATE_DIM, STATE_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::factor_matrix_t

Constructor & Destructor Documentation

◆ CARE()

template<size_t STATE_DIM, size_t CONTROL_DIM>
ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::CARE ( )

References WR.

Member Function Documentation

◆ solve()

template<size_t STATE_DIM, size_t CONTROL_DIM>
bool ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::solve ( const state_matrix_t Q,
const control_matrix_t R,
const state_matrix_t A,
const control_gain_matrix_t B,
state_matrix_t P,
bool  RisDiagonal,
control_matrix_t R_inverse,
bool  useIterativeSolver = false 
)

◆ computeSteadyStateRiccatiMatrix()

template<size_t STATE_DIM, size_t CONTROL_DIM>
CARE< STATE_DIM, CONTROL_DIM >::state_matrix_t ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::computeSteadyStateRiccatiMatrix ( const state_matrix_t Q,
const control_matrix_t R,
const state_matrix_t A,
const control_gain_matrix_t B,
const bool  RisDiagonal = false,
const bool  useIterativeSolver = false 
)

References i, and WR.

Member Data Documentation

◆ state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<double, STATE_DIM, STATE_DIM> ct::optcon::CARE< STATE_DIM, CONTROL_DIM >::state_matrix_t

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