08.06.2013 Views

A General Space Vector PWM Algorithm for Multilevel Inverters ...

A General Space Vector PWM Algorithm for Multilevel Inverters ...

A General Space Vector PWM Algorithm for Multilevel Inverters ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007 517<br />

A <strong>General</strong> <strong>Space</strong> <strong>Vector</strong> <strong>PWM</strong> <strong>Algorithm</strong> <strong>for</strong><br />

<strong>Multilevel</strong> <strong>Inverters</strong>, Including Operation<br />

in Overmodulation Range<br />

Amit Kumar Gupta, Student Member, IEEE, and Ashwin M. Khambadkone, Senior Member, IEEE<br />

Abstract—This paper proposes a simple space vector pulsewidth<br />

modulation algorithm <strong>for</strong> a multilevel inverter <strong>for</strong> operation in the<br />

overmodulation range. The proposed scheme easily determines the<br />

location of the reference vector and calculates on-times. It uses a<br />

simple mapping to generate gating signals <strong>for</strong> the inverter. A fivelevel<br />

cascaded inverter is used to explain the scheme. The scheme<br />

can be easily extended to a -level inverter. It is applicable to neutral<br />

point clamped topology as well. Experimental results are provided<br />

<strong>for</strong> five-level and seven-level cascaded inverters.<br />

Index Terms—Cascaded H-bridge inverter, modulation index,<br />

multilevel inverter, overmodulation, space vector pulsewidth modulation<br />

(SV<strong>PWM</strong>).<br />

I. INTRODUCTION<br />

MULTILEVEL inverters [1], [2] include an array of power<br />

semiconductors and capacitor voltage sources, which<br />

generate output voltages with stepped wave<strong>for</strong>ms. It leads<br />

to wave<strong>for</strong>ms of superior quality at relatively low switching<br />

frequencies as compared to two-level inverters. <strong>Multilevel</strong><br />

inverters are very useful <strong>for</strong> medium voltage high power industrial<br />

drive applications [3].<br />

Pulse width modulation (<strong>PWM</strong>) is widely used <strong>for</strong> voltage<br />

source inverters, since it can produce output power with variable<br />

voltage and variable frequency. In the linear range of modulation,<br />

the maximum obtainable voltage is 90.7% of the sixstep<br />

value. This voltage can be increased further by properly<br />

utilizing the dc link capacity through overmodulation. <strong>Space</strong><br />

vector <strong>PWM</strong> (SV<strong>PWM</strong>) is widely used <strong>for</strong> two-level inverter<br />

especially <strong>for</strong> the operation in overmodulation [4]–[6] region.<br />

SV<strong>PWM</strong> is also an attractive candidate <strong>for</strong> a multilevel inverter<br />

as: i) it directly uses the control variable given by the<br />

control system, and identifies each switching vector as a point<br />

in complex space [7]; ii) it is useful in improving dc link<br />

voltage utilization, reducing commutation losses and THD [7];<br />

and iii) it is suitable <strong>for</strong> digital signal processing (DSP) implementation<br />

and optimization of switching patterns as well [8].<br />

The implementation of SV<strong>PWM</strong> <strong>for</strong> a multilevel inverters is<br />

considered complex [9]. This complexity is expected to increase<br />

further in the overmodulation region due to the nonlinearity of<br />

this region. In [10], we proposed a scheme to deal with the complexities<br />

of SV<strong>PWM</strong> in the linear range of modulation. In this<br />

Manuscript received June 24, 2005; revised January 25, 2006. Recommended<br />

by Associate Editor J. Rodriguez.<br />

The authors are with the Department of Electrical and Computer Engineering,<br />

National University of Singapore, Singapore 117570.<br />

Digital Object Identifier 10.1109/TPEL.2006.889937<br />

0885-8993/$25.00 © 2007 IEEE<br />

paper, we propose a scheme <strong>for</strong> a multilevel inverter to operate<br />

it in overmodulation and right into six-step. Let us first briefly<br />

review some of the recent work in this area.<br />

The schemes in [8] and [11] are proposed <strong>for</strong> linear modulation<br />

mode. Celanovic [8] proposed a SV<strong>PWM</strong> based scheme<br />

based on the 3-D Euclidean vector system. This scheme mainly<br />

focuses on calculation of on-times in the linear mode. Seo [11]<br />

proposed a scheme <strong>for</strong> a three-level inverter based on two-level<br />

SV<strong>PWM</strong>. The three-level space vector diagram is divided into<br />

six two-level space vector diagrams. This division is simple and<br />

obvious <strong>for</strong> a three-level space vector diagram, but cannot be directly<br />

applied to a -level inverter. There<strong>for</strong>e, as level 3<br />

increases, complexity and computation both increase.<br />

In the recent literature [12]–[14], overmodulation <strong>for</strong> multilevel<br />

inverters has been reported. McGrath [12] explains the<br />

behavior of the key multilevel carrier based <strong>PWM</strong> methods <strong>for</strong><br />

diode clamped, cascaded, and flying capacitors topologies in the<br />

overmodulation region. Mondal [13] per<strong>for</strong>ms SV<strong>PWM</strong> based<br />

overmodulation on a three-level NPC inverter. The on-time calculation<br />

equations differ <strong>for</strong> every triangular section at any modulation<br />

index. Due to increased computational complexity, it is<br />

cumbersome to extend this scheme to a -level inverter 3 .<br />

Saeedifard [14] uses classification algorithm in overmodulation<br />

range <strong>for</strong> SV<strong>PWM</strong> of a three-level NPC inverter. It is not clear,<br />

how it can be extended to a -level inverter . In overmodulation<br />

range, [13], [14] modify the trajectory of reference<br />

vector by using lookup tables.<br />

This paper presents a significantly different approach from all<br />

a<strong>for</strong>ementioned references and provides a general solution. It is<br />

based on stator coordinate system, and hence can be easily implemented<br />

with existing outer control loops <strong>for</strong> speed or torque.<br />

The salient features of the proposed scheme are as follows.<br />

Simple on-time calculation due to the use of a two-level<br />

geometry based on-time equations. The on-time calculation<br />

equations <strong>for</strong> linear and overmodulation mode do not<br />

change with the position of reference vector like the traditional<br />

approach in [13] and [15].<br />

Normally to model the nonlinearity of the overmodulation<br />

