17 #ifndef IGNITION_MATH_PID_HH_ 18 #define IGNITION_MATH_PID_HH_ 52 public:
PID(
const double _p = 0.0,
53 const double _i = 0.0,
54 const double _d = 0.0,
55 const double _imax = -1.0,
56 const double _imin = 0.0,
57 const double _cmdMax = -1.0,
58 const double _cmdMin = 0.0,
59 const double _cmdOffset = 0.0);
62 public: ~
PID() =
default;
81 public:
void Init(
const double _p = 0.0,
82 const double _i = 0.0,
83 const double _d = 0.0,
84 const double _imax = -1.0,
85 const double _imin = 0.0,
86 const double _cmdMax = -1.0,
87 const double _cmdMin = 0.0,
88 const double _cmdOffset = 0.0);
92 public:
void SetPGain(
const double _p);
96 public:
void SetIGain(
const double _i);
100 public:
void SetDGain(
const double _d);
104 public:
void SetIMax(
const double _i);
108 public:
void SetIMin(
const double _i);
112 public:
void SetCmdMax(
const double _c);
116 public:
void SetCmdMin(
const double _c);
121 public:
void SetCmdOffset(
const double _c);
125 public:
double PGain()
const;
129 public:
double IGain()
const;
133 public:
double DGain()
const;
137 public:
double IMax()
const;
141 public:
double IMin()
const;
145 public:
double CmdMax()
const;
149 public:
double CmdMin()
const;
153 public:
double CmdOffset()
const;
162 public:
double Update(
const double _error,
163 const std::chrono::duration<double> &_dt);
167 public:
void SetCmd(
const double _cmd);
171 public:
double Cmd()
const;
177 public:
void Errors(
double &_pe,
double &_ie,
double &_de)
const;
182 public:
PID &operator=(
const PID &_p);
185 public:
void Reset();
188 private:
double pErrLast = 0.0;
191 private:
double pErr = 0.0;
194 private:
double iErr = 0.0;
197 private:
double dErr = 0.0;
200 private:
double pGain;
203 private:
double iGain = 0.0;
206 private:
double dGain = 0.0;
209 private:
double iMax = -1.0;
212 private:
double iMin = 0.0;
215 private:
double cmd = 0.0;
218 private:
double cmdMax = -1.0;
221 private:
double cmdMin = 0.0;
224 private:
double cmdOffset = 0.0;
Generic PID controller class.
Definition: PID.hh:33
#define IGNITION_VISIBLE
Use to represent "symbol visible" if supported.
Definition: System.hh:59