Instrument Neutral Distributed Interface INDI  2.0.2
pid.h
Go to the documentation of this file.
1 
25 #pragma once
26 
27 class PIDImpl;
28 class PID
29 {
30  public:
31  // Kp - proportional gain
32  // Ki - Integral gain
33  // Kd - derivative gain
34  // dt - loop interval time
35  // max - maximum value of manipulated variable
36  // min - minimum value of manipulated variable
37  PID( double dt, double max, double min, double Kp, double Kd, double Ki );
38 
39  void setIntegratorLimits(double min, double max);
40  void setTau(double value);
41 
42  // Returns the manipulated variable given a setpoint and current process value
43  double calculate( double setpoint, double pv );
44  double propotionalTerm() const;
45  double integralTerm() const;
46  double derivativeTerm() const;
47  ~PID();
48 
49  private:
50  PIDImpl *pimpl;
51 };
Definition: pid.cpp:32
Definition: pid.h:29
double derivativeTerm() const
Definition: pid.cpp:114
double integralTerm() const
Definition: pid.cpp:110
PID(double dt, double max, double min, double Kp, double Kd, double Ki)
Definition: pid.cpp:90
void setTau(double value)
Definition: pid.cpp:98
~PID()
Definition: pid.cpp:118
double calculate(double setpoint, double pv)
Definition: pid.cpp:102
void setIntegratorLimits(double min, double max)
Definition: pid.cpp:94
double propotionalTerm() const
Definition: pid.cpp:106
double max(void)
double min(void)