region, the solution to nonlinear equations or lookup tables<br />

are required. They are not used in the method used <strong>for</strong> implementing<br />

overmodulation in this paper, leading to simplicity<br />

of implementation.<br />

There are 1 triangles in a sector of the space vector<br />

diagram of a three-phase -level inverter. The triangle<br />

where the reference vector is located, is identified as an<br />

integer using a simple algebraic expression. We call


518 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007<br />

Fig. 1. Five-level cascaded H-Bridge inverter topology.<br />

a triangle number, it implies the th triangle among<br />

the 1 triangles in a sector. The triangle leads to<br />

the simplicity and flexibility of optimizing the switching<br />

sequences.<br />

The major feature of the proposed scheme that it can be<br />

used <strong>for</strong> any -level 3 inverter without significant<br />

increase in computations.<br />

The proposed scheme is explained with the help of a fivelevel<br />

cascaded H-bridge inverter (also called cascaded inverter)<br />

topology shown in Fig. 1. The scheme is then extended to a<br />

-level inverter. The scheme is equally applicable to neutral<br />

point clamped (NPC) topology [16].<br />

The paper is organized in eight sections. Section II introduces<br />

various modulation modes. Section III introduces the basic idea<br />

of calculating on-times in the proposed scheme. Section IV explains<br />

the proposed algorithm <strong>for</strong> a five-level inverter. Section V<br />

explains the implementation <strong>for</strong> a five-level inverter. Section VI<br />

shows the experimental results <strong>for</strong> a five-level cascaded inverter.<br />

Section VII explains the extension of the proposed scheme to a<br />

-level inverter. Section VIII concludes the paper.<br />

II. MODULATION INDEX AND MODES OF MODULATION<br />

In this paper, we define modulation index as<br />

[4], where is the peak value of fundamental<br />

voltage generated by the modulator and is the<br />

peak value of fundamental voltage at six-step operation. For a<br />

-level cascaded topology 2 1 ,<br />

where is the dc link voltage on each H-bridge as shown<br />

in Fig. 1. For a NPC topology [16] 2 ,<br />

which is same as two-level inverter [4]. Based on the value<br />

of the modulation index 0 1 , there are<br />

three modes of operation [4], namely sinusoidal mode or<br />

linear mode 0 0.907 , overmodulation mode<br />

I 0.907 and overmodulation mode II<br />

1 . The value of<br />

of overmodulation I and II.<br />

marks the boundary<br />

The scheme proposed by Holtz [4] is to modify the magnitude<br />

and phase of the reference voltage, to achieve the voltage<br />

control in overmodulation range. In [4], a value of 0.952 is used<br />

<strong>for</strong> . Methods such as [5] and [13] also use<br />

0.952. Tripathi [6] obtains a higher value of as 0.9535<br />

Fig. 2. <strong>Space</strong> vector diagram <strong>for</strong> first sector of a two-level inverter.<br />

through angular velocity balance of the flux displacement<br />

vector. In this paper, the value of is taken to be 0.9535<br />

and a strategy similar to [6] is used. The two-level based<br />

overmodulation schemes such as [5], [17] can also be easily<br />

extended to a multilevel inverter using the implementation<br />

proposed in this paper.<br />

III. PROPOSED IDEA OF ON-TIME CALCULATION<br />

FOR A MULTILEVEL INVERTER<br />

The basic idea of space vector modulation is to compensate<br />

the required volt-seconds using discrete switching states and<br />

their on-times.<br />

In a two-level inverter, on-time calculation [10] is based on<br />

the location of the reference vector within a sector , 1<br />

6, where “ ” signifies that can take any integer value from 1<br />

to 6.<br />

For the geometry of a sector shown in Fig. 2, the on-times are<br />

calculated as<br />

(1)<br />

(2)<br />

(3)<br />

In (2), 2 is the height of a sector , which is<br />

an equilateral triangle of unity side. In (1)–(3), 1 2<br />

where is the switching frequency.<br />

Fig. 3(a) shows the space vector diagram of first sector of<br />

a five-level inverter. Each sector can be split into 16 triangles<br />

, where 0 15. In this figure, is the reference


GUPTA AND KHAMBADKONE: GENERAL SPACE VECTOR <strong>PWM</strong> ALGORITHM 519<br />

Fig. 3. <strong>Space</strong> vector diagram—virtual two-level from five-level.<br />

vector of magnitude at an angle of with axis. We define<br />

a small vector , which describes the same point in shifted<br />

system , see Fig. 3(b). It makes angle with the<br />

axis.<br />

The volt-seconds required to approximate the small vector<br />

in the shifted system should be equal to those required<br />

<strong>for</strong> actual vector in the original system . Hence,<br />

we can obtain the on-times <strong>for</strong> any reference vector by finding<br />

the on-times of respective small vector .<br />

First, we identify the triangle where the required reference is<br />

located and then obtain the coordinates of the small<br />

vector. The on-time calculations can be per<strong>for</strong>med by using<br />

the geometry shown in Fig. 3(b), which would result in the<br />

same on-time equations as those <strong>for</strong> a classical two-level SVM<br />

(1)–(3). Since the triangles within any sector of a -level inverter<br />

are analogous to a sector of a two level inverter, this idea can be<br />

extended to any level. For example; if is taken as zero vector<br />

then triangle can be assumed similar to sector 1 of a<br />

two-level inverter, as per Fig. 2 and Fig. 3(b). Thus, multilevel<br />

on-time calculation problem is converted to a simple two-level<br />

on-time calculation problem. This method is described in detail<br />

in [10] <strong>for</strong> a three-level inverter.<br />

In the proposed method, since triangle is considered as the<br />

basic unit, any suitable vertex can be chosen as virtual zero<br />

vector. For example, <strong>for</strong> triangle in Fig. 3(a), any of the three<br />

vertices , or can be chosen as a virtual zero vector and<br />

optimal switching sequence [18] can be <strong>for</strong>med. The order in<br />

which on-times , , and are used, depends on the order of<br />

arranging the switching states.<br />

IV. OPERATION OF FIVE-LEVEL INVERTER IN<br />

LINEAR AND OVERMODULATION MODE<br />

The space vector diagram of a three-phase voltage source inverter<br />

is a hexagon, consisting of six sectors. Here, the operation<br />

is explained <strong>for</strong> the first sector, the same is applicable <strong>for</strong> other<br />

