CTRE_Phoenix 5.20.2
|
#include <BaseMotorController.h>
Public Member Functions | |
std::string | toString () |
std::string | toString (std::string prependString) |
Public Attributes | |
double | kP |
double | kI |
double | kD |
double | kF |
double | integralZone |
double | allowableClosedloopError |
double | maxIntegralAccumulator |
double | closedLoopPeakOutput |
int | closedLoopPeriod |
Configurables available to a slot
|
inline |
|
inline |
prependString | String to prepend to configs |
double ctre::phoenix::motorcontrol::can::SlotConfiguration::allowableClosedloopError |
Allowable closed loop error to neutral (in native units)
double ctre::phoenix::motorcontrol::can::SlotConfiguration::closedLoopPeakOutput |
Peak output from closed loop [0,1]
int ctre::phoenix::motorcontrol::can::SlotConfiguration::closedLoopPeriod |
Desired period of closed loop [1,64]ms
double ctre::phoenix::motorcontrol::can::SlotConfiguration::integralZone |
Integral zone (in native units)
If the (absolute) closed-loop error is outside of this zone, integral accumulator is automatically cleared. This ensures than integral wind up events will stop after the sensor gets far enough from its target.
double ctre::phoenix::motorcontrol::can::SlotConfiguration::kD |
D Gain
This is multiplied by derivative error (sensor units per PID loop, typically 1ms). Note the closed loop output interprets a final value of 1023 as full output. So use a gain of '250' to get full output if derr is 4096u (Mag Encoder 1 rotation) per 1000 loops (typ 1 sec)
double ctre::phoenix::motorcontrol::can::SlotConfiguration::kF |
F Gain
See documentation for calculation details. If using velocity, motion magic, or motion profile, use (1023 * duty-cycle / sensor-velocity-sensor-units-per-100ms).
double ctre::phoenix::motorcontrol::can::SlotConfiguration::kI |
I Gain
This is multiplied by accumulated closed loop error in sensor units every PID Loop. Note the closed loop output interprets a final value of 1023 as full output. So use a gain of '0.00025' to get full output if err is 4096u for 1000 loops (accumulater holds 4,096,000), [which is equivalent to one CTRE mag encoder rotation for 1000 milliseconds].
double ctre::phoenix::motorcontrol::can::SlotConfiguration::kP |
P Gain
This is multiplied by closed loop error in sensor units. Note the closed loop output interprets a final value of 1023 as full output. So use a gain of '0.25' to get full output if err is 4096u (Mag Encoder 1 rotation)
double ctre::phoenix::motorcontrol::can::SlotConfiguration::maxIntegralAccumulator |
Max integral accumulator (in native units)