DC bus voltage imbalance in an NPC inverter may overstress the capacitors and semiconductors of the converter. Besides, the output voltage and phase current may also be deteriorated. As such, maintaining adequate balancing is necessary at all times.

This technical note presents different ways to balance the DC bus voltage of a three-phase three-level NPC inverter.

A Simulink file with a control example for the B-Box RCP or B-Board PRO is provided, for both Carrier-Based and Space-Vector modulations. Experimental results obtained with the ACG SDK are shown.

Software resources

  File Modified
File DC_bus_balancing_CBPWM.slx Simulink file with DC bus balancing for CB-PWM Jul 01, 2020 by Gabriel Fernandez
File DC_bus_balancing_SVPWM.slx Simulink file with DC bus balancing for SV-PWM Jul 01, 2020 by Gabriel Fernandez
File parameters.m Matlab file containing all the parameters of the system. Jul 01, 2020 by Gabriel Fernandez

Causes of unbalanced voltage

Generally, the overall voltage of the DC-link is controlled by a cascaded control. However, the voltage of each half bus is not controlled individually.

Each phase can have three possible states:

  • “P”, when the phase is clamped to \begin{array}{l}V_{dc+}\end{array};

  • “O”, when the phase is clamped to the midpoint of the DC bus;

  • “N”, when the phase is clamped to \begin{array}{l}V_{dc-}\end{array}.

Consequently, a three-phase NPC inverter has 27 possible states that can be represented as vectors in the Clarke referential, as presented in TN135 :

These vectors can be divided into 4 groups according to their magnitude:

  • zero vectors: 0

  • small vectors: \begin{array}{l}V_{dc}/3\end{array}

  • medium vectors: \begin{array}{l}V_{dc}/ \sqrt{3}\end{array}

  • large vectors: \begin{array}{l}2 V_{dc}/3\end{array}

The effect of each one of these vector groups is represented in the figure below. Zero and large vectors haven't any unbalancing effect. For medium vectors, the sign of the voltage variation is undefined. The small vectors are the ones that have the largest impact [1].

The current path determines if the DC bus capacitors are charging or discharging.

DC bus balancing methods

In this technical note, two different methods are presented in order to balance to DC bus voltage of an NPC inverter: one for Carrier-Based modulation (CB-PWM), and the second for Space-Vector modulation (SV-PWM). Further details on modulation techniques are given in TN135.

Carrier-based PWM

For carrier-based modulation, each of the two carriers is related to its corresponding half DC bus voltage. Therefore, if the amplitude of the carriers is changed to reflect the effective voltage, the utilization of the DC-link is changed [2]. This is shown in the picture below:

In practice, it is often easier to alter the value of the duty cycle rather than the amplitude of the triangular carrier. Therefore, the same result can be observed using the following formula:

\begin{align} d_1' &= \displaystyle\frac{d_1 + x}{1+x} = \frac{V_a + x}{1+x} \\ d_2' &= \displaystyle\frac{d_2}{1-x} = \frac{V_a + 1}{1-x} \end{align}

With \begin{array}{l}x\end{array} dependent on the sign of the phase current and defined as:

\begin{array}{l}\displaystyle x = \displaystyle\frac{V_{dc,high}-V_{dc,low}}{V_{dc}} \cdot \text{sgn}(I)\end{array}

Space vector PWM

As presented in TN135, SV-PWM requires that the two active vectors \begin{array}{l}V_x\end{array} and \begin{array}{l}V_y\end{array} that are the closest to \begin{array}{l}V_{ref}\end{array} are found, as well as a zero vector \begin{array}{l}V_z\end{array}. Then, the corresponding duty cycles \begin{array}{l}d_x\end{array}, \begin{array}{l}d_y\end{array} and \begin{array}{l}d_z\end{array} can be determined.

These vectors are then organized following a specific pattern in to reduce the number of commutations. Normally, the duty cycle \begin{array}{l}d_z\end{array} is equally distributed between two new zero vectors \begin{array}{l}V_0\end{array} and \begin{array}{l}V_7\end{array}. However, as vectors \begin{array}{l}V_7\end{array} are always P-type small vectors, and vectors \begin{array}{l}V_0\end{array} are always N-type vectors, it is possible to adjust the share between \begin{array}{l}V_0\end{array} and \begin{array}{l}V_7\end{array}in order to influence the DC voltages balancing. This is the main principle governing the proposed balancing algorithm.

As such, the duty ratios are computed as:

\begin{aligned} &d_a=d_x+d_y+d_7\newline &d_b=d_y+d_7 \qquad &\text{with} \qquad &\begin{cases}d_7 = d_z/2 +x\\ x = \displaystyle\frac{V_{dc,high}-V_{dc,low}}{V_{dc}} \cdot \text{sgn}(I) \end{cases} \newline &d_c=d_7 \end{aligned}

Academic references

[1] Kalpesh H. Bhalodi, Pramod Agrawal, “Space Vector Modulation with DC-Link Voltage Balancing Control for Three-Level Inverters”, in IEEE International Conference on Power Electronic, 2007.

[2] Wojciech Kołomyjski, “Modulation Strategies for Three-level PWM Converter-fed Induction Machine Drives”, thesis available on Warsaw University of Technology website, page 52, 2009.

B-Box / B-Board implementation

The two figures below show the implementation in Simulink.

For the SV-PWM, the block provided in the imperix blockset takes the reference vector in the αβ0 coordinates and automatically computes the duty cycles for each phase. For the balancing of the DC bus, adding the same correction \begin{array}{l}x\end{array} to the duty cycles of each phase is equivalent to adding an homopolar component to the reference vector \begin{array}{l}E_{\alpha \beta 0}^{*}\end{array}:

CB-PWM implementation

SV-PWM implementation


The DC bus balancing has been tested in the topology of a DC source connected to the grid through an NPC inverter.

In the initial condition, the DC bus is charged and unbalanced (\begin{array}{l}\Delta V \approx 30\,\text{V}\end{array}), and then the inverter starts to switch. The following graph shows the experimental result with the method for SV-PWM:

Independently of the method used for balancing the DC bus, the time for balancing the DC bus depends on the current reference of the inverter: the higher the current, the faster the DC bus balances.

The experimental result shown above is done with \begin{array}{l}I_{d,ref} = 2\,\text{A}\end{array}and that’s why the balancing takes almost 1.5 seconds. With higher currents, the balancing lasts a few hundred milliseconds.

  • No labels