| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /**
- * @copyright (C) COPYRIGHT 2022 Fortiortech Shenzhen
- * @file Protect.h
- * @author Marcel He
- * @note Last modify author is Marcel He
- * @since 2022-07-01
- * @date 2022-07-14
- * @brief This file contains protection parameter used for Motor Control.
- */
- /* Define to prevent recursive inclusion -------------------------------------------------------- */
- #ifndef __PROTECT_H_
- #define __PROTECT_H_
- #define OC_SW_ProtectEn (1) // 软件过流保护使能: 0,不使能;1,使能
- #define OV_ProtectEn (1) // 过欠压保护使能: 0,不使能;1,使能
- #define LP_ProtectEn (1) // 缺相保护使能: 0,不使能;1,使能
- #define OT_ProtectEn (1) // 过温保护使能: 0,不使能;1,使能
- #define Start_ProtectEn (1)
- #define Stall_ProtectEn (1) // 堵转失速保护使能: 0,不使能;1,使能
- #define GetCurrentOffsetEnable (1) // 偏置电压保护,0,不使能;1,使能
- #define OverSpeedProtectEnable (0) //< 超速保护使能
- #define OverLSensorEnable (0)
- #define OverRSensorEnable (0)
- #define OverUARTEnable (0)
- #define OverPowerEnable (1)
- /* 保护重启参数设置 */
- #define OC_RecoveryTimes (100) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define OC_RecoveryDelayTime (1000) // (ms)重启延迟时间
- #define OV_RecoveryTimes (10) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define OV_RecoveryDelayTime (1000) // (ms)重启延迟时间
- #define LP_RecoveryTimes (3) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define LP_RecoveryDelayTime (3000) // (ms)重启延迟时间
- #define LP_RecoveryDelayTime1 (60000)
- #define OT_RecoveryTimes (20) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define OT_RecoveryDelayTime (60000) // (ms)重启延迟时间
- #define Start_RecoveryTimes (0) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define Stall_RecoveryTimes (255) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define Stall_RecoveryDelayTime (60000*5) // (ms)重启延迟时间
- #define LRS_RecoveryTimes (200) // 重启次数,设定值<255 达到重启次数后不再重启,设定值>=255,一直重启
- #define LRS_RecoveryDelayTime (1000) // (ms)重启延迟时间
- /* HW current protection */
- #define HW_OC_FO_MODE (1) ///< 硬件FO过流保护使能,适用于IPM有FO保护的场合
- #define HW_OC_CMP_MODE (2) ///< 硬件CMP比较过流保护使能,适用于MOS管应用场合
- #define HW_OC_FOCMP_MODE (3) ///< 硬件CMP比较和FO过流保护都使能
- #define HW_OC_DISABLE (4) ///< 硬件过流保护禁止,用于测试
- #define HW_OC_MODE (HW_OC_CMP_MODE) ///< 硬件过流保护实现方式
- /* 硬件过流保护比较值来源 */
- #define COMPARE_DAC_MODE (0) ///< DAC设置硬件过流值
- #define COMPARE_HW_MODE (1) ///< 硬件设置硬件过流值
- #define COMPARE_MODE (COMPARE_DAC_MODE) ///< 硬件过流值的来源
- #define HWOCValue (40.0) ///< (A) DAC模式下的硬件过流值//18.0
- /* 软件过流保护参数设置 */
- #define SW_OC_CurrentVal I_Value(35.0) ///< (A)软件过流值
- #define SW_OC_DectTime (100) ///< (ms)软件过流检测时间
- /* -----偏置电压保护----- */
- #define GetCurrentOffsetValue _Q14(0.05) // (单位:100%)偏置电压保护误差范围,超过该范围保护
- /* 直流母线电压保护参数设置值 */
- #define OVER_VOLTAGE_DECTTIME (100) ///< (ms) 直流母线电压过压检测保持时间
- #define UNDER_VOLTAGE_DECTTIME (100) ///< (ms) 直流母线电压欠压检测保持时间
- #define OVER_VOLTAGE_PROTECT UDC_Value(30.0) ///< (V) 直流母线电压过压保护值
- #define UNDER_VOLTAGE_PROTECT UDC_Value(9.6) ///< (V) 直流母线电压欠压保护值
- #define OVER_VOLTAGE_RECOVER UDC_Value(28.0) ///< (V) 直流母线电压过压保护恢复值
- #define UNDER_VOLTAGE_RECOVER UDC_Value(10.6) ///< (V) 直流母线电压欠压保护恢复值
- /* 启动保护参数设置值 */
- #define StartProtectRestartTimes (10) // 启动保护重启次数,单位:次
- #define StartRecoverDelay1 (30)
- #define StartRecoverDelay2 (12000)//12000
- #define StartProtect1EsValue (5500)
- #define StartProtect2EsValue (2500)//500
- /* 堵转保护参数设置值 */
- #define STALL_SPEED_MAX S_Value(4500) //150000 can enter the water shortage protection
- #define STALL_SPEED_MIN S_Value(2200)
- #define EsThresholdValueL (2600.0)
- #define EsThresholdValueH (2900.0)
- #define EsThresholdSpeed S_Value(2500) ///< (RPM) 电机转速
- /* 缺相保护参数设置值 */
- #define LP_NoLoadCurrentValue I_Value(0.3) ///< (A) 相电流峰值小于该电流值则不进行缺相判断
- #define LP_DectDealyTIME (500) ///< (ms) 启动延迟检测时间,用于屏蔽启动阶段
- #define LP_DectCycleTIME (10) ///< (ms) 峰值检测周期时间,需满足覆盖至少一个完整电周期(50)
- /* -----NTC过温保护----- */
- #define TemperatureProtectTime (60000) // (ms)温度保护检测时间
- #define TempeValue(res) (short)(_Q15((5*(1000.0/(res+1000.0)))/HW_ADC_REF)) // 温度保护AD值换算
- #define OVER_Temperature TempeValue(1014) // 过温保护值100℃ 100度(1014)
- //#define UNDER_Temperature (800.0) // 过温保护恢复阈值,根据NTC曲线设定,10K上拉电阻,70℃
- #define OvertempRec_Value TempeValue(1878)
- #define OvertempLimit_Value TempeValue(1369)
- /* -----堵入风口超速保护----- */
- #define MOTOR_SPEED_OVER_RPM (70000) ///< (RPM) 超速保护速度
- #define OVER_SpeedDetectTime (1400) ///< (ms) 超速保护检测时间
- /* -----堵入风口限速功能----- */
- #define OverSpeedLimitEnable (1) ///< 限速功能,0,不使能,1使能
- #define MOTOR_SPEED_LIMIT_RPM (8000.0) ///< (RPM) 限速保护最大速度
- #define MOTOR_SPEED_LIMIT0_RPM (700.0) ///< (RPM) For Lack water protection
- /* 故障显示 */
- #define LED_ONTime (100)
- #define LED_OFFTime (233)
- #define LED_ONOFFTime (LED_ONTime + LED_OFFTime)
- #define LED_DelayTime (200)
- #define LED_IntervalTime (1000)
- #endif
|