Start your BLDC journey with motor startup (Part II): Choosing your parameters

In Part I of this blog series, we talked about ‘blind’ startup . ‘Blind’ startup is a very practical method to spin up the motor, especially for those applications where load conditions are predictable. However, in order to cover a wide range of motors and applications, several parameters need to be properly selected to optimize the startup performance. Here are the details:

Parameter 1: Open to closed loop threshold. (Op2ClsThr)

Example: Motor A is for a vacuum cleaner, which runs up to 60,000rpm (4pole, 2000Hz). The BEMF of this motor is 5mV/Hz. Motor B is for a ceiling fan, the maximum speed of which is 150rpm (8pole, 10Hz). The BEMF of B motor is 1V/Hz.

We need to set Op2ClsThr for motor A around 200Hz because it generates 1V BEMF at 200Hz for closed-loop control. We don’t want to set Op2ClsThr for motor B at 200Hz because it never reaches that high. It’s a better choice for motor B to be 1Hz or 1.5Hz.

If you have a closed-loop control method that only requires very little BEMF information, you can consider handing off the control to closed loop at lower speed.

Parameter 2: Align time (AlignTime)

The motor could stop at any position before the next startup. The ‘blind’ startup often fails to spin the motor at certain ‘bad’ initial positions because they are unknown. This is why we need initialization.

Before we apply the sinusoidal current to the motor phases, we can initialize the motor by driving a DC current with a fix state (from U to V, for example) for a period of time and make sure the motor has settled at the fixed known position. This method is known as ‘align and go.’

As a result of the alignment, the next step, the acceleration, starts with a fixed known position. This technique significantly improves the startup reliability because it gets rid of the uncertainty of initial position of the motor.

The align time needs to be long enough to make sure the motor will settle down at the expected position no matter where it initially was. However, there is a small chance that if the motor’s initial position is opposite to (180 electrical degree away from) the align position. In this condition, no matter how long we practice the alignment, the rotor will not move.

Here are two solutions:

1) Dual-align: Practice the alignment twice with 120 degree (or any degree except 0 or 180) apart from each other. If the motor is dropped at the unfortunate position before the first alignment, the second alignment will definitely drag it to the second align position.

2) Dynamic align:

Instead of practicing the alignment at the fixed position; slowly move the position while doing the alignment.

This action can be combined with the acceleration, so that we can achieve a smoother and more reliable startup.

Parameter 3: Motor acceleration rate. (A1)

Motor driving torque needs to provide acceleration momentum, overcome shaft friction and any other load.


Td = A1*J + Tf

Td = Kt*Ip*cos(Ө)

So, A1 < Kt*Ip / J


A1: Acceleration rate

Tf: Motor load torque

J: Motor inertial

Td: Motor driving torque

Ө: Angle between combined 3-phase current and rotor position

Kt: Motor torque constant

Ip: Motor phase current peak

A bigger inertial motor requires slower acceleration rate; a smaller Kt motor requires slower acceleration rate; a higher driving current can support faster acceleration rate. If Kt*Ip > Td, Ө will automatically increase from 0 to less than 90.

Parameter 4: Second order acceleration (A2)

The second order acceleration is to generate the dynamic alignment and the acceleration profile (parabola curve). If the motor has gone through IPD or alignment before startup, second order acceleration is not necessary.

Parameter 5: Startup current

Startup current is the current applied during the ‘blind’ operation period. If the ‘blind’ startup acceleration rate has been selected, the startup current will not affect the startup time. But smaller startup current will have more change to cause startup failure. On the other hand, if low startup current is requested by application, we need to slow down the acceleration rate to insure reliable startup.There are several disadvantages to ‘blind’ startup.

1) Startup is slower than closed loop method.

In order to achieve a 100% startup success rate, the acceleration rate needs to satisfy the equation: A1 < Ip*Kt / J with a large margin because the controller doesn’t know whether or not the motor is out of phase (motor fails to follow the driving speed). If anything disturbs the motor spinning, the controller is not able to and is not trying to correct the motor out of phase condition. For example, shaft friction is a little higher than other motors because of assembly, or if the motor is not completely stopped and is moving in reverse when the controller tries to spin it up.

2) It works only with the predictable load.

For shavers, hair trimmers and toys, the load can change a lot depending on how the customer uses it.

3) It requires different parameters for different motors and applications.

Customers need to understand the load condition and tune the controller to fit every particular application.

All in all, ‘blind’ spin up is a practical method for fans, pumps and other types of motors with predictable load.

The drawback of ‘blind’ spin up is that the motor may start with back and forth; the aesthetics aren’t desirable if the motor blades are exposed to customers (for example ceiling or pedestal fans. Also, for applications where reverse spinning is prohibited (for example HDD motor or VCM) you should not choose ‘blind’ spin up. Initial position detect (IPD) method can avoid the reversing or back and forth during startup. Check back for part III of this series, which will cover the principle of IPD, the typical implementation of IPD and the how to select the IPD parameters.


Read part I of this blog series

  • Hello

    I am also a beginner. The motor after alignment will be at different positions because you have more than 2 poles (probably...).If you have an 8pole=P  motor than you have P/2 = 4 zones where it iposition is possible depending on the past history.

    The start up motor current should be limited to your motor specification.If your motor phase resistance is for example 2 Ohm and your max motor current is 2 A  than you allow only Rphase/2*Imax = 2V  for low frequency voltage.To make this from 24V  your PWM cycle has to be for example around 10%.>>2.4V.

    So the message is to start with a low duty cycle and measure the motor current.The inductance of the motor will filter the PWM  frequency. .

    May this help you...

  • Hi,

    I am newbie on motor drive and I want to develop BLDC motor driver software slowly. I want to single align before the open-loop motor control but I did not understand completely. As you said, for example, I apply voltage to my 24V BLDC motor in the form of U+ V-. But instead of being locked in one position, the rotor constantly stays in different positions and starts to draw very high currents. I would be very grateful if you could explain to me the single align logic and how to apply it in detail...