Explorar o código

扭矩过零,判断需要给一定的冗余

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui %!s(int64=2) %!d(string=hai) anos
pai
achega
9ad4092b95
Modificáronse 1 ficheiros con 3 adicións e 3 borrados
  1. 3 3
      Applications/foc/core/PMSM_FOC_Core.c

+ 3 - 3
Applications/foc/core/PMSM_FOC_Core.c

@@ -768,7 +768,7 @@ static void crosszero_step_towards(float *value, float target) {
 	float high_ramp_torque = CONFIG_RAMP_SECOND_TARGET;
 	if (target > 0) {
 		if (v_now < -RAMPE_1) {
-			step_towards(value, -RAMPE_1, NORMAL_STEP);
+			step_towards(value, -RAMPE_1 + 0.001f, NORMAL_STEP);
 			cross_zero = true;
 		}else if (v_now >= -RAMPE_1 && v_now <= high_ramp_torque) {
 			step_towards(value, target, 0.03f);
@@ -776,7 +776,7 @@ static void crosszero_step_towards(float *value, float target) {
 		}
 	}else if (target == 0) {
 		if (v_now > high_ramp_torque) {
-			step_towards(value, high_ramp_torque, NORMAL_STEP);
+			step_towards(value, high_ramp_torque - 0.001f, NORMAL_STEP);
 			cross_zero = true;
 		}else if (v_now >= RAMPE_1 && v_now <= high_ramp_torque) {
 			step_towards(value, target, 0.03f);
@@ -784,7 +784,7 @@ static void crosszero_step_towards(float *value, float target) {
 		}
 	}else {
 		if (v_now > high_ramp_torque) {
-			step_towards(value, high_ramp_torque, NORMAL_STEP);
+			step_towards(value, high_ramp_torque - 0.001f, NORMAL_STEP);
 			cross_zero = true;
 		}else if (v_now >= -RAMPE_1 && v_now <= high_ramp_torque) {
 			step_towards(value, target, 0.03f);