Customer.h 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. #ifndef __CUSTOMER_H_
  2. #define __CUSTOMER_H_
  3. // ------------------------------------------------------------------------------------------------------------------
  4. // 1.电机相关参数: 电阻(Ω) DQ电感(H) 反电动势常数(V/RPM) 转向(CW/CCW) 基准转速(RPM) 极对数
  5. #define RS (6.4)
  6. #define LD (0.080)
  7. #define LQ (LD)
  8. #define Ke (0.0)
  9. #define Psi (float)(Ke * 207.84 / 1000.0 / 2.0 / 1.732 / Pole_Pairs / _2PI )
  10. #define IRMODE (CCW)
  11. #define MOTOR_SPEED_BASE (9000.0)
  12. #define Pole_Pairs (3)
  13. #define ID_Limit I_Value(-Psi/LD/2)
  14. // ------------------------------------------------------------------------------------------------------------------
  15. // 2.硬件相关:载波频率(KHz) 死区(us) 单电阻最小窗口(us) 驱动电平 基准电压(V)
  16. #define PWM_FREQUENCY (5.0)
  17. #define PWM_DEADTIME (5.0)
  18. #define MIN_WIND_TIME (5.9)
  19. #define HW_ADC_VREF (VREF5_0)
  20. #define HW_ADC_REF (5.0)
  21. // 运放配置 运放倍数
  22. #define HW_AMP_MODE (AMP_NOMAL)
  23. #define HW_AMPGAIN (0.5)
  24. // 等效采样电阻
  25. #define HW_RSHUNT (0.04)
  26. // 直流母线分压
  27. #define RV1 (940.0)
  28. #define RV2 (940.0)
  29. #define RV3 (0.3)
  30. // 交流输入分压
  31. #define RL1 (450.0)
  32. #define RL2 (2.0)
  33. #define RL ((RL1 + RL2) / RL2)
  34. #define HW_L_VOLT_MAX (HW_ADC_REF * RL)
  35. // ------------------------------------------------------------------------------------------------------------------
  36. // 3.预充电
  37. // 预充电使能
  38. #define PRE_DRIVER_CHARGE (0)
  39. // 预充电占空比
  40. #define CALIB_DUTY (0.1)
  41. // ------------------------------------------------------------------------------------------------------------------
  42. // 4.预定位
  43. // 预定位电流环KPKI
  44. #define DQKP_Alignment _Q12(2.0)
  45. #define DQKI_Alignment _Q15(0.05)
  46. #define IQ_ALIGN_CURRENT I_Value(2.0) // 预定位电流
  47. // 预定位角度
  48. #define ALIGN_ANGLE_1 _Q15(0.0 / 180.0)
  49. #define ALIGN_ANGLE_2 _Q15(90.0 / 180.0)
  50. // 预定位时间
  51. #define AlignmentRampTime (500.0)
  52. #define AlignmentHoldTime1 (500.0)
  53. #define AlignmentHoldTime2 (500.0)
  54. #define Align_Time (AlignmentRampTime + AlignmentHoldTime1+AlignmentHoldTime2)
  55. // ------------------------------------------------------------------------------------------------------------------
  56. // 5.启动
  57. // 电流环KPKI
  58. #define DQKPStart _Q12(2.5)
  59. #define DQKIStart _Q15(0.01)
  60. #define DQKP _Q12(2.0)
  61. #define DQKI _Q15(0.002)
  62. // 启动电流
  63. #define ID_START_CURRENT I_Value(0.0)
  64. #define IQ_START_CURRENT I_Value(2.0)
  65. // 观测器带宽
  66. #define ATO_BW (100.0)
  67. #define ATO_BW_RUN (130.0)
  68. #define ATO_BW_RUN1 (140.0)
  69. #define ATO_BW_RUN2 (150.0)
  70. #define ATO_BW_RUN3 (160.0)
  71. #define ATO_BW_RUN4 (190.0)
  72. // PLL算法里的反电动势滤波值
  73. #define E_BW1 (80.0)
  74. #define E_BW2 (80.0)
  75. #define E_BW3 (80.0)
  76. #define E_BW4 (80.0)
  77. #define E_BW5 (80.0)
  78. // open 算法启动参数
  79. #define MOTOR_OPEN_ACC _Q15(1.0 / MOTOR_SPEED_BASE) // 强拖启动的增量(每载波周期加一次)
  80. #define MOTOR_OPEN_ACC_MIN _Q15(100.0 / MOTOR_SPEED_BASE) // 强拖启动的初始速度
  81. #define MOTOR_OPEN_ACC_CNT (250.0) // 强拖启动的执行次数(MOTOR_OPEN_ACC_CNT*256)
  82. #define MOTOR_OPEN_ACC_CYCLE (100) // 强拖启动循环拖动的次数
  83. // OMEGA启动参数
  84. #define MOTOR_OMEGA_RAMP_ACC (300.0) // omega启动的增量 12
  85. #define MOTOR_OMEGA_ACC_MIN _Q15(200.0 / MOTOR_SPEED_BASE) // (RPM) omega启动的最小切换转速
  86. #define MOTOR_OMEGA_ACC_END _Q15(400.0 / MOTOR_SPEED_BASE) // (RPM) omega启动的限制转速
  87. #define MOTOR_SPEED_SMOMIN_RPM (400.0) // 滑膜运行最小速度
  88. #define MOTOR_LOOP_RPM _Q15(500.0 / MOTOR_SPEED_BASE) // 闭环切换转速
  89. // ------------------------------------------------------------------------------------------------------------------
  90. // 6.环路相关
  91. #define OUT_LOOP_CONTROL (1) // 外环控制使能
  92. #define LOOP_MODE (SPEED_CONTROL_MODE) // 外环配置
  93. #define CONTROL_MODE (NONE_MODE) // 控制模式
  94. #define LOOP_CYCLE (1) // 速度环调节周期
  95. #define QOUTINC (1) // 电流环控制步进参数
  96. // 速度环输入值步进参数
  97. #define MOTOR_SPEED_INC ((float)_Q15(200.0 / MOTOR_SPEED_BASE) / (1000 / LOOP_CYCLE))
  98. #define MOTOR_SPEED_DEC ((float)_Q15(200.0 / MOTOR_SPEED_BASE) / (1000 / LOOP_CYCLE))
  99. #define MOTOR_STOP_SPEED_DEC ((float)_Q15(800.0 / MOTOR_SPEED_BASE) / (1000 / LOOP_CYCLE))
  100. // 外环KPKI
  101. #define SKP _Q12(0.5)
  102. #define SKI _Q15(0.01)
  103. // 外环输出限幅
  104. #define SOUTMAX I_Value(5.0)
  105. #define SOUTMIN I_Value(0.01)
  106. // 极限速度限制
  107. #define MOTOE_MIN_SPEED _Q15(900.0/ MOTOR_SPEED_BASE)
  108. #define MOTOR_MAX_SPEED _Q15(5400.0/ MOTOR_SPEED_BASE)
  109. #define MOTOR_STOP_SPEED _Q15(1300.0/ MOTOR_SPEED_BASE)
  110. #define MOTOR_STALL_MIN_SPEED _Q15(800.0/ MOTOR_SPEED_BASE)
  111. #define MOTOR_STALL_MAX_SPEED _Q15(7000.0/ MOTOR_SPEED_BASE)
  112. #define TARGET_SPEED_SET _Q15(3000.0/MOTOR_SPEED_BASE) // 测试转速
  113. #define StopBrakeFlag (0)
  114. #define StopWaitTime (2000) // (ms) 刹车等待时间
  115. // ------------------------------------------------------------------------------------------------------------------
  116. // 7.附加功能
  117. // 弱磁控制
  118. #define FiledWeakenCompEnable (0)
  119. #define DcbusK _Q15(0.8)
  120. #define FiledWeakenKp _Q12(0.4)
  121. #define FiledWeakenKi _Q15(0.0001)
  122. #endif