3. BLDC commutation principle without Hall sensor

To understand this chapter, it is best to be familiar with the content of Chapter 2. Thanks for the special documentation of the punctual atomic motor tutorial.

1. What is Hallless BLDC?

@1. As the name suggests, the brushless DC motor does not have a Hall sensor.

@2. The BLDC control with Hall is called sensory square wave control, and the BLDC control without Hall is called non-inductive square wave control.

2. Introduction to the non-inductive drive mode of brushless DC motor

@1. The working principle of the brushless DC motor must have the information of the rotor magnetic field position, which can control the on/off of the inverter power device to realize the commutation of the winding. However, in practical applications, it is found that installing a rotor position sensor inside the motor has the following problems:

In some harsh working environments such as high temperature, low temperature, high vibration, humidity, dirty air and high interference, the reliability of the system is reduced due to the existence of the position sensor.

The position sensor has many electrical connecting wires, which is not easy to install, and it is easy to introduce electromagnetic interference.

The installation accuracy of the sensor directly affects the running performance of the motor. Especially in multi-pole motor installation accuracy is difficult to guarantee 4) The position sensor occupies the structural space of the motor, which limits the miniaturization of the motor.

Therefore, the sensorless driving method has become a new technology development direction. Although the control accuracy will be reduced, the motor has the advantages of simple structure, strong anti-interference ability, and small size.

@2. There are many ways of non-inductive detection. Here we mainly use the back EMF zero-crossing detection method. Its main core is to judge the current position of the rotor by detecting the zero-crossing point of the counter electromotive force of the stator winding. Compared with the one with Hall, the motor lead wire becomes 3 and the volume becomes smaller.

3. The principle of back electromotive force control BLDC motor

@1. The brushless motor running in the three-phase six-state 120° energization mode always works with two-phase energization at any time, and the other phase winding is floating and non-conductive. At this time, the terminal voltage (from the end of the winding to the DC ground) or the phase voltage (from the end of the winding to the center point of the three-phase winding) of the non-conductive winding reflects the induced electromotive force (BEMF, BackElectromotiveForce) of the phase winding ). The BEMF waveform of a BLDC motor varies with the position and speed of the rotor, and overall it appears as a trapezoid. Figure 25.1.1.1 shows the waveforms of the current and back electromotive force during one electrical cycle of the motor rotation, where the solid line represents the current, the dotted line represents the back electromotive force, and the abscissa is the electrical angle of the motor rotation, according to the "six-step commutation" of BLDC Control theory, we know that at any time three-phase BLDC has two other phases powered on, the other phase is open, and two of the three phases are turned on. There are 6 combinations in total, which change every 60° in a certain order, thus generating a rotating magnetic field. Pull the permanent magnet rotor to rotate accordingly. The 60° here refers to the electrical angle, and one electrical cycle may not correspond to a complete mechanical rotation cycle of the rotor. The number of electrical cycles repeated to complete one mechanical revolution depends on the number of pole pairs of the rotor. Each pair of rotor poles needs to complete one electrical cycle, so the number of electrical cycles/rev is equal to the number of pairs of rotor poles.

The key to controlling BLDC is to determine the timing of commutation. It can be seen from the above figure that the point where the magnetic pole of a back electromotive force changes in the middle of every two commutation points, that is, the point where the back electromotive force changes from positive to negative or from negative to positive, is called a zero-crossing point. Utilizing this characteristic of the back electromotive force, as long as the passing part of the back electromotive force can be detected accurately, and it is delayed by 30°, it is the time for phase commutation.

@2. The method of counter electromotive force detection

It can be seen from Figure 25.1.1.1 that every time the back EMF zero crossing occurs in the phase that is not energized. For example, within the first 60° in Figure 25.1.1.1, the current of phase A is positive, the current of phase B is negative, and the current of phase C is zero, which means that the motor AB phase is energized, the current flows from phase A to phase B, and phase C is open circuit . The zero-crossing point of the back EMF occurs exactly in phase C. And because the C phase is not energized and has no current, its phase voltage has a direct correspondence with the counter electromotive force.

Among the many methods for detecting the position of the rotor, the back electromotive force detection method is the most mature and widely used method. This method is simple, reliable and easy to implement. It is a common shortcoming of all back EMF methods. 2. The voltage comparator is very sensitive to burrs and noise in the detected signal. However, the current counter electromotive force zero-crossing detection method is still the most mature technology applied in the current non-inductive control, and this technology is also used in actual use to realize the non-inductive drive. So how should we detect the zero crossing? And how to judge the current rotor position through the zero-crossing signal?

@3. Comparator mode sampling zero-crossing signal

Due to the wye connection of the BLDC motor, all three phases are connected to a common neutral point, and the phase voltages cannot be directly measured. It can only measure the terminal voltage of each phase. Usually, when the terminal voltage of the non-energized winding is used for sensorless control, it is called the terminal voltage method, that is, the voltage of each phase to the ground, and then compared with the neutral point voltage. When the terminal voltage is greater than The neutral point voltage becomes smaller than the neutral point voltage, or changes from being smaller than the neutral point voltage to greater than the neutral point voltage, which is the zero crossing point. as the picture shows.

However, the general BLDC motors do not have external leads for the neutral point, so the neutral point voltage cannot be directly measured. The most direct way to solve this problem is to reconstruct a "virtual neutral point", which is formed by connecting the three-phase windings to a common point through voltages with equal resistance. This common point is the virtual neutral point, as shown in Figure 25.1 .3.1(B). The zero-crossing signal can be obtained by comparing the neutral point signal with the UVW signal through a comparator. The use of comparators for external hardware comparisons is widely used because of its robustness.

