pid_control.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef PID_CONTROL_H
  2. #define PID_CONTROL_H
  3. class pid_control
  4. {
  5. //位置式PID
  6. class PID_position
  7. {
  8. private:
  9. float kp;//比例系数
  10. float ki;//积分系数
  11. float kd;//微分系数
  12. float target;//目标值
  13. float actual;//实际值
  14. float e;//误差
  15. float e_pre;//上一次误差
  16. float integral;//积分项
  17. public:
  18. PID_position();
  19. ~PID_position(){};
  20. PID_position(float p,float i,float d);
  21. float pid_control(float tar,float act);//执行PID控制
  22. void pid_show();//显示PID控制器的内部参数
  23. };
  24. //增量式PID
  25. class PID_incremental
  26. {
  27. private:
  28. float kp;
  29. float ki;
  30. float kd;
  31. float target;
  32. float actual;
  33. float e;
  34. float e_pre_1;
  35. float e_pre_2;
  36. float A;
  37. float B;
  38. float C;
  39. public:
  40. PID_incremental();
  41. PID_incremental(float p,float i,float d);
  42. float pid_control(float tar,float act);
  43. void pid_show();
  44. };
  45. public:
  46. pid_control();
  47. };
  48. #endif // PID_CONTROL_H