sectors too.<br />

Fig. 4. <strong>Space</strong> vector diagram of the first sector of a five-level inverter showing<br />

sinusoidal mode, 0 `0.907.<br />

For a given position of the reference vector, the sector of operation<br />

1 6 and its angle 0 60 within<br />

the sector is determined by using (4) and (5), respectively<br />

(4)<br />

(5)<br />

In (4) and (5), 0 360 is the angle of the reference<br />

vector with respect to axis, is standard math function “integer”<br />

and is standard math function “remainder.”<br />

A. Sinusoidal Modulation Mode 0 0.907<br />

In this mode, the reference vector , moves on a circular<br />

trajectory as shown in Fig. 4. The tip P of the reference vector<br />

can be located in any of the 16 triangles; . Per<br />

Section III, a triangle in Fig. 4 can be treated as a sector of a<br />

two-level inverter. The objective here is to identify the triangle<br />

in which the point is located, subsequently using the small<br />

vector analogy in the virtual two-level geometry, the on-times<br />

<strong>for</strong> this triangle can be calculated using two-level on-times<br />

(1)–(3).<br />

For simplicity, it can be assumed that the sector<br />

in Fig. 4 consists of two types of triangles: type 1 and type 2. A<br />

type 1 triangle has its base side at the bottom, e.g., triangle ,<br />

,<br />

. A type 2 triangle has its base side at the top, e.g., triangle<br />

.<br />

The search <strong>for</strong> the triangle that has point P can be narrowed<br />

down by using two integers and , which are dependent on<br />

the coordinate of point P as<br />

In (6), signifies part of the sector between the lines<br />

and , e.g., in Fig. 4<br />

2, it signifies the part of the sector between line segments<br />

and . In (6), signifies part of the sector between<br />

the lines and 1 , e.g., in Fig. 4 1, it<br />

signifies the part of the sector between line segments and<br />

. These two regions are inclined at 120 . Geometrically,<br />

the values of and , signify the intersection of these two<br />

regions. This intersection is either a triangle or rhombus. For<br />

(6)


520 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007<br />

the reference vector in Fig. 4(a), 2 and 1, i.e., the<br />

intersection is rhombus where the tip P of reference<br />

vector is situated.<br />

This rhombus is made of two triangles and . Let<br />

be the coordinates of the point P with respect to the<br />

point , obtained as<br />

The slope of is and the slope of diagonal<br />

is . The triangle where point P is located can be determined<br />

by comparing the slope of with . Slope comparison<br />

is done by evaluating the inequality , leading to<br />

following two results on small vector<br />

.<br />

and triangle number<br />

1) : The point P is within the triangle and<br />

the small vector is represented by<br />

. The triangle number is obtained as<br />

2) : The point P is within the triangle and the<br />

small vector is represented by 0.5<br />

. The triangle number is obtained as<br />

These two results can be generalized to triangles of type 1 and<br />

type 2 respectively. For example; when the point P is in triangle<br />

, inequality will be true because triangle is<br />

a triangle of type 1. The small vector is represented<br />

by . In (8) and (9), “ ” symbolizes a triangle and<br />

“ ” the triangle number. Hence,<br />

th triangle in the sector.<br />

is an integer and signifies<br />

Having determined the small vector ( , ) <strong>for</strong> the reference<br />

vector, the on-times are now calculated using (1)–(3).<br />

The triangle in a sector is identified as an integer using a<br />

simple algebraic expression (8) or (9). It is a byproduct of the<br />

small vector determination process, so no other computation is<br />

required. It greatly simplifies the <strong>PWM</strong> process as switching<br />

states can be easily mapped with respect to the triangle number<br />

. The triangle number is <strong>for</strong>mulated to provide a simple<br />

way of arranging the triangles, leading to ease of identification<br />

and extension to any level.<br />

The flowchart in Fig. 7(b) shows the determination of<br />

on-times and triangle number<br />

reference vector.<br />

<strong>for</strong> the circular trajectory of<br />

B. Overmodulation Mode I 0.907 0.9535<br />

This region is marked by nonlinearity. In Fig. 5, the thick<br />

dotted circle shows the desired trajectory of the reference<br />

vector . Traditionally, depending on the , the trajectory is<br />

modified and tip P of the actual vector moves on trajectory<br />

shown in thick solid lines. i.e. first it moves along<br />

the circular track , then along the linear track on<br />

the side of the sector and finally along the<br />

circular track . This modification in trajectory is intended<br />

(7)<br />

(8)<br />

(9)<br />

Fig. 5. <strong>Space</strong> vector diagram of the first sector of a five-level inverter showing<br />

overmodulation mode I, 0.907 ` 0.9535.<br />

to compensate <strong>for</strong> the loss in volt-secs. The linear movement<br />

along is called hexagonal track in this paper.<br />

We follow an approach similar to [6], to compensate <strong>for</strong><br />

the loss in volt-secs by directly modifying the on-times of the<br />

switching vectors on circular track rather than modifying the<br />

reference vector.<br />

Let be the angle where the reference vector crosses the<br />

hexagon track, shown by the dotted arrow in Fig. 5. For<br />

3 the vector moves on hexagonal track and <strong>for</strong><br />

remaining part of the sector on circular track. Using cartesian<br />

geometry, angle is obtained as<br />

(10)<br />

For a given , is a fixed number, so it need not be calculated<br />

in every switching period.<br />

1) Hexagonal Portion 3 : For hexagonal<br />

track, using cartesian geometry, the coordinates of the tip P of<br />

vector are given in terms of angle and level of inverter ,<br />

as<br />

(11)<br />

Knowing the coordinates of from (11), the<br />

on-times and triangle number can be obtained similar to linear<br />

mode, as explained below.<br />

We defined two integers and <strong>for</strong> (6) to find the triangle<br />

in which point P lies. Using the same definition of and ,<br />

to find the triangle on which point P lies, these two integers are<br />

now given as<br />

(12)<br />

The tip of the vector resides on one of the four triangles<br />

, , and . These triangles are of type 1. Using this<br />

fact, the small vector can be directly obtained from<br />

, without per<strong>for</strong>ming slope comparison. It is given as<br />

(13)


GUPTA AND KHAMBADKONE: GENERAL SPACE VECTOR <strong>PWM</strong> ALGORITHM 521<br />

