pid.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef PID_H
  2. #define PID_H
  3. class PIDImpl;
  4. class PID
  5. {
  6. public:
  7. // Kp - proportional gain
  8. // Ki - Integral gain
  9. // Kd - derivative gain
  10. // dt - loop interval time
  11. // max - maximum value of manipulated variable
  12. // min - minimum value of manipulated variable
  13. PID( double dt, double max, double min, double Kp, double Kd, double Ki);
  14. // Kp - proportional gain
  15. // Ki - Integral gain
  16. // Kd - derivative gain
  17. // dt - loop interval time
  18. // max - maximum value of manipulated variable
  19. // min - minimum value of manipulated variable
  20. //maxI - maximum value of Intergrate
  21. PID( double dt, double max, double min, double Kp, double Kd, double Ki, double maxI);
  22. PID( double dt, double max, double min, double Kp, double Kd, double Ki, double maxI, double maxStep);
  23. // Returns the manipulated variable given a setpoint and current process value
  24. double calculate( double setpoint, double pv );
  25. // Returns the manipulated variable given a setpoint and current process value
  26. double calculate_v2( double setpoint, double pv );
  27. //
  28. void reset();
  29. ~PID();
  30. private:
  31. PIDImpl *pimpl;
  32. };
  33. #endif // PID_H