# Sinusoidal Current Drive

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°.

Table 1. Equations for PWM Switching Time by each Sensor
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