1
0

Protect.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /**
  2. * @copyright (C) COPYRIGHT 2022 Fortiortech Shenzhen
  3. * @file Protect.h
  4. * @author Marcel He
  5. * @note Last modify author is Marcel He
  6. * @since 2022-07-01
  7. * @date 2022-07-14
  8. * @brief This file contains protection parameter used for Motor Control.
  9. */
  10. /* Define to prevent recursive inclusion -------------------------------------------------------- */
  11. #ifndef __PROTECT_H_
  12. #define __PROTECT_H_
  13. #define OC_SW_ProtectEn (1) // 软件过流保护使能: 0,不使能;1,使能
  14. #define OV_ProtectEn (1) // 过欠压保护使能: 0,不使能;1,使能
  15. #define LP_ProtectEn (1) // 缺相保护使能: 0,不使能;1,使能
  16. #define OT_ProtectEn (1) // 过温保护使能: 0,不使能;1,使能
  17. #define Start_ProtectEn (1)
  18. #define Stall_ProtectEn (1) // 堵转失速保护使能: 0,不使能;1,使能
  19. #define GetCurrentOffsetEnable (1) // 偏置电压保护,0,不使能;1,使能
  20. #define OverSpeedProtectEnable (0) //< 超速保护使能
  21. #define OverLSensorEnable (0)
  22. #define OverRSensorEnable (0)
  23. #define OverUARTEnable (0)
  24. #define OverPowerEnable (1)
  25. /* 保护重启参数设置 */
  26. #define OC_RecoveryTimes (100) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  27. #define OC_RecoveryDelayTime (1000) // (ms)重启延迟时间
  28. #define OV_RecoveryTimes (10) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  29. #define OV_RecoveryDelayTime (1000) // (ms)重启延迟时间
  30. #define LP_RecoveryTimes (3) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  31. #define LP_RecoveryDelayTime (3000) // (ms)重启延迟时间
  32. #define LP_RecoveryDelayTime1 (60000)
  33. #define OT_RecoveryTimes (20) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  34. #define OT_RecoveryDelayTime (60000) // (ms)重启延迟时间
  35. #define Start_RecoveryTimes (0) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  36. #define Stall_RecoveryTimes (255) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  37. #define Stall_RecoveryDelayTime (60000*5) // (ms)重启延迟时间
  38. #define LRS_RecoveryTimes (200) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
  39. #define LRS_RecoveryDelayTime (1000) // (ms)重启延迟时间
  40. /* HW current protection */
  41. #define HW_OC_FO_MODE (1) ///< 硬件FO过流保护使能,适用于IPM有FO保护的场合
  42. #define HW_OC_CMP_MODE (2) ///< 硬件CMP比较过流保护使能,适用于MOS管应用场合
  43. #define HW_OC_FOCMP_MODE (3) ///< 硬件CMP比较和FO过流保护都使能
  44. #define HW_OC_DISABLE (4) ///< 硬件过流保护禁止,用于测试
  45. #define HW_OC_MODE (HW_OC_CMP_MODE) ///< 硬件过流保护实现方式
  46. /* 硬件过流保护比较值来源 */
  47. #define COMPARE_DAC_MODE (0) ///< DAC设置硬件过流值
  48. #define COMPARE_HW_MODE (1) ///< 硬件设置硬件过流值
  49. #define COMPARE_MODE (COMPARE_DAC_MODE) ///< 硬件过流值的来源
  50. #define HWOCValue (40.0) ///< (A) DAC模式下的硬件过流值//18.0
  51. /* 软件过流保护参数设置 */
  52. #define SW_OC_CurrentVal I_Value(35.0) ///< (A)软件过流值
  53. #define SW_OC_DectTime (100) ///< (ms)软件过流检测时间
  54. /* -----偏置电压保护----- */
  55. #define GetCurrentOffsetValue _Q14(0.05) // (单位:100%)偏置电压保护误差范围,超过该范围保护
  56. /* 直流母线电压保护参数设置值 */
  57. #define OVER_VOLTAGE_DECTTIME (100) ///< (ms) 直流母线电压过压检测保持时间
  58. #define UNDER_VOLTAGE_DECTTIME (100) ///< (ms) 直流母线电压欠压检测保持时间
  59. #define OVER_VOLTAGE_PROTECT UDC_Value(30.0) ///< (V) 直流母线电压过压保护值
  60. #define UNDER_VOLTAGE_PROTECT UDC_Value(9.6) ///< (V) 直流母线电压欠压保护值
  61. #define OVER_VOLTAGE_RECOVER UDC_Value(28.0) ///< (V) 直流母线电压过压保护恢复值
  62. #define UNDER_VOLTAGE_RECOVER UDC_Value(10.6) ///< (V) 直流母线电压欠压保护恢复值
  63. /* 启动保护参数设置值 */
  64. #define StartProtectRestartTimes (10) // 启动保护重启次数,单位:次
  65. #define StartRecoverDelay1 (30)
  66. #define StartRecoverDelay2 (12000)//12000
  67. #define StartProtect1EsValue (5500)
  68. #define StartProtect2EsValue (2500)//500
  69. /* 堵转保护参数设置值 */
  70. #define STALL_SPEED_MAX S_Value(4500) //150000 can enter the water shortage protection
  71. #define STALL_SPEED_MIN S_Value(2200)
  72. #define EsThresholdValueL (2600.0)
  73. #define EsThresholdValueH (2900.0)
  74. #define EsThresholdSpeed S_Value(2500) ///< (RPM) 电机转速
  75. /* 缺相保护参数设置值 */
  76. #define LP_NoLoadCurrentValue I_Value(0.3) ///< (A) 相电流峰值小于该电流值则不进行缺相判断
  77. #define LP_DectDealyTIME (500) ///< (ms) 启动延迟检测时间,用于屏蔽启动阶段
  78. #define LP_DectCycleTIME (10) ///< (ms) 峰值检测周期时间,需满足覆盖至少一个完整电周期(50)
  79. /* -----NTC过温保护----- */
  80. #define TemperatureProtectTime (60000) // (ms)温度保护检测时间
  81. #define TempeValue(res) (short)(_Q15((5*(1000.0/(res+1000.0)))/HW_ADC_REF)) // 温度保护AD值换算
  82. #define OVER_Temperature TempeValue(1014) // 过温保护值100℃ 100度(1014)
  83. //#define UNDER_Temperature (800.0) // 过温保护恢复阈值,根据NTC曲线设定,10K上拉电阻,70℃
  84. #define OvertempRec_Value TempeValue(1878)
  85. #define OvertempLimit_Value TempeValue(1369)
  86. /* -----堵入风口超速保护----- */
  87. #define MOTOR_SPEED_OVER_RPM (70000) ///< (RPM) 超速保护速度
  88. #define OVER_SpeedDetectTime (1400) ///< (ms) 超速保护检测时间
  89. /* -----堵入风口限速功能----- */
  90. #define OverSpeedLimitEnable (1) ///< 限速功能,0,不使能,1使能
  91. #define MOTOR_SPEED_LIMIT_RPM (8000.0) ///< (RPM) 限速保护最大速度
  92. #define MOTOR_SPEED_LIMIT0_RPM (700.0) ///< (RPM) For Lack water protection
  93. /* 故障显示 */
  94. #define LED_ONTime (100)
  95. #define LED_OFFTime (233)
  96. #define LED_ONOFFTime (LED_ONTime + LED_OFFTime)
  97. #define LED_DelayTime (200)
  98. #define LED_IntervalTime (1000)
  99. #endif