This website uses cookies primarily for visitor analytics. Certain pages will ask you to fill in contact details to receive additional information. On these pages you have the option of having the site log your details for future visits. Indicating you want the site to remember your details will place a cookie on your device. To view our full cookie policy, please click here. You can also view it at any time by going to our Contact Us page.

Sensorless Control of a Brushless DC Motor (Part 2)

Author : Daniel Torres, Microchip Technology Inc.

16 April 2010

Digital signal controllers make it possible to meet motor torque and speed demands without employing rotor position sensors.

Fig 4: Six sample window updated according to BEMF Signal
Fig 4: Six sample window updated according to BEMF Signal

Implementing the algorithm
The first task is sampling the BEMF signals. To achieve this, the DSC’s ADC is configured in such a way that it simultaneously samples the BEMF signals at a sampling rate equal to the DSC’s Pulse-Width Modulator (PWM) reload frequency. Hence, the ADC is synchronised with the PWM reload event.

The ADC samples at the PWM ON time, with the purpose of avoiding the ringing noise produced by the electronic switches. The point at which the signals are sampled is variable across the PWM ON time, depending on the motor speed.

The motor neutral point is then reconstructed and compared to the BEMF signals. The produced signals with these software comparisons still have some noise, which will be filtered out using a majority function.

Digital filter: the majority function
This BEMF filtering method is a non-linear digital filter called a majority function. The majority function is a Boolean function that takes a number of binary inputs and returns the value that is most common among them. It can be expressed as follows:

Majority = (A^B)v(A^C)v(B^C)

The first stage of the majority-function filter is achieved by two logic operations; the first operator (AND) detects the active BEMF signal. The second operator (XOR) detects the falling and rising edges on the active BEMF signal. The output of these two operations is called the “active-masked BEMF” signal.

The active-masked BEMF signal is then filtered using the majority-detection filter. This filter is implemented with an array compounded by 64 values and a special logic test condition, which is used to modify the pointer of the next data value.

There are 64 values that represent the 26 possible combinations that the six-sample window could have for the active-masked BEMF signal. Each value in the look-up table is a pointer to the next possible six-sample window. Figure 4, below, shows how the six-sample window is updated according to the BEMF signal.

The filter is always looking for a true-to-false change at the output of the logic test condition. If this true-to-false condition is detected, the filter looks for three consecutive false states to validate that a zero-crossing event occurred. A true-to-false condition at the output of the logic test condition represents a commutation on the motor; hence a new BEMF signal is then monitored.

There are 16 unique index values that represent the true-to-false condition. These values are 24, 25, 26, 28, 40, 41, 42, 44, 48, 49, 50, 52, 56, 57, 58 and 60. These unique values are replaced by 1, in order to indicate that a true-to-false condition occurred.

Sixteen unique values are selected using the following majority-function criteria. A number is a unique value when its binary representation contains a majority of one in the three most significant bits, followed by a majority of zeros.

The 48 remaining numbers are pointers to the unique values, in case a true-to-false condition occurs. There are some values that never point to any of the unique values because they are not multiples of any of the 16 unique numbers. Those numbers are then pointed to their multiples and trapped into a loop in such a way that the filter is waiting for a new value that points to one of the 16 unique numbers. Figure 5, below, shows a block diagram of the complete majority filter.

An interesting property of BLDC motors is that they will operate synchronously, to a certain extent. This means that for a given load, applied voltage and commutation rate, the motor will maintain open-loop lock with the commutation rate; provided these three variables do not deviate from the ideal by a significant amount. In real implementations, Proportional Integral and Differential (PID) control loops are utilized to control these variables.

Powerful and cost-effective DSP engines have made it possible to efficiently control the torque and speed demands in sensorless applications. digital signal controllers are very well-suited in applications where efficiency, high performance and cost are key requirements.


Contact Details and Archive...

Most Viewed Articles...

Print this page | E-mail this page