motor_param.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _MOTOR_PARAM_H__
  2. #define _MOTOR_PARAM_H__
  3. #if 0
  4. #define MOTOR_R 0.33f
  5. #define MOTOR_Ld 0.00136f
  6. #define MOTOR_Lq 0.00136f
  7. #define MOTOR_POLES 2
  8. #else
  9. //编码器电机 3505
  10. #define MOTOR_R 0.08f
  11. #define MOTOR_Ld 0.000032f
  12. #define MOTOR_Lq 0.000032f
  13. #define MOTOR_POLES 10
  14. #endif
  15. /* 编码器参数 */
  16. #define ENC_MAX_RES 4096
  17. /*min. 490 Hz, max 603 Hz*/
  18. #define ENC_PWM_Max_P (1.0f/490.0f)
  19. #define ENC_PWM_Min_P (1.0f/603.0f)
  20. #define ENC_PWM_MAX_RES 4119.0F
  21. #define ENC_PWM_INIT_WIDTH 12.0F //PWM 起始宽度
  22. #define ENC_PWM_ERROR_WIDTH 4.0f //PWM 指示错误的宽度
  23. #define ENC_PWM_END_WIDTH 0.0F
  24. #define ENC_PWM_Error_P (ENC_PWM_INIT_WIDTH/ENC_PWM_MAX_RES)
  25. #define ENC_PWM_MIN_duty ((ENC_PWM_INIT_WIDTH + ENC_PWM_ERROR_WIDTH + ENC_PWM_END_WIDTH)/ENC_PWM_MAX_RES)
  26. #define ENC_Duty_2_Pluse_Nr(duty) (duty * ENC_PWM_MAX_RES - (ENC_PWM_INIT_WIDTH + ENC_PWM_ERROR_WIDTH + ENC_PWM_END_WIDTH)) //通过占空比计算有几个脉冲
  27. #define ENC_Pluse_Nr_2_angle(Nr) (360.0f/(float)ENC_MAX_RES * (Nr))
  28. #endif /* _MOTOR_PARAM_H__ */