|
|
@@ -236,9 +236,6 @@ void PMSM_FOC_CoreInit(void) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-#define CONFIG_PEAK_CNT 3 //计算经过的电周期内的最大值(peak 峰值)
|
|
|
-#define CONFIG_PHASE_UNBALANCE_THROLD 4.0F
|
|
|
-#define CONFIG_PHASE_UNBALANCE_R 0.1F
|
|
|
static float phase_unbalance_r = 0.0f;
|
|
|
static float phase_a_max, phase_b_max, phase_c_max;
|
|
|
static u32 phase_unbalance_cnt;
|
|
|
@@ -254,7 +251,7 @@ static __INLINE void PMSM_FOC_Phase_Unbalance(void) {
|
|
|
LowPass_Filter(gFoc_Ctrl.in.s_iABCFilter[0], gFoc_Ctrl.in.s_iABC[0], lowpass);
|
|
|
LowPass_Filter(gFoc_Ctrl.in.s_iABCFilter[1], gFoc_Ctrl.in.s_iABC[1], lowpass);
|
|
|
gFoc_Ctrl.in.s_iABCFilter[2] = -(gFoc_Ctrl.in.s_iABCFilter[0] + gFoc_Ctrl.in.s_iABCFilter[1]);
|
|
|
- if ((gFoc_Ctrl.in.s_angleLast == INVALID_ANGLE) || (gFoc_Ctrl.in.s_motVelRadusPers < 100)) {
|
|
|
+ if ((gFoc_Ctrl.in.s_angleLast == INVALID_ANGLE) || (gFoc_Ctrl.in.s_motVelRadusPers < 100) || gFoc_Ctrl.in.s_targetTorque < CONFIG_PHASE_DETECT_MIN_TORQUE) {
|
|
|
gFoc_Ctrl.in.s_angleLast = gFoc_Ctrl.in.s_motAngle;
|
|
|
a_max = b_max = c_max = 0;
|
|
|
_unbalance_cnt = 0;
|