|
@@ -629,13 +629,13 @@ static __INLINE void PMSM_FOC_VelCtrl_Decide(void) {
|
|
|
gFoc_Ctrl.out.empty_load = false;
|
|
gFoc_Ctrl.out.empty_load = false;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- if (f_te <= 0.0f) {
|
|
|
|
|
|
|
+ if ((f_te <= 0.0f) && (gFoc_Ctrl.in.s_motVelocity >= 0.0f)) {
|
|
|
change_cnt = 0;
|
|
change_cnt = 0;
|
|
|
change_time = 0xFFFFFFFF;
|
|
change_time = 0xFFFFFFFF;
|
|
|
//gFoc_Ctrl.out.empty_load = false;
|
|
//gFoc_Ctrl.out.empty_load = false;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ f_te = ABS(f_te);
|
|
|
if (change_done) {
|
|
if (change_done) {
|
|
|
/* 误判空转,发现电机给定的N大于空气阻力,说明不是空转 */
|
|
/* 误判空转,发现电机给定的N大于空气阻力,说明不是空转 */
|
|
|
if (gFoc_Ctrl.out.empty_load) {
|
|
if (gFoc_Ctrl.out.empty_load) {
|