45 std::unique_ptr<VelMath> ivelMath,
47 std::unique_ptr<Filter> iderivativeFilter = std::make_unique<PassthroughFilter>(),
61 std::unique_ptr<VelMath> ivelMath,
63 std::unique_ptr<Filter> iderivativeFilter = std::make_unique<PassthroughFilter>(),
73 double step(
double inewReading)
override;
207 virtual QAngularSpeed
stepVel(
double inewReading);
void setOutputLimits(double imax, double imin) override
Set controller output bounds.
double getMinOutput() override
Get the lower output bound.
void setControllerSetTargetLimits(double itargetMax, double itargetMin) override
Sets the (soft) limits for the target range that controllerSet() scales into.
bool controllerIsDisabled
virtual void setTicksPerRev(double tpr)
Sets the number of encoder ticks per revolution.
std::unique_ptr< AbstractTimer > loopDtTimer
IterativeVelPIDController(const Gains &igains, std::unique_ptr< VelMath > ivelMath, const TimeUtil &itimeUtil, std::unique_ptr< Filter > iderivativeFilter=std::make_unique< PassthroughFilter >(), std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
Velocity PD controller.
std::shared_ptr< Logger > logger
double controllerSetTargetMin
void controllerSet(double ivalue) override
Writes the value of the controller output.
void reset() override
Resets the controller's internal state so it is similar to when it was first initialized,...
double getTarget() const
Gets the last set target, or the default target if none was set.
double getTarget() override
Gets the last set target, or the default target if none was set.
bool isDisabled() const override
Returns whether the controller is currently disabled.
void flipDisable(bool iisDisabled) override
Sets whether the controller is off or on.
double step(double inewReading) override
Do one iteration of the controller.
double getError() const override
Returns the last error of the controller.
bool isSettled() override
Returns whether the controller has settled at the target.
void flipDisable() override
Changes whether the controller is off or on.
QTime getSampleTime() const override
Get the last set sample time.
double getOutput() const override
Returns the last calculated output of the controller.
void setTarget(double itarget) override
Sets the target for the controller.
virtual void setGains(const Gains &igains)
Set controller gains.
double getProcessValue() const override
double getMaxOutput() override
Get the upper output bound.
double controllerSetTargetMax
Gains getGains() const
Gets the current gains.
std::unique_ptr< VelMath > velMath
virtual QAngularSpeed stepVel(double inewReading)
Do one iteration of velocity calculation.
void setSampleTime(QTime isampleTime) override
Set time between loops in ms.
std::unique_ptr< Filter > derivativeFilter
std::unique_ptr< SettledUtil > settledUtil
IterativeVelPIDController(double ikP, double ikD, double ikF, double ikSF, std::unique_ptr< VelMath > ivelMath, const TimeUtil &itimeUtil, std::unique_ptr< Filter > iderivativeFilter=std::make_unique< PassthroughFilter >(), std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
Velocity PD controller.
virtual QAngularSpeed getVel() const
Returns the current velocity.
static std::shared_ptr< Logger > getDefaultLogger()
Utility class for holding an AbstractTimer, AbstractRate, and SettledUtil together in one class since...
bool operator!=(const Gains &rhs) const
bool operator==(const Gains &rhs) const