56 #include "rnr/rnrconfig.h" 123 double fWi=WiSumErrDft)
126 SetConstants(fKp, fKi, fKd);
163 double GetKp()
const {
return m_fKp; }
169 double GetKi()
const {
return m_fKi; }
175 double GetKd()
const {
return m_fKd; }
181 double GetSP()
const {
return m_fSP; }
187 double GetCV()
const {
return m_fCV; }
226 virtual void SpecifySetPoint(
double fSP,
bool bUnwind =
false);
236 virtual double Control(
double fPV,
double dt);
293 #endif // _DYNA_PID_H double m_fOutput
control variable output (could be same as CV)
virtual void InitControl()
Initialize the PID control variables.
double m_fKd
derivative constant
double GetError() const
Get current error.
static const double PidKpDft
default Kp constant
static const double WiSumErrDft
default sum error weight
virtual void SetConstants(double fKp, double fKi, double fKd)
Set PID constants.
double GetSP() const
Get PID setpoint.
double GetKd() const
Get PID derivative constant.
virtual ~DynaPid()
Default destructor.
double m_fErrPrev
previous error
virtual double toOutput(double fCV)
Convert control variable to application-specific output value.
static const double PidKdDft
default Kd constant
double m_fKp
proportional constant
bool m_bHasPrev
has previous error
virtual double error(double fPV)
Calculate error from setpoint and current process variable value.
DynaPid & operator=(const DynaPid &rhs)
Assignment operator.
DynaPid(double fKp=PidKpDft, double fKi=PidKiDft, double fKd=PidKdDft, double fWi=WiSumErrDft)
Default constructor.
double m_fPV
process variable
double m_fErrSum
sum of errors
double GetCV() const
Get PID control variable.
double GetOutput() const
Get PID output.
RoadNarrows Dynamixel Top-Level Package Header File.
Proportional–Integral–Derivative Controller for Dynamixel servos.
double m_fWi
weighted sum of errors moving average constant
DynaPid(const DynaPid &src)
Copy constructor.
double m_fKi
integral constant
double GetKi() const
Get PID integral constant.
static const double PidKiDft
default Ki constant
double GetKp() const
Get PID proportional constant.
double m_fCV
control variable value