2020-10-05 01:35 AM
Hi ST Community
I am working on a project where I want to use a BLDC motor for a screwdriving process.
The setup is based on the B-G431B-ESC1 and a Maxon motor https://www.maxongroup.com/maxon/view/product/651618 (with a 6:1 gear added). The motor control is based on FOC generated from using STM32 MC Workbench. Power supply is 24V 10A. A hall sensor is used as a speed sensor.
I am experiencing two issues here, comparing to what I expect, and to what I experience when I connect the motor to an off-the-shelf ESC.
The steps that I've taken are:
Use the motor profile determined from the Motor Profiler to setup the motor parameters in STM32 MC Workbench. Use ST MC Workbench Monitor to start motor with (Speed control mode). The motor is attached to a test bench with an adjustable torque load.
Is it simply due to the board and software being optimized for usage in drone applications? Or what am I missing here?
Thanks in advance!
Solved! Go to Solution.
2020-10-05 02:26 AM
I figured out how to archive a higher output current but it seems to me it is more a workaround. I tried to increase the nominal current further to 15A and finally it can provide more than 5A (I measured 10A which is the maximum of the power supply). This and using a higher duration for startup speedcontrol also helped archiving a higher startup torque.
2020-10-05 01:36 AM
@DB.7ERGANTIN You've been very helpful before. :D
2020-10-05 02:26 AM
I figured out how to archive a higher output current but it seems to me it is more a workaround. I tried to increase the nominal current further to 15A and finally it can provide more than 5A (I measured 10A which is the maximum of the power supply). This and using a higher duration for startup speedcontrol also helped archiving a higher startup torque.
2020-10-25 11:27 PM
For RPM starting at zero, you cannot inject much _power_ to the BLDC motor. The load that controlled "sees" at motor coils is of very low impedance. Meaning that immediately when the "switches" open, the current rises very fast, and controller needs to turn off the switches fast also. The phase voltage will not be very high, typically around a volt or two. So the P = U*I is left pretty low. In other words, for low RPM, you must be able to provide as much current as possible in order to get more power. The way you achieve this is from WB, is that you must specify the "nominal current" to equal the maximum current that your phase control electronics is able to provide. It probably is more than your power source's rated 10A (which is probably the RMS current it supplies). Phase current may be lot higher if your wiring etc allows for it.
Second, you can (should) play a little with the PWM frequency. For low impedance motors, typically you prefer to use higher control frequency. I have STM32G431 running full speed (170 MHz if I remember correctly), and it can operate up to 24 kHz without errors, but laving some headroom, I use 20kHz control frequency.
Third; for these very quick PWM control sequences, make sure that you minimize the voltage ripple at the power supply. Your 10A power supply must be bypassed with lots of low-impedance capacitance. Low-ESL electrolytes or lots of at least 2*over-rated ceramic capacitors.
2020-10-26 12:26 AM
Thanks for taking time to write a comprehensive description of the theory. Appreciating it! Also it makes sense. :)
2021-06-21 01:11 PM
The question has been moved from the section "Motor Control Hardware" to the "STM32 Motor Control" section (the question is about the STM32 MC SDK).
Best regards