@@ -1084,22 +1084,20 @@ bool mcpwm_foc_is_using_encoder(void) {
1084
1084
float mcpwm_foc_get_tot_current_motor (bool is_second_motor ) {
1085
1085
#ifdef HW_HAS_DUAL_MOTORS
1086
1086
volatile motor_all_state_t * motor = is_second_motor ? & m_motor_2 : & m_motor_1 ;
1087
- return SIGN (motor -> m_motor_state .vq ) * motor -> m_motor_state .iq ;
1087
+ return SIGN (motor -> m_motor_state .vq * motor -> m_motor_state .iq ) * motor -> m_motor_state . i_abs ;
1088
1088
#else
1089
1089
(void )is_second_motor ;
1090
- return SIGN (m_motor_1 .m_motor_state .vq ) * m_motor_1 .m_motor_state .iq ;
1090
+ return SIGN (m_motor_1 .m_motor_state .vq * m_motor_1 .m_motor_state .iq ) * m_motor_1 . m_motor_state . i_abs ;
1091
1091
#endif
1092
1092
}
1093
1093
1094
1094
float mcpwm_foc_get_tot_current_filtered_motor (bool is_second_motor ) {
1095
1095
#ifdef HW_HAS_DUAL_MOTORS
1096
1096
volatile motor_all_state_t * motor = is_second_motor ? & m_motor_2 : & m_motor_1 ;
1097
- return SIGN (motor -> m_motor_state .vq ) *
1098
- sqrtf ( SQ (motor -> m_motor_state .iq_filter ) + SQ (motor -> m_motor_state .id_filter ) );
1097
+ return SIGN (motor -> m_motor_state .vq * motor -> m_motor_state .iq_filter ) * motor -> m_motor_state .i_abs_filter ;
1099
1098
#else
1100
1099
(void )is_second_motor ;
1101
- return SIGN (m_motor_1 .m_motor_state .vq ) *
1102
- sqrtf ( SQ (m_motor_1 .m_motor_state .iq_filter ) + SQ (m_motor_1 .m_motor_state .id_filter ) );
1100
+ return SIGN (m_motor_1 .m_motor_state .vq * m_motor_1 .m_motor_state .iq_filter ) * m_motor_1 .m_motor_state .i_abs_filter ;
1103
1101
#endif
1104
1102
}
1105
1103
@@ -1185,7 +1183,8 @@ float mcpwm_foc_get_rpm_faster(void) {
1185
1183
* The motor current.
1186
1184
*/
1187
1185
float mcpwm_foc_get_tot_current (void ) {
1188
- return SIGN (motor_now ()-> m_motor_state .vq ) * motor_now ()-> m_motor_state .iq ;
1186
+ volatile motor_all_state_t * motor = motor_now ();
1187
+ return SIGN (motor -> m_motor_state .vq * motor -> m_motor_state .iq ) * motor -> m_motor_state .i_abs ;
1189
1188
}
1190
1189
1191
1190
/**
@@ -1197,7 +1196,8 @@ float mcpwm_foc_get_tot_current(void) {
1197
1196
* The filtered motor current.
1198
1197
*/
1199
1198
float mcpwm_foc_get_tot_current_filtered (void ) {
1200
- return SIGN (motor_now ()-> m_motor_state .vq ) * motor_now ()-> m_motor_state .iq_filter ;
1199
+ volatile motor_all_state_t * motor = motor_now ();
1200
+ return SIGN (motor -> m_motor_state .vq * motor -> m_motor_state .iq_filter ) * motor -> m_motor_state .i_abs_filter ;
1201
1201
}
1202
1202
1203
1203
/**
0 commit comments