Knowing , (1) is used to determine the on-time .<br />

Similar to two-level, on-time is zero <strong>for</strong> hexagonal track,<br />

there<strong>for</strong>e . Triangle number is calculated using<br />

(8).<br />

Flowchart in Fig. 7(c) shows the on-times and triangle<br />

number calculation. Number of computations required <strong>for</strong><br />

hexagonal track in Fig. 7(c) are less than that <strong>for</strong> circular track<br />

in Fig. 7(b).<br />

2) Circular Portion (0 and 3<br />

3): Here, on-times are obtained using (1)–(3) as described<br />

be<strong>for</strong>e <strong>for</strong> the linear mode. However, on-times are modified to<br />

compensate <strong>for</strong> the loss of volt-secs during the linear trajectory<br />

as described below.<br />

In the overmodulation mode I, at a modulation index , the<br />

loss in volt-seconds over a sector is proportional to 0.907<br />

[6]. Maximum possible value of is 0.9535. There<strong>for</strong>e, maximum<br />

possible loss in volt-seconds over a sector is proportional<br />

to (0.9535-0.907). Let us define a compensation factor as the<br />

ratio of actual loss in volt-secs and maximum loss in volt-secs.<br />

It is given as<br />

(14)<br />

Compensation factor is used <strong>for</strong> modification of on-times<br />

<strong>for</strong> the volt-secs compensation. The varies between 0 and 1,<br />

<strong>for</strong> between 0.907 and 0.9535. For a given , is a fixed<br />

number, and hence need not be calculated in every modulation<br />

cycle. Further details on can be referred in [6].<br />

In Fig. 5, <strong>for</strong> the circular portion, the point P can be within<br />

any of the triangles . Type 1 triangles , , ,<br />

and have their two vertices on the side of sector.<br />

Type 2 triangles , and have their one vertex on<br />

the side of sector. Let the on-times of the three vertices<br />

be , , and obtained from (1)–(3) through linear mode of<br />

modulation. For the two types of triangles, these on-times are<br />

modified differently as explained below.<br />

Modifications <strong>for</strong> Type 1 triangle: Let the on-times of the<br />

two vertices which are on the side of hexagon be and ,<br />

then the modified on-times are given as<br />

(15)<br />

The modifications of on-times in (15) effectively reduce<br />

the on-times of the inner vector using and increase the<br />

on-times of the outer vectors. It is explained in [6] that such<br />

scheme is suitable <strong>for</strong> fast close loop operation. Similarly,<br />

the on-times <strong>for</strong> the type 2 triangle are modified.<br />

Modifications <strong>for</strong> Type 2 triangle: Let the on-times of the<br />

two vertices that are not on the side of hexagon be and<br />

, then the modified on-times are obtained as<br />

(16)<br />

Fig. 6. <strong>Space</strong> vector diagram of the first sector of a five-level inverter showing<br />

