44
55using namespace eh ;
66
7- double PidConstants::ComputeVelocity (double setpoint, double currentPosition,
8- double currentVelocity) {
7+ double PidConstants::Compute (double setpoint, double measurement) {
98 pidController.SetPID (pSubscriber.Get (0 ), iSubscriber.Get (0 ),
109 dSubscriber.Get (0 ));
1110 if (continuousSubscriber.Get (false )) {
@@ -19,28 +18,8 @@ double PidConstants::ComputeVelocity(double setpoint, double currentPosition,
1918 feedForward.SetKv (units::volt_t {vSubscriber.Get (0 )} / 1_mps);
2019 feedForward.SetKa (units::volt_t {aSubscriber.Get (0 )} / 1_mps_sq);
2120
22- return (feedForward.Calculate (units::meters_per_second_t {currentVelocity}) +
23- units::volt_t {pidController.Calculate (currentVelocity, setpoint)})
24- .value ();
25- }
26-
27- double PidConstants::ComputePosition (double setpoint, double currentPosition,
28- double currentVelocity) {
29- pidController.SetPID (pSubscriber.Get (0 ), iSubscriber.Get (0 ),
30- dSubscriber.Get (0 ));
31- if (continuousSubscriber.Get (false )) {
32- pidController.EnableContinuousInput (continuousMinimumSubscriber.Get (0 ),
33- continuousMaximumSubscriber.Get (0 ));
34- } else {
35- pidController.DisableContinuousInput ();
36- }
37-
38- feedForward.SetKs (units::volt_t {sSubscriber .Get (0 )});
39- feedForward.SetKv (units::volt_t {vSubscriber.Get (0 )} / 1_mps);
40- feedForward.SetKa (units::volt_t {aSubscriber.Get (0 )} / 1_mps_sq);
41-
42- return (feedForward.Calculate (units::meters_per_second_t {currentVelocity}) +
43- units::volt_t {pidController.Calculate (currentPosition, setpoint)})
21+ return (feedForward.Calculate (units::meters_per_second_t {setpoint}) +
22+ units::volt_t {pidController.Calculate (measurement, setpoint)})
4423 .value ();
4524}
4625
0 commit comments