Hello everyone,
I'm facing an issue with my BLDC motor control system configured via MC Workbench and operated using ST Motor Pilot.
Here is my setup:
- STM32F303
- FOC with Hall sensors
- Current sensing with 3 shunts
- PWM at 20kHz
- Motor current limit: 20A, nominal torque current: 4.1A
Problem context:
When I start the motor under heavy load, it runs normally.
Then I stop it by setting the speed command to 0 (to hold position).
But when I try to move the arm back up, the motor often fails to restart.
I observe Iq saturation at 20A, and the motor doesn’t move.
However, if I reverse the direction, it works perfectly.
Additional observation:
If I directly switch from +800 rpm to -800 rpm using the speed slider, the motor responds very well.
So the issue seems to be specifically related to the hold phase at zero speed, which prevents proper restart in the same direction.
Investigated lead:
I noticed current spikes up to 20A that were blocking the system.
After changing the Regulation Execution Rate to 2 PWM in MC Workbench, these spikes were significantly reduced, which slightly improved the behaviour.
However, the restart issue still occurs under certain conditions.
Hypothesis:
It seems the system struggles to handle restarting from zero speed under heavy load.
Possibly a synchronization issue or a limitation in current control during startup.
Questions:
- Are there specific parameters in MC Workbench to improve restart from zero speed?
- Should I tune the speed ramps or PID gains?
- Could the hold mode at speed = 0 be problematic in this configuration?
- Does the choice of regulation execution frequency (1 PWM vs 2 PWM) significantly affect this behaviour?
Thanks in advance for your insights and suggestions!
Christophe