cancel
Showing results for 
Search instead for 
Did you mean: 

Mini BLDC Torque Control

TS-LMG
Associate II

Hello. 

I am currently doing R&D work on controlling a 1 pole-pair, 12V BLDC motor. The controller I have chosen for my application is the B-G431-ESC1, and I am using Motor Control Workbench 6.2.1 to configure my controller. Currently, I am running into several issues with the motor and driver. I have several faults that show up: over current, start up failure, and under voltage (rarely). However, when I do manage to get the motor running, it spins inconsistently at low speeds, vibrating vigorously and sometimes spinning in the wrong direction as compared to the motor pilot. It does spin better at higher speeds, but the current consumption is much higher than the no load current specified by the manufacturer, and it still vibrates quite a bit. Also, I can't seem to get the motor to spin at its maximum speed (13900 RPM). The speed I was able to achieve was around 6700RPM. I tried spinning the motor in both sensored and sensorless configurations. Both have problems. Motor profiler 5.4.8 can spin the motor a lot better than the WB (even though it can't characterize it). 

Any help to resolve my issue would be greatly appreciated.

 

 

 

 

 

4 REPLIES 4
Gael A
ST Employee

Hello TS-LMG,

Have you profiled your motor using the MCSDK v6.2.1 Profiler before trying to run it using a standard project ?
You can find the dedicated user flow by launching the MotorPilot 6.2.1 > Click on Help > Click on Profiler Documentation.

Be aware that in sensorless, poor control at low speed is unavoidable both with 6-STEP and classic FOC algorithms. When using sensors, please also make sure that they are wired in the correct order, although if you have managed to make it run I suspect the issue does not lie here.

Have you also tried modifying your PID values to give better control ? Is the issue also happening in Speed Mode ? Maybe the speed ramp is too steep, explaining the frequent overcurrents.

Is the same behavior happening on FOC algorithm ? Have you tried switching to FOC and enabling OpenLoop mode to take a look at the currents ?

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Hello Gael.

I have tried using the motor profiler with v6.2.1, but every time I try to connect, I get "Firmware error 0.2". I did flip some hall wires around, which managed to get the motor to spin at max speed but the speed feedback fault keeps triggering. Also, I cannot seem to control the speed of the motor. It always wants to spin at maximum speed. 

I tried modifying the PID values which have done nothing at all. The motor pilot doesn't seem to do anything at all. Either it doesn't spin, or it spins at full speed. Can't go anywhere in between. I tried modifying the speed ramp which had zero impact. 

 

Gael A
ST Employee

Hello TS-LMG,

I don't know anything about a "Firmware error 0.2" but I will take a look and try to come back with an answer shortly.

I am glad to learn that you managed to make your motor run. However, as you are in Torque Mode, it is normal that the motor tries to get to the maximum speed allowed by the target Torque. I suppose you did not input any load on your motor, so that maximum speed allowed would be the maximum speed of the motor.
To give you an exemple, let's say you input a target Torque of 5 N.m, and that there is no load on your motor, then your resistive Torque would be 0 N.m. Your system will then accelerate your motor until your resistive Torque reaches 5 N.m, but as it would only be the one of the induced by the shaft (usually almost zero although it depends on the motor) + friction (very low too), you end up never reaching 5 N.m. What happens next is that your system accelerates until it reaches the maximum allowed speed : the maximum speed of the motor.

You can try either to add some load on your motor shaft or to reduce drastically your target torque. Finally, to control speed, nothing beats Speed Mode. It is available by clicking on the SPEED / TORQUE button on top of the Start button in the control panel (see image)731px-STM32_MC_MotorPilot_slide4.png

If you agree with my answer, please consider accepting it by clicking on 'Accept as solution'.

Hope this will help,
Gaël A.

Hello Gael. 

I had the controller on speed mode the entire time. Adjust the RPM on the dial does nothing. I also was monitoring the currents Id and Iq. Both waveforms have sharp peaks and valleys. I don't see how I can precisely control torque with these results. Although, I did notice some performance improvements when I was playing with the PI constants. This also adjusted the speed of the motor though the speed dial still did nothing.

Screenshot 2024-01-05 083955.png