INTRODUCTION
In this module of the 3-Phase PMSM Control Workshop with NXP's Model-Based Design Toolbox , the focus is on the Space Vector Modulation (SVM) technique needed for generating the appropriate PWM commands for the 3-phase inverter used for controlling the speed and position of PMSM's rotor.
The goal of this article is to explain step-by-step all the aspects related with power conversion from DC bus voltage to AC phase voltages that are fed to motor windings and cause the motor to spin.
So far in Module 2: PMSM and FOC Theory and Module 3: System Partitioning we have discussed about Field Oriented Control (FOC) as the main control structure for generating the control quantities that drives the rotor in any position we want. Now, in this module we will focus on methods to convert the digital information provided by FOC into actual voltages that can be applied to the PMSM windings as highlighted in Fig. 1.
Fig. 1: Space Vector Modulation output stage of Field Oriented Control |
Video training: How To Use Space Vector Modulation (SVM) to Control a PMSM | ||
---|---|---|
(view in My Videos) | ||
Please watch this video before going further. The rest of the article is a summary of the video.
COMMUTATION USED FOR PMSM
In case of PMSM that are controlled with Field Oriented Control, all three phase windings can conduct current at all times. The only constraint is that the sum of all phase currents must NULL, or putted in other words, the phase currents should form an isolated symmetric 3-phase system.
Using three pairs of switches connected to a voltage source, we can control the current's flow and the magnitude by switching ON or OFF the transistors as shown in Fig 2. The selection of switches ON/OFF state, will determine the current sense, and the time while the which is connected to actual power source will determine the magnitude of the currents that flow thru the windings.
Fig. 2: Commutation principle for 3-phase AC motors |
Note: when we talk about "switch" we refer to an integrated device that contains one transistor (e.g.: MOSFET, IGBT) and one anti-parallel diode. The role of diode is essential in motor control applications due to the nature of the load: inductive
Since the load is inductive, there are times when the transistor must be turned ON while the current flows in the opposite direction. Since the MOSFET can carry only positive current (from drain to source), the diodes give a path for the current to flow. Without the diode the inductive current with stop instantly, generating high voltage peaks that may damage the transistor.
Each pair of switches will be controlled in complementary mode – meaning the switches can’t be ON in the same time. In general as a precaution, to avoid any accident like short-circuit, there is a small period of time referred as dead-time when both transistors are OFF.
BIPOLAR vs. UNIPOLAR MODULATION
Lets start with a simple use-case: the single-phase inverter as the one shown in Fig. 3. In general, to control the voltage applied on an inductive load, a single phase inverter made up of 2 pairs of switches (also referred as legs) is used. The voltage on the load (the green arrow) is defined based on the Kirchhoff circuit law as the difference of terminal voltages.
Fig. 3: Single-phase inverter schematic |
Since we have four switches, we will have four possible combinations of those and three possible values for the voltage applied on the load as shown in Table 1.
Table 1: Single phase modulation |
Depending on how we choose to control the switches, we can have two types of PWM modulations:
The main differences between BIPOLAR and UNIPOLAR commutations are highlighted in the Fig.4. On the left, we have the load voltage and current variation for bipolar case while on the right hand side we have the same quantities but this time for unipolar commutation method.
Fig. 4: Bipolar vs. Unipolar Modulation technique comparison |
The bipolar modulation is quite simple and the logic to implement such method is elementary. All we need is a carrier signal, usually a sawtooth signal that is compared against the signal waveform you wish to obtain. The values obtained after comparison are used to control the top and bottom switches that forms one inverter leg. Since the control pulses varies in width – hence the name of Pulse Width Modulation (PWM).
In case of unipolar modulation, the logic to generate such signals looks similar, the only difference being the fact that we need to add a second reference source to control the switches on the second inverter leg. Usually this second reference signal is phased out with 180 degrees compared with the source for the first inverter leg.
In Fig. 5, we have an example of switching commands for bipolar (on the left hand side) versus unipolar (on the right side) commutation methods in case of 10 Hz sinusoidal waveform and a 1 kHz carrier signal.
Fig. 5: PWM generation for bipolar and unipolar modulation |
If we are going to apply these sets of PWM commands to control the voltage and current over an inductive type of load like PMSM windings we are going to obtain the variations shown in Fig. 6. Here you can clearly see the main differences between both commutation methods.
Note: All these waveform were obtained with Simulink models attached at the end of the article. Feel free to experiment with your own values for R & L
Fig. 6: Bipolar vs. Unipolar modulation results: voltage and current thru an inductive load |
As we can see there are a few fundamental differences between bipolar and unipolar modulation techniques:
The first notable difference is the current waveform that is much smoother in case of unipolar commutation than the corresponding one obtained with bipolar modulation. The fact that we apply a smaller effective voltage helps keeping the current ripple smaller and reduces the harmonics produced. As you can seen the current waveform resemble better the sinusoidal waveform in case of the unipolar modulation.
3-PHASE INVERTER
For PMSM control we will need to use a three leg inverter since we will have three motor terminals that needs to be supplied with power. The inverter is made of six switches that allows eight possible combinations (keep in mind that each pair of switches are controlled in complementary mode: when one is ON the other is OFF)
If we place a 3-phase symmetric load between the each leg mid-point we can build the Table 2 that summarize the sign and voltage level of each of the switching combinations.
Table 2: Terminal voltages in case of 3-phase inverter |
If Table 2, is confusing to you, lets draw the terminal voltage variation based on the switches gate commands as shown in Fig. 7.
If we start with a random sequence for top switches commands (ON-OFF-ON), as shown in Table 2 line 6, we see that the voltage sequence will be: positive for terminal A and C and negative for terminal B. Each time we have a top switch in conduction – meaning ON – the terminal voltage will be positive and vice versa when the bottom switch is ON the terminal voltage becomes negative.
Fig. 7: Gate commands and Terminal voltages in case of 3-phase Inverter |
The Fig. 8 shows the most important quantities we need to measure and control in case of PMSM:
Fig. 8: Voltage definitions used for 3-phase inverter |
SPACE VECTOR MODULATION
Instead of dealing with each motor phase separately as bipolar of unipolar modulation techniques in Space Vector Modulation (SVM) we are going to treat the three-phase PWM generation as a single task. Instead of generating three independent switching waveforms, we shall consider the three-phase inverter as one unit that can generate eight different switching states: a 3-dimensional Cartesian product of the two states on phase A, the two states on phase B, and the two states on phase C.
By combining Table 2 for terminal voltage values with the equations for line and phase voltages we can build Table 3 that covers all 8 possible combinations of switches.
Table 3: Space Vector Modulation commutation table |
This way we can build 6 unique vectors that covers all 360 degree circle and 2 additional zero combinations. Two of these states (0,0,0) and (1,1,1) represent zero instantaneous line-to-line voltages, and are often called the "zero" or "null" vectors. The remaining six states represent nonzero vector voltages applied across the motor terminals and splits the circle in 6 sectors.
As depicted in Fig. 9, we can compute any voltage vector magnitude and orientation with just 2 set of commutation sequence and one of the zero vectors.
Fig. 9: The "essence" of Space Vector Modulation - how to compute the actual voltage that need to be applied |
Assuming we want to create a new reference voltage vector Us in the first sector that is defined by U0 and U60 we need to:
We start by applying some amount of voltage for some time along one axis, then we move 60 degrees and apply some other amount of voltage and then nothing. Since we change the vectors so fast – much faster than the motor can react – the end result is and average voltage that the motor sees. The motor windings act like an low pass filter smoothing everything.
The sinusoidal PWM modulation has advantage in its simplicity however does not allow full utilization of DC bus voltage since it allows the phase voltage with maximum amplitude of half of the DC bus voltage. Since the line voltage is defined as phase to phase voltage difference you can easily see that the line voltage is lower than the DC-bus voltage although such voltage can be generated between the terminals.
Fig. 10: Sinusoidal modulation limitation |
To overcome this limitation and enhance the motor characteristics of speed and torque we are going to use a Modified Space Vector Modulation that can achieve full DC bus voltage utilization by continuously shifting up and down the 3-phase voltage system. This shifting is called 3rd harmonic injection and allows us to change the amplitude of the phase first harmonic by 15.5% which will allow us to get to higher speed region or deliver higher torque compared to sinusoidal PWM modulation.
Fig. 11: Third harmonic injection to increase the line voltage |
CONCLUSIONS
Using Space Vector Modulation we can translate directly the reference voltage from alpha-beta stationary frame into 3-phase command voltages using a simple approach that considers the inverter a single state machine capable of eight independent states.
For any voltage vector we want to achieve we can compute three periods that allows us to strictly apply three set of distinct voltages to the motor. The motor will integrate those signals resulting in a unique vector.
On top of standard SVM we can add the third harmonic injection in order to increase the available voltage available on motor terminals, extending this way the range of motor speed and torque.
Fig. 12: Inputs and outputs into Modified Space Vector Modulation |
In the next module we will implement and test and application using the practical aspects highlighted in this module.
We hope you find this information useful. Feel free to LIKE this article and comment below.
Update revisions:
March 18, 2019
May 06, 2020
Hi Dumitru,
Thanks for making me understand SVPWM.
Currently, I am working on overmodulation strategy using SVPWM. I am requesting you to give an insight of overmodulation strategy so that we would understand pros and cons of overmodulation from practical aspects.
I have a question regarding the output of GMCLIB_SvmStd_FLT1 block. Why output of this block is not a square wave with varying duty cycle? Why its output is standard wave form of SVM.
Hello vsingh.iitkgp@gmail.com,
So this block has the following outputs:
where:
So you can think of the block as this:
sector = GMCLIB_SvmStd_FLT(&Out, &In);
fltOut1 = Out.fltArg1;
fltOut2 = Out.fltArg2;
fltOut3 = Out.fltArg3;
in which Out is a struct of SWLIBS_3Syst_FLT type
I'm sorry I don't have more details on this matter, I can only point you to the AMMCLIB User guide for more details (you can find it in {INSTALL_ROOT}\mbdtbx_mpc574x\AMMCLIB_MPC574xP\doc\MPC574XPMCLUG.pdf.
Kind regards,
Razvan.