torque.c 815 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "foc/core/torque.h"
  2. #include "foc/foc_config.h"
  3. /*
  4. 通过查表获取对应扭矩和速度时的Id和IQ的分配
  5. */
  6. void torque_init(void) {
  7. }
  8. void torque_get_idq(float torque, float rpm, DQ_t *dq_out) {
  9. dq_out->d = 0;
  10. dq_out->q = torque;
  11. }
  12. float speed_target_from_throttle(float f_throttle) {
  13. if (f_throttle <= (THROTTLE_LOW_VALUE)) {
  14. return 0;
  15. }
  16. float delta = f_throttle - (THROTTLE_LOW_VALUE);
  17. float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
  18. return (PMSM_FOC_GetSpeedLimit() * ration);
  19. }
  20. float torque_target_from_throttle(float f_throttle) {
  21. if (f_throttle <= (THROTTLE_LOW_VALUE)) {
  22. return 0;
  23. }
  24. float delta = f_throttle - (THROTTLE_LOW_VALUE);
  25. float ration = delta / (THROTTLE_MAX_VALUE - THROTTLE_LOW_VALUE);
  26. return (PMSM_FOC_GetTorqueLimit() * ration);
  27. }