foc_config.h 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef _FOC_CONFIG_H__
  2. #define _FOC_CONFIG_H__
  3. #include "math/fast_math.h"
  4. #include "bsp/bsp.h"
  5. #define CONFIG_ACC_MIN_VOL 30
  6. #define CONFIG_SVM_MODULATION 1.0f
  7. #define CONFIG_MIN_CRUISE_RPM 1000 /* 能启动定速巡航的最小速度 */
  8. #define CONFIG_CRUISE_EXIT_RPM 700 /* 自动推出定速巡航的最小速度*/
  9. #define CONFIG_MIN_RPM_FOR_EBRAKE 800 //进入电流回收的最小转速
  10. #define CONFIG_MIN_RPM_EXIT_EBRAKE 250 //推出电流回收的最小转速
  11. #define CONFIG_IDQ_CTRL_TS FOC_PWM_FS
  12. #define CONFIG_SPD_CTRL_TS 1000
  13. #define CONFIG_SPD_CTRL_MS (1000/CONFIG_SPD_CTRL_TS)
  14. #define CONFIG_SPD_CTRL_US (CONFIG_SPD_CTRL_MS * 1000)
  15. #define CONFIG_FOC_VDQ_RAMP_TS 100
  16. #define CONFIG_FOC_VDQ_RAMP_FINAL_TIME 1000
  17. #define CONFIG_ZERO_SPEED_RPM 10
  18. #define CONFIG_LOCK_MOTOR_MIN_RPM 600
  19. #define CONFIG_ZERO_SPEED_RAMP_RMP 60 //从0速启动到结束的速度
  20. /* 电子刹车,动能回收,加速 */
  21. #define CONFIG_eCTRL_STEP_TS CONFIG_SPD_CTRL_MS /* 斜率给定的step的时间值,单位 ms */
  22. #define CONFIG_eCTRL_Brake_TIME 1500 /* 捏住刹车的时间,超过这个时间启动ebrake,单位 ms */
  23. #define CONFIG_AUTOHOLD_DETECT_TIME 2000
  24. #define CONFIG_CRUISE_RAMP_TIME 4000 /* 定速巡航的时候给定加减速的斜波时间 */
  25. #define CONFIG_CURRENT_RAMP_TIME 5000
  26. #define CONFIG_DEFAULT_TORQUE_RAMP_TIME 1000
  27. #define CONFIG_LIMIT_RAMP_TIME (6 * 1000) /* 过温、欠压保护的给定限流和限速的斜波时间 */
  28. #define CONFIG_SENSORLESS_RAMP_TIME (20 * 1000)
  29. #define CONFIG_MTPA_CALI_RAMP_TIME (10 * 1000)
  30. /* 防止打齿,0扭矩上下的时候需要缓给定参数 */
  31. #define CONFIG_RAMP_FIRST_TARGET (1.0F)
  32. #define CONFIG_RAMP_SECOND_TARGET (5.0F * 1.5F)
  33. /* dq轴电流环指令斜波 */
  34. #define CONFIG_CURRENT_LOOP_RAMP_COUNT 15.0f //15个控制周期 完成ramp给定
  35. #define CONFIG_CURRENT_LOOP_RAMP_STEP_MIN 5.0F//ramp step 不小于step min
  36. #define CONFIG_CRUISE_ENABLE_ACCL 1 //定速巡航可以加速,油门回退,继续定速巡航
  37. /* 限速/速度环等情况下的最大负扭矩,一般给0,不产生拖拽感 */
  38. #define CONFIG_MAX_NEG_TORQUE 0.0F
  39. #define CONFIG_CURRENT_LOOP_DECOUPE //电流环解耦
  40. #define CONFIG_SENSORLESS_MAX_IDC 30
  41. #define CONFIG_SENSORLESS_MAX_TORQUE 100
  42. #define CONFIG_SENSORLESS_MAX_SPEED 4000
  43. #define CONFIG_PHASE_UNBALANCE_PEAK_CNT 3 //计算经过的电周期内的最大值(peak 峰值)
  44. #define CONFIG_PHASE_UNBALANCE_THROLD 4.0F
  45. #define CONFIG_PHASE_UNBALANCE_R 0.1F
  46. #define CONFIG_Volvec_Delay_Comp /* 电压矢量角度补偿 */
  47. #define CONFIG_Volvec_Delay_Comp_Start_Vel 500 // rpm
  48. #define CONFIG_CONTRL_FW_ENABLE 1
  49. #define CONFIG_CONTRL_FW_START_DUTY 0.9F
  50. #define CONFIG_ENABLE_IAB_REC 1 // for phase current/voltage debug
  51. #define CONFIG_MOT_IND_USE_PHASE_SAMPLE 1 //电机参数离线识别使用采集的相电压
  52. #ifdef CONFIG_SPEED_LADRC
  53. #define CONFIG_LADRC_Wo 200.0F
  54. #define CONFIG_LADRC_Wcv 5.0F
  55. #define CONFIG_LADRC_B0 2500.0F
  56. #define CONFIG_LADRC_NOLOAD_Wcv 2.5F
  57. #define CONFIG_LADRC_NOLOAD_B0 3000.0F
  58. #define CONFIG_LADRC_EPM_Wcv 3.0F
  59. #define CONFIG_LADRC_EPMBK_B0 500.0F
  60. #define CONFIG_LADRC_EPM_B0 350.0F
  61. #endif
  62. #ifdef CONFIG_SMO_OBSERVER
  63. #define CONFIG_SMO_MIN_SPEED 1000 //RPM
  64. #define CONFIG_SMO_PLL_BANDWITH (200.0f * 2 * PI) //计算速度的pll
  65. #define CONFIG_SMO_LFP_WC (200.0F * 2* PI)
  66. #define CONFIG_SMO_GAIN_K 100.0f
  67. #define CONFIG_SMO_SIGMOID_MAX 120.0F
  68. #endif
  69. #ifdef CONFIG_LADRC_OBSERVER
  70. #define CONFIG_LADRC_OBSERVER_MIN_SPEED 1000 //RPM
  71. #define CONFIG_LADRC_OBSERVER_MIN_eVEL 400
  72. #define CONFIG_LADRC_OBSERVER_MIN_Wo (200 * 2 * PI)
  73. #define CONFIG_LADRC_OBSERVER_LPF_FREQ (100 * 2 * PI)
  74. #endif
  75. #endif /* _FOC_CONFIG_H__ */