|
Motorcortex Control
version: 3.0.0
|
6 #ifndef MCX_CTRL3_PID_H
7 #define MCX_CTRL3_PID_H
52 class PID :
public container::Module {
80 inline void setKp(
double kp);
86 inline void setKi(
double ki);
92 inline void setKd(
double kd);
98 inline void setIMax(
double iMax);
107 void create_(
const char* name, parameter_server::Parameter* parameter_server, uint64_t dt_micro_s)
override{};
109 bool initPhase1_()
override;
111 bool initPhase2_()
override {
return true; }
113 bool startOp_()
override {
return true; }
115 bool iterateOp_(
const container::TaskTime& system_time, container::UserTime* user_time)
override;
117 bool stopOp_()
override {
return true; }
129 double iPositionErrorThresholdPos_{0};
130 double iPositionErrorThresholdNeg_{0};
131 double iActualVelocityThresholdPos_{std::numeric_limits<double>::infinity()};
132 double iActualVelocityThresholdNeg_{-std::numeric_limits<double>::infinity()};
void setError(double error)
Sets the error input signal.
Definition: ctrl_pid.h:142
void setIReset(bool iReset)
Sets the reset signal that zeros the integral action.
Definition: ctrl_pid.h:156
The PID Control Object provides a PID controller with Proportional, Derivative and Integral action.
Definition: ctrl_pid.h:52
void setKi(double ki)
Sets the integral gain.
Definition: ctrl_pid.h:150
void setKd(double kd)
Sets the derivative gain.
Definition: ctrl_pid.h:152
void setIMax(double iMax)
Sets the upper limit for the integral term.
Definition: ctrl_pid.h:154
void setKp(double kp)
Sets the proportional gain.
Definition: ctrl_pid.h:148
double getOutput() const
Returns the output signal.
Definition: ctrl_pid.h:146
void setActual(double actual)
Sets the actual (feedback) signal.
Definition: ctrl_pid.h:144