|
|
@@ -520,10 +520,16 @@ bool mc_start_epm_move(EPM_Dir_t dir, bool is_command) {
|
|
|
}else if (PMSM_FOC_AutoHoldding()) {
|
|
|
mc_auto_hold(false);
|
|
|
}
|
|
|
+ if (dir == EPM_Dir_Back) {
|
|
|
+ PMSM_FOC_Change_VelLoop_Params(3.0f, 500.0f);
|
|
|
+ }else {
|
|
|
+ PMSM_FOC_Change_VelLoop_Params(3.0f, 350.0f);
|
|
|
+ }
|
|
|
PMSM_FOC_TorqueLimit(motor.f_epm_trq);
|
|
|
PMSM_FOC_Set_Speed(motor.f_epm_vel);
|
|
|
}else {
|
|
|
motor.b_epm_cmd_move = false;
|
|
|
+ PMSM_FOC_Change_VelLoop_Params(nv_get_foc_params()->f_adrc_vel_Wcv, nv_get_foc_params()->f_adrc_vel_B0);
|
|
|
PMSM_FOC_Set_Speed(0);
|
|
|
}
|
|
|
cpu_exit_critical(mask);
|
|
|
@@ -1136,7 +1142,7 @@ static void mc_process_epm_move(void) {
|
|
|
step = 0.1f;
|
|
|
}
|
|
|
step_towards(&motor.f_epm_vel, target_vel, step);
|
|
|
- step_towards(&motor.f_epm_trq, target_trq, 0.05f);
|
|
|
+ step_towards(&motor.f_epm_trq, target_trq, 0.1f);
|
|
|
PMSM_FOC_TorqueLimit(motor.f_epm_trq);
|
|
|
PMSM_FOC_Set_Speed(motor.f_epm_vel);
|
|
|
}
|