The basic premise of the sinusoidal drive is to provide each motor winding with currents that vary sinusoidally, based on the rotor position. These currents are phase-shifted by 120° from each other, relative to its corresponding Hall sensor. In BLDC motor control, the drive signals that are used require variable voltages that change with respect to the speed and position of the motor. This variable voltage is applied using the PWM technique. By providing sinusoid-based signals through the PWM modules to the MOSFET driver, the current is generated on each motor windings. Due to the gradual changing of the applied voltage, the sinusoidal drive's torque ripple is somehow lower in comparison with the trapezoidal drive.

In this application, the sinusoidal current drive is applied using data extracted from the Space Vector Pulse-Width Modulation (SVPWM) technique. This technique is widely used for digital implementation because of its higher efficiency and more sophisticated algorithm, over regularly applying an individual sinusoidal signal to the motor windings.

The SVPWM method is a vector-based scheme used in three-phase systems, such
as motor control applications. Rather than producing pure sinusoid waveform from the
drive signals for each motor terminals with respect to ground, SVPWM generates three
sinusoidal line-to-line voltage (differential voltage) between two terminals. A space
vector representation is created, where the spaces between unit vectors are separated by
60.0° correspond to every state in an electrical cycle, as shown in Figure 2-2. Each desired voltage can be simulated by adding the components
of two adjacent active vectors and null vectors represented by the `000`

and `111`

logic states (located at the origin). The resulting desired
voltage is represented by the manipulated duty cycle of PWM peripheral.

Table 2-1 provides the equation for the PWM switching time for each sector. Once the approximate angular position is identified, the resultant vector magnitude is calculated, with respect to the adjacent voltage space vectors and null vector T0, T1 and T2 representing conduction time within a period. The values for T1 and T2 are taken from a Look-up Table containing 172 fractional sinusoidal values from 0° to 60°.

Sector | Switching Time Equation |
---|---|

1 |
PWM1 = T1 + T2 + T0/2 PWM2 = T2 + T0/2 PWM3 = T0/2 |

2 |
PWM1 = T1 + T0/2 PWM2 = T1 + T2 + T0/2 PWM3 = T0/2 |

3 |
PWM1 = T0/2 PWM2 = T1 + T2 + T0/2 PWM3 = T2 + T0/2 |

4 |
PWM1 = T0/2 P PWM2 = T1 + T0/2 PWM3 = T1 + T2 + T0/2 |

5 |
PWM1 = T2 + T0/2 PWM2 = T0/2 PWM3 = T1 + T2 + T0/2 |

6 |
PWM1 = T1 + T2 + T0/2 PWM2 = T0/2 PWM3 = T1 + T0/2 |

Figure 1. **SVPWM Representation in an
Orthogonal Plane**

The approximate PWM output from SVPWM, with respect to its angular position, is plotted in Figure 2-3. The waveform produced has a shape of a saddle due to the third harmonic injection by SVPWM. Each PWM output is shifted 120° from each other. The angular position is scaled from 360° to 192 for more convenient implementation in this application. To reduce switching loss, each of the three phases do not switch for one-third of the time in a cycle.

Figure 2. **SVPWM Voltage Waveform
Representation**