Enabled voltage caping
Change-Id: Iac56578035f5be463c7367d99a47e589ac78b10c
diff --git a/frc971/control_loops/fridge/fridge.cc b/frc971/control_loops/fridge/fridge.cc
index ad44f72..a76f06a 100644
--- a/frc971/control_loops/fridge/fridge.cc
+++ b/frc971/control_loops/fridge/fridge.cc
@@ -7,6 +7,7 @@
#include "frc971/control_loops/fridge/elevator_motor_plant.h"
#include "frc971/control_loops/fridge/arm_motor_plant.h"
+#include "frc971/control_loops/voltage_cap/voltage_cap.h"
#include "frc971/zeroing/zeroing.h"
#include "frc971/constants.h"
@@ -17,26 +18,15 @@
constexpr double Fridge::dt;
namespace {
-constexpr double kZeroingVoltage = 5.0;
-constexpr double kElevatorZeroingVelocity = 0.1;
-constexpr double kArmZeroingVelocity = 0.2;
+constexpr double kZeroingVoltage = 4.0;
+constexpr double kElevatorZeroingVelocity = 0.10;
+constexpr double kArmZeroingVelocity = 0.20;
} // namespace
void CappedStateFeedbackLoop::CapU() {
- // TODO(austin): Use Campbell's code.
- if (mutable_U(0, 0) > max_voltage_) {
- mutable_U(0, 0) = max_voltage_;
- }
- if (mutable_U(1, 0) > max_voltage_) {
- mutable_U(1, 0) = max_voltage_;
- }
- if (mutable_U(0, 0) < -max_voltage_) {
- mutable_U(0, 0) = -max_voltage_;
- }
- if (mutable_U(1, 0) < -max_voltage_) {
- mutable_U(1, 0) = -max_voltage_;
- }
+ VoltageCap(max_voltage_, U(0, 0), U(1, 0), &mutable_U(0, 0),
+ &mutable_U(1, 0));
}
Eigen::Matrix<double, 2, 1>
diff --git a/frc971/control_loops/fridge/fridge.gyp b/frc971/control_loops/fridge/fridge.gyp
index a0016e8..1226692 100644
--- a/frc971/control_loops/fridge/fridge.gyp
+++ b/frc971/control_loops/fridge/fridge.gyp
@@ -32,6 +32,7 @@
'<(AOS)/common/controls/controls.gyp:control_loop',
'<(DEPTH)/frc971/frc971.gyp:constants',
'<(DEPTH)/frc971/control_loops/control_loops.gyp:state_feedback_loop',
+ '<(DEPTH)/frc971/control_loops/voltage_cap/voltage_cap.gyp:voltage_cap',
],
'export_dependent_settings': [
'fridge_queue',