2021-09-29 15:39:47 -07:00
|
|
|
|
diff --git b/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h a/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
2021-11-16 14:37:29 -08:00
|
|
|
|
index df7a58b2b..55b8442bf 100644
|
2021-09-29 15:39:47 -07:00
|
|
|
|
--- b/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
|
|
|
|
|
+++ a/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
|
|
|
|
|
@@ -4,6 +4,7 @@
|
|
|
|
|
|
#include <cstdlib>
|
|
|
|
|
|
|
|
|
|
|
|
#include <Eigen/Core>
|
|
|
|
|
|
+#include <wpi/SymbolExports.h>
|
|
|
|
|
|
|
|
|
|
|
|
namespace drake {
|
|
|
|
|
|
namespace math {
|
2021-11-16 14:37:29 -08:00
|
|
|
|
@@ -21,6 +22,7 @@ Based on the Schur Vector approach outlined in this paper:
|
|
|
|
|
|
"On the Numerical Solution of the Discrete-Time Algebraic Riccati Equation"
|
|
|
|
|
|
by Thrasyvoulos Pappas, Alan J. Laub, and Nils R. Sandell
|
|
|
|
|
|
*/
|
2021-09-29 15:39:47 -07:00
|
|
|
|
+WPILIB_DLLEXPORT
|
|
|
|
|
|
Eigen::MatrixXd DiscreteAlgebraicRiccatiEquation(
|
|
|
|
|
|
const Eigen::Ref<const Eigen::MatrixXd>& A,
|
|
|
|
|
|
const Eigen::Ref<const Eigen::MatrixXd>& B,
|
2021-11-16 14:37:29 -08:00
|
|
|
|
@@ -71,6 +73,7 @@ J = Σ [uₖ] [0 R][uₖ] ΔT
|
|
|
|
|
|
@throws std::runtime_error if Q − NR⁻¹Nᵀ is not positive semi-definite.
|
|
|
|
|
|
@throws std::runtime_error if R is not positive definite.
|
|
|
|
|
|
*/
|
2021-09-29 15:39:47 -07:00
|
|
|
|
+WPILIB_DLLEXPORT
|
|
|
|
|
|
Eigen::MatrixXd DiscreteAlgebraicRiccatiEquation(
|
|
|
|
|
|
const Eigen::Ref<const Eigen::MatrixXd>& A,
|
|
|
|
|
|
const Eigen::Ref<const Eigen::MatrixXd>& B,
|