Professional Documents
Culture Documents
P #2 S V PWM I: Roject Pace Ector Nverter
P #2 S V PWM I: Roject Pace Ector Nverter
1. Problem Description
In this simulation, we will study Space Vector Pulse Width Modulation (SVPWM) technique.
We will use the SEMIKRON IGBT Flexible Power Converter for this purpose. The system
configuration is given below:
Fig. 1 Circuit model of three-phase PWM inverter with a center-taped grounded DC bus.
The system parameters for this converter are as follows:
Fundamental frequency: f = 60 Hz
Using Matlab/Simulink, simulate the circuit model described in Fig. 1 and plot the
waveforms of Vi (= [ViAB ViBC ViCA]), Ii (= [iiA iiB iiC]), VL (= [VLAB VLBC VLCA]), and IL (= [iLA
iLB iLC]).
m =
vcontrol
peak of (V A0 )1
=
,
vtri
Vdc / 2
VA0
The relationship between the switching variable vector [a, b, c]t and the line-to-line voltage
vector [Vab Vbc Vca]t is given by (2.1) in the following:
Vab
1 1 0 a
V = V 0 1 1 b .
dc
bc
Vca
1 0 1 c
(2.1)
Also, the relationship between the switching variable vector [a, b, c]t and the phase voltage
vector [Va Vb Vc]t can be expressed below.
Van
V = Vdc
bn
3
Vcn
2 1 1 a
1 2 1 b .
1 1 2 c
(2.2)
As illustrated in Fig. 4, there are eight possible combinations of on and off patterns for the
three upper power switches. The on and off states of the lower power devices are opposite to the
upper one and so are easily determined once the states of the upper power transistors are
determined. According to equations (2.1) and (2.2), the eight switching vectors, output line to
neutral voltage (phase voltage), and output line-to-line voltages in terms of DC-link Vdc, are
given in Table1 and Fig. 5 shows the eight inverter voltage vectors (V0 to V7).
Table 1. Switching vectors, phase voltages and output line to line voltages
provide more efficient use of supply voltage compared with sinusoidal modulation technique as
shown in Fig. 6.
Fig. 6 Locus comparison of maximum linear control voltage in Sine PWM and SVPWM.
To implement the space vector PWM, the voltage equations in the abc reference frame
can be transformed into the stationary dq reference frame that consists of the horizontal (d) and
vertical (q) axes as depicted in Fig. 7.
Fig. 7 The relationship of abc reference frame and stationary dq reference frame.
From this figure, the relation between these two reference frames is below
f dq 0 = K sf abc
(2.3)
1 1/ 2 1/ 2
2
T
T
where, K s =
0
3 2 3 2 , fdq0=[fd fq f0] , fabc=[fa fb fc] , and f denotes either a voltage
3
1 / 2 1 / 2
1 / 2
or a current variable.
V5, V6, and V7. The same transformation can be applied to the desired output voltage to get the
desired reference voltage vector Vref in the d-q plane.
The objective of space vector PWM technique is to approximate the reference voltage vector
Vref using the eight switching patterns. One simple method of approximation is to generate the
average output of the inverter in a small period, T to be the same as that of Vref in the same
period.
3
3
Vbn
Vcn
2
2
V
d 2
2
=
V
3
3
q
0
2
Vref = Vd + Vq
Vq
= tan 1
Vd
1 V
an
2 V
3 bn
V
2 cn
From Fig. 10, the switching time duration can be calculated as follows:
10
Tz
T1
T1 + T2
Tz
T1
T1 + T2
V ref = V1dt + V 2 dt + V 0
Tz V ref = (T1 V1 + T2 V 2 )
cos ( )
1
cos ( / 3)
2
2
Tz V ref
= T1 Vdc + T2 Vdc
3
3
sin ( )
0
sin ( / 3)
(where, 0 60)
T1 = Tz a
sin ( / 3 )
sin ( / 3)
T2 = Tz a
sin ( )
sin ( / 3)
1
T0 = Tz (T1 + T2 ), where, Tz =
fz
V ref
and a =
2
Vdc
3
3
Vdc
T1 =
=
3 Tz V ref
n
sin
3
Vdc
3 Tz V ref
n
n
T2 =
=
3 Tz V ref
n 1
sin
3
Vdc
3 Tz V ref
n 1
n 1
+ sin cos
cos sin
3
3
Vdc
T0 = Tz T1 T2 ,
0 60
11
2.2.3 Step 3: Determine the switching time of each transistor (S1 to S6)
(a) Sector 1.
(b) Sector 2.
12
(c) Sector 3.
(d) Sector 4.
(e) Sector 5.
(f) Sector 6.
Based on Fig. 11, the switching time at each sector is summarized in Table 2, and it will be
built in Simulink model to implement SVPWM.
13
14
3. State-Space Model
Fig. 12 shows L-C output filter to obtain current and voltage equations.
iiA + ica = i ab + i LA
iiA + C f
dV LCA
dV LAB
=Cf
+ i LA .
dt
dt
(3.1)
iiB + i ab = ibc + i LB
iiB + C f
dV LBC
dV LAB
=Cf
+ i LB .
dt
dt
(3.2)
d node b:
e node c:
15
where, iab = C f
iiC + C f
dV LBC
dV LCA
=Cf
+ i LC .
dt
dt
(3.2)
dVLBC
dVLCA
dVLAB
, ibc = C f
, ica = C f
.
dt
dt
dt
(3.4)
(3.5)
(3.6)
To simplify (3.4) to (3.6), we use the following relationship that an algebraic sum of line to line
load voltages is equal to zero:
VLAB + VLBC + VLCA = 0.
16
(3.7)
Based on (3.7), the (3.4) to (3.6) can be modified to a first-order differential equation,
respectively:
dV LAB
1
1
(i LAB )
iiAB
=
3C f
3C f
dt
dV LBC
1
1
iiBC
(i LB C ) ,
=
dt
3
C
3
C
f
f
dV LCA
1
1
(i LCA )
iiCA
=
3
3
dt
C
C
f
f
(3.8)
where, iiAB = iiA iiB, iiBC = iiB iiC, iiCA = iiC iiA and iLAB = iLA iLB, iLBC = iLB iLC,
iLCA = iLC iLA.
By applying Kirchoffs voltage law on the side of inverter output, the following voltage
equations can be derived:
diiAB
1
1
V LAB +
ViAB
=
Lf
Lf
dt
diiBC
1
1
V LBC +
ViBC .
=
Lf
Lf
dt
diiCA
1
1
dt = L V LCA + L ViCA
f
f
(3.9)
By applying Kirchoffs voltage law on the load side, the following voltage equations can be
derived:
V LAB = Lload
V LBC = Lload
V LCA = Lload
di LA
di
+ Rload i LA Lload LB Rload i LB
dt
dt
di LC
di LB
+ Rload i LB Lload
Rload i LC .
dt
dt
di LC
di
+ Rload i LC Lload LA Rload i LA
dt
dt
17
(3.10)
Lload
Lload
dt
di LBC
R
1
V LBC .
= load i LBC +
Lload
Lload
dt
di LCA
R
1
V LCA
= load i LCA +
dt
Lload
Lload
(3.11)
Therefore, we can rewrite (3.8), (3.9) and (3.11) into a matrix form, respectively:
dVL
1
1
=
Ii
IL
3C f
3C f
dt
dI i
1
1
=
VL +
Vi
dt
Lf
Lf
(3.12)
R
dI L
1
=
VL load I L
dt
Lload
Lload
where, VL = [VLAB VLBC VLCA]T , Ii = [iiAB iiBC iiCA]T = [iiA-iiB iiB-iiC iiC-iiA]T , Vi = [ViAB ViBC ViCA]T ,
IL = = [iLAB iLBC iLCA]T = [iLA-iLB iLB-iLC iLC-iLA]T.
Finally, the given plant model (3.12) can be expressed as the following continuous-time state
space equation
& (t ) = AX(t ) + Bu(t ) ,
X
0 33
V
L
1
, A =
where, X = I i
I 33
Lf
I
L 91
1
I 33
L
load
1
I 33
3C f
0 33
0 33
(3.13)
1
I 33
0 33
3C f
, B = 1 I 33 , u = [V ] .
0 33
i 31
Lf
Rload
33
93
I 33
Lload
99
18
Note that load line to line voltage VL, inverter output current Ii, and the load current IL are the
state variables of the system, and the inverter output line-to-line voltage Vi is the control input
(u).
4. Simulation Steps
1). Initialize system parameters using Matlab
2). Build Simulink Model
Determine sector
Determine the switching time (Ta, Tb, and Tc) of each transistor (S1 to S6)
Generate the inverter output voltages (ViAB, ViBC, ViCA,) for control input (u)
19
5. Simulation results
ViAB [V]
500
-500
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
Time [Sec]
0.96
0.97
0.98
0.99
ViBC [V]
500
-500
0.9
ViCA [V]
500
-500
0.9
Fig. 13 Simulation results of inverter output line to line voltages (ViAB, ViBC, ViCA)
20
iiA [A]
50
0
-50
-100
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
Time [Sec]
0.96
0.97
0.98
0.99
100
iiB [A]
50
0
-50
-100
0.9
100
iiC [A]
50
0
-50
-100
0.9
21
VLAB [V]
200
0
-200
-400
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
Time [Sec]
0.96
0.97
0.98
0.99
400
VLBC [V]
200
0
-200
-400
0.9
400
VLCA [V]
200
0
-200
-400
0.9
Fig. 15 Simulation results of load line to line voltages (VLAB, VLBC, VLCA)
22
iLA [A]
50
-50
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
0.91
0.92
0.93
0.94
0.95
Time [Sec]
0.96
0.97
0.98
0.99
iLB [A]
50
-50
0.9
iLC [A]
50
-50
0.9
23
ViAB [V]
500
-500
0.9
100
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1
iiA
iiB
-100
0.9
400
iiC
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
200
VLAB
VLBC
VLCA
-200
-400
0.9
50
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1
iLA
iLB
-50
0.9
iLC
0.91
0.92
0.93
0.94
0.95
Time [Sec]
0.96
0.97
24
0.98
0.99
Appendix
Matlab/Simulink Codes
25
eye(3)/(3*Cf)
zeros(3,3)
eye(3,3)/Lload zeros(3,3)
-eye(3)/(3*Cf)
zeros(3,3)
-eye(3)*Rload/Lload]; % system matrix
B=[zeros(3,3)
eye(3)/Lf
zeros(3,3)]; % coefficient for the control variable u
26
27
figure(1)
subplot(3,1,1)
plot(t,ViAB)
axis([0.9 1 -500 500])
ylabel('V_i_A_B [V]')
title('Inverter output line to line voltages (V_i_A_B, V_i_B_C, V_i_C_A)')
28
grid
subplot(3,1,2)
plot(t,ViBC)
axis([0.9 1 -500 500])
ylabel('V_i_B_C [V]')
grid
subplot(3,1,3)
plot(t,ViCA)
axis([0.9 1 -500 500])
ylabel('V_i_C_A [V]')
xlabel('Time [Sec]')
grid
figure(2)
subplot(3,1,1)
plot(t,iiA)
axis([0.9 1 -100 100])
ylabel('i_i_A [A]')
title('Inverter output currents (i_i_A, i_i_B, i_i_C)')
grid
subplot(3,1,2)
plot(t,iiB)
axis([0.9 1 -100 100])
ylabel('i_i_B [A]')
grid
subplot(3,1,3)
29
plot(t,iiC)
axis([0.9 1 -100 100])
ylabel('i_i_C [A]')
xlabel('Time [Sec]')
grid
figure(3)
subplot(3,1,1)
plot(t,VLAB)
axis([0.9 1 -400 400])
ylabel('V_L_A_B [V]')
title('Load line to line voltages (V_L_A_B, V_L_B_C, V_L_C_A)')
grid
subplot(3,1,2)
plot(t,VLBC)
axis([0.9 1 -400 400])
ylabel('V_L_B_C [V]')
grid
subplot(3,1,3)
plot(t,VLCA)
axis([0.9 1 -400 400])
ylabel('V_L_C_A [V]')
xlabel('Time [Sec]')
grid
figure(4)
subplot(3,1,1)
plot(t,iLA)
axis([0.9 1 -50 50])
30
ylabel('i_L_A [A]')
title('Load phase currents (i_L_A, i_L_B, i_L_C)')
grid
subplot(3,1,2)
plot(t,iLB)
axis([0.9 1 -50 50])
ylabel('i_L_B [A]')
grid
subplot(3,1,3)
plot(t,iLC)
axis([0.9 1 -50 50])
ylabel('i_L_C [A]')
xlabel('Time [Sec]')
grid
figure(5)
subplot(4,1,1)
plot(t,ViAB)
axis([0.9 1 -500 500])
ylabel('V_i_A_B [V]')
grid
subplot(4,1,2)
plot(t,iiA,'-', t,iiB,'-.',t,iiC,':')
axis([0.9 1 -100 100])
ylabel('i_i_A, i_i_B, i_i_C [A]')
legend('i_i_A', 'i_i_B', 'i_i_C')
grid
31
subplot(4,1,3)
plot(t,VLAB,'-', t,VLBC,'-.',t,VLCA,':')
axis([0.9 1 -400 400])
ylabel('V_L_A_B, V_L_B_C, V_L_C_A [V]')
legend('V_L_A_B', 'V_L_B_C', 'V_L_C_A')
grid
subplot(4,1,4)
plot(t,iLA,'-', t,iLB,'-.',t,iLC,':')
axis([0.9 1 -50 50])
ylabel('i_L_A, i_L_B, i_L_C [A]')
legend('i_L_A', 'i_L_B', 'i_L_C')
xlabel('Time [Sec]')
grid
32
33
34
1). T1 = u[1]*(sin(u[3]*pi/3)*cos(u[2])-cos(u[3]*pi/3)*sin(u[2]))
2). T2 = u[1]*(cos((u[3]-1)*(pi/3))*sin(u[2])-sin((u[3]-1)*(pi/3))*cos(u[2]))
3). Ta = (u[4]==1)*(u[1]+u[2]+u[3])+(u[4]==2)*(u[1]+u[2]+u[3]) + (u[4]==3)*(u[1]+u[3]) +
(u[4]==4)*(u[1])+ (u[4]==5)*(u[1])+ (u[4]==6)*(u[1]+u[2])
35