Przeglądaj źródła

加入电门过压和欠压检测

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 lat temu
rodzic
commit
4955e1c3ba

+ 2 - 0
Applications/app/nv_storage.c

@@ -434,6 +434,8 @@ void nv_storage_init(void) {
 #if CONFIG_MOT_TYPE==MOTOR_BLUESHARK_A1
 #if CONFIG_MOT_TYPE==MOTOR_BLUESHARK_A1
 	m_params.offset = 0.0f; //编码器做了零位置校准
 	m_params.offset = 0.0f; //编码器做了零位置校准
 #endif
 #endif
+	foc_params.s_maxDCVol = CONFIG_MAX_DC_VOL;
+	foc_params.s_minDCVol = CONFIG_MIN_DC_VOL;
 	sys_debug("current band %f -- %d\n", foc_params.n_currentBand, sizeof(foc_params_t));
 	sys_debug("current band %f -- %d\n", foc_params.n_currentBand, sizeof(foc_params_t));
 }
 }
 
 

+ 2 - 2
Applications/bsp/board_mc100_v1.h

@@ -7,9 +7,9 @@
 #endif
 #endif
 
 
 #define CONFIG_MOS_MAX_VOL 145.0F
 #define CONFIG_MOS_MAX_VOL 145.0F
-#define CONFIG_MAX_DC_VOL 120.0F
+#define CONFIG_MAX_DC_VOL 110.0F
 #define CONFIG_RATED_DC_VOL (96.0f)   /* 母线最大电压 V*/
 #define CONFIG_RATED_DC_VOL (96.0f)   /* 母线最大电压 V*/
-#define CONFIG_MIN_DC_VOL   (20.0f)
+#define CONFIG_MIN_DC_VOL   (36.0f)
 
 
 #define CONFIG_MAX_VBUS_CURRENT 120.0f
 #define CONFIG_MAX_VBUS_CURRENT 120.0f
 #define CONFIG_MAX_MOT_RPM      9000.0f
 #define CONFIG_MAX_MOT_RPM      9000.0f

+ 2 - 2
Applications/foc/core/PMSM_FOC_Core.h

@@ -51,8 +51,8 @@ typedef enum {
 typedef enum {
 typedef enum {
 	FOC_CRIT_OV_Vol_Err,
 	FOC_CRIT_OV_Vol_Err,
 	FOC_CRIT_UN_Vol_Err,
 	FOC_CRIT_UN_Vol_Err,
-	FOC_CRIT_DC_Curr_OV_Err,
-	FOC_CRIT_Phase_Curr_OV_Err,
+	FOC_CRIT_ACC_OV_Err,
+	FOC_CRIT_ACC_Un_Err,
 	FOC_CRIT_Phase_Err,
 	FOC_CRIT_Phase_Err,
 	FOC_CRIT_Encoder_Err,
 	FOC_CRIT_Encoder_Err,
 	FOC_CRIT_Brake_Err,
 	FOC_CRIT_Brake_Err,

+ 12 - 0
Applications/foc/motor/motor.c

@@ -82,6 +82,18 @@ static void MC_Check_MosVbusThrottle(void) {
 	if (vbus_vol > nv_get_foc_params()->s_maxDCVol) {
 	if (vbus_vol > nv_get_foc_params()->s_maxDCVol) {
 		mc_set_critical_error(FOC_CRIT_OV_Vol_Err);
 		mc_set_critical_error(FOC_CRIT_OV_Vol_Err);
 	}
 	}
+	if (vbus_vol <= nv_get_foc_params()->s_minDCVol) {
+		mc_set_critical_error(FOC_CRIT_UN_Vol_Err);
+	}
+
+	vbus_vol = get_acc_vol();
+	sys_debug("acc vol %d\n", vbus_vol);
+	if (vbus_vol >= nv_get_foc_params()->s_maxDCVol) {
+		mc_set_critical_error(FOC_CRIT_ACC_OV_Err);
+	}
+	if (vbus_vol <= nv_get_foc_params()->s_minDCVol) {
+		mc_set_critical_error(FOC_CRIT_ACC_Un_Err);
+	}
 	if ((get_throttle_float() < nv_get_foc_params()->f_minThroVol) || (get_throttle_float() > nv_get_foc_params()->f_maxThroVol)) {
 	if ((get_throttle_float() < nv_get_foc_params()->f_minThroVol) || (get_throttle_float() > nv_get_foc_params()->f_maxThroVol)) {
 		mc_set_critical_error(FOC_CRIT_THRO_Err);
 		mc_set_critical_error(FOC_CRIT_THRO_Err);
 	}
 	}

+ 3 - 3
Applications/foc/motor/motor_param.h

@@ -34,9 +34,9 @@ s16 get_max_torque_for_rpm(s16 rpm);
 #define MOTOR_ENC_OFFSET 0.0F
 #define MOTOR_ENC_OFFSET 0.0F
 #define CONFIG_MAX_MOTOR_TORQUE 200.0F
 #define CONFIG_MAX_MOTOR_TORQUE 200.0F
 
 
-#define TRQ_PI_KP 0.08F
-#define TRQ_PI_KI 0.1F
-#define TRO_PI_KD 1.0F
+#define TRQ_PI_KP 0.05F
+#define TRQ_PI_KI 0.01F
+#define TRO_PI_KD 0.0F
 #define MOTOR_NR 0x16
 #define MOTOR_NR 0x16
 
 
 #define CONFIG_CURRENT_BANDWITH  2000.0f /* 电流环带宽 */
 #define CONFIG_CURRENT_BANDWITH  2000.0f /* 电流环带宽 */