2025-01-28 05:17 AM
Hello everyone,
I am encountering an over-current issue with the B-G431B-ESC1 when attempting to use position control with a quadrature encoder. Here's what I've done so far:
Motor Profiler:
Motor Parameters:
Quadrature Encoder Details:
Compatibility:
Motor ID: BDUAV C4250
MC Workbench Configuration:
Testing in Motor Pilot:
I have also attached a video showing the issue. the encoder speed graphs shows data when i move the motors manually .
2025-01-28 07:01 AM
After lowering the current in startup parameter, now the ESC does not give over current error. when the ESC is run for the first time it changes its status in the following order:
Idle >> Alignment >> wait_stop_motor >> run
the motor does not move a lot during the alignment step and later the motor is not running at all it just stays stuck in one position. when i try to move the motor by hand (when status is run) it cogs on poles.
2025-01-28 08:10 AM
Hello @Rajatkvsd,
As mentioned in AN5464 document, after MC_StartMotor1, " It forces a constant magnetic field into the stator at a programmed angle" and maintained it until a stop or a new position command is ordered.
2025-01-28 08:45 AM
Hi Rajatkvsd
This post has been escalated to the ST Online Support Team for additional assistance. We'll contact you directly.
Regards
Joe
STMicro Support
2025-01-28 09:03 AM
Thank you for your prompt response. I have done the same steps in torque control now. I Have disabled the "Use absolute position control pin (ENC_Z)1" in the Speed Sensing Config. >> Quadrature Encoder setting but i still have the same issue. This is what happens:
for the first time the ESC status in the following order:
Idle >> Alignment >> wait_stop_motor >> run
once in run state and in torque control the i_q current measurement increases to the set-point value but the motor does not move.
I'm guessing the Alignment electrical angle is not getting set correctly during the alignment step in the beginning. is there anywhere that I have to set a higher current value perhaps?
I was able to fix the initial over current error by changing final ramp current value to 8A from the default value of 40A in the following settings:
2025-01-29 12:35 AM - edited 2025-01-29 12:45 AM
I found a similar issue discussed in the forum back in 2021: B-G431B-ESC1 Encoder Problem. My issue seems very similar, but unfortunately, there was no clear solution in that discussion. I have followed the troubleshooting suggestions from that topic and here are my new findings:
Encoder Communication is Functional
Unexpected Encoder Angle Variation
Below is the relevant configuration from my startup parameters:
/****************************** START-UP PARAMETERS **********************/
/* Encoder alignment */
#define M1_ALIGNMENT_DURATION 1000 /*!< milliseconds */
#define M1_ALIGNMENT_ANGLE_DEG 90 /*!< degrees [0...359] */
#define FINAL_I_ALIGNMENT_A 8 /*!< s16A */
/************************
*** Motor Parameters ***
************************/
/***************** MOTOR ELECTRICAL PARAMETERS ******************************/
#define POLE_PAIR_NUM 7 /* Number of motor pole pairs */
#define RS 0.1 /* Stator resistance, ohm */
#define LS 0.00002 /* Stator inductance, H */
#define MOTOR_MAX_SPEED_RPM 6020 /*!< Maximum rated speed */
#define MOTOR_VOLTAGE_CONSTANT 1.5 /*!< Volts RMS ph-ph /kRPM */
#define NOMINAL_CURRENT_A 40
#define ID_DEMAG_A -40 /*!< Demagnetization current */
/***************** MOTOR SENSORS PARAMETERS ******************************/
/*** Quadrature encoder ***/
#define M1_ENCODER_PPR 256 /*!< Number of pulses per revolution */
I suspect that due to the low current and short alignment duration, the rotor is not aligning correctly, leading to incorrect position estimation and subsequent control issues.