|
@@ -42,27 +42,27 @@ Update Time
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Motor Number Selection
|
|
Motor Number Selection
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define MOTOR_WELLING_CITY_36V 0x20
|
|
|
|
-#define MOTOR_WELLING_MTB_36V 0x21
|
|
|
|
-#define MOTOR_WELLING_CITY_48V 0x30
|
|
|
|
-#define MOTOR_WELLING_MTB_48V 0x31
|
|
|
|
|
|
+#define MOTOR_WELLING_CITY_36V 0x20
|
|
|
|
+#define MOTOR_WELLING_MTB_36V 0x21
|
|
|
|
+#define MOTOR_WELLING_CITY_48V 0x30
|
|
|
|
+#define MOTOR_WELLING_MTB_48V 0x31
|
|
|
|
|
|
-#define MOTOR_ID_SEL MOTOR_WELLING_MTB_36V
|
|
|
|
-#define GEARSENSOR_ENABLE 1 //0-Uart,1-GearSensor
|
|
|
|
|
|
+#define MOTOR_ID_SEL MOTOR_WELLING_MTB_36V
|
|
|
|
+#define GEARSENSOR_ENABLE 1 // 0-Uart,1-GearSensor
|
|
|
|
|
|
-//#define TEST //only use for testing
|
|
|
|
|
|
+// #define TEST //only use for testing
|
|
|
|
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
ADC Maximum Value
|
|
ADC Maximum Value
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
#if (MOTOR_ID_SEL == MOTOR_WELLING_MTB_36V || MOTOR_ID_SEL == MOTOR_WELLING_CITY_36V)
|
|
#if (MOTOR_ID_SEL == MOTOR_WELLING_MTB_36V || MOTOR_ID_SEL == MOTOR_WELLING_CITY_36V)
|
|
-#define ADC_IPHASE_CUR_MAX_AP 15600
|
|
|
|
-#define ADC_IPHASE_CUR_OVER_K 780 // SWORD最大电流/采样最大电流=120A/156A=0.769=787(Q10)
|
|
|
|
|
|
+#define ADC_IPHASE_CUR_MAX_AP 15600
|
|
|
|
+#define ADC_IPHASE_CUR_OVER_K 780 // SWORD最大电流/采样最大电流=120A/156A=0.769=787(Q10)
|
|
#else
|
|
#else
|
|
-#define ADC_IPHASE_CUR_MAX_AP 10355
|
|
|
|
-#define ADC_IPHASE_CUR_OVER_K 1024
|
|
|
|
|
|
+#define ADC_IPHASE_CUR_MAX_AP 10355
|
|
|
|
+#define ADC_IPHASE_CUR_OVER_K 1024
|
|
#endif
|
|
#endif
|
|
-
|
|
|
|
|
|
+
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Motor Parameters
|
|
Motor Parameters
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
@@ -70,13 +70,13 @@ Update Time
|
|
#define M_POLE_PAIRS 7 // unit:Null,Pole pairs
|
|
#define M_POLE_PAIRS 7 // unit:Null,Pole pairs
|
|
#define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
|
|
#define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
|
|
#define M_MATERIAL Al // unit:Null
|
|
#define M_MATERIAL Al // unit:Null
|
|
-#define M_LD_NOLOAD_MH 11000 // unit: 0.01uH, D axis inductance
|
|
|
|
|
|
+#define M_LD_NOLOAD_MH 11000 // unit: 0.01uH, D axis inductance
|
|
#define M_LQ_NOLOAD_MH 11500 // unit: 0.01uH, Q axis inductance
|
|
#define M_LQ_NOLOAD_MH 11500 // unit: 0.01uH, Q axis inductance
|
|
#define M_LD_TURN1_ID_AP 5000 // unit: 0.01A,
|
|
#define M_LD_TURN1_ID_AP 5000 // unit: 0.01A,
|
|
-#define M_LD_TURN1_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
|
|
+#define M_LD_TURN1_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
#define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
|
|
#define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
|
|
-#define M_LD_TURN2_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
-#define M_LD_MIN_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
|
|
+#define M_LD_TURN2_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
+#define M_LD_MIN_MH 11000 // unit: 0.01uH,D axis inductance
|
|
#define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
|
|
#define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
|
|
#define M_LQ_TURN1_LQ_MH 11500 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_TURN1_LQ_MH 11500 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
|
|
#define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
|
|
@@ -99,13 +99,13 @@ Update Time
|
|
#define M_POLE_PAIRS 7 // unit:Null,Pole pairs
|
|
#define M_POLE_PAIRS 7 // unit:Null,Pole pairs
|
|
#define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
|
|
#define M_RS_OHM 170 // unit: 0.1mOhm, Phase resistance
|
|
#define M_MATERIAL Al // unit:Null
|
|
#define M_MATERIAL Al // unit:Null
|
|
-#define M_LD_NOLOAD_MH 11000 // unit: 0.01uH, D axis inductance
|
|
|
|
|
|
+#define M_LD_NOLOAD_MH 11000 // unit: 0.01uH, D axis inductance
|
|
#define M_LQ_NOLOAD_MH 11500 // unit: 0.01uH, Q axis inductance
|
|
#define M_LQ_NOLOAD_MH 11500 // unit: 0.01uH, Q axis inductance
|
|
#define M_LD_TURN1_ID_AP 5000 // unit: 0.01A,
|
|
#define M_LD_TURN1_ID_AP 5000 // unit: 0.01A,
|
|
-#define M_LD_TURN1_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
|
|
+#define M_LD_TURN1_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
#define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
|
|
#define M_LD_TURN2_ID_AP 700 // unit: 0.01A,
|
|
-#define M_LD_TURN2_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
-#define M_LD_MIN_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
|
|
+#define M_LD_TURN2_LD_MH 11000 // unit: 0.01uH,D axis inductance
|
|
|
|
+#define M_LD_MIN_MH 11000 // unit: 0.01uH,D axis inductance
|
|
#define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
|
|
#define M_LQ_TURN1_IQ_AP 200 // unit: 0.01A,
|
|
#define M_LQ_TURN1_LQ_MH 11500 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_TURN1_LQ_MH 11500 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
|
|
#define M_LQ_TURN2_IQ_AP 700 // unit: 0.01A,
|
|
@@ -142,7 +142,7 @@ Update Time
|
|
#define M_LQ_MIN_MH 10200 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_MIN_MH 10200 // unit: 0.01uH,Q axis inductance
|
|
#define M_JD 2500 // unit: 10-7Kg*m2, Rotational inertia
|
|
#define M_JD 2500 // unit: 10-7Kg*m2, Rotational inertia
|
|
#define M_MAGNETIC_MATERIAL Ferrite // unit:Null
|
|
#define M_MAGNETIC_MATERIAL Ferrite // unit:Null
|
|
-#define M_FLUX_WB 4800//5056 // unit: 0.001mWb, Flux linkage
|
|
|
|
|
|
+#define M_FLUX_WB 4800 // 5056 // unit: 0.001mWb, Flux linkage
|
|
#define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
|
|
#define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
|
|
#define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
|
|
#define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
|
|
#define M_IS_PEAK_MAX_AP 5500 // unit: 0.01A, Max phase current(below base speed)
|
|
#define M_IS_PEAK_MAX_AP 5500 // unit: 0.01A, Max phase current(below base speed)
|
|
@@ -171,7 +171,7 @@ Update Time
|
|
#define M_LQ_MIN_MH 10200 // unit: 0.01uH,Q axis inductance
|
|
#define M_LQ_MIN_MH 10200 // unit: 0.01uH,Q axis inductance
|
|
#define M_JD 2500 // unit: 10-7Kg*m2, Rotational inertia
|
|
#define M_JD 2500 // unit: 10-7Kg*m2, Rotational inertia
|
|
#define M_MAGNETIC_MATERIAL Ferrite // unit:Null
|
|
#define M_MAGNETIC_MATERIAL Ferrite // unit:Null
|
|
-#define M_FLUX_WB 4800//5056 // unit: 0.001mWb, Flux linkage
|
|
|
|
|
|
+#define M_FLUX_WB 4800 // 5056 // unit: 0.001mWb, Flux linkage
|
|
#define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
|
|
#define M_ID_MAX_AP 0 //-25 // unit: 0.01A, Max d axis current
|
|
#define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
|
|
#define M_ID_MIN_AP -300 // unit: 0.01A, Min d axis current
|
|
#define M_IS_PEAK_MAX_AP 5500 // unit: 0.01A, Max phase current(below base speed)
|
|
#define M_IS_PEAK_MAX_AP 5500 // unit: 0.01A, Max phase current(below base speed)
|
|
@@ -225,12 +225,12 @@ Update Time
|
|
|
|
|
|
#elif ((MOTOR_ID_SEL == MOTOR_WELLING_CITY_48V) || (MOTOR_ID_SEL == MOTOR_WELLING_MTB_48V))
|
|
#elif ((MOTOR_ID_SEL == MOTOR_WELLING_CITY_48V) || (MOTOR_ID_SEL == MOTOR_WELLING_MTB_48V))
|
|
/* Over voltage */
|
|
/* Over voltage */
|
|
-#define ALM_OVR_VLT_LVL1_VAL 585 // unit: 0.1V, Threshold value level1
|
|
|
|
-#define ALM_OVR_VLT_LVL1_TM 2 // unit: s, Time of duration level1(TBS)
|
|
|
|
-#define ALM_OVR_VLT_LVL2_VAL 598 // unit: 0.1V, Threshold value level2
|
|
|
|
-#define ALM_OVR_VLT_LVL2_TM 100 // unit: ms, Time of duration level2(TBS)
|
|
|
|
-#define ALM_OVR_VLT_LVL3_VAL 611 // unit: 0.1V, Threshold value level3
|
|
|
|
-#define ALM_OVR_VLT_LVL3_TM 5 // unit: ms, Time of duration level3(TBS)
|
|
|
|
|
|
+#define ALM_OVR_VLT_LVL1_VAL 585 // unit: 0.1V, Threshold value level1
|
|
|
|
+#define ALM_OVR_VLT_LVL1_TM 2 // unit: s, Time of duration level1(TBS)
|
|
|
|
+#define ALM_OVR_VLT_LVL2_VAL 598 // unit: 0.1V, Threshold value level2
|
|
|
|
+#define ALM_OVR_VLT_LVL2_TM 100 // unit: ms, Time of duration level2(TBS)
|
|
|
|
+#define ALM_OVR_VLT_LVL3_VAL 611 // unit: 0.1V, Threshold value level3
|
|
|
|
+#define ALM_OVR_VLT_LVL3_TM 5 // unit: ms, Time of duration level3(TBS)
|
|
/* Under voltage */
|
|
/* Under voltage */
|
|
#define ALM_UNDR_VLT_LVL1_VAL 390 // unit: 0.1V, Threshold value level1
|
|
#define ALM_UNDR_VLT_LVL1_VAL 390 // unit: 0.1V, Threshold value level1
|
|
#define ALM_UNDR_VLT_LVL1_TM 2 // unit: s, Time of duration level1(TBS)
|
|
#define ALM_UNDR_VLT_LVL1_TM 2 // unit: s, Time of duration level1(TBS)
|
|
@@ -246,9 +246,8 @@ Update Time
|
|
#define ALM_ADC_DETE_LOW_VAL 155 // unit: 0.01V, ADC offset Voltage min
|
|
#define ALM_ADC_DETE_LOW_VAL 155 // unit: 0.01V, ADC offset Voltage min
|
|
#define ALM_ADC_DETE_HIG_VAL 175 // unit: 0.01V, ADC offset Voltage max
|
|
#define ALM_ADC_DETE_HIG_VAL 175 // unit: 0.01V, ADC offset Voltage max
|
|
/* IPM over heat */
|
|
/* IPM over heat */
|
|
-#define ALM_IPM_OVR_HEAT_VAL 105//50 //105 // unit: Ce, Threshold value
|
|
|
|
-#define ALM_IPM_OVR_TM 2 // unit: s, Time of duration(TBS)
|
|
|
|
-#define PWRLIM_START_THRESHOLD_TEMP 85//40 //80 // Q0,Ce
|
|
|
|
|
|
+#define ALM_IPM_OVR_HEAT_VAL 105 // 50 //105 // unit: Ce, Threshold value
|
|
|
|
+#define ALM_IPM_OVR_TM 2 // unit: s, Time of duration(TBS)
|
|
|
|
|
|
/* Stop time of three phase short force */
|
|
/* Stop time of three phase short force */
|
|
#define ALM_THR_PHS_SHRT_FRC_TM 200 // unit: ms, Time of duration(TBC)
|
|
#define ALM_THR_PHS_SHRT_FRC_TM 200 // unit: ms, Time of duration(TBC)
|
|
@@ -266,40 +265,40 @@ Update Time
|
|
/* Recover time of IPM OC */
|
|
/* Recover time of IPM OC */
|
|
#define ALM_IPM_OC_REC_TM 200 // unit: ms, Time of duration(TBC)
|
|
#define ALM_IPM_OC_REC_TM 200 // unit: ms, Time of duration(TBC)
|
|
/* Recover time & value of over voltage */
|
|
/* Recover time & value of over voltage */
|
|
-#define ALM_OVR_VLT_REC_VAL (ALM_OVR_VLT_LVL1_VAL - 30) // unit: 0.1V
|
|
|
|
-#define ALM_OVR_VLT_REC_TM 100 // unit: ms, Time of duration(TBC)
|
|
|
|
-#define ALM_OVR_VLT_REC_TM1 150 // unit: ms, Time of duration(TBC)
|
|
|
|
|
|
+#define ALM_OVR_VLT_REC_VAL (ALM_OVR_VLT_LVL1_VAL - 30) // unit: 0.1V
|
|
|
|
+#define ALM_OVR_VLT_REC_TM 100 // unit: ms, Time of duration(TBC)
|
|
|
|
+#define ALM_OVR_VLT_REC_TM1 150 // unit: ms, Time of duration(TBC)
|
|
/* Recover time & value of under voltage */
|
|
/* Recover time & value of under voltage */
|
|
#define ALM_UNDR_VLT_REC_VAL (ALM_UNDR_VLT_LVL1_VAL + 30) // unit: 0.1V
|
|
#define ALM_UNDR_VLT_REC_VAL (ALM_UNDR_VLT_LVL1_VAL + 30) // unit: 0.1V
|
|
-#define ALM_UNDR_VLT_REC_TM 200 // unit: ms, Time of duration(TBC)
|
|
|
|
-#define ALM_UNDR_VLT_REC_TM1 400 // unit: ms, Time of duration(TBC)
|
|
|
|
|
|
+#define ALM_UNDR_VLT_REC_TM 200 // unit: ms, Time of duration(TBC)
|
|
|
|
+#define ALM_UNDR_VLT_REC_TM1 400 // unit: ms, Time of duration(TBC)
|
|
/* Recover time & value of IPM over heat */
|
|
/* Recover time & value of IPM over heat */
|
|
#define ALM_IPM_OVR_HEAT_REC_VAL 90 // unit: Ce, Threshold value
|
|
#define ALM_IPM_OVR_HEAT_REC_VAL 90 // unit: Ce, Threshold value
|
|
#define ALM_IPM_OVR_REC_TM 60 // unit: s, Time of duration(TBC)
|
|
#define ALM_IPM_OVR_REC_TM 60 // unit: s, Time of duration(TBC)
|
|
#define ALM_IPM_OVR_REC_TM1 120 // unit: s, Time of duration(TBC)
|
|
#define ALM_IPM_OVR_REC_TM1 120 // unit: s, Time of duration(TBC)
|
|
|
|
|
|
/* Ebike sensor fault detect*/
|
|
/* Ebike sensor fault detect*/
|
|
-#define ALM_MOTORSPD_MIN_RPM 50 //unit: rpm
|
|
|
|
-#define ALM_BIKESPD_FLT_TS 10 //unit: s
|
|
|
|
-#define ALM_CADENCE_FLT_TS 10 //unit: s
|
|
|
|
-#define ALM_TORQ_MAX_VOL 30 //unit: 0.1V
|
|
|
|
-#define ALM_TORQ_MIN_VOL 1 //unit: 0.1V
|
|
|
|
-#define ALM_TORQ_FLT_TS 1 //unit: s
|
|
|
|
-#define ALM_THROTTLE_MAX_VOL 30 //unit: 0.1V
|
|
|
|
-#define ALM_THROTTLE_MIN_VOL 1 //unit: 0.1V
|
|
|
|
-#define ALM_THROTTLE_FLT_TS 1 //unit: s
|
|
|
|
-#define ALM_NTC_MAX_VOL 32 //unit: 0.1V
|
|
|
|
-#define ALM_NTC_MIN_VOL 3 //unit: 0.1V
|
|
|
|
-#define ALM_MOTORNTC_FLT_TS 1 //unit: s
|
|
|
|
-#define ALM_PCBNTC_FLT_TS 1 //unit: s
|
|
|
|
|
|
+#define ALM_MOTORSPD_MIN_RPM 50 // unit: rpm
|
|
|
|
+#define ALM_BIKESPD_FLT_TS 10 // unit: s
|
|
|
|
+#define ALM_CADENCE_FLT_TS 10 // unit: s
|
|
|
|
+#define ALM_TORQ_MAX_VOL 30 // unit: 0.1V
|
|
|
|
+#define ALM_TORQ_MIN_VOL 1 // unit: 0.1V
|
|
|
|
+#define ALM_TORQ_FLT_TS 1 // unit: s
|
|
|
|
+#define ALM_THROTTLE_MAX_VOL 30 // unit: 0.1V
|
|
|
|
+#define ALM_THROTTLE_MIN_VOL 1 // unit: 0.1V
|
|
|
|
+#define ALM_THROTTLE_FLT_TS 1 // unit: s
|
|
|
|
+#define ALM_NTC_MAX_VOL 32 // unit: 0.1V
|
|
|
|
+#define ALM_NTC_MIN_VOL 3 // unit: 0.1V
|
|
|
|
+#define ALM_MOTORNTC_FLT_TS 1 // unit: s
|
|
|
|
+#define ALM_PCBNTC_FLT_TS 1 // unit: s
|
|
/* Ebike sensor fault recover*/
|
|
/* Ebike sensor fault recover*/
|
|
-#define ALM_BIKE_REC_ALL_TM 1000 //unit: ms
|
|
|
|
-#define ALM_BIKESPD_REC_TM 200 //unit: ms
|
|
|
|
-#define ALM_CADENCE_REC_TM 200 //unit: ms
|
|
|
|
-#define ALM_TORQ_REC_TM 200 //unit: ms
|
|
|
|
-#define ALM_THROTTLE_REC_TM 200 //unit: ms
|
|
|
|
-#define ALM_MOTORNTC_REC_TM 200 //unit: ms
|
|
|
|
-#define ALM_PCBNTC_REC_TM 200 //unit: ms
|
|
|
|
|
|
+#define ALM_BIKE_REC_ALL_TM 1000 // unit: ms
|
|
|
|
+#define ALM_BIKESPD_REC_TM 200 // unit: ms
|
|
|
|
+#define ALM_CADENCE_REC_TM 200 // unit: ms
|
|
|
|
+#define ALM_TORQ_REC_TM 200 // unit: ms
|
|
|
|
+#define ALM_THROTTLE_REC_TM 200 // unit: ms
|
|
|
|
+#define ALM_MOTORNTC_REC_TM 200 // unit: ms
|
|
|
|
+#define ALM_PCBNTC_REC_TM 200 // unit: ms
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Motor start
|
|
Motor start
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
@@ -310,15 +309,15 @@ Update Time
|
|
#define INITPOS_ALIGN 0 // Motor start with three stage
|
|
#define INITPOS_ALIGN 0 // Motor start with three stage
|
|
#define INITPOS_MODE INITPOS_ALIGN // Motor initposdet mode
|
|
#define INITPOS_MODE INITPOS_ALIGN // Motor initposdet mode
|
|
/* Park time & current */
|
|
/* Park time & current */
|
|
-#define ALIGN_CUR_AP 1000 // unit: 0.01A, Park current value
|
|
|
|
|
|
+#define ALIGN_CUR_AP 1000 // unit: 0.01A, Park current value
|
|
#define ALIGN_RAMP_TM_MS 500 // unit: ms, Time of current ramp
|
|
#define ALIGN_RAMP_TM_MS 500 // unit: ms, Time of current ramp
|
|
#define ALIGN_HOLD_TM_MS 2000 // unit: ms, Time of current hold
|
|
#define ALIGN_HOLD_TM_MS 2000 // unit: ms, Time of current hold
|
|
#define ALIGN_ANG_INIT 0 // unit: deg, Park angle init, can not be 90deg
|
|
#define ALIGN_ANG_INIT 0 // unit: deg, Park angle init, can not be 90deg
|
|
|
|
|
|
/* Drag speed & current */
|
|
/* Drag speed & current */
|
|
-#define DRAG_CUR_AP 1000 // 1500 //100 Huawei // unit: 0.01A, Drag current value
|
|
|
|
-#define DRAG_VOL_AP 18 // 0.1v
|
|
|
|
-#define DRAG_SPD_HZ 20 // unit: Hz, Final speed of drag
|
|
|
|
|
|
+#define DRAG_CUR_AP 1000 // 1500 //100 Huawei // unit: 0.01A, Drag current value
|
|
|
|
+#define DRAG_VOL_AP 18 // 0.1v
|
|
|
|
+#define DRAG_SPD_HZ 20 // unit: Hz, Final speed of drag
|
|
#define DRAG_SPD_RAMP_TM_MS 4000 // unit: ms, Time of speed from 0Hz to target Hz
|
|
#define DRAG_SPD_RAMP_TM_MS 4000 // unit: ms, Time of speed from 0Hz to target Hz
|
|
/* Open to close */
|
|
/* Open to close */
|
|
#define OPEN2CLZ_CUR_RAMP_TM_MS 5000 // 5000//1000 Huawei // unit: ms, Time of current from drag value to 0
|
|
#define OPEN2CLZ_CUR_RAMP_TM_MS 5000 // 5000//1000 Huawei // unit: ms, Time of current from drag value to 0
|
|
@@ -328,10 +327,10 @@ Update Time
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Flux observer
|
|
Flux observer
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define OBS_SPD_PLL_M 2 // Flux observer m coefficient
|
|
|
|
-#define OBS_SPD_PLL_BANDWIDTH_HZ 150 // Flux observer PLL bandwidth
|
|
|
|
-#define OBS_FLUX_PI_DAMPRATIO 10 // unit:0.1, Flux observer PI regulator dampratio
|
|
|
|
-#define OBS_FLUX_PI_CROSSFREQ_HZ 10 // unit:Hz, Flux observer PI regulator crossfrequency
|
|
|
|
|
|
+#define OBS_SPD_PLL_M 2 // Flux observer m coefficient
|
|
|
|
+#define OBS_SPD_PLL_BANDWIDTH_HZ 150 // Flux observer PLL bandwidth
|
|
|
|
+#define OBS_FLUX_PI_DAMPRATIO 10 // unit:0.1, Flux observer PI regulator dampratio
|
|
|
|
+#define OBS_FLUX_PI_CROSSFREQ_HZ 10 // unit:Hz, Flux observer PI regulator crossfrequency
|
|
|
|
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Current loop PI regulation
|
|
Current loop PI regulation
|
|
@@ -345,14 +344,14 @@ Update Time
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Speed loop PI regulation
|
|
Speed loop PI regulation
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define ASR_PI_BANDWIDTH 3 // unit: Hz, Speed loop bandwidth
|
|
|
|
-#define ASR_PI_M 4 //
|
|
|
|
|
|
+#define ASR_PI_BANDWIDTH 3 // unit: Hz, Speed loop bandwidth
|
|
|
|
+#define ASR_PI_M 4 //
|
|
#define ASR_SPD_FBK_LPF_FRQ 50 //
|
|
#define ASR_SPD_FBK_LPF_FRQ 50 //
|
|
#define ASR_SPD_INER_RATE 1 //
|
|
#define ASR_SPD_INER_RATE 1 //
|
|
/*=====================================================================*
|
|
/*=====================================================================*
|
|
PWM generation
|
|
PWM generation
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define PWM_MAX_DUTY_CYLE_IPM 880 //890 // 938 // unit: 0.1%,Max duty cyle for compare value
|
|
|
|
|
|
+#define PWM_MAX_DUTY_CYLE_IPM 880 // 890 // 938 // unit: 0.1%,Max duty cyle for compare value
|
|
#define PWM_7SVM_TO_5SVM_DUTY_IPM 700 // unit: 0.1%, Switch ratio from 7 to 5 svpwm
|
|
#define PWM_7SVM_TO_5SVM_DUTY_IPM 700 // unit: 0.1%, Switch ratio from 7 to 5 svpwm
|
|
#define PWM_MIN_SAMPLE_DUTY1_IPM 5 * 10000 / PWM_PERIOD_US // unit: 0.1%, 5us TWO MIN ZERO VECTOR = two sample current steady time
|
|
#define PWM_MIN_SAMPLE_DUTY1_IPM 5 * 10000 / PWM_PERIOD_US // unit: 0.1%, 5us TWO MIN ZERO VECTOR = two sample current steady time
|
|
#define PWM_MIN_SAMPLE_DUTY2_IPM 10 * 10000 / PWM_PERIOD_US // unit: 0.1%, 10us TWO (one sample current steady time + one sample time)
|
|
#define PWM_MIN_SAMPLE_DUTY2_IPM 10 * 10000 / PWM_PERIOD_US // unit: 0.1%, 10us TWO (one sample current steady time + one sample time)
|
|
@@ -360,10 +359,10 @@ Update Time
|
|
((ULONG)6 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 6 us TWO (one Singel Resistance sample current steady time + one sample time)
|
|
((ULONG)6 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 6 us TWO (one Singel Resistance sample current steady time + one sample time)
|
|
#define PWM_SAMPLE_TOSTEADY_IPM ((ULONG)8 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 4us TWO sample current to steady time
|
|
#define PWM_SAMPLE_TOSTEADY_IPM ((ULONG)8 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 4us TWO sample current to steady time
|
|
#define PWM_SAMPLE_SINGELRESIS_IPM ((ULONG)1 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 1us TWO singel Resistance sample time
|
|
#define PWM_SAMPLE_SINGELRESIS_IPM ((ULONG)1 * 10000 / PWM_PERIOD_US) // unit: 0.1%, 1us TWO singel Resistance sample time
|
|
-#define PWM_1ST_SAMPLE_CTS_IPM 25//43 // 25 // unit: Null, first current sample counts
|
|
|
|
-#define PWM_2ND_SAMPLE_CTS_IPM 220//280 // 220 // unit: Null, second current sample counts
|
|
|
|
-#define PWM_MIN_EFF_VECTOR_CTS_IPM 245//323 // unit: Null, Min effective vector counts
|
|
|
|
-#define PWM_MIN_EFF_VECTOR_PU_IPM 892//1176 // 600 // unit: Q14, Min effective vector pu
|
|
|
|
|
|
+#define PWM_1ST_SAMPLE_CTS_IPM 25 // 43 // 25 // unit: Null, first current sample counts
|
|
|
|
+#define PWM_2ND_SAMPLE_CTS_IPM 220 // 280 // 220 // unit: Null, second current sample counts
|
|
|
|
+#define PWM_MIN_EFF_VECTOR_CTS_IPM 245 // 323 // unit: Null, Min effective vector counts
|
|
|
|
+#define PWM_MIN_EFF_VECTOR_PU_IPM 892 // 1176 // 600 // unit: Q14, Min effective vector pu
|
|
|
|
|
|
#define PWM_OVR_MDL_MIN_PHS 0 // SVPWM over modulation: min phase error
|
|
#define PWM_OVR_MDL_MIN_PHS 0 // SVPWM over modulation: min phase error
|
|
#define PWM_OVR_MDL_MIN_AMP 1 // SVPWM over modulation: min amplitude error
|
|
#define PWM_OVR_MDL_MIN_AMP 1 // SVPWM over modulation: min amplitude error
|
|
@@ -373,30 +372,31 @@ Update Time
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Flux Weakening
|
|
Flux Weakening
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define FW_VDC_MIN_CALC_TM 20 // unit: ms,50Hz=>20ms, period of Vdc fluctuate
|
|
|
|
-#define FW_VDC_LPF_FRQ 50 // unit: Hz, Frequency of Vdc LPF
|
|
|
|
-#define FW_PWM_MAX_DUTY_CYLE_IPM 880 // unit: 0.1%,PWM max duty cyle for flux weakening
|
|
|
|
|
|
+#define FW_VDC_MIN_CALC_TM 20 // unit: ms,50Hz=>20ms, period of Vdc fluctuate
|
|
|
|
+#define FW_VDC_LPF_FRQ 50 // unit: Hz, Frequency of Vdc LPF
|
|
|
|
+#define FW_PWM_MAX_DUTY_CYLE_IPM 880 // unit: 0.1%,PWM max duty cyle for flux weakening
|
|
#define FW_ID_PI_OUT_MIN 1000 // unit: 0.01A, Min Id of PI outunit: 0.01A, Current Limit
|
|
#define FW_ID_PI_OUT_MIN 1000 // unit: 0.01A, Min Id of PI outunit: 0.01A, Current Limit
|
|
-#define FW_ID_MIN_LIM_RATIO 80 // Q0:1%, Ratio of Min d axis current (Charactoristic current)
|
|
|
|
-#define FW_ID_KP_PU 10 // Q16, Kp for d axis current
|
|
|
|
-#define FW_ID_KI_PU 5 // Q16, Ki for d axis current
|
|
|
|
-#define FW_CHAR_CUR_CROSS_FREQ 2 // Q0,unit: SQRT(1/2piR)
|
|
|
|
-#define FW_CHAR_CUR_DAMP_RATIO 2 // Q0,unit: SQRT(pi/2R)
|
|
|
|
|
|
+#define FW_ID_MIN_LIM_RATIO 80 // Q0:1%, Ratio of Min d axis current (Charactoristic current)
|
|
|
|
+#define FW_ID_KP_PU 10 // Q16, Kp for d axis current
|
|
|
|
+#define FW_ID_KI_PU 5 // Q16, Ki for d axis current
|
|
|
|
+#define FW_CHAR_CUR_CROSS_FREQ 2 // Q0,unit: SQRT(1/2piR)
|
|
|
|
+#define FW_CHAR_CUR_DAMP_RATIO 2 // Q0,unit: SQRT(pi/2R)
|
|
|
|
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Constant Voltage Braking Parameter define
|
|
Constant Voltage Braking Parameter define
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define CVB_CONSTANT_VOL_BRAKE_V (ALM_OVR_VLT_LVL1_VAL - 30) // unit:0.1V,Voltage limit of Constant Voltage Brake
|
|
|
|
-#define CVB_CONSTANT_SPD_LOW_RPM 4500 // unit:rpm,
|
|
|
|
|
|
+#define CVB_CONSTANT_VOL_BRAKE_V (ALM_OVR_VLT_LVL1_VAL - 30) // unit:0.1V,Voltage limit of Constant Voltage Brake
|
|
|
|
+#define CVB_CONSTANT_SPD_LOW_RPM 4500 // unit:rpm,
|
|
|
|
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Power limit
|
|
Power limit
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
-#define PWRLIM_VAL 6500 // unit: 0.1w, Power limit value
|
|
|
|
-#define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
|
|
|
|
-#define PWRLIM_LPF_FRQ 8000 // unit: Hz, Frequency of LPF in input power of motor
|
|
|
|
-#define PWR_IQ_LIMIT_KP_PU 20 // Q15
|
|
|
|
-#define PWR_IQ_LIMIT_KI_PU 3000 // Q15
|
|
|
|
|
|
+#define PWRLIM_VAL 6500 // unit: 0.1w, Power limit value
|
|
|
|
+#define PWRLIM_ERR 500 // unit: 0.1w, Start power limit when "VAL - ERR"
|
|
|
|
+#define PWRLIM_LPF_FRQ 8000 // unit: Hz, Frequency of LPF in input power of motor
|
|
|
|
+#define PWR_IQ_LIMIT_KP_PU 20 // Q15
|
|
|
|
+#define PWR_IQ_LIMIT_KI_PU 3000 // Q15
|
|
|
|
+#define PWRLIM_START_THRESHOLD_TEMP 90 // Ce
|
|
/*======================================================================*
|
|
/*======================================================================*
|
|
Deadband compensation
|
|
Deadband compensation
|
|
*=======================================================================*/
|
|
*=======================================================================*/
|
|
@@ -417,12 +417,12 @@ Update Time
|
|
#define USER_MOTOR_200RPM2PU SPD_RPM2PU(200)
|
|
#define USER_MOTOR_200RPM2PU SPD_RPM2PU(200)
|
|
#define USER_MOTOR_300RPM2PU SPD_RPM2PU(300)
|
|
#define USER_MOTOR_300RPM2PU SPD_RPM2PU(300)
|
|
#define USER_MOTOR_400RPM2PU SPD_RPM2PU(400)
|
|
#define USER_MOTOR_400RPM2PU SPD_RPM2PU(400)
|
|
-#define USER_MOTOR_600RPM2PU SPD_RPM2PU(600) // 600rpm,Q15
|
|
|
|
-#define USER_MOTOR_800RPM2PU SPD_RPM2PU(800) // 800rpm,Q15
|
|
|
|
-#define USER_MOTOR_1000RPM2PU SPD_RPM2PU(1000) // 1000rpm,Q15
|
|
|
|
-#define USER_MOTOR_1500RPM2PU SPD_RPM2PU(1500) // 6000rpm,Q15
|
|
|
|
-#define USER_MOTOR_4000RPM2PU SPD_RPM2PU(4000) // 6000rpm,Q15
|
|
|
|
-#define USER_MOTOR_5500RPM2PU SPD_RPM2PU(5500)
|
|
|
|
|
|
+#define USER_MOTOR_600RPM2PU SPD_RPM2PU(600) // 600rpm,Q15
|
|
|
|
+#define USER_MOTOR_800RPM2PU SPD_RPM2PU(800) // 800rpm,Q15
|
|
|
|
+#define USER_MOTOR_1000RPM2PU SPD_RPM2PU(1000) // 1000rpm,Q15
|
|
|
|
+#define USER_MOTOR_1500RPM2PU SPD_RPM2PU(1500) // 6000rpm,Q15
|
|
|
|
+#define USER_MOTOR_4000RPM2PU SPD_RPM2PU(4000) // 6000rpm,Q15
|
|
|
|
+#define USER_MOTOR_5500RPM2PU SPD_RPM2PU(5500)
|
|
#define USER_MOTOR_100RPMPS2PU_Q29 SPD_ACC_RPM2PU(100) // 100rpm/s,(0x40000000/FTBS_Hz/cof_uwVbRpm*100)
|
|
#define USER_MOTOR_100RPMPS2PU_Q29 SPD_ACC_RPM2PU(100) // 100rpm/s,(0x40000000/FTBS_Hz/cof_uwVbRpm*100)
|
|
/*=======================================================================
|
|
/*=======================================================================
|
|
TBS&TBC Time Cnts Define
|
|
TBS&TBC Time Cnts Define
|
|
@@ -479,18 +479,18 @@ Update Time
|
|
Deadband Compensation parameters define
|
|
Deadband Compensation parameters define
|
|
==============================================================================*/
|
|
==============================================================================*/
|
|
/* Api Device Index Definations */
|
|
/* Api Device Index Definations */
|
|
-#define ADC_IA_CH 0
|
|
|
|
-#define ADC_IB_CH 1
|
|
|
|
-#define ADC_IC_CH 2
|
|
|
|
-
|
|
|
|
-#define ADC_IDC_CH 0
|
|
|
|
-
|
|
|
|
-#define ADC_UDC_CH 0
|
|
|
|
-#define ADC_TEMP_CH 1
|
|
|
|
-#define ADC_UAC_CH 2
|
|
|
|
-
|
|
|
|
-#define GPIO_LED_PIN 0
|
|
|
|
-#define GPIO_CAP_PIN 1
|
|
|
|
|
|
+#define ADC_IA_CH 0
|
|
|
|
+#define ADC_IB_CH 1
|
|
|
|
+#define ADC_IC_CH 2
|
|
|
|
+
|
|
|
|
+#define ADC_IDC_CH 0
|
|
|
|
+
|
|
|
|
+#define ADC_UDC_CH 0
|
|
|
|
+#define ADC_TEMP_CH 1
|
|
|
|
+#define ADC_UAC_CH 2
|
|
|
|
+
|
|
|
|
+#define GPIO_LED_PIN 0
|
|
|
|
+#define GPIO_CAP_PIN 1
|
|
/************************************************************************
|
|
/************************************************************************
|
|
TypeDefs & Structure defines
|
|
TypeDefs & Structure defines
|
|
*************************************************************************/
|
|
*************************************************************************/
|
|
@@ -514,7 +514,7 @@ Update Time
|
|
/************************************************************************
|
|
/************************************************************************
|
|
Head files (N/A)
|
|
Head files (N/A)
|
|
*************************************************************************/
|
|
*************************************************************************/
|
|
-//#include <stdlib.h>
|
|
|
|
|
|
+// #include <stdlib.h>
|
|
#include "typedefine.h"
|
|
#include "typedefine.h"
|
|
#include "CodePara.h"
|
|
#include "CodePara.h"
|
|
#include "classB.h"
|
|
#include "classB.h"
|