Space-Vector PWM Study Notes – Generating Desired Reference Voltage

Now the basic concepts of SVPWM are discussed, the next step is to generate the desired three-phase voltage with SVPWM.

1. Generating V_{ref} by adding two average vectors along coded phases

First, as discussed in previous post on fundamental concepts of SVPWM, the reference rotating vector you want to generate has a magnitude that is equal to the peak line-neutral voltage. As such, we define the reference voltage as

    \[ v_\text{ref} = V_\text{ref}\cos(\omega_L t) = V_\text{peak}\cos(\omega_L t)  \]

Or exponential form V_\text{ref}e^{j(\omega_L t)}

generating vref vector in 0-pi/3 area.

In 0 to \pi/3 region, the final vector is the sum of the average vectors on [100] and [110]. That is, in one switching cycle, the time that is spent in the direction of vector [100] is d_1 T_s, (where d_1 is the duty ratio, T_s is the switching period) and time in the direction of [110] is d_2 T_s

The average vector in the phase of [100] is thus d_1 \frac{2V_{dc}}{3}e^{j0} and d_2\frac{2V_{dc}}{3}e^{j\pi/3} in the phase of [110]. To write more formally in the format of vector algebra:

    \[\vec{V_{ref}} = d_1\vec{V_{[100]}} + d_2\vec{V_{[110]}} \]

Thus we need to solve d_1, d_2 so we can generate the correct average vectors.

2. Different ways to solve d1 and d2

2.1 Solve the triangular geometry

The most intuitive way is to solve the length of the vectors so we can calculate the portion of the vector on the coded vector [100] and [110] as shown below.

Solve for L1 and L2 can get us the length of d1 and d2 vectors

To solve for the length of d_1 \frac{2V_{dc}}{3} and d_2 \frac{2V_{dc}}{3}, there are two auxiliary lines with L_1 and L_2 lengths we can use as shown above

The length of d_1 \frac{2V_{dc}}{3} can be obtained by subtracting L_2 from V_{ref}\cos(\alpha), and the length of d_2\frac{2V_{dc}}{3} can be obtained with L_1/\sin(\frac{\pi}{3}) as they are in the same triangle. We can get the following equations to solve:

    \[ L_1 = V_{ref}\sin(\alpha) = d_2\frac{2V_{dc}}{3}\sin(\frac{\pi}{3}) \]

    \[ L_2 = d_2\frac{2V_{dc}}{3} \cos(\frac{\pi}{3}) \]

    \[ V_{ref}\cos(\alpha) = d_1\frac{2V_{dc}}{3} + L_2 \]

using the first equation we can easily solve for d_2 as

    \[ d_2 = \frac{V_{ref}\sin(\alpha)}{\frac{2V_{dc}}{3}\sin(\frac{\pi}{3})} = \frac{\sqrt{3}V_{ref}\sin(\alpha)}{V_{dc}} = \sqrt{3}m\sin(\alpha) \]

In some materials, they define the modulation index m = \frac{V_{ref}}{V_{dc}}. Once d_2 is solved, we can get the vector length on [100]

    \[ d_1\frac{2V_{dc}}{3} = V_{ref}\cos(\alpha) - L_2 = V_{ref}\cos(\alpha) - \frac{V_{ref}\sin(\alpha)\cos(\frac{\pi}{3})}{\sin(\frac{\pi}{3})} = V_{ref}(\cos(\alpha)-\frac{\sin(\alpha)}{\sqrt{3}}) \]

And d_1 can be solved as

    \[ d_1= V_{ref}\frac{2}{\sqrt{3}}\cos(\alpha+\frac{\pi}{6})\frac{3}{2V_{dc}} = \sqrt{3}\frac{V_{ref}}{V_{dc}}\cos(\alpha+\frac{\pi}{6}) = \sqrt{3}m\cos(\alpha+\frac{\pi}{6}) \]

This is just one way to solve the geometry, you can draw different triangles to get the vector lengths.

2.2 Solve using \alpha-\beta coordinates

Since vectors can be represented with \alpha-\beta coordinates, this problem can also be completely computed using linear algebra.

    \[\vec{V_{ref}} = d_1\vec{V_{[100]}} + d_2\vec{V_{[110]}} \]

    \[ V_\text{peak}\begin{bmatrix} \cos(\alpha)\\\sin(\alpha) \end{bmatrix} = \frac{2V_{dc}}{3} d_1 \begin{bmatrix}\cos(0)\\ \sin(0)\end{bmatrix} + \frac{2V_{dc}}{3} d_2\begin{bmatrix}\cos(\frac{\pi}{3})\\ \sin(\frac{\pi}{3})\end{bmatrix} \]

    \[ V_\text{peak}\begin{bmatrix} \cos(\alpha)\\\sin(\alpha) \end{bmatrix} = \frac{2V_{dc}}{3}\begin{bmatrix}\cos(0)& \cos(\frac{\pi}{3})\\ \sin(0) &\sin(\frac{\pi}{3})\end{bmatrix} \begin{bmatrix} d_1\\d_2\end{bmatrix} \]

And d_1, d_2 can be solved by inverting the matrices. Since the results are the same, I won’t expand the derivation.

Next post on how to generate switching signals