Go to the documentation of this file.
25 #ifndef SRC_NUMERICS_INCLUDE_CORBO_NUMERICS_ALGEBRAIC_RICCATI_CONTINUOUS_H_
26 #define SRC_NUMERICS_INCLUDE_CORBO_NUMERICS_ALGEBRAIC_RICCATI_CONTINUOUS_H_
30 #include <Eigen/Eigenvalues>
58 class AlgebraicRiccatiContinuous
85 Eigen::MatrixXd* G =
nullptr);
161 #endif // SRC_NUMERICS_INCLUDE_CORBO_NUMERICS_ALGEBRAIC_RICCATI_CONTINUOUS_H_
static bool hasRealPartsCloseToZero(const Eigen::Ref< const Eigen::MatrixXd > &matrix)
Check if the real parts of the provided matrix are close to zero.
static bool isNumericallyStable(const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B, const Eigen::Ref< const Eigen::MatrixXd > &Q, const Eigen::Ref< const Eigen::MatrixXd > &R)
Determine if solving the riccati equation seems to be numerically stable.
static bool isClosedLoopStable(const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B, const Eigen::Ref< const Eigen::MatrixXd > &G)
Determine if the closed-loop system is stable.
Map< Matrix< T, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> > matrix(T *data, int rows, int cols, int stride)
static bool hasNegativeRealPart(const Eigen::Ref< const Eigen::MatrixXd > &block)
Predicate for Schur block ordering (see solveRiccatiHamiltonianSchur())
MatrixType B(b, *n, *nrhs, *ldb)
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL EIGEN_DEVICE_FUNC BlockXpr block(Index startRow, Index startCol, Index blockRows, Index blockCols)
This is the const version of block(Index,Index,Index,Index). */.
A matrix or vector expression mapping an existing expression.
static bool solveRiccatiHamiltonianSchur(const Eigen::MatrixXd &H, Eigen::MatrixXd &X)
Solve Hamiltonian via Schur method.
static bool solve(const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::MatrixXd > &B, const Eigen::Ref< const Eigen::MatrixXd > &Q, const Eigen::Ref< const Eigen::MatrixXd > &R, Eigen::MatrixXd &X, Eigen::MatrixXd *G=nullptr)
Solve continuous-time algebraic Riccati equation.
MatrixType A(a, *n, *n, *lda)
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:05:36