@4. Establishment of closed loop

The back EMF of each phase has two zero-crossing situations: from positive to negative and from negative to positive. There are six zero-crossing situations in the three phases corresponding to six commutation states, and this correspondence is fixed. So we can write this corresponding relationship into a table. Every time a zero-crossing point is detected in the program, the corresponding IO output state is determined by looking up the table, and which two phases are energized in the next step; then switch to the current disconnected phase to continue detection The back electromotive force crosses the zero point, and so on, until a stable closed loop is established. The following figure is the truth table of the winding conduction corresponding to the zero-crossing signal combination of the brushless motor in our shop:

Suppose the Hall sensor ZERO_U value is bit2 high, ZERO_V value is bit1, ZERO_W value is bit0.

Motor positive conversion value: V+U- W+U- W+V- U+V- U+W- V+W-

Corresponding forward rotation Hall value: 2 3 1 5 4 6

Motor reverse direction value: V+U- V+W- U+W- U+V- W+V- W+U-

Corresponding to reverse Hall value: 3 2 6 4 5 1

Make a mapping table and match the commutation table mentioned in the previous chapter with this chapter.

Theoretically, the zero-crossing point is always 30° electrical angle ahead of the commutation point. Therefore, after detecting the zero-crossing point, it is necessary to delay 30° electrical angle before commutating. However, in the process of closed-loop speed regulation, the time for the motor to rotate one electrical cycle is not fixed, so it is impossible to predict how long the next 30° electrical angle will be after the zero-crossing point is detected. So how to determine the delay time after the zero crossing is detected? Although it is impossible to predict how long the next 30° electrical angle will be, the last commutation cycle that has just passed, that is, the length of the 60° electrical angle between two commutation points can be measured. Therefore, an approximate method can be adopted, that is, the time of the last commutation cycle, that is, the time of 60° electrical angle is halved, as the delay time of the next 30° electrical angle. This method is feasible, because the speed of the motor changes gradually, and the time difference between two adjacent commutation cycles will not be very large. Since the back electromotive force of the stator winding is proportional to the speed of the motor, the back electromotive force of the motor is zero when the motor is stationary or the back electromotive force is very small at low speed. At this time, the position of the rotor magnetic pole cannot be determined according to the back electromotive force signal, so the back electromotive force method needs to use a special Starting technology, accelerate from a standstill until the speed is large enough, when the back electromotive force detects a zero-crossing signal, then switch to the running state of the brushless DC motor. This process is called "three-stage" starting, which mainly includes three stages of rotor pre-positioning, acceleration and operating state switching. This can not only make the steering of the motor controllable, but also ensure that the motor can be switched after reaching a certain speed, thus ensuring the reliability of starting. Now let us introduce the BLDC square wave startup technology.

The non-inductive square wave starting technology will be introduced in the following chapters. This chapter only introduces the commutation principle of zero-crossing detection of back EMF without Hall sensor.

@5. Realize closed-loop commutation on software

const vu8 PMS_Config[]={0x80,0x9f,0xb7,0x9f,0xbd,0xbd,0xb7,0x80};

const vu8 PXC_Config[]={0xc0,0xc4,0xc1,0xc1,0xd0,0xc4,0xd0,0xc0};

The 2 lines of code excerpted above are the core commutation algorithm, which maps the value of the zero-crossing detection point, the commutation table and the conduction relationship of the upper and lower bridge arms. Forward commutation is described as follows

2         V+U-         PMS_Config[2]:0xb7, PXC_Config[2]:0xc1:V+U-

3         W+U-         PMS_Config[3]:0x9f, PXC_Config[3]:0xc1:W+U-

1         W+V-         PMS_Config[1]:0x9f, PXC_Config[1]:0xc4:W+V-

5         U+V-         PMS_Config[5]:0xbd, PXC_Config[5]:0xc4:U+V-

4         U+W-         PMS_Config[4]:0xbd, PXC_Config[4]:0xd0:U+W-

6         V+W-         PMS_Config[6]:0xb7, PXC_Config[6]:0xd0:V+W-

Through the above analysis, the ZeroData value of the zero-crossing monitoring point corresponds to the subscript value of the commutation table array. Only the software implementation methods of PMS_Config[ZeroData] and PXC_Config[ZeroData] are needed to realize the forward commutation.

Next, let’s look at the analysis of the motor’s reverse steering software algorithm:

3         V+U-         PMS_Config[2]:0xb7, PXC_Config[2]:0xc1:V+U-

2         V+W-         PMS_Config[6]:0xb7, PXC_Config[6]:0xd0:V+W-

6         U+W-         PMS_Config[4]:0xbd, PXC_Config[4]:0xd0:U+W-

4         U+V-         PMS_Config[5]:0xbd, PXC_Config[5]:0xc4:U+V-

5         W+V-         PMS_Config[1]:0x9f, PXC_Config[1]:0xc4:W+V-

1         W+U-         PMS_Config[3]:0x9f, PXC_Config[3]:0xc1:W+U-

From the above correspondence, the zero-crossing detection value ZeroData has no direct connection with the commutation table, so we need to create a mapping table, C_HL_HallSign[] = {4,3,6,2,5,1,4, 3}; PMS_Config[ C_HL_HallSign[ ZeroData ] ], PXC_Config[ C_HL_HallSign[ ZeroData ] ] . This corresponds to the commutation table.

Guess you like

Origin blog.csdn.net/qq_27568125/article/details/126639662