49 std::unique_ptr<Filter> iderivativeFilter = std::make_unique<PassthroughFilter>(),
62 std::unique_ptr<Filter> iderivativeFilter = std::make_unique<PassthroughFilter>(),
72 double step(
double inewReading)
override;
void reset() override
Resets the controller's internal state so it is similar to when it was first initialized,...
QTime getSampleTime() const override
Get the last set sample time.
double controllerSetTargetMax
double getTarget() override
Gets the last set target, or the default target if none was set.
IterativePosPIDController(double ikP, double ikI, double ikD, double ikBias, const TimeUtil &itimeUtil, std::unique_ptr< Filter > iderivativeFilter=std::make_unique< PassthroughFilter >(), std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
Position PID controller.
virtual void setIntegratorReset(bool iresetOnZero)
Set whether the integrator should be reset when error is 0 or changes sign.
std::unique_ptr< Filter > derivativeFilter
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.
void setTarget(double itarget) override
Sets the target for the controller.
virtual void setGains(const Gains &igains)
Set controller gains.
void flipDisable(bool iisDisabled) override
Sets whether the controller is off or on.
double getError() const override
Returns the last error of the controller.
void setOutputLimits(double imax, double imin) override
Set controller output bounds.
double getMaxOutput() override
Get the upper output bound.
bool isSettled() override
Returns whether the controller has settled at the target.
bool isDisabled() const override
Returns whether the controller is currently disabled.
void setSampleTime(QTime isampleTime) override
Set time between loops in ms.
double getTarget() const
Gets the last set target, or the default target if none was set.
std::shared_ptr< Logger > logger
bool controllerIsDisabled
void flipDisable() override
Changes whether the controller is off or on.
Gains getGains() const
Gets the current gains.
std::unique_ptr< AbstractTimer > loopDtTimer
void controllerSet(double ivalue) override
Writes the value of the controller output.
IterativePosPIDController(const Gains &igains, const TimeUtil &itimeUtil, std::unique_ptr< Filter > iderivativeFilter=std::make_unique< PassthroughFilter >(), std::shared_ptr< Logger > ilogger=Logger::getDefaultLogger())
Position PID controller.
double controllerSetTargetMin
double step(double inewReading) override
Do one iteration of the controller.
double getProcessValue() const override
std::unique_ptr< SettledUtil > settledUtil
double getOutput() const override
Returns the last calculated output of the controller.
virtual void setIntegralLimits(double imax, double imin)
Set integrator bounds.
virtual void setErrorSumLimits(double imax, double imin)
Set the error sum bounds.
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