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

Discrete-Time Algebraic Riccati Equation. More...

#include <DARE.hpp>

Public Types

typedef Eigen::Matrix< SCALAR, CONTROL_DIM, CONTROL_DIM > control_matrix_t
 
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, STATE_DIM > control_state_matrix_t
 
typedef Eigen::Matrix< SCALAR, STATE_DIM, CONTROL_DIM > control_gain_matrix_t
 
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, STATE_DIM > control_feedback_t
 

Public Member Functions

 DARE ()
 
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, control_feedback_t &K, bool verbose=false, const SCALAR eps=1e-6, size_t maxIter=1000)
 
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, state_matrix_t P, control_feedback_t &K, bool verbose=false, const SCALAR eps=1e-6, size_t maxIter=1000)
 

Public Attributes

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

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >

Discrete-Time Algebraic Riccati Equation.

  • solves the discrete-time Infinite-Horizon Algebraic Riccati Equation iteratively

    Template Parameters
    STATE_DIMsystem state dimension
    CONTROL_DIMsystem control input dimension
Examples:
LqrTest.h.

Member Typedef Documentation

◆ control_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, CONTROL_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_matrix_t

◆ control_state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_state_matrix_t

◆ control_gain_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, STATE_DIM, CONTROL_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_gain_matrix_t

◆ control_feedback_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_feedback_t

Constructor & Destructor Documentation

◆ DARE()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR >
ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::DARE ( )

Member Function Documentation

◆ computeSteadyStateRiccatiMatrix() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR >
DARE< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::computeSteadyStateRiccatiMatrix ( const state_matrix_t Q,
const control_matrix_t R,
const state_matrix_t A,
const control_gain_matrix_t B,
control_feedback_t K,
bool  verbose = false,
const SCALAR  eps = 1e-6,
size_t  maxIter = 1000 
)

compute the discrete-time steady state Riccati-Matrix this method iterates over the time-varying discrete-time Riccati Equation to compute the steady-state solution.

Parameters
Qstate weight
Rcontrol weight
Adiscrete-time linear system matrix A
Bdiscrete-time linear system matrix B
verboseprint additional information
epstreshold to stop iterating
Returns
steady state riccati matrix P

Referenced by ct::optcon::example::TEST(), and ct::optcon::SteadyStateKalmanFilter< STATE_DIM, CONTROL_DIM, OUTPUT_DIM, SCALAR >::update().

◆ computeSteadyStateRiccatiMatrix() [2/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR >
DARE< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::computeSteadyStateRiccatiMatrix ( 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,
control_feedback_t K,
bool  verbose = false,
const SCALAR  eps = 1e-6,
size_t  maxIter = 1000 
)

compute the discrete-time steady state Riccati-Matrix with warm initialization of P matrix this method iterates over the time-varying discrete-time Riccati Equation to compute the steady-state solution.

Parameters
Qstate weight
Rcontrol weight
Adiscrete-time linear system matrix A
Bdiscrete-time linear system matrix B
Pwarm initialized P matrix
verboseprint additional information
epstreshold to stop iterating
Returns
steady state riccati matrix P

Member Data Documentation

◆ state_matrix_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR, STATE_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t

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