This commit is contained in:
Benjamin Vedder 2021-04-11 19:38:55 +02:00
parent 9a00234346
commit 3d57ed2f06
1 changed files with 7 additions and 11 deletions

View File

@ -3626,10 +3626,13 @@ static void control_current(volatile motor_all_state_t *motor, float dt) {
float dec_bemf = 0.0;
if (motor->m_control_mode < CONTROL_MODE_HANDBRAKE && conf_now->foc_cc_decoupling != FOC_CC_DECOUPLING_DISABLED) {
float lq = conf_now->foc_motor_l + conf_now->foc_motor_ld_lq_diff / 2.0;
float ld = conf_now->foc_motor_l - conf_now->foc_motor_ld_lq_diff / 2.0;
switch (conf_now->foc_cc_decoupling) {
case FOC_CC_DECOUPLING_CROSS:
dec_vd = state_m->iq_filter * state_m->speed_rad_s * conf_now->foc_motor_l * (3.0 / 2.0);
dec_vq = state_m->id_filter * state_m->speed_rad_s * conf_now->foc_motor_l * (3.0 / 2.0);
dec_vd = state_m->iq_filter * state_m->speed_rad_s * lq * (3.0 / 2.0);
dec_vq = state_m->id_filter * state_m->speed_rad_s * ld * (3.0 / 2.0);
break;
case FOC_CC_DECOUPLING_BEMF:
@ -3637,15 +3640,8 @@ static void control_current(volatile motor_all_state_t *motor, float dt) {
break;
case FOC_CC_DECOUPLING_CROSS_BEMF:
if(conf_now->foc_motor_ld_lq_diff > 0.0){
float lq = conf_now->foc_motor_l + conf_now->foc_motor_ld_lq_diff /2;
float ld = conf_now->foc_motor_l - conf_now->foc_motor_ld_lq_diff /2;
dec_vd = state_m->iq_filter * state_m->speed_rad_s * lq * (3.0 / 2.0);
dec_vq = state_m->id_filter * state_m->speed_rad_s * ld * (3.0 / 2.0);
}else{
dec_vd = state_m->iq_filter * state_m->speed_rad_s * conf_now->foc_motor_l * (3.0 / 2.0);
dec_vq = state_m->id_filter * state_m->speed_rad_s * conf_now->foc_motor_l * (3.0 / 2.0);
}
dec_bemf = state_m->speed_rad_s * conf_now->foc_motor_flux_linkage;
break;