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