![]() |
- 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 |