- 3.0.2 optimal control module.
|
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 |
Discrete-Time Algebraic Riccati Equation.
solves the discrete-time Infinite-Horizon Algebraic Riccati Equation iteratively
STATE_DIM | system state dimension |
CONTROL_DIM | system control input dimension |
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, CONTROL_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_matrix_t |
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_state_matrix_t |
typedef Eigen::Matrix<SCALAR, STATE_DIM, CONTROL_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_gain_matrix_t |
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::control_feedback_t |
ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::DARE | ( | ) |
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.
Q | state weight |
R | control weight |
A | discrete-time linear system matrix A |
B | discrete-time linear system matrix B |
verbose | print additional information |
eps | treshold to stop iterating |
Referenced by ct::optcon::example::TEST(), and ct::optcon::SteadyStateKalmanFilter< STATE_DIM, CONTROL_DIM, OUTPUT_DIM, SCALAR >::update().
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.
Q | state weight |
R | control weight |
A | discrete-time linear system matrix A |
B | discrete-time linear system matrix B |
P | warm initialized P matrix |
verbose | print additional information |
eps | treshold to stop iterating |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR, STATE_DIM, STATE_DIM> ct::optcon::DARE< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t |