foc_define_parameter.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**********************************
  2. * 文件名称: foc_define_parameter.h
  3. * 功能描述: FOC算法参数定义文件
  4. * 主要内容:
  5. * 1. 定义电机启动和控制参数
  6. * 2. 定义FOC算法相关参数
  7. * 3. 定义电机参数
  8. **********************************/
  9. #ifndef __FOC_DEFINE_PARAMETER_H_
  10. #define __FOC_DEFINE_PARAMETER_H_
  11. #define MOTOR_STARTUP_CURRENT 1.0f // 电机启动电流 (A)
  12. #define SPEED_LOOP_CLOSE_RAD_S 50.0f // 速度闭环阈值 (单位: rad/s)
  13. #define OPENLOOP_TEST
  14. #define VBUS 24.0f
  15. // 选择FOC类型:霍尔传感器FOC或无传感器FOC
  16. #define HALL_FOC_SELECT // 使用霍尔传感器的FOC模式
  17. // #define SENSORLESS_FOC_SELECT // 使用无传感器的FOC模式
  18. // 电机参数(基于TG5P40电机)
  19. #define RS_PARAMETER 0.445f // 定子电阻 (Ω)
  20. #define LS_PARAMETER 0.00031f // 定子电感 (H)
  21. #define FLUX_PARAMETER 0.007797f // 磁链 (Wb)
  22. // 表贴式d轴和q轴的电流环参数一致
  23. #define CURRENT_KP (float)(2*PI*RS_PARAMETER)
  24. #define CURRENT_KI (float)(2*PI*RS_PARAMETER*RS_PARAMETER/LS_PARAMETER)
  25. #define POLES (4)
  26. #define MAX_RPM (3000)
  27. #define MAX_ELE_RAD (float)(MAX_RPM/60*POLES*2*PI)
  28. #define MAX_ELE_RPS (float) (3000*4.0f)
  29. #define MIN_ELE_RPS (float) (15.0f)
  30. // % TG5P40电机参数
  31. // % MATLAB参数设置
  32. // MOTOR_PNF_param.Value = 4; % 电机极对数
  33. // MOTOR_PN_param.Value = uint8(4); % 电机极数
  34. // MOTOR_RS_param.Value = 0.445; % 定子电阻 (Ω)
  35. // MOTOR_LS_param.Value = 0.00031; % 定子电感 (H)
  36. // MOTOR_KE_param.Value = 5.656; % 反电动势常数 (V/krpm)
  37. // MOTOR_J_param.Value = 0.0000028; % 转动惯量 (kg.m^2)
  38. // MOTOR_F_param.Value = 0.000007; % 摩擦系数 (N.m.s)
  39. // MOTOR_TL_param.Value = 0;%0.001; % 负载转矩 (N.m)
  40. //% MOTOR_FLUX_param.Value = 0.007797; % 磁链 (Wb)
  41. // MOTOR_FLUX_param.Value = MOTOR_KE_param.Value*30.0/sqrt(3.0)/1000.0/MOTOR_PNF_param.Value/pi;
  42. /**
  43. * @brief 磁链计算方法说明
  44. *
  45. * 已知Ke = 4.0 V/krpm,电机极对数p = 4
  46. *
  47. * 计算步骤:
  48. *
  49. * 1. 计算电机机械角速度(1000 rpm 时)
  50. * ωm = 1000 × 2π / 60 = 104.72 rad/s
  51. *
  52. * 2. 计算电机电角速度
  53. * ωe = 4 × 104.72 = 418.88 rad/s
  54. *
  55. * 3. 将Ke从 V/krpm 转换为 V/(rad/s)
  56. * Ke_elec = 4.0 / 418.88 = 0.00955 V/(rad/s)
  57. *
  58. * 4. 根据电磁感应原理(ωe = 1 rad/s时)
  59. * Ke_elec = √(3/2) × Φf
  60. * 其中 √(3/2) = 1.2247
  61. *
  62. * 5. 计算磁链
  63. * Φf = Ke_elec / 1.2247 = 0.00955 / 1.2247 = 0.0078 Wb = 7.8 mWb
  64. *
  65. * 简化公式
  66. * Φf = Ke / (p × 104.72 × 1.2247)
  67. * = Ke / (p × 128.3)
  68. *
  69. * 示例计算:4.0 / (4 × 128.3) = 4.0 / 513.2 = 0.0078 Wb
  70. */
  71. #endif