Overmodulation Mode II, 0.9535 `1.<br />

The modifications of on-times in (16) effectively reduce<br />

the on-times of the inner vectors and increase the on-times<br />

of the outer vector using .<br />

In (15) or (16), there is no compensation at 0.907 as<br />

0. At 0.9535, the compensation is maximum as<br />

1 and 0, which corresponds to complete movement along<br />

the hexagonal track.<br />

For a given , (14) and (15) or (16) are only modifications<br />

required to modify the on-times. No other lookup table or solution<br />

to complicated equations is required. There<strong>for</strong>e, complexity<br />

of implementing overmodulation reduces. It also shows the low<br />

cost of implementing overmodulation on a microcontroller.<br />

Above 0.9535, the circular part of the trajectory vanishes and<br />

the on-time obtained from (15) or (16) is negative which is<br />

meaningless. Above 0.9535, another mode is used called overmodulation<br />

II.<br />

C. Overmodulation Mode II 0.9535 1<br />

Switching in overmodulation II is characterized by a hold<br />

angle , shown by the dotted arrow in Fig. 6. For<br />

3 , the tip P of the vector moves on hexagonal track.<br />

In Fig. 3, let vectors at vertices and be addressed as<br />

large vectors. There are a total of six large vectors <strong>for</strong> the complete<br />

space vector diagram. For 0 and 3<br />

3, the vector is held at one of the large vectors.<br />

Normally, is a nonlinear function of modulation index and<br />

obtained by a lookup table. In this paper, the hold angle is<br />

obtained using a strategy similar to [6] where is calculated<br />

by obtaining the same average normalized angular velocity over<br />

a sector as the angular velocity of the reference vector. For the<br />

drives application if is maintained, the angular velocity is<br />

proportional to modulation index . Hence, at a given , the<br />

time to traverse an angle is equal to where is a constant.<br />

Similarly, time: i) to cover the linear portion is equal to<br />

3 2 0.9535; ii) to hold the vector at the large vectors<br />

of a sector is 2 1.0; and iii) to cover whole sector is<br />

3 . A time balance equation can be written as<br />

(17)


522 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007<br />

Fig. 7. Flowchart: (a) main routine: overall modulation process, (b) task 1:<br />

subroutine to calculate the on-times and triangle number <strong>for</strong> the circular track,<br />

and (c) task 2: subroutine to calculate the on-times and triangle number <strong>for</strong> the<br />

hexagonal track<br />

Simplification of (17) leads to the following expression <strong>for</strong><br />

holding angle as:<br />

(18)<br />

In (18), <strong>for</strong> a given only two arithmetic operations, i.e.,<br />

one division and one subtraction are required to obtain the hold<br />

angle . It shows the simplicity of implementing overmodulation<br />

II.<br />

Fig. 8. Simplified block diagram of the proposed algorithm.<br />

For 3 , the on-time calculation is same as<br />

that during the hexagonal trajectory in overmodulation mode I.<br />

For 0 and 3 3, the vector is held at<br />

one of the six large vectors. At 1.0, hexagonal track vanishes<br />

and vector is only held at the six large vectors sequentially.<br />

This is six-step operation similar to two-level inverter.<br />

There<strong>for</strong>e, a multilevel inverter when operated at 1.0,<br />

looses its multilevel characteristics.<br />

V. IMPLEMENTATION FOR A FIVE-LEVEL INVERTER<br />

The implementation <strong>for</strong> a five-level inverter can be understood<br />

with the help of following block diagram. It has two basic<br />

units namely a processing unit and a mapping unit.<br />

A. Processing Unit<br />

Processing unit is basically a microcontroller. The base<br />

scheme <strong>for</strong> processing unit is explained in previous section, and<br />

summarized in flowchart in Fig. 7. It determines parameters<br />

such as sector, triangle, and calculates on-times. These details<br />

are subsequently used by mapping unit to generate gating<br />

signals.<br />

B. Mapping Unit<br />

The job of mapping unit is to generate gating signals <strong>for</strong> the<br />

inverter. It uses memory to store sequences of switching states.<br />

A switching sequence is a set of switching states to be applied<br />

in a switching period. The structure of a switching sequence depends<br />

on the trajectory of the vector. There are three possible<br />

trajectories: i) circular track: <strong>for</strong> linear modulation mode and<br />

some part of overmodulation I; ii) hexagonal track: <strong>for</strong> some<br />

part in overmodulation I and overmodulation II; and iii) hold<br />

mode: in overmodulation II. Due to the difference in structures<br />

of switching sequence among the trajectories, three separate<br />

memory units M–CR, M–HX, and M–HL are used in mapping<br />

unit, where CR, HX, and HL stand <strong>for</strong> circular, hexagonal, and<br />

hold, respectively. The flowchart in Fig. 7(a) introduces an integer<br />

parameter , called as track index. It is used <strong>for</strong> realtime<br />

implementation. It helps in identifying the memory unit with respect<br />

to track using three values as: i) 0 <strong>for</strong> circular track;<br />

ii) 1 <strong>for</strong> the hexagonal track; and iii) 2 <strong>for</strong> the hold<br />

mode. The is independent of the level of inverter.<br />

There exist 125 5 switching states <strong>for</strong> fivelevel<br />

inverter, where , , 2 1 0 1 2 . In Fig. 3, we<br />

show the switching states <strong>for</strong> first sector in the space vector diagram.<br />

A phase-leg state describe the “ON”<br />

or “OFF” conditions of the switches in the respective phase. In<br />

Fig. 1, , , and ,


GUPTA AND KHAMBADKONE: GENERAL SPACE VECTOR <strong>PWM</strong> ALGORITHM 523<br />

Fig. 9. Switching state at a memory location—ON/OFF signals <strong>for</strong> the power<br />

switches.<br />

where . Hence, essentially four signals are required<br />

to control the eight switches of a phase-leg. Equivalently,<br />

each requires 4 b to store the state of the respective<br />

phase-leg. To this end, 12 b of memory in Fig. 9 stores<br />

a switching state at a memory location in M–CR, M–HX, and<br />

M–HX units. Due to the difference in the switching sequences<br />

in these units, the order in which switching states are organized<br />

in memory units differ from one another.<br />

1) Memory Unit <strong>for</strong> Circular Track (M–CR): On circular<br />

track tip P of the reference vector is positioned within a triangle<br />

. There are redundant switching states at the vertices<br />

of the triangles. Due to redundant states, there could be<br />

several switching sequences <strong>for</strong> a triangle. For example, <strong>for</strong> the<br />

range 0.5236 0.7854, at a switching period, the tip of<br />

the reference vector can be situated in triangle . For this triangle,<br />

following four sequences can be <strong>for</strong>med with minimum<br />

switching losses.<br />

Sequence 1:<br />

.<br />

Sequence 2:<br />

.<br />

Sequence 3:<br />

.<br />

Sequence 4:<br />

.<br />

The subscript on a switching state is stage of the sequence.<br />

Stages 0 3 and 3 0 are the set and reset part of the sequence.<br />

Similarity to a two-level SV<strong>PWM</strong> can be seen here. Subscript<br />

“0” and “3” represent the same vertex, and correspond to virtual<br />

zero vector of the two-level space vector diagram.<br />

<strong>General</strong>ly, a continuous <strong>PWM</strong> sequence have four stages as<br />

shown above, and a discontinuous <strong>PWM</strong> sequences have three<br />

stages [19]. The counter in processing unit generates stage<br />

number using the on-times , and . Here, 0 3<br />

<strong>for</strong> continuous SVM and 0 2 <strong>for</strong> discontinuous SVM.<br />

Among the various switching sequences <strong>for</strong> a triangle, only<br />

one can be applied at a switching period. Following examples<br />

explain the selection of a switching sequence using triangle .<br />

Example 1: Common Mode Voltage Reduction—In [20],<br />

a common mode voltage reduction scheme is given. The<br />

five-level ( -level) space vector diagram is converted to<br />

equivalent three-level ( -1-level) space vector diagram by<br />

retaining the switching states which generate zero common<br />

mode voltage. Due to the absence of redundancies, only<br />

one switching sequence exists <strong>for</strong> every triangle.<br />

Example 2: Intertriangle Switching Losses Minimization—There<br />

are two possible transitions of the reference<br />

vector <strong>for</strong> triangle . The transition depends on :<br />

Fig. 10. Memory address <strong>for</strong> circular track.<br />

i) <strong>for</strong> the range 0.5236 0.6614, the transition is<br />

, and Sequence 1 (or 2) is selected and ii) <strong>for</strong> the<br />

range 0.6614 0.7854, the transition is ,<br />

and Sequence 3 (or 4) is selected. Here, “ ” signifies<br />

transition between triangles.<br />

Example 3: DC-link Balancing in NPC topology—DClink<br />

balancing is a key issue [21], [22] <strong>for</strong> NPC topology.<br />

To have a better control authority over dc-link balance, a<br />

sequence is selected whose virtual zero vector has highest<br />

duty ratio among the three duty ratios, i.e., , , and<br />

<strong>for</strong> triangle . There<strong>for</strong>e, in triangle , Sequence<br />

1 (or 2) is selected if is maximum, Sequence 3 is selected<br />

if is maximum and Sequence 4 is selected if<br />

is maximum. This technique is well known <strong>for</strong> three-level<br />

inverter.<br />

These examples show that the selection of a switching sequence<br />

is dependent on the modulation scheme. For a given<br />

scheme, a set of relevant switching sequences can be identified<br />

<strong>for</strong> every triangle and stored in memory unit in contiguous locations.<br />

This is an off-line process.<br />

To this end, an 11-b address is given in Fig. 10. This address<br />

identifies a memory location in M-CR unit. It is divided into<br />

four parts: i) “Sector”: 3b , as <strong>for</strong> sector number<br />

, 1 6; ii) “Triangle”: 4b , as <strong>for</strong> triangle<br />

number , 15; iii) “Sequence”:2b , considering<br />

a retention of maximum four sequences per triangle;<br />

and iv) “Stage”: 2b , considering three or four<br />

stages per sequence with respect to continuous or discontinuous<br />

SVM, respectively.<br />

For a given modulation scheme, at any switching period, the<br />

processing unit calculates these parameters. Using these parameters,<br />

a memory location (switching state) is identified. Since<br />

the contents of a memory location represent “ON” or “OFF”<br />

condition <strong>for</strong> the switches of the inverter, they can be directly<br />

applied <strong>for</strong> generating gating signals. The proposed mapping<br />

concept can be used to implement a variety of schemes as explained<br />

above. It shows the generality of the proposed mapping<br />

concept.<br />

2) Memory Unit <strong>for</strong> Hexagonal Track (M–HX): On hexagonal<br />

track in Figs. 5 and 6, the tip P of the vector moves along<br />

on a side of one of the triangles , , , and<br />

. There is one switching state at a vertex on hexagonal<br />

track. The switching states at the nearest two vectors are utilized<br />

to <strong>for</strong>m a switching sequence. For example; <strong>for</strong> triangle ,<br />

the switching sequence is<br />

. Conclusively, a switching sequence<br />

on hexagonal track has only two stages. The counter in<br />

processing unit generates stage number using on-times<br />

and .<br />

To this end, an 8-b address is given in Fig. 11. This address<br />

identifies a memory location in M–HX unit. It is divided into<br />

three parts: i) “Sector”: 3b ; ii) “Triangle”: 4b<br />

; and iii) “Stage”: 1b , as only two stages


524 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007<br />

Fig. 11. Memory address <strong>for</strong> hexagonal track.<br />

Fig. 12. Memory address <strong>for</strong> hold mode.<br />

Fig. 13. Voltage † , current s , and FFT of voltage † at a0.90.<br />

exist. Due to the absence of redundant switching states, only<br />

one switching sequence exists <strong>for</strong> a triangle on hexagonal track.<br />

3) Memory Unit <strong>for</strong> Hold Mode (M-HL): In hold mode, the<br />

vector is held at a large vector. The switching state at this<br />

vertex, e.g., (2, 2, 2) is applied <strong>for</strong> full switching period. Unlike<br />

other two tracks, the switching sequence contains only one<br />

stage in hold mode. To this end, a 3-b address is given in Fig. 11,<br />

to identify a memory location in M–HL unit. The “Triangle,”<br />

“Sequence,” and “Stage” are not required here.<br />

This implementation is advantageous as compared to implementation<br />

of carrier based schemes <strong>for</strong> a multilevel inverter. In<br />

carrier based schemes, a separate controller might be required<br />

<strong>for</strong> every H-bridge [20] as every phase-leg is controlled separately.<br />

In such implementation, the synchronization of the controllers<br />

might lead to implementation complexity. On the other<br />

hand, using the proposed scheme a single controller unit generates<br />

the gating signals <strong>for</strong> all the switches of the inverter.<br />

The proposed scheme is applicable to both NPC and cascaded<br />

inverter. For a given level, the two topologies have same space<br />

vector diagram and equal number of power switches, so the cost<br />

of peripherals does not change. The processing unit is same <strong>for</strong><br />

both the topologies. For a given level, there are equal number of<br />

controllable switches in these topologies but their arrangement<br />

is different. Hence, <strong>for</strong> a given switching state, the gating signals<br />

or the set of bits at a memory location in Fig. 9 differ <strong>for</strong> the<br />

Fig. 14. Voltage † , current s , and FFT of voltage † at a0.94.<br />

Fig. 15. Voltage † , current s , and FFT of voltage † at a0.98.<br />

two topologies. Hence, the mapping unit should be redesigned<br />

while changing from one topology to the other. We show the<br />

implementation of the proposed scheme <strong>for</strong> a three-level NPC<br />

inverter in [23].<br />

VI. EXPERIMENTAL RESULTS FOR FIVE-LEVEL<br />

CASCADED INVERTER<br />

The algorithm is implemented using a dSPACE DS1104 card,<br />

due to its availability. Owing to the simplicity of the algorithm


GUPTA AND KHAMBADKONE: GENERAL SPACE VECTOR <strong>PWM</strong> ALGORITHM 525<br />

Fig. 16. Line voltage <strong>for</strong> seven-level inverter at (a) a 0.89, (b) a 0.93, and (c) a 0.97.<br />

it can be easily implemented on a fixed point DSP as well. The<br />

algorithm is tested on a laboratory prototype of a five-level cascaded<br />

inverter. The test was per<strong>for</strong>med on a 0.75-kW induction<br />

motor at 100 V, fundamental frequency 50 Hz<br />

and sampling frequency 5 kHz. Here, is voltage<br />

applied on each H-bridge module per Fig. 1.<br />

Figs. 13–15(a) show the line voltage and current at<br />

a modulation index of 0.90, 0.94, and 0.98 corresponding to<br />

linear mode, overmodulation mode I and overmodulation mode<br />

II, respectively.<br />

Figs. 13–15(b) show the linear RMS FFT of line voltage<br />

at a modulation index of 0.90, 0.94, and 0.98 corresponding to<br />

the linear mode, overmodulation mode I and overmodulation<br />

mode II, respectively. In Figs. 13–15(b), the top right quarter<br />

is complete FFT. This FFT is 10 vertically magnified to study<br />

various harmonics which occupies the remaining three quarters.<br />

Weighted total harmonic distortion WTHD [19] is given to study<br />

the harmonic losses. The is RMS value of fundamental<br />

component of the line voltage. For a cascaded inverter, theoretical<br />

RMS value of is given as .<br />

The error between experimental and theoretical value is less<br />

than 1% <strong>for</strong> the three cases. The error between simulation and<br />

theoretical value is less than 0.4% <strong>for</strong> at any .<br />

VII. EXTENSION OF THE PROPOSED SCHEME<br />

TO A -LEVEL INVERTER<br />

The block diagram in Fig. 8 describes the proposed scheme<br />

and its implementation <strong>for</strong> a five-level inverter. Some changes<br />

can be expected when it is applied to a -level inverter. We<br />

discuss below, the processing unit with respect to computational<br />

load, and mapping unit with respect to memory requirement.<br />

A. Processing Unit<br />

The processing unit calculates on-times and basic parameters<br />

to apply a switching state. The base scheme in Fig. 8 is essentially<br />

the flowchart in Fig. 7. This flowchart is given <strong>for</strong> a -level<br />

inverter. The main routine in Fig. 7(a) and sub-routine<br />

in Fig. 7(c) use as a linear constant, showing that number of<br />

computations are same <strong>for</strong> any value of . Whereas in<br />

Fig. 7(b) is independent of . There<strong>for</strong>e, the number of computations<br />

<strong>for</strong> the base scheme in processing unit remain same <strong>for</strong><br />

any value of . Conclusively, the same processing unit can be<br />

used <strong>for</strong> any level without any change.<br />

B. Mapping Unit<br />

Conceptually, the mapping unit <strong>for</strong> -level is the same as<br />

shown in Fig. 8. However, there are the following two structural<br />

changes in the number of bits at a memory location in Fig. 9 and<br />

its address in Figs. 10 and 11.<br />

1) In Fig. 9, <strong>for</strong> -level, bits are required to store a<br />

switching state at a memory location.<br />

2) The bits required <strong>for</strong> “Triangle” in Figs. 10 and 11 change,<br />

as there are 1 triangles per sector. For example, 7 b<br />

are required <strong>for</strong> “Triangle” part <strong>for</strong> an 11-level inverter as<br />

there are 100 triangles per sector. Except <strong>for</strong> “Triangle,”<br />

other parts in Figs. 10 and 11 remain unaffected by the<br />

change in .<br />

Commercially available EPROM chips of 1-, 4-, 16-, 32-, and<br />

64-kB sizes fulfill the memory requirement of mapping unit,<br />

to implement the proposed scheme <strong>for</strong> three-level, five-level,<br />

seven-level, nine-level, and 11-level inverter, respectively. This<br />

estimation is based on the memory structure shown in Figs. 9–12<br />

where the bits at memory location are directly used <strong>for</strong> generating<br />

gating signals. This estimation may change with the modulation<br />

scheme. The memory requirement increases with ,as<br />

switching states . The size of the memory is reduced to half<br />

if a two-step cascaded memory is used.<br />

Fig. 16(a)–(c) show the line voltage <strong>for</strong> a seven-level<br />

cascaded inverter at a modulation index of 0.89, 0.93, and 0.97.<br />

For this implementation, the same processing unit is used as<br />

<strong>for</strong> five-level without any change. The mapping unit is modified<br />

per the requirements of a seven-level inverter. The test was per<strong>for</strong>med<br />

at 100 V, fundamental frequency 50 Hz,<br />

and sampling frequency 5 kHz.<br />

VIII. CONCLUSION<br />

This paper proposes a SV<strong>PWM</strong> based scheme to per<strong>for</strong>m<br />

overmodulation <strong>for</strong> a multilevel inverter, and its implementation.<br />

The position of the vector is identified using an integer parameter,<br />

called a triangle number. The switching sequences are<br />

mapped with respect to the triangle number. The on-times calculation<br />

is based on on-time calculation <strong>for</strong> two-level SV<strong>PWM</strong>.<br />

The on-time calculation equations do not change with the triangle.<br />

A simple method of calculating on-times in the overmodulation<br />

range is used, hence, a solution to complex equations<br />

and lookup tables are not required. This leads to ease of implementation.<br />

There are no significant changes in computation with<br />

the increase in level. The proposed implementation is general in<br />

nature and can be applied to a variety of modulation schemes.<br />

The implementation is shown <strong>for</strong> a five-level and seven-level


526 IEEE TRANSACTIONS ON POWER ELECTRONICS, VOL. 22, NO. 2, MARCH 2007<br />

cascaded inverter. The experimental results are provided. The<br />

proposed method can be easily implemented using a commercially<br />

available motion control DSP or micro-controller, which<br />

normally supports only two-level modulation.<br />

REFERENCES<br />

[1] J. Rodriguez, J.-S. Lai, and F. Z. Peng, “<strong>Multilevel</strong> inverters: a survey<br />

of topologies, controls, and applications,” IEEE Trans. Ind. Electron.,<br />

vol. 49, no. 4, pp. 724–738, Aug. 2002.<br />

[2] P. Hammond, “A new approach to enhance power quality <strong>for</strong> medium<br />

voltage ac drives,” IEEE Trans. Ind. Appl., vol. 33, no. 1, pp. 202–208,<br />

Jan./Feb. 1997.<br />

[3] L. M. Tolbert, F. Z. Peng, and T. G. Habetler, “<strong>Multilevel</strong> converters<br />

<strong>for</strong> large electric drives,” IEEE Trans. Ind. Appl., vol. 35, no. 1, pp.<br />

36–44, Jan./Feb. 1999.<br />

[4] J. Holtz, W. Lotzkat, and A. M. Khambadkone, “On continuous control<br />

of pwm inverters in overmodulation range including six-step,” IEEE<br />

Trans. Power Electron., vol. 8, no. 4, pp. 546–553, Oct. 1993.<br />

[5] D.-C. Lee and G.-M. Lee, “A novel overmodulation technique <strong>for</strong><br />

space-vector pwm inverters,” IEEE Trans. Power Electron., vol. 13,<br />

no. 6, pp. 1144–1151, Nov. 1998.<br />

[6] A. Tripathi, A. M. Khambadkone, and S. K. Panda, “Direct method of<br />

overmodulation with integrated closed loop stator flux vector control,”<br />

IEEE Trans. Power Electron., vol. 20, no. 5, pp. 1161–1168, Sep. 2005.<br />

[7] A. M. Massoud, S. J. Finney, and B. W. Williams, “Control techniques<br />

<strong>for</strong> multilevel voltage source inverters,” in Proc. Power Electron. Spec.,<br />

Jun. 2003, vol. 1, pp. 171–176.<br />

[8] N. Celanovic and D. Boroyevich, “A fast space vector modulation algorithm<br />

<strong>for</strong> multilevel three phase converters,” IEEE Trans. Ind. Appl.,<br />

vol. 37, no. 2, pp. 637–641, Mar./Apr. 2001.<br />

[9] R. S. Kanchan, M. R. Baiju, K. K. Mohapatra, P. P. Ouseph, and K.<br />

Gopakumar, “<strong>Space</strong> vector pwm signal generation <strong>for</strong> multilevel inverters<br />

using only the sampled amplitudes of reference phase voltages,”<br />

Proc. Inst. Elect. Eng., vol. 152, no. 2, pp. 297–309, Mar. 2005.<br />

[10] A. K. Gupta, A. M. Khambadkone, and K. M. Tan, “A two-level<br />

inverter based svpwm algorithm <strong>for</strong> a multilevel inverter,” in Proc.<br />

Annu. Conf. IEEE Ind. Electron. Soc. (IECON), Nov. 2004, vol. 2, pp.<br />

1823–1828.<br />

[11] J. H. Seo, C. H. Choi, and D. S. Hyun, “A new simplified space-vector<br />

pwm method <strong>for</strong> three-level inverters,” IEEE Trans. Power Electron.,<br />

vol. 16, no. 4, pp. 545–550, Jul. 2001.<br />

[12] B. P. McGrath and D. G. Holmes, “Sinusoidal pwm of multilevel inverters<br />

in the overmodulation region,” in Proc. IEEE 33rd Annu. Power<br />

Electron. Spec. Conf. (PESC), Jun. 2002, vol. 2, pp. 485–490.<br />

[13] S. K. Mondal, B. K. Bose, V. Oleschuk, and J. O. P. Pinto, “<strong>Space</strong><br />

vector pulse width modulation of three-level inverter extending operation<br />

into overmodulation region,” IEEE Trans. Power Electron., vol.<br />

18, no. 2, pp. 604–611, Mar. 2003.<br />

[14] M. Saeedifard, A. R. Bakhshai, G. Joos, and P. Jain, “Extending the<br />

operating range of the neuro-computing vector classification space<br />

vector modulation algorithm of three-level inverters into overmodulation<br />

region,” in Proc. IEEE 38th Ind. Appl. Conf., Oct. 2003, vol. 1,<br />

pp. 672–677.<br />

[15] S. K. Mondal, J. O. P. Pinto, and B. K. Bose, “A neural-network-based<br />

space-vector pwm controller <strong>for</strong> a three-level voltage-fed inverter induction<br />

motor drive,” IEEE Trans. Power Electron., vol. 38, no. 3, pp.<br />

660–669, May/Jun. 2002.<br />

[16] A. Nabae, I. Takahashi, and H. Akagi, “A new neutral-point clamped<br />

pwm inverter,” IEEE Trans. Ind. Appl., vol. IA-17, no. 5, pp. 518–523,<br />

Sep./Oct. 1981.<br />

[17] S. Bolognani and M. Zigliotto, “Novel digital continuous control of<br />

svm inverters in the overmodulation range,” IEEE Trans. Ind. Appl.,<br />

vol. 33, no. 2, pp. 525–530, Mar./Apr. 1997.<br />

[18] B. P. McGrath, D. G. Holmes, and T. A. Lipo, “Optimized space vector<br />

switching sequences <strong>for</strong> multilevel inverters,” IEEE Trans. Power Electron.,<br />

vol. 18, no. 6, pp. 1293–1301, Nov. 2003.<br />

[19] D. G. Holmes and T. A. Lipo, Pulse Width Modulation <strong>for</strong> Power Converters.<br />

New York: Wiley, 2003.<br />

[20] P. C. Loh, D. G. Holmes, Y. Fukuta, and T. A. Lipo, “Reduced<br />

common-mode modulation strategies <strong>for</strong> cascaded multilevel inverters,”<br />

IEEE Trans. Ind. Appl., vol. 39, no. 5, pp. 1386–1395,<br />

Sep./Oct. 2003.<br />

[21] T. Ishida, K. Matsuse, K. Sugita, L. Huang, and K. Sasagawa, “Dc<br />

voltage control strategy <strong>for</strong> a five-level converter,” IEEE Trans. Power<br />

Electron., vol. 15, no. 3, pp. 508–515, May 2000.<br />

[22] N. Celanovic and D. Boroyevich, “A comprehensive study of neutral<br />

point voltage balancing problem in three level neutral point clamped<br />

voltage source pwm inverters,” IEEE Trans. Power Electron., vol. 15,<br />

no. 2, pp. 242–249, Mar. 2000.<br />

[23] A. K. Gupta and A. M. Khambadkone, “A general space vector pwm<br />

algorithm <strong>for</strong> a multilevel inverter including operation in overmodulation<br />

range, with a detailed modulation analysis <strong>for</strong> a three-level npc<br />

inverter,” in Proc. PESC, Jun. 2005, pp. 2527–2533.<br />

Amit Kumar Gupta (S’04) was born in India,<br />

in 1978. He received the B.E. degree in electrical<br />

engineering from the Indian Institute of Technology,<br />

Roorkee, in 2000 and is currently pursuing the Ph.D.<br />

degree at the National University of Singapore,<br />

Singapore.<br />

From 2000 to 2003, he worked <strong>for</strong> Bechtel India<br />

Pvt., Ltd., New Delhi and Samsung Heavy Industries,<br />

Ltd., Korea. His research interests include <strong>PWM</strong> <strong>for</strong><br />

multilevel converters, power electronics, and motion<br />

control.<br />

Ashwin M. Khambadkone (SM’04) received<br />

the Dr.-Ing. degree from Wuppertal University,<br />

Wuppertal, Germany, in 1995 and the Graduate<br />

Certificate in education from the University of<br />

Queensland, Brisbane, Australia.<br />

At Wuppertal, he was involved in research and industrial<br />

projects in the areas of <strong>PWM</strong> methods, fieldoriented<br />

control, parameter identification, and sensorless<br />

vector control. From 1995 to 1997, he was a<br />

Lecturer at the University of Queensland. He was also<br />

at the Indian Institute of Science, Bangalore, India in<br />

1998. Since 1998, he has been an Assistant Professor at the National University<br />

of Singapore. His research activities are in the control of ac drives, design and<br />

control of power electronic converters, and fuel cell based systems.<br />

Dr. Khambadkone received the Outstanding Paper Award in 1991 and the<br />

Best Paper Award in 2002 both which appeared in the IEEE TRANSACTIONS ON<br />

INDUSTRIAL ELECTRONICS.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!