Gearmotorpid.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <AP_Common/AP_Common.h>
  3. #include <AP_HAL/AP_HAL.h>
  4. #include <AP_Param/AP_Param.h>
  5. #include <AP_Math/AP_Math.h>
  6. //履带pid类
  7. class TrackPidClass{
  8. public:
  9. TrackPidClass(float _p1,float _i1,float _d1,float _p2,float _i2,float _d2);
  10. //履带电机1
  11. float motor1_head_target;//目标值
  12. float motor1_head_measure;//测量值
  13. float error_head1;//误差
  14. float error_last_head1;//上一次误差
  15. float error_last2_head1;//上2次误差
  16. float p1;//P
  17. float i1;//I
  18. float d1;//D
  19. float sum1;//误差和
  20. int16_t motor1_out;//输出
  21. //履带电机2
  22. float motor2_head_target;//目标值
  23. float motor2_head_measure;//测量值
  24. float error_head2;//误差
  25. float error_last_head2;//上一次误差
  26. float error_last2_head2;//上2次误差
  27. float p2;//P
  28. float i2;//I
  29. float d2;//D
  30. float sum2;//误差和
  31. int16_t motor2_out;//输出
  32. int16_t updatePID1(float target,float measure,float _error,float MAX);//履带1PID控制
  33. int16_t updatePID2(float target,float measure,float _error,float MAX);//履带1PID控制
  34. };