# Neutral Point Clamped Inverter (NPC)

Table of Contents

This note presents a possible control implementation for a three-phase Neutral Point Clamped Inverter (NPC inverter). First, the topology and theoretical aspects of the control are presented, including a short overview of the modulation techniques. Then, a possible control implementation on the B-Box RCP is introduced, for both C/C++ and ACG implementations. Finally, an example of a grid-tied NPC inverter, derived from AN007 is presented. Simulation results obtained with Simulink and PLECS are shown.

## What is a Neutral Point Clamped inverter?

Neutral Point Clamped (NPC) inverters are a family of multilevel power converters that are characterized by the use of clamping diodes for guaranteeing the proper voltage sharing across the power switches. NPC inverters were simultaneously introduced by Baker [1] and Nabae et. al [2] in 1981. Today, they remain the most well-known and widespread multilevel converter topology, as they offer very attractive performance with limited complexity.

Indeed, thanks to their multi-level nature, Neutral Point Clamped inverters offer superior waveform quality (to two-level inverters), leading to reduced filtering requirements. They are often present in medium voltage applications, where their superior blocking voltage capability is also an essential requirement. However, the industrial use of NPC-type inverters is mostly limited to three-level topologies, due to the complex mechanical arrangement of the power devices with a higher number of levels (presence of non-symmetrical elements).

## Software resources

## Topology of the Neutral Point Clamped inverter

The topology of a three-level NPC inverter is shown in the figure below.

Such a power converter can typically be implemented using three PEN8018 NPC phase-legs, as shown in the picture below:

Each leg of the NPC inverter has 4 transistors that can be controlled, giving 2^{4}=16 total possible states. However, only 3 of these states are feasible, since others create short-circuits on the DC-link. The three feasible states give three different output voltages:

- \(V_{DC}/2\)
- \(-V_{DC}/2\)
- \(0\,\text{V}\)

The table below shows the conductivity of transistors to get the desired output voltage:

T1 | T2 | T3 | T4 | Output voltage | Leg state |
---|---|---|---|---|---|

ON | ON | OFF | OFF | \(V_{DC}/2\) | P |

OFF | ON | ON | OFF | \(0\,\text{V}\) | 0 |

OFF | OFF | ON | ON | \(-V_{DC}/2\) | N |

## Modulation techniques for a three-level NPC inverter

Numerous modulation strategies have been proposed for Neutral Point Clamped Inverters. Among them, the selection of the optimum strategy is influenced by numerous factors, such as **i**) balancing of the neutral point voltage, **ii**) minimization of the total losses, **iii**) distribution of losses among the power switches, or **iv**) AC-side harmonic performance.

This example focuses on the basic implementation of two common techniques, namely carrier-based PWM (CB-PWM) as well as space vector modulation (SV-PWM). More subtle implementations can be considered, which typically also integrate balancing considerations for the DC midpoint voltage. Interesting information can notably be found in [1-2] as well as in TN129.

### Carrier-based PWM

This technique is relatively simple to implement. Its principle consists in taking the desired inverter voltages (sometimes also designated as electromotive forces) \(E^*_{abc}\), normalizing and comparing them to two triangular carriers in order to generate the states of the four transistors of each leg. The normalized voltages have to be in the form:

$$E^*_{abc,norm} = m \cdot \sin(\omega t + \phi)$$

With the modulation index \(m\) defined as:

$$m = \frac{E^*_{abc,peak}}{V_{dc}/2} \leq 1$$

For each phase, the normalized voltage is compared to the upper carrier, in order to get the state of the transistor T1, and is also compared to the lower carrier to get the state of the transistor T2. The states of the transistors T3 and T4 are the complementaries of T1 and T2 respectively.

### Space vector PWM

Space Vector Pulse Width Modulation (SV-PWM) is slightly more complex to implement. Each phase has three possible states, which means that the inverter has 27 possible states. Each one of those states can be represented with a space vector in the Clarke referential (*Î±Î²*):

$$V_{ref} = \frac{2}{3} (V_a + e^{j2 \pi/3} \cdot V_b + e^{j4 \pi/3} \cdot V_c )$$

According to the theory of modulation with space vectors, the three vectors \(V_{x}\), \(V_{y}\), and \(V_{z}\) that are the closest to \(V_{ref}\)must be found [4]. The dwell time of each vector must be computed according to the formula:

$$V_{ref} \cdot T_{sw} = V_{x} \cdot T_{x} + V_{y} \cdot T_{y} + V_{z} \cdot T_{z}$$

Once the dwell times have been computed for each vector, the switching sequence must be determined. The latter must be selected such that the number of commutations is minimized. For instance, in section nÂ°1, the switching pattern is represented below. This leads to the following duty cycles:

$$d_a=d_x+d_y+d_7\quad\quad d_b=d_y+d_7\quad\quad d_c=d_7$$

## Control and balancing of Neutral Point Clamped inverters

With respect to the control of AC-side currents and voltages, NPC inverters can be controlled similarly to two-level inverters, as most considerations are topology independent. Notably, further information can be found in:

- Vector current control (TN106) regarding the current of AC currents in the rotating reference frame.
- Proportional Resonant (PR) control (TN110) regarding AC current control in the stationary frame.

However, Neutral Point Clamped inverters require particular attention to the balancing of the voltage of the DC midpoint, which is not achieved naturally. Indeed, without proper consideration within the chosen modulation algorithm, or suitable closed-loop control, inevitable system unbalances do not tend to compensate, leading to excessive and potentially dangerous voltage on one of the two DC busses.

A basic balancing strategy is introduced in TN129: DC bus balancing for NPC inverters.

## Academic references

[1] R.H. Baker, “Bridge converter circuit,” U.S. Patent 4270136, May 26, 1981.

[2] A. Nabae, i. Takahashi and H. Akagi “A New Neutral Point Clamped PWM Inverter,” in *IEEE Transactions on Industrial Applications*, Vol. 1A, pp. 518-523, Oct. 1981.

[3] J. Pou, J. Zaragoza, S. Ceballos, M. Saeedifard and D. Boroyevich, “A Carrier-Based PWM Strategy With Zero-Sequence Voltage Injection for a Three-Level Neutral Point Clamped Converter,” in *IEEE Transactions on Power Electronics*, pp. 642-651, Feb. 2012.

[4] N. Celanovic and D. Boroyevich, “A fast space-vector modulation algorithm for multilevel three-phase converters,” in *IEEE Transactions on Industry Applications*, pp. 637-641, March-April 2001.

## B-Box RCP / B-Board PRO implementation

### C/C++ code implementation

The imperix IDE provides numerous pre-written and pre-optimized functions for both CB-PWM and SV-PWM methods. The necessary parameters are documented within the corresponding .h header file.

As with all peripheral drivers for the B-Box/B-Board, the control implementation is split into two steps:

- The
**configuration phase**, executed only once at startup. At this time, six carrier-based modulators (three phases x two pairs of complementary switches) are configured. With space-vector modulation, this is automatically done by the appropriate routines. - The
**run-time phase**, executed regularly at the sampling frequency. At each interrupt call, the duty cycles are updated appropriately. With CB-PWM, this results from the comparison of each voltage (possibly level-shifted) with triangular carriers, while with CV-PWM, the above-described algorithm is used.

### Simulink and PLECS implementations

As for the graphical implementation, both CB-PWM and SV-PWM implementations can be realized using blocks from the imperix libraries:

### Simulation results

The NPC inverter was tested with a grid current control on both *d* and *q* axes. A current reference step on the d-axis was performed in simulation mode. The following graph shows the grid currents in *abc*-frame and *dq*-frame:

## Going further with Neutral Point clamped inverters

An application example using an NPC-type inverter is shown in AN007: Fast eV charger.