Просмотр исходного кода

切换到无感模式后,通过CONFIG_SENSORLESS_RAMP_TIME控制限制速度和母线功率的缓慢平滑

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 2 лет назад
Родитель
Сommit
5f15c9c987
2 измененных файлов с 8 добавлено и 1 удалено
  1. 2 0
      Applications/foc/foc_config.h
  2. 6 1
      Applications/foc/motor/motor.c

+ 2 - 0
Applications/foc/foc_config.h

@@ -50,6 +50,8 @@
 
 #define CONFIG_LIMIT_RAMP_TIME (6 * 1000)
 
+#define CONFIG_SENSORLESS_RAMP_TIME (20 * 1000)
+
 #define CONFIG_MTPA_CALI_RAMP_TIME (10 * 1000)
 
 #define CONFIG_RAMP_SECOND_STEP (0.1F)

+ 6 - 1
Applications/foc/motor/motor.c

@@ -188,7 +188,12 @@ static void _led_off_timer_handler(shark_timer_t *t) {
 
 static void mc_gear_vmode_changed(void) {
 	mc_gear_t *gears = mc_get_gear_config();
-
+	if (gears != &sensorless_gear) {
+		sensorless_gear.n_max_trq = gears->n_max_trq;
+	}else { //slowly changed
+		eRamp_set_time(&(PMSM_FOC_Get()->rtLim.rpmLimRamp), CONFIG_SENSORLESS_RAMP_TIME, CONFIG_SENSORLESS_RAMP_TIME);
+		eRamp_set_time(&(PMSM_FOC_Get()->rtLim.DCCurrLimRamp), CONFIG_SENSORLESS_RAMP_TIME, CONFIG_SENSORLESS_RAMP_TIME);
+	}
 	PMSM_FOC_SpeedLimit(gears->n_max_speed);
 	PMSM_FOC_DCCurrLimit(min(gears->n_max_idc, motor.u_set.idc_lim));
 	PMSM_FOC_TorqueLimit(gears->n_max_trq);