mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpimath] Remove rho overload from LinearQuadraticRegulator constructors (#2687)
It was added as part of Bryson's rule described in https://file.tavsys.net/control/controls-engineering-in-frc.pdf. It doesn't really simplify usage though, and the same thing can be replicated by multiplying the elements of Q by rho manually. It's easier to do it that way, it's how 3512 has been doing controller debugging for a while, and it's probably what other teams will do as well instead of using the "more structured" way. Removing these unhelpful overloads also simplifies the LQR interface.
This commit is contained in:
@@ -13,14 +13,8 @@ LinearQuadraticRegulator<1, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 1, 1>& A, const Eigen::Matrix<double, 1, 1>& B,
|
||||
const std::array<double, 1>& Qelems, const std::array<double, 1>& Relems,
|
||||
units::second_t dt)
|
||||
: LinearQuadraticRegulator(A, B, Qelems, 1.0, Relems, dt) {}
|
||||
|
||||
LinearQuadraticRegulator<1, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 1, 1>& A, const Eigen::Matrix<double, 1, 1>& B,
|
||||
const std::array<double, 1>& Qelems, const double rho,
|
||||
const std::array<double, 1>& Relems, units::second_t dt)
|
||||
: detail::LinearQuadraticRegulatorImpl<1, 1>{A, B, Qelems,
|
||||
rho, Relems, dt} {}
|
||||
: LinearQuadraticRegulator(A, B, MakeCostMatrix(Qelems),
|
||||
MakeCostMatrix(Relems), dt) {}
|
||||
|
||||
LinearQuadraticRegulator<1, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 1, 1>& A, const Eigen::Matrix<double, 1, 1>& B,
|
||||
@@ -32,14 +26,8 @@ LinearQuadraticRegulator<2, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 2, 2>& A, const Eigen::Matrix<double, 2, 1>& B,
|
||||
const std::array<double, 2>& Qelems, const std::array<double, 1>& Relems,
|
||||
units::second_t dt)
|
||||
: LinearQuadraticRegulator(A, B, Qelems, 1.0, Relems, dt) {}
|
||||
|
||||
LinearQuadraticRegulator<2, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 2, 2>& A, const Eigen::Matrix<double, 2, 1>& B,
|
||||
const std::array<double, 2>& Qelems, const double rho,
|
||||
const std::array<double, 1>& Relems, units::second_t dt)
|
||||
: detail::LinearQuadraticRegulatorImpl<2, 1>{A, B, Qelems,
|
||||
rho, Relems, dt} {}
|
||||
: LinearQuadraticRegulator(A, B, MakeCostMatrix(Qelems),
|
||||
MakeCostMatrix(Relems), dt) {}
|
||||
|
||||
LinearQuadraticRegulator<2, 1>::LinearQuadraticRegulator(
|
||||
const Eigen::Matrix<double, 2, 2>& A, const Eigen::Matrix<double, 2, 1>& B,
|
||||
|
||||
Reference in New Issue
Block a user