- 3.0.2 optimal control module.
|
continuous-time infinite-horizon LQR More...
#include <LQR.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 |
Public Member Functions | |
bool | compute (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 RisDiagonal=false, bool solveRiccatiIteratively=false) |
design the infinite-horizon LQR controller. More... | |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< double, STATE_DIM, STATE_DIM > | state_matrix_t |
continuous-time infinite-horizon LQR
Implements continous-time infinite-horizon LQR. Resulting feedback law will take the form
STATE_DIM | |
CONTROL_DIM |
typedef Eigen::Matrix<double, CONTROL_DIM, CONTROL_DIM> ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::control_matrix_t |
typedef Eigen::Matrix<double, CONTROL_DIM, STATE_DIM> ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::control_state_matrix_t |
typedef Eigen::Matrix<double, STATE_DIM, CONTROL_DIM> ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::control_gain_matrix_t |
typedef Eigen::Matrix<double, CONTROL_DIM, STATE_DIM> ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::control_feedback_t |
bool ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::compute | ( | 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 | RisDiagonal = false , |
||
bool | solveRiccatiIteratively = false |
||
) |
design the infinite-horizon LQR controller.
Q | state-weighting matrix |
R | control input weighting matrix |
A | linear system dynamics matrix A |
B | linear system dynamics matrix B |
K | control feedback matrix K (to be designed) |
RisDiagonal | set to true if R is a diagonal matrix (efficiency boost) |
solveRiccatiIteratively | use closed-form solution of the infinite-horizon Riccati Equation |
Referenced by main(), and ct::optcon::example::TEST().
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<double, STATE_DIM, STATE_DIM> ct::optcon::LQR< STATE_DIM, CONTROL_DIM >::state_matrix_t |