| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- /* -------------------------- (C) COPYRIGHT 2020 Fortiortech ShenZhen ---------------------------*/
- /* File Name : Develop.h
- /* Author : Fortiortech Appliction Team
- /* Version : V1.0
- /* Date : 2020-08-31
- /* Description : This file contains Advanced Applications parameter used for Motor Control.
- /* ----------------------------------------------------------------------------------------------*/
- /* All Rights Reserved
- /* ----------------------------------------------------------------------------------------------*/
- /* -----Define to prevent recursive inclusion----- */
- #ifndef __DEVELOP_H_
- #define __DEVELOP_H_
- /* -----Define to prevent recursive inclusion----- */
- /* -----Q format define----- */
- #define _Q7(A) (int8) ((A) * (128))
- #define _Q8(A) (int16)((A) * (256)) // Q8 format
- #define _Q10(A) (int16)((A) * (1024)) // Q15 format
- #define _Q11(A) (int16)((A) * (2048)) // Q12 format
- #define _Q12(A) (int16)((A) * (4096)) // Q12 format
- #define _Q13(A) (int16)((A) * (8192)) // Q12 format
- #define _Q14(A) (int16)((A) * (16383)) // Q15 format
- #define _Q15(A) (int16)((A) * (32767)) // Q15 format
- #define _2PI (3.1415926 * 2) // 2 PI value
- #define _Q16 (65535.0) // Q16 format value
- /* -----Private define----- */
- #define SystemPowerUpTime (10000) // 上电等待时间,cpu计数时钟
- #define I_ValueX(Curr_Value) ((Curr_Value) * (HW_RSHUNT) * (HW_AMPGAIN) / (HW_ADC_REF))
- #define I_Value(Curr_Value) _Q15(I_ValueX(Curr_Value))
- #define QOUTVALUE I_Value(QOUTCURRENT) //I_Value(10.0)
- /* -----芯片参数值----- */
- /* -----CPU and PWM Parameter----- */
- #define MCU_CLOCK (24.0) // (MHz) 主频
- #define AO_Enable (1) //自适应估算器模式使能
- /* -----硬件板子参数设置值----- */
- /* -----PWM high or low level Mode----- */
- /* -----根据驱动芯片的类型选择,大部分芯片为High_Level----- */
- #define PWM_Level_Mode (UP_H_DOWN_L)
- #define RV ((RV1 + RV2 + RV3) / RV3) // 分压比
- #define HW_BOARD_VOLT_MAX (HW_ADC_REF * RV) // (V) ADC可测得的最大母线电压
- /* -----时间设置值----- */
- #define Calib_Time (1000) // 校正次数,固定1000次,单位:次
- #define Charge_Time (20) // (ms) 预充电时间,单位:ms
- /* -----正常运行时估算算法的参数设置值----- */
- #define OBS_KSLIDE _Q15(0.85) // SMO算法里的滑膜增益值
- #define E_BW_Wind (600.0)//(BASE_FREQ*2) // PLL算法里的反电动势滤波值
- #define E_BW (400.0)//(BASE_FREQ*2) // PLL算法里的反电动势滤波值
- /* -----逆风判断时的估算算法设置值----- */
- #define TailWind_Time (100) // (ms) 顺逆风检测时间
- #define ATO_BW_Wind (120.0)//120.0-PLL 120.0-smo // 逆风判断观测器带宽的滤波值,经典值为8.0-100.0
- #define SPD_BW_Wind (10.0)//10.0-PLL ,10.0-smo // 逆风判断速度带宽的滤波值,经典值为5.0-40.0
- /* -----逆风顺风状态下的KP、KI----- */
- #define DQKP_TailWind _Q12(0.8) //_Q12(1.0)-PLL , _Q12(1.5) -smo
- #define DQKI_TailWind _Q15(0.01) //_Q15(0.08)-PLL ,_Q15(0.2)-smo
- /* -----芯片参数值----- */
- /* -----CPU and PWM Parameter----- */
- #define PWM_CYCLE (1000.0 / PWM_FREQUENCY) // 周期us
- #define SAMP_FREQ (PWM_FREQUENCY * 1000) // 采样频率(HZ)
- #define TPWM_VALUE (1.0 / SAMP_FREQ) // 载波周期(S)
- #define PWM_VALUE_LOAD (uint16)(MCU_CLOCK * 500 / PWM_FREQUENCY) // PWM 定时器重载值
- /* -----初始位置检查参数----- */
- #define PosCheckEnable (0) // 初始位置使能,目前程序中没添加此功能 20220616
- #define AlignEnable (0) // 预定位使能
- /* -----脉冲注入时间长于2ms 或 低于2ms----- */
- #define InjectTime (Short_Inject)
- #define RPD_Time (3) // (ms) 每次RPD的时间
- #define RPD_CurValue (6.5) // (A) RPD过流值
- #define DAC_RPDCurValue _Q7(I_ValueX(RPD_CurValue * 2))
- #define ATT_COEF (0.85) // 无需改动
- #define UDQMAX_Volt_VALUE _Q15(Under_Protect_Voltage/HW_BOARD_VOLT_MAX)
- #define UDQMIN_Volt_VALUE _Q15(Over_Protect_Voltage/HW_BOARD_VOLT_MAX)
- #define UDQ_K ((float)(UDQMAX-UDQMIN)/(float)(UDQMAX_Volt_VALUE-UDQMIN_Volt_VALUE)) //2498
- /* -----过温保护值设置----- */
- #define Tempera_Value(NTC_Value) _Q15((5.0*NTC_Value/(10.0+NTC_Value))/4.5) // 10K上拉电阻时,NTC阻值对应Q15_AD值,单位:KΩ
- /* -----double resistor sample Parameter----- */
- #define DLL_TIME (1.0) // 双电阻最小脉宽设置(us),建议值为死区时间值+0.2us以上
- /* -----three resistor overmodule Parameter----- */
- #define OVERMOD_TIME (2.0) // 三电阻过调制时间(us),建议值2.0
- /* -----deadtime compensation----- */
- #define DT_TIME (0.0) // 死区补偿时间(us),适用于双电阻和三电阻,建议值是1/2死区时间
- /* -----*min pulse----- */
- #define GLI_TIME (0.0) // 桥臂窄脉宽消除(us),建议值0.5
- /* -----deadtime Parameter----- */
- #define PWM_LOAD_DEADTIME (PWM_DEADTIME * MCU_CLOCK) // 死区设置值
- #define PWM_OVERMODULE_TIME (OVERMOD_TIME * MCU_CLOCK / 2) // 过调制时间
- #define PWM_DLOWL_TIME (DLL_TIME * MCU_CLOCK / 2) //下桥臂最小时间
- /* -----single resistor sample Parameter----- */
- #define PWM_TS_LOAD (uint16)(_Q16 / PWM_CYCLE * MIN_WIND_TIME / 16) // 单电阻采样设置值
- #define PWM_DT_LOAD (uint16)(_Q16 / PWM_CYCLE * DT_TIME / 16) // 死区补偿值
- //#define PWM_TGLI_LOAD (uint16)(_Q16 / PWM_CYCLE * (GLI_TIME + PWM_DEADTIME) / 16) // 最小脉冲
- #define PWM_TGLI_LOAD (uint16)(_Q16 / PWM_CYCLE * (GLI_TIME) / 16) // 最小脉冲
- /* -----硬件板子参数设置值----- */
- /* -----hardware current sample Parameter----- */
- /* -----电流基准的电路参数----- */
- #define HW_BOARD_CURR_MAX (HW_ADC_REF / 2 / HW_AMPGAIN / HW_RSHUNT) // 最大采样电流,2.702A
- #define HW_BOARD_CURR_MIN (-HW_BOARD_CURR_MAX) // 最小采样电流,-2.702A
- #define HW_BOARD_CURR_BASE (HW_BOARD_CURR_MAX * 2) // 电流基准//5.4A
- /* -----hardware voltage sample Parameter----- */
- /* -----母线电压采样分压电路参数----- */
- #define HW_BOARD_VOLTAGE_BASE (HW_BOARD_VOLT_MAX / 1.732) // 电压基准
- #define HW_BOARD_VOLTAGE_VC ((RV1 + RV2 + RV3 * VC1) / (RV3 * VC1))
- #define HW_BOARD_VOLTAGE_BASE_Start (HW_ADC_REF * HW_BOARD_VOLTAGE_VC / 1.732) // 电压基准
- /* -----硬件过流保护DAC值----- */
- /*硬件过流保护DAC值*/
- #if (AMP0_VHALF == 1)
- #define DAC_OvercurrentValue ((uint8)_Q8(I_ValueX(OverHardcurrentValue))+0x7F)
- #else
- #define DAC_OvercurrentValue ((uint8)_Q8(I_ValueX(OverHardcurrentValue)))
- #endif
- #define Align_Theta _Q15((float)Align_Angle / 180.0)
- #define BEMF_Theta _Q15((float)0.0 / 180.0)
- #define BASE_FREQ ((MOTOR_SPEED_BASE / 60) * Pole_Pairs) // 基准频率
- #define FG_Value (TIM4_Fre/BASE_FREQ/ FG_K)
- /* -----保护参数值----- */
- #define GetCurrentOffsetValueLow (16383-GetCurrentOffsetValue) // 偏置电压差值低点
- #define GetCurrentOffsetValueHigh (16383+GetCurrentOffsetValue) // 偏置电压差值高点
- /* -----protect value----- */
- #define OVER_PROTECT_VALUE _Q15(Over_Protect_Voltage / HW_BOARD_VOLT_MAX)
- #define UNDER_PROTECT_VALUE _Q15(Under_Protect_Voltage / HW_BOARD_VOLT_MAX)
- #define OVER_RECOVER_VALUE _Q15(Over_Recover_Vlotage / HW_BOARD_VOLT_MAX)
- #define UNDER_RECOVER_VALUE _Q15(Under_Recover_Vlotage / HW_BOARD_VOLT_MAX)
- /* -----motor speed set value----- */
- #define Motor_Open_Ramp_ACC _Q15(MOTOR_OPEN_ACC / MOTOR_SPEED_BASE)
- #define Motor_Open_Ramp_Min _Q15(MOTOR_OPEN_ACC_MIN / MOTOR_SPEED_BASE)
- #define Motor_Omega_Ramp_Min _Q15(MOTOR_OMEGA_ACC_MIN / MOTOR_SPEED_BASE)
- #define Motor_Omega_Ramp_End _Q15(MOTOR_OMEGA_ACC_END / MOTOR_SPEED_BASE)
- #define Motor_Loop_Speed _Q15(MOTOR_LOOP_RPM / MOTOR_SPEED_BASE)
- #define Motor_Max_Speed _Q15(MOTOR_SPEED_MAX_RPM / MOTOR_SPEED_BASE)
- #define Motor_Min_Speed _Q15(MOTOR_SPEED_MIN_RPM / MOTOR_SPEED_BASE)
- #define Motor_Limit_Speed _Q15(MOTOR_SPEED_LIMIT_RPM / MOTOR_SPEED_BASE)
- #define Motor_Stop_Speed _Q15(MOTOR_SPEED_STOP_RPM / MOTOR_SPEED_BASE)
- #define Motor_Stall_Speed _Q15(Stall_DectSpeed / MOTOR_SPEED_BASE)
- #define Motor_Stall_Min_Speed _Q15(MOTOR_SPEED_STAL_MIN_RPM / MOTOR_SPEED_BASE)
- #define Motor_Stall_Max_Speed _Q15(MOTOR_SPEED_STAL_MAX_RPM / MOTOR_SPEED_BASE)
- #define Motor_RD_Speed _Q15(MOTOR_SPEED_RD_RPM / MOTOR_SPEED_BASE)
- #define Motor_RDPT_Speed _Q15(MOTOR_SPEED_RDPT_RPM / MOTOR_SPEED_BASE)
- #define Motor_RDRCV_Speed _Q15(MOTOR_SPEED_RDRCV_RPM / MOTOR_SPEED_BASE)
- #define Motor_Over_Speed _Q15(MOTOR_SPEED_OVER_RPM / MOTOR_SPEED_BASE)
- #define Motor_Over_RecoverSpeed _Q15(MOTOR_SPEED_OVER_RecoverRPM / MOTOR_SPEED_BASE)
- #define SPEED_K ((float)(Motor_Max_Speed-Motor_Min_Speed)/(float)(MAXPWMDuty-MINPWMDuty))
- #define POWER_K ((float)(Motor_Max_Power-Motor_Min_Power)/(float)(MAXPWMDuty-MINPWMDuty))
- /* -----obsever parameter set value----- */
- #define MAX_BEMF_VOLTAGE ((MOTOR_SPEED_BASE*Ke)/(1000.0))
- #define MAX_OMEG_RAD_SEC ((float)(_2PI*BASE_FREQ))
- //#define OBS_K1T _Q15(LD/(LD+RS*TPWM_VALUE))
- //#define OBS_K2T _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(HW_BOARD_VOLTAGE_BASE_Start/HW_BOARD_CURR_BASE))
- //#define OBS_K2T_SMO _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*1.4*(HW_BOARD_VOLTAGE_BASE_Start/HW_BOARD_CURR_BASE))
- //#define OBS_K2T_Actual _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(HW_BOARD_VOLTAGE_BASE/HW_BOARD_CURR_BASE))
- //#define OBS_K3T _Q15((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(MAX_BEMF_VOLTAGE/HW_BOARD_CURR_BASE))
- //#define OBS_K4T _Q15(((LD-LQ)*TPWM_VALUE*MAX_OMEG_RAD_SEC)/(LD+RS*TPWM_VALUE))
- //自适应估算器模式使能
- #if (AO_Enable==1)
- #define OBS_K1T _Q11((1.0*3.0/(125.0*1.0))*(LQ/TPWM_VALUE)*(HW_BOARD_CURR_BASE/HW_BOARD_VOLTAGE_BASE))
- #define OBS_K2T _Q11(0.8*RS*HW_BOARD_CURR_BASE/HW_BOARD_VOLTAGE_BASE)
- //#define OBS_K2T_SMO _Q11(1.0*RS*HW_BOARD_CURR_BASE/HW_BOARD_VOLTAGE_BASE)
- #define OBS_K2T_Actual OBS_K2T
- #define OBS_K3T _Q8(2.5)
- #define OBS_K4T _Q15(((LD-LQ)*TPWM_VALUE*MAX_OMEG_RAD_SEC)/(LD+RS*TPWM_VALUE))
- #else
- #define OBS_K1T _Q15(LD/(LD+RS*TPWM_VALUE))
- #define OBS_K2T _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(HW_BOARD_VOLTAGE_BASE_Start/HW_BOARD_CURR_BASE))
- #define OBS_K2T_SMO _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*1.4*(HW_BOARD_VOLTAGE_BASE_Start/HW_BOARD_CURR_BASE))
- #define OBS_K2T_Actual _Q13((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(HW_BOARD_VOLTAGE_BASE/HW_BOARD_CURR_BASE))
- #define OBS_K3T _Q15((TPWM_VALUE/(LD+RS*TPWM_VALUE))*(MAX_BEMF_VOLTAGE/HW_BOARD_CURR_BASE))
- #define OBS_K4T _Q15(((LD-LQ)*TPWM_VALUE*MAX_OMEG_RAD_SEC)/(LD+RS*TPWM_VALUE))
- #endif
- #define OBSW_KP_GAIN _Q12(2*_2PI*ATT_COEF*ATO_BW/BASE_FREQ)
- #define OBSW_KI_GAIN _Q15(_2PI*ATO_BW*ATO_BW*TPWM_VALUE/BASE_FREQ)
- #define OBSW_KP_GAIN_RUN _Q12(2*_2PI*ATT_COEF*ATO_BW_RUN/BASE_FREQ)
- #define OBSW_KI_GAIN_RUN _Q15(_2PI*ATO_BW_RUN*ATO_BW_RUN*TPWM_VALUE/BASE_FREQ)
- #define OBSW_KP_GAIN_RUN1 _Q12(2*_2PI*ATT_COEF*ATO_BW_RUN1/BASE_FREQ)
- #define OBSW_KI_GAIN_RUN1 _Q15(_2PI*ATO_BW_RUN1*ATO_BW_RUN1*TPWM_VALUE/BASE_FREQ)
- #define OBSW_KP_GAIN_RUN2 _Q12(2*_2PI*ATT_COEF*ATO_BW_RUN2/BASE_FREQ)
- #define OBSW_KI_GAIN_RUN2 _Q15(_2PI*ATO_BW_RUN2*ATO_BW_RUN2*TPWM_VALUE/BASE_FREQ)
- #define OBSW_KP_GAIN_RUN3 _Q12(2*_2PI*ATT_COEF*ATO_BW_RUN3/BASE_FREQ)
- #define OBSW_KI_GAIN_RUN3 _Q15(_2PI*ATO_BW_RUN3*ATO_BW_RUN3*TPWM_VALUE/BASE_FREQ)
- #define OBSW_KP_GAIN_RUN4 _Q12(2*_2PI*ATT_COEF*ATO_BW_RUN4/BASE_FREQ)
- #define OBSW_KI_GAIN_RUN4 _Q15(_2PI*ATO_BW_RUN4*ATO_BW_RUN4*TPWM_VALUE/BASE_FREQ)
- #define OBS_FBASE BASE_FREQ*TPWM_VALUE*32768 // Fbase*Tpwm*32768
- #define OBS_KLPF _Q15(_2PI*BASE_FREQ*TPWM_VALUE) // 2PI*Fbase*Tpwm
- #define SPEED_KLPF _Q15(_2PI*SPD_BW*TPWM_VALUE) // 2PI*SPD_BW*Tpwm
- #define OBS_EA_KS _Q15((2*MOTOR_SPEED_SMOMIN_RPM*_2PI*BASE_FREQ*TPWM_VALUE)/MOTOR_SPEED_BASE) // SMO的最小速度
- #define OBSE_PLLKP_GAIN_WIND _Q11(((2*ATT_COEF*_2PI*E_BW_Wind*LD - RS)*HW_BOARD_CURR_BASE)/HW_BOARD_VOLTAGE_BASE)
- #define OBSE_PLLKI_GAIN_WIND _Q11((_2PI*E_BW_Wind*_2PI*E_BW_Wind*LD*TPWM_VALUE*HW_BOARD_CURR_BASE)/HW_BOARD_VOLTAGE_BASE)
- #define OBSE_PLLKP_GAIN _Q11(((2*ATT_COEF*_2PI*E_BW*LD - RS)*HW_BOARD_CURR_BASE)/HW_BOARD_VOLTAGE_BASE)
- #define OBSE_PLLKI_GAIN _Q11((_2PI*E_BW*_2PI*E_BW*LD*TPWM_VALUE*HW_BOARD_CURR_BASE)/HW_BOARD_VOLTAGE_BASE)
- #define VREF3_0 (1)
- #define VREF4_0 (2)
- #define VREF4_5 (3)
- #define VREF5_0 (4)
- #if (HW_ADC_VREF==VREF5_0)
- #define HW_ADC_REF (5.0) // (V) ADC参考电压
- #elif (HW_ADC_VREF==VREF4_5)
- #define HW_ADC_REF (4.5) // (V) ADC参考电压
- #elif (HW_ADC_VREF==VREF4_0)
- #define HW_ADC_REF (4.0) // (V) ADC参考电压
- #elif (HW_ADC_VREF==VREF3_0)
- #define HW_ADC_REF (3.0) // (V) ADC参考电压
- #endif
- /* -----逆风判断时的估算算法设置值----- */
- #define SPEED_KLPF_WIND _Q15(_2PI*SPD_BW_Wind*TPWM_VALUE) // 2PI*SPD_BW_Wind*Tpwm
- #define OBSW_KP_GAIN_WIND _Q12(2*_2PI*ATT_COEF*ATO_BW_Wind/BASE_FREQ)
- //#define OBSW_KI_GAIN_WIND _Q15(_2PI*0.5*ATO_BW_Wind*ATO_BW_Wind*TPWM_VALUE/BASE_FREQ) //---SMO
- #define OBSW_KI_GAIN_WIND _Q15(_2PI*ATO_BW_Wind*ATO_BW_Wind*TPWM_VALUE/BASE_FREQ) //---PLL
- /* -----motor start speed value----- */
- /* -----open 算法启动参数----- */
- #define MOTOR_OPEN_ACC (200) // 强拖启动的增量(每载波周期加一次)
- #define MOTOR_OPEN_ACC_MIN (0) // 强拖启动的初始速度
- #define MOTOR_OPEN_ACC_CNT (100) // 强拖启动的执行次数(MOTOR_OPEN_ACC_CNT*256)
- /* -----Current Calib:enable or disable----- */
- #define CalibDisable (0) //
- #define CalibEnable (1) //
- #define CalibENDIS (CalibEnable)
- /* -----SVPWM mode----- */
- #define SVPWM_5_Segment (0) // 五段式SVPWM
- #define SVPWM_7_Segment (1) // 七段式SVPWM
- #define SVPMW_Mode (SVPWM_7_Segment)
- /* -----double resistor sample mode----- */
- #define DouRes_1_Cycle (0) // 1 周期采样完 ia, ib
- #define DouRes_2_Cycle (1) // 交替采用ia, ib, 2周期采样完成
- #define DouRes_Sample_Mode (DouRes_1_Cycle)
- /* -----PWM high or low level Mode----- */
- /* -----根据驱动芯片的类型选择,大部分芯片为High_Level----- */
- #define High_Level (0) // 驱动高电平有效
- #define Low_Level (1) // 驱动低电平有效
- #define UP_H_DOWN_L (2) // 上桥臂高电平有效,下桥臂低电平有效
- #define UP_L_DOWN_H (3) // 上桥臂低电平有效,下桥臂高电平有效
- /* -----脉冲注入时间长于2ms 或 低于2ms----- */
- #define Long_Inject (0) // 脉冲注入时间长于2ms,若时间长于4ms,则要修改定时器分频
- #define Short_Inject (1) // 脉冲注入时间低于2ms
- /* -----调速模式----- */
- #define PWMMODE (0) // PWM调速
- #define SREFMODE (1) // 模拟调速
- #define NONEMODE (2) // 直接给定值,不调速
- #define KEYMODE (3) // 按键调速模式
- /* -----IPM测试模式----- */
- #define IPMtest (0) // IPM测试或者MOS测试,MCU输出固定占空比
- #define NormalRun (1) // 正常按电机状态机运行
- /* -----估算器模式选择----- */
- #define SMO (0) // SMO ,滑膜估算
- #define PLL (1) // PLL ,锁相环
- /* -----顺逆风判断设置----- */
- #define NoTailWind (0) // 无逆风顺风判断
- #define RSDMethod (1) // RSD比较器方法
- #define BEMFMethod (2) // BEMF方法
- /* -----开环启动模式选择----- */
- #define Open_Start (0) // 开环强拖启动
- #define Omega_Start (1) // Omega启动
- #define Open_Omega_Start (2) // 先开环启,后Omega启动
- /* -----电流采样模式----- */
- #define Single_Resistor (0) // 单电阻电流采样模式
- #define Double_Resistor (1) // 双电阻电流采样模式
- #define Three_Resistor (2) // 三电阻电流采样模式
- /* -----硬件过流保护----- */
- #define Hardware_FO_Protect (1) // 硬件FO过流保护使能,适用于IPM有FO保护的场合
- #define Hardware_CMP_Protect (2) // 硬件CMP比较过流保护使能,适用于MOS管应用场合
- #define Hardware_FO_CMP_Protect (3) // 硬件CMP比较和FO过流保护都使能
- #define Hardware_Protect_Disable (4) // 硬件过流保护禁止,用于测试
- /* -----硬件过流保护比较值来源----- */
- #define Compare_DAC (0) // DAC设置硬件过流值
- #define Compare_Hardware (1) // 硬件设置硬件过流值
- /* -----外环选择功率环或速度环----- */
- //#define POWER_LOOP_CONTROL (0) //恒功率
- //#define SPEED_LOOP_CONTROL (1) //恒转速
- //#define CURRENT_LOOP_CONTROL (2)
- /* -----外环使能----- */
- #define OUTLoop_Disable (0) // 关闭外环
- #define OUTLoop_Enable (1) // 使能外环
- /* -----正PWMduty or 负PWMduty Choose----- */
- #define PosiPWMDUTY (0) // 正PWMduty
- #define NegaPWMDUTY (1) // 负PWMduty
- /* -----堵转跟启动保护----- */
- #define StartFault (1) //
- #define StallFault (2) //
- #if (PosCheckEnable==1)
- #error "data 20220616,RPD Program has not been added"
- #endif
- #if ((AO_Enable==1) &&(EstimateAlgorithm == PLL))
- #error "AO_Enable must match `EstimateAlgorithm = SMO`"
- #endif
- #endif
|