BLDC Motor Tuning

If you have no or bad startup behavior with your BLDC motor, there are some parameters outside the example sketches that you can change. Therefore navigate to /src/corelib/BLDCM-control.hpp in your local library.

Safety

CONF_TIMEOUT

Main place to configure BLDC motor parameters. All defines beginning with “CONF_” are intended to be changed by the user. All other defines should remain as they are. milliseconds. How long no commutation may occur until it can be assumed, the motor got stuck

In order to prevent damage to your motor when it’s mechanically blocked, there is a timeout feature. After this time (500ms) when no commutation occurred, all three phases will be switched off.

RPM Regulation

CONF_PI_UPDATE_INTERVAL

milliseconds. How often should the PI regulator be called. Affects precision if too low.

Startup

CONF_RPM_DUTYCYCLE_AT_START

dutycycle when motor starts to turn before RPM controller will be switched on

CONF_OPEN_LOOP_DUTYCYCLE

dutycycle for blind commutation at motor start (open loop)

CONF_OPEN_LOOP_DELAY_START

microseconds. This is the delay between the first commutations when starting a BLDC motor

CONF_OPEN_LOOP_DELAY_LIMIT

microseconds. The smallest delay that is used before open loop commutation turns into closed loop

CONF_OPEN_LOOP_DELAY_SLOPE

microseconds. The amount CONF_OPEN_LOOP_DELAY_START will be decreased every open loop commutation. You can calculate the amount: O_L_commutations = (5000-1200)/200