Space Vector Modulation (SVM) for Motor Control

Implement algorithms for controlling AC motors using space vector pulse-width modulation

Space vector modulation (SVM) is a common technique in field-oriented control for induction motors and permanent magnet synchronous motors (PMSM). Space vector modulation is responsible for generating pulse width modulated signals to control the switches of an inverter, which then produces the required modulated voltage to drive the motor at the desired speed or torque. Space vector modulation is also known as space vector pulse width modulation (SVPWM). You can use MATLAB® and Simulink® to implement space vector modulation techniques or leverage prebuilt SVM libraries for motor control applications.

SVM Objective

Consider the concept of space vector modulation for motor control on a three-phase inverter with six switches represented by the following equivalent circuit. Note, there are eight valid switching configurations.

Three-phase inverter circuit connected to the stator windings of a motor.
* The states of switches S2, S4, and S6 are complimentary to S1, S3, and S5 respectively.

Each switching configuration results in a specific voltage applied to the motor terminals. The voltages are basic space vectors and represent their magnitude and direction in a space vector hexagon.

Space vector hexagon with basic vectors U1-U8.

Three-phase inverter circuit connected to the stator windings of a motor.

The switching states that correspond to the basic space vectors (for direction) and the null vectors (for magnitude) are combined to approximate a voltage vector of any magnitude, at any position, within the space vector hexagon. For example, for every pulse width modulation (PWM) period, the reference vector ‘Uref’ is averaged by using a switching sequence of two adjacent space vectors (U3 and U4 in the figure) for a specified duration of time and a null vector (U7 or U8) for the rest of the period.

By controlling the switching sequence, and consequently the ON time duration of pulses, any voltage vector with varying magnitude and direction is achievable for every PWM period. The objective of space vector modulation technique is to generate switching sequences that correspond to the reference voltage vector for every PWM period to achieve a continuously rotating space vector.

Illustration of a rotating reference space vector.

SVM Operation

The space vector modulation technique operates on the reference voltage vector to generate appropriate gate signals for the inverter every PWM period, with the objective of achieving a continuously rotating space vector.

Illustration of field-oriented control architecture with space vector modulation.

Block diagram illustrates one example of a space vector modulation workflow.

For every PWM period, with voltage vector as input reference, the SVM algorithm:

  • Calculates on- and off-gating times based on the reference voltage vector
  • Uses gating times to generate the double hump modulation waveforms
  • Uses gating times to generate appropriate gate pulses for the inverter switches

Space vector modulated voltage signals generated by SVM algorithm.

The nature of the generated modulation wave with a double hump maximizes the utilization of the available DC bus voltage. This provides a better rated voltage output when compared with Sinusoidal Pulse Width Modulation (SPWM) technique.

Gate pulse generation as a result of comparing the modulation wave and the carrier wave.

You can then apply the generated gate signals to the switches of the three-phase inverter to drive the motor at the desired speed or torque.

PWM Hardware Support

Hardware boards, such as Arduino®, Raspberry Pi™, and TI boards, generate gate pulses to drive the power inverter by receiving the modulation waveforms.

To learn more about implementing field-oriented control with SVM on TI hardware, watch this video: Field-Oriented Control of PMSMs with Simulink, Part 3: Deployment (4:52).

Motor control algorithms with PWM techniques employed typically require execution at higher frequencies in the order of few kHz depending on the design requirements. It is important to evaluate the correctness of the control architecture early, before committing to the expense of hardware testing. One such approach is to use a simulation environment. For example, with Simulink, you can simulate and verify the control architecture, including pulse width modulation techniques such as space vector modulation, against a modeled motor and rectify errors at an early stage.

To use SVM in Simulink, refer to Space Vector Generator block.

To learn more about how to design and implement motor control algorithms see, Motor Control Blockset and Simscape Electrical.

Get a Free Trial

30 days of exploration at your fingertips.