Motor FOC Control Basics

Publisher:SerendipityJoyLatest update time:2023-09-06 Source: elecfansKeywords:Motor Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Next, the implementation process of the entire logic is introduced. First, the voltage vector is constructed. Here, the half-bridge MOS circuit state shown in the figure below is used for analysis. The upper bridge arm of group a is on, and the lower bridge arm of groups b and c is on. At this time, the equivalent circuit is shown in the upper right figure below. Through circuit analysis, the relationship between the three-phase voltage and the power supply voltage can be obtained. Considering the distribution of the three-phase windings in space, they are represented in a six-part circle, as shown in the lower right figure. Then, vector synthesis is performed, and it is not difficult to obtain the synthesized voltage vector size (Vdc) and direction (-->A).

picture

Then, using the same method, we analyze different half-bridge MOS circuit states and get another 7 voltage vectors. The 2 voltage vectors constructed by the upper bridge arm a, b, c or lower bridge arm full pass of our half-bridge MOS circuit are called zero vectors, and the other 6 groups are called basic vectors. As shown in the figure below:

picture

At the same time, in order to facilitate the quick memory of the half-bridge MOS circuit state corresponding to the space vector, we use the following naming method: 1 means the upper bridge arm is on and the lower bridge arm is off; 0 means the upper bridge arm is off and the lower bridge arm is on; and the subscript of V is converted from the three groups of half-bridge MOS circuit states (1/0) to a 3-bit binary number converted to decimal. For example, 100 means the upper bridge arm of group a is on and the lower bridge arm is off, and the upper bridge arm of groups b and c is off and the lower bridge arm is on. The binary number 100 is converted to decimal as 4, that is, the subscript of V is 4, that is, V4, and so on, as shown below:

picture

We call the space between two adjacent basic voltage vectors a sector, so there are 6 sectors. The voltage vectors are constructed above, and then we can use them as basic vectors to synthesize any vector. So how to use these vectors to synthesize Vref? It depends on which sector Vref is in.


Of course, no matter which sector Vref is in, the method used is to select two adjacent basic voltage vectors and the zero vector in the sector, and synthesize any voltage vector in the sector according to the volt-second balance principle, that is:

picture Note: The sources of the materials cited are not unified. In this article, V and U are equivalent, both represent voltage, and the text is written in V.

Assume that V determines the running time of V4, V6, V0, and V7 within a PWM cycle T, but what is the order in which they run? Now the key is how long do V4, V6, V0, and V7 run within a PWM cycle T?

picture

According to the volt-second balance principle: Vref = (T4/T)V4+ (T6/T)V6+ (T-T4-T6/T)(V0&V7), as shown below:

picture

Decompose the Uref projection into the directions of U4 and U6, and according to the sine theorem:

picture

From this we can know that the values ​​of T4, T6, T0, T7 depend on the values ​​of Vref, Vdc and θ, where Vdc and θ can be obtained in real time by sensors and can be regarded as known quantities, so the key lies in Vref. As mentioned earlier, Vref can be used to synthesize Vα and Vβ. In this way, through Vref, the relationship between T4, T6, T0, T7 and Vα and Vβ can be established, according to the following analysis:

picture

We can get:

picture

In this way, we can obtain T4, T6, T0, T7 according to Vα, Vβ (SVPWM input) and Vdc. The above is an example of Vref in sector I. In order to reuse the above conclusions in other sectors and simplify the expression, we can define three variables:

picture

This way we can get the time for each sector as follows:

picture

In this way, the running time of U4, U6, U0, and U7 in a PWM cycle T is determined, but what is the order in which they run? In theory, any order is fine, but in practice, more restrictions need to be considered. For example, MOS tubes have switching losses, so it is hoped to minimize the number of switching times of MOS tubes. Based on this purpose, the order is designed as follows:

picture

Pay attention to the design of the execution sequence. Only one set of half-bridge MOS circuit states is changed each time, and it starts from 000 and returns to 000 at the end. That is, each PWM cycle can return to the initial state at the end, which will not affect the execution sequence of the next PWM cycle. In addition, by inserting two zero vectors at reasonable positions, they are evenly distributed in time, so that the generated PWM is symmetrical, which can effectively reduce the harmonic components of PWM. Using the same method, it is not difficult to obtain the switching timing of 6 sectors, as shown below:

picture

Of course, for the synthesis of Vref mentioned above, we need to know in which sector Vref is located. How to judge it specifically? It is not difficult to associate it with the linear programming learned in high school. V1V6, V3V4, V2V5 are regarded as three straight lines, and α and β are used to represent the equations of these three lines. Then we have:

  • Line V3V4: β = 0,

  • Line V2V5: β = -sqrt(3)*α,

  • Line V1V6: β = sqrt(3)*α

picture

In order to easily determine which sector Vref is in, we use the three straight line equations to make

  • X = β,

  • Y = sqrt(3)*α + β,

  • Z = sqrt(3)*α - β,

Therefore, the Vref coordinates (α, β) can be substituted into X, Y, Z, and the position of Vref can be determined based on the positive and negative values ​​of X, Y, and Z. Taking Vref in sector 1 as an example, it is not difficult to find that based on X and Z, it is obvious that X needs to be greater than 0 and Z also needs to be greater than 0, as shown below:

picture

Using the same method, we can get the judgment conditions for other sectors:

picture

So far, we have basically introduced SVPWM. There is still a lot of content, but it is not difficult to understand if you grasp the overall logic. If you have read this carefully, you can jump to the end of the article to see how the three groups of PWM execution a, b, and c are implemented. Review the entire logic of SVPWM:

  • Control the states of 3 groups of half-bridge MOS circuits --> Construct 6 basic voltage vectors and 2 zero vectors;

  • Any vector can be synthesized by using the basic voltage vector and the zero vector as the base vector, and the action time of each base vector can be obtained according to the volt-second balance principle;

  • According to the basic vectors (V0~V7)--> Vref <-- Vα, Vβ, it can be known that Vα, Vβ, Vdc are used to represent the action time of each basic vector;

  • The action times of several basic vectors are reasonably arranged to obtain the duty cycle (PWM) acting on the three groups of half-bridge MOS circuits a, b, and c.

4 Conclusion

The above article introduces the key knowledge of the FOC control method. Once you have mastered this knowledge, you will be able to grasp the overall logic of the FOC control method, understand the code or model of the FOC control method, and finally connect this knowledge in your mind with the help of the following figure.

picture

5 Easter Eggs

After sorting based on SVPWM, we get the PWM waveform. There is a question: from 000 to 100, how do we determine the execution switch? From the figure, it is executed after T0/2 time, but how do we know? What is the principle?

picture

Next we will explain this problem. First, define three time variables Ta, Tb, Tc:

picture

picture

By comparing these three time variables with a triangle wave, the algorithm can switch accurately at the specified time, but this triangle wave needs to be an isosceles right triangle, that is, the height is half of the base, and the height represents half a PWM period, that is, Ts/2. Naturally, the base is 1 PWM period, that is, Ts.

picture

Next, let’s use the following figure to understand the principle of switching by comparing these three time variables with a triangle wave.

picture

  • When the triangle wave generator starts to generate, after t=T0/2 time, that is, Ta, the next moment means t>Ta, then at t=Ta, it starts to switch from 000 to 100, that is, group a of half-bridge MOS tubes switches from upper bridge arm off and lower bridge arm on to upper bridge arm on and lower bridge arm off.

  • As time t=Tb, the next moment means t>Tb, then at t=Tb, it starts to switch from 100 to 110, that is, group b of half-bridge MOS tubes switches from upper bridge arm off and lower bridge arm on to upper bridge arm on and lower bridge arm off.

  • According to this logic, at the moment t=Tc, the circuit switches from 110 to 111, that is, the c group of half-bridge MOS tubes switches from the upper bridge arm off and the lower bridge arm on to the upper bridge arm on and the lower bridge arm off.

  • Finally, after t=Ts/2 time, the triangle wave reaches its peak.


When the triangle wave reaches its apex, it then decreases from the apex to 0. It is not difficult to understand that it will switch from 111 to 110 at t=Ts-Tc, switch from 110 to 100 at lt=Ts-Tb, and switch from 100 to 100 at t=Ts-Ta. Therefore, through comparative analysis of the entire process, we can understand the principle of switching by comparing three time variables with a triangle wave, as shown below:

picture

This article ends here. I hope the next article will introduce the complete motor control method in combination with the motor map.


[1] [2]
Keywords:Motor Reference address:Motor FOC Control Basics

Previous article:Analysis of low-cost FOC control solution
Next article:The concept and principle of brushless DC motor control

Recommended ReadingLatest update time:2024-11-16 11:51

[STM32 Motor FOC] Record 15 - TIM input capture
Input capture principle and configuration steps   1. Input Capture Concept   STM32 input capture, in simple terms, detects the edge signal on TIMx_CHx (channel X of timer X), and when the edge signal changes (such as rising edge/falling edge), stores the current timer value (TIMx_CNT) in the capture/compare register (
[Microcontroller]
[STM32 Motor FOC] Record 15 - TIM input capture
AVR446_Linear speed control of stepper motor Stepper motor curve analysis
                      1.1. MCU code processing // Define the timer pre-scaling, the actual clock frequency of the timer is: 72MHz/(STEPMOTOR_TIMx_PRESCALER+1) #define STEPMOTOR_TIM_PRESCALER 3 // Stepper motor driver subdivision setting: 32 // Define the timer period, set the output comparison mode
[Microcontroller]
AVR446_Linear speed control of stepper motor Stepper motor curve analysis
Latest Embedded Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号