Microchip Technology DM164130-2 Data Sheet
The BLDC Add-on Board
2012 Microchip Technology Inc.
DS41629A-page 25
2.4.3
BLDC Parameter Optimization
Brushless motors depend on the software to commutate the motor. The software must
determine the rotor position relative to the stator so as to commutate the driver circuitry
at specific rotor positions. The rotor position is determined in sensorless motors by
voltages induced into the stator by rotor motion. The induced voltage is referred to as
back EMF or BEMF. When the rotor is stationary, there is no BEMF from which to
determine the rotor position. Starting the motor requires commutating the motor blindly,
without the benefit of feedback, to start the rotor in motion fast enough to sense the
BEMF, and close the loop on rotor position for commutation.
The motor speed, in response to the applied voltage, varies by motor design. We need
to match the initial drive voltage and open-loop commutation rate to the motor to
accomplish two objectives:
1. prevent excessive current in the motor
2. start rotation fast enough to sense the BEMF
When the motor is running, the BEMF on the driven pair of stator windings matches the
applied voltage. The BEMF on the undriven winding starts at one power rail at the
beginning of the commutation period and ends at the other power rail at the end of the
commutation period. However, this is only true when the motor is running at the design
speed. At any other speed, the BEMF is effectively undetectable. Unfortunately, the
motor will not start if we apply a voltage, and then commutate at the rate for which the
motor is designed. To start the motor, we need to commutate slower than the design
rate and then ramp up to the design speed.
The task of motor optimization is to find a combination of applied voltage and
commutation rate for which the motor will start to rotate. From there, the control
algorithm will ramp-up the commutation rate to where the BEMF can be sensed. The
Motor Control GUI enables us to independently set the applied motor voltage and
commutation rate to find a combination that works. Use the following steps to
experiment with your motor optimization:
1. Set POT R21 to middle range for your motor or 90 degrees CCW from the middle
determine the rotor position relative to the stator so as to commutate the driver circuitry
at specific rotor positions. The rotor position is determined in sensorless motors by
voltages induced into the stator by rotor motion. The induced voltage is referred to as
back EMF or BEMF. When the rotor is stationary, there is no BEMF from which to
determine the rotor position. Starting the motor requires commutating the motor blindly,
without the benefit of feedback, to start the rotor in motion fast enough to sense the
BEMF, and close the loop on rotor position for commutation.
The motor speed, in response to the applied voltage, varies by motor design. We need
to match the initial drive voltage and open-loop commutation rate to the motor to
accomplish two objectives:
1. prevent excessive current in the motor
2. start rotation fast enough to sense the BEMF
When the motor is running, the BEMF on the driven pair of stator windings matches the
applied voltage. The BEMF on the undriven winding starts at one power rail at the
beginning of the commutation period and ends at the other power rail at the end of the
commutation period. However, this is only true when the motor is running at the design
speed. At any other speed, the BEMF is effectively undetectable. Unfortunately, the
motor will not start if we apply a voltage, and then commutate at the rate for which the
motor is designed. To start the motor, we need to commutate slower than the design
rate and then ramp up to the design speed.
The task of motor optimization is to find a combination of applied voltage and
commutation rate for which the motor will start to rotate. From there, the control
algorithm will ramp-up the commutation rate to where the BEMF can be sensed. The
Motor Control GUI enables us to independently set the applied motor voltage and
commutation rate to find a combination that works. Use the following steps to
experiment with your motor optimization:
1. Set POT R21 to middle range for your motor or 90 degrees CCW from the middle
range for the ebm-papst motor supplied with the BLDC Add-on Board.
2. Select Open-Loop mode.
3. Set the speed control to a nominal rate, such as 100.
4. Slowly increase the % Drive control until the motor starts to turn.
5. Slowly increase the speed control until it is just faster than the motor can go.
6. Slowly reduce the speed control until the motor starts to rotate again.
7. Note the % Drive setting, then enter 0 into the % drive control text box.
8. Re-enter the % drive setting noted in step 6, and observe that the motor starts
3. Set the speed control to a nominal rate, such as 100.
4. Slowly increase the % Drive control until the motor starts to turn.
5. Slowly increase the speed control until it is just faster than the motor can go.
6. Slowly reduce the speed control until the motor starts to rotate again.
7. Note the % Drive setting, then enter 0 into the % drive control text box.
8. Re-enter the % drive setting noted in step 6, and observe that the motor starts
spinning.
9. Repeat steps 7 and 8 to verify the motor always starts reliably. If it does not, then
reduce the speed control slightly and repeat steps 6, 7 and 8.
10. When you are satisfied with the start response obtained by steps 6, 7 and 8, then
enter the final speed control value into the Speed Start-up value text box. The
equivalent RPM will be displayed.
equivalent RPM will be displayed.
Note: The displayed RPM value is only accurate if the motor has the number of
poles indicated. The number of poles only matters if you want the RPM
value to represent the mechanical operation. If you are not sure how many
poles your motor has, then you can determine this by leaving the % Drive
where it is, setting the speed to zero, and count the number of Step button
clicks it takes to make one full motor revolution. Divide this number by
three, that is the number of poles.
value to represent the mechanical operation. If you are not sure how many
poles your motor has, then you can determine this by leaving the % Drive
where it is, setting the speed to zero, and count the number of Step button
clicks it takes to make one full motor revolution. Divide this number by
three, that is the number of poles.