# PROJECT #1 SINE-∆ PWM INVERTER

JIN-WOO JUNG, PH.D STUDENT
E-mail: jung.103@osu.edu Tel.: (614) 292-3633

DATE: FEBRUARY 20, 2005

MECHATRONIC SYSTEMS LABORATORY DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING THE OHIO STATE UNIVERSITY

1. Problem Description
In this simulation, we will study Sine-∆ Pulse Width Modulation (PWM) 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:  IGBTs: SEMIKRON SKM 50 GB 123D, Max ratings: VCES = 600 V, IC = 80 A  DC- link voltage: Vdc = 400 V  Fundamental frequency: f = 60 Hz  PWM (carrier) frequency: fz = 3 kHz  Modulation index: m = 0.8  Output filter: Lf = 800 µH and Cf = 400 µF  Load: Lload = 2 mH and Rload = 5 Ω 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]).

2

2. Sine-∆ PWM
2.1 Principle of Pulse Width Modulation (PWM) Fig. 2 shows circuit model of a single-phase inverter with a center-taped grounded DC bus, and Fig 3 illustrates principle of pulse width modulation.

Fig. 2 Circuit model of a single-phase inverter.

Fig. 3 Pulse width modulation. As depicted in Fig. 3, the inverter output voltage is determined in the following:  When Vcontrol > Vtri, VA0 = Vdc/2  When Vcontrol < Vtri, VA0 = −Vdc/2

3

Also. inverter output line to neutral voltage (VA0. inverter output line to line voltages (VAB. 4 Three-phase PWM Inverter.2 Three-Phase Sine-∆ PWM Inverter Fig. 4 . Vdc / 2 VA0 where. VB0. 5 shows waveforms of carrier wave signal (Vtri) and control signal (Vcontrol). VBC. VC0). respectively. (VA0 )1 : fundamental frequecny component of 2. VCA). Fig. 4 shows circuit model of three-phase PWM inverter and Fig. the inverter output voltage has the following features:  PWM frequency is the same as the frequency of Vtri  Amplitude is controlled by the peak value of Vcontrol  Fundamental frequency is controlled by the frequency of Vcontrol Modulation index (m) is defined as: peak of (V A0 )1 ∴ m= vcontrol vtri = .

5. VA0 = Vdc/2  When Vcontrol < Vtri. fs = PWM frequency and f1 = Fundamental frequency The inverter output voltages are determined as follows:  When Vcontrol > Vtri. As described in Fig. VAB = VA0 – VB0. VA0 = −Vdc/2 where. the frequency of Vtri and Vcontrol is:  Frequency of Vtri = fs  Frequency of Vcontrol = f1 where.Fig. VBC = VB0 – VC0. 5 Waveforms of three-phase sine-∆ PWM inverter. VCA = VC0 – VA0 .

By applying Kirchoff’s current law to nodes a. dt dt iiA + ica = i ab + i LA (1)  node “b”: . 6 L-C output filter for current/voltage equations. b.3. respectively. State-Space Model Fig. Fig. 6 shows L-C output filter to obtain current and voltage equations. and c. the following current equations are derived:  node “a”: dVLCA dV ⇒ iiA + C f = C f LAB + i LA .

iiB + iab = ibc + ⇒ iiB + C f dVLAB dt =C dVLBC dt + i LB . (2) i LB f .

(4)  dV ⇒ C  f LCA −2⋅ dVLAB  = −i + i +i −i  dt dt dt  iA iB LA LB  subtracting (3) from (2): dVLBC   dV + C  LAB − =  C iC f i −i iB dVLCA  dVLBC  −   dt   + i −i  dt dt  f dt  LB LC . dt dt iiC + ibc = ica + i LC (3) where. (5) . node “c”: dVLBC dV ⇒ iiC + C f = C f LCA + i LC . ibc = C f dVLBC dt . respectively:  subtracting (2) from (1): dV dV dV LAB i −i +C  LCA − LAB = C  − dVLBC  + i − i iA iB  f  dt dV + LBC  dt  f    dt  dt  LA LB . Also. ica = C f dVLCA dt . (1) to (3) can be rewritten as the following equations. iab = C f dVLAB dt .

we use the following relationship that an algebraic sum of line to line load voltages is equal to zero: . (6)  dV ⇒ C f + LAB dV −2⋅ +i +i −i  LCA = −i  dt dt dt  iC iA LC LA To simplify (4) to (6).dVLBC  dV LAB dVLCA ⇒ C  + −2⋅  = −i + i + i f −i LC  dt dt dt  iB iC LB  subtracting (1) from (3): dV − dV LCA  = LBC C +C  iA i −i   f dV LCA − dV LAB + i − i  LA LC iC  f  dt dVLBC  dt   dt  dt  .

respectively: (7) ⎩ dV 1 1 LAB iiAB − ⎩ =  dt 3C f 3C f (i LAB )  dVLBC 1 1 = iiBC − ⎩  dt 3C f 3C f (iLB C ) . the following voltage equations can be derived: ⎩ di iAB 1 1 ViAB = − V LAB +  Lf Lf  dt  diiBC 1 1 =− V LBC + ViBC . the (4) to (6) can be modified to a first-order differential equation. (8)  dVLCA 1 1 = iiCA −  ⎩ dt 3C f 3C f (i LCA ) where. iiCA = iiC ─ iiA and iLAB = iLA ─ iLB.  Lf Lf  dt  diiCA 1 1 = − V LCA + V  Lf L f iCA ⎩ dt (9) By applying Kirchoff’s voltage law on the load side. iLBC = iLB ─ iLC. By applying Kirchoff’s voltage law on the side of inverter output. Based on (7). iLCA = iLC ─ iLA. iiAB = iiA ─ iiB. iiBC = iiB ─ iiC. the following voltage equations can be derived: .VLAB + VLBC + VLCA = 0.

X =  I .B=   I 3×3   .  1 I 3×3 0 3×3 Rload L  I 3×3 IL 9×1  L ⎩ load −  ⎩L 3×3   9×3  ⎩ load 0 9×9 . u = [Vi ]3×1 . A = ⎩ − I 3×3 i   0 3×3 0 3×3 ⎩ ⎩  L ⎩ f f .X& (t ) = AX(t ) + Bu(t ) . (13) ⎩VL ⎩ ⎩  0 3×3 ⎩ ⎩ 1 1 I 3×3 − I 3×3 3C f  3C f   0 3×3  ⎩ 1  1 where.

ViBn. ViCn.  Generate the inverter output voltages (ViAB.) for control input (u)  Build state-space model  Send data to Workspace 3). Initialize system parameters using Matlab 2). Build Simulink Model  Generate carrier wave (Vtri) and control signal (Vcontrol) based on modulation index (m)  Compare Vtri to Vcontrol to get ViAn. Simulation Steps 1). and the load current IL are the state variables of the system. inverter output current Ii. ViBC. ViCA.Note that load line to line voltage VL. 4. Plot simulation results using Matlab . and the inverter output line-to-line voltage Vi is the control input (u).

9 04 0.9 02 0.9 04 0.9 01 0.9 07 0.9 9 0 Fig. control signal. (a) Carrier wave (Vtri) and control signal (Vsin) (b) Inverter output line to neutral voltage (ViAn) (c) Enlarged carrier wave (Vtri) and control signal (Vsin) (d) Enlarged inverter output line to neutral voltage (ViAn) .9 02 0.9 0.9 04 0.9 05 0.9 07 0.9 05 Time [Sec] 0.9 50 0 0 -5 0 0 0.91 0.9 50 0 ViAn [V] 0 -5 0 0 0.9 16 0. 7 Waveforms of carrier wave.5. Simulation results V a V a V tri nd sin nd iAn 1 0 -1 0.903 0. V sin [V] V tri V sin 0.9 12 0.9 08 0.903 0.9 Vtri.9 04 0.9 9 0 0.9 2 0.9 02 0.9 06 0.9 08 0.906 0.9 14 0.9 08 0.906 0.9 2 ViAn [V] Vtri.9 16 0.9 12 0.9 06 0.9 01 0.9 02 0. and inverter output line to neutral voltage.91 0.9 08 0.9 18 V tri V sin 0.9 14 0. V sin [V] 1 0 -1 0.9 18 0.

ViBC.93 0.92 0.98 0.97 0.V iBC ) iCA ViAB [V] 0 -5 0 0 0.92 0.96 0.9 0.94 0.93 0.99 1 ViBC[V] 0 -5 0 0 0.96 0.94 0.95 0.Inverter o ut line to line utp volta ges (V 50 0 .98 0.97 0.94 0.96 0.97 0.9 50 0 ViC [V] 0.91 0.95 Time [Sec] 0.95 0.9 50 0 0.V iAB .92 0.91 0. ViCA) .93 0.98 0.91 0.99 1 Fig.99 1 0 A -5 0 0 0. 8 Simulation results of inverter output line to line voltages (ViAB.

96 0.92 0.9 10 0 5 0 iiB [A] 0 -50 -1 0 0 0.98 0.96 0.99 1 0.95 0.97 0.97 0.98 0.94 0.91 0.95 0.94 0.Inverter o ut utp curre nts (i iA .91 0.9 10 0 5 0 iiC [A] 0 -50 -1 0 0 0.92 0.9 0.i .93 0.93 0.i ) iB iC 10 0 5 0 iiA [A] 0 -50 -1 0 0 0. iiB.92 0.91 0.99 1 Fig. iiC) .96 0.94 0.97 0.98 0.95 Time [Sec] 0.93 0. 9 Simulation results of inverter output currents (iiA.99 1 0.

9 40 0 VLBC[V] 20 0 0 -2 0 0 -4 0 0 0.93 0. 10 Simulation results of load line to line voltages (VLAB.93 0.92 0.V LBC ) LCA LAB VLAB[V] 0.96 0.91 0.98 0.98 0.93 0.99 1 A 0.V .96 0.91 0.97 0.94 0.95 .92 0.99 1 0.L a d line to line voltag s o e (V 40 0 20 0 0 -2 0 0 -4 0 0 0.95 0.97 0.9 40 0 VLC [V] 20 0 0 -2 0 0 -4 0 0 0.92 0.96 0.94 0.99 1 Fig.91 0.98 0.95 Time [Sec] 0. VLCA) .97 0.94 0. VLBC.9 0.

98 0.95 0.98 0.99 1 iLC [A] 0 -50 0.i ) LB L C 5 0 iLA [A] 0 -50 0.92 0.9 0.93 0.92 0.92 0.99 1 iLB [A] 0 -50 0.91 0.99 1 Fig.i . 11 Simulation results of load phase currents (iLA.L a d p a se curre o h nts (i LA . iLB.97 0.94 0.96 0.94 0.97 0.93 0.97 0.91 0.95 0. iLC) .98 0.9 5 0 0.96 0.9 5 0 0.95 Time [Sec] 0.93 0.94 0.91 0.96 0.

9 40 0 20 0 0 -2 0 0 -4 0 0 0.97 0.94 0. .98 0.96 0.96 0.93 0.93 0.94 0. i LB.97 0.96 0.96 0.97 0. (a) Inverter output line to line voltage (ViAB) (b) Inverter output current (iiA) (c) Load line to line voltage (VLAB) (d) Load phase current (iLA) .95 0.9 Fig.91 0.92 0.99 1 1 iLA . i LC [A] LCA -50 0.99 i iA i iB i iC 1 -1 0 0 0. 12 Simulation waveforms.95 Time [Sec] 0.98 0.95 0.91 0.93 0.92 0.92 0.94 0.92 0.94 0. i iC[A] 0 0.99 V L A 1 VLAB V LBCV .9 5 0 0 [V] 0.9 10 0 iiA .98 0.93 0.91 0.98 0. B V LBC V 0.97 0. i iB.50 0 ViAB [V] 0 -5 0 0 0.91 0.99 iA L iB L iC L 0.95 0.

A. % Load resistance f= 60. 0 1 -1]. % Fundamental frequency fz = 3e3. % Conversion matrix to transform [iiAB iiBC iiCA] to [iiA iiB iiC] .3) B=[zeros(3. 1 -1 0.3) -eye(3)/(3*Cf) zeros(3.3)]. % Capacitance for output filter Lload = 2e-3. % Modulation index % Coefficients for State-Space Model A=[zeros(3. Date: 02/20/05 % ECE743.3) -eye(3)/Lf eye(3)/(3*Cf) zeros(3.8.1 Matlab Code for System Parameters % Written by Jin Woo Jung. % system matrix eye(3. Simulation Project #1 (Sine PWM Inverter) % Matlab program for Parameter Initialization clear all % clear workspace % Input data Vdc= 400.3)/Lload zeros(3. % DC-link voltage Lf= 800e-6. % coefficient for the output y D=[zeros(9. %Load inductance Rload= 5. % coefficient for the output y Ks = 1/3*[-1 0 1. % coefficient for the control variable u C=[eye(9)].% Inductance for output filter Cf= 400e-6. % Switching frequency m= 0.3) -eye(3)*Rload/Lload].3)].3) eye(3)/Lf zeros(3.

1). Simulation Project #1 (Sine-PWM) % Matlab program for plotting Simulation Results % using Simulink ViAB = Vi(:. iLA= ILABC(:. iLC= ILABC(:. ViCA = Vi(:. ViBC = Vi(:.2).1). iiB= IiABC(:. V_i_B_C. VLBC= VL(:.2). iiA= IiABC(:.3). figure(1) subplot(3.1).3).ViAB) axis([0.9 1 -500 500]) ylabel('V_i_A_B [V]') title('Inverter output line to line voltages (V_i_A_B. VLCA= VL(:.3).2).1.A.2 Matlab Code for Plotting the Simulation Results % Written by Jin Woo Jung % Date: 02/20/05 % ECE743.1).2).1) plot(t. VLAB= VL(:. iiC= IiABC(:. iLB= ILABC(:. V_i_C_A)') .3).

2) plot(t.ViCA) axis([0.9 1 -100 100]) ylabel('i_i_B [A]') grid subplot(3.1.3) plot(t. i_i_B.3) .9 1 -100 100]) ylabel('i_i_A [A]') title('Inverter output currents (i_i_A.1.9 1 -500 500]) ylabel('V_i_B_C [V]') grid subplot(3.1. i_i_C)') grid subplot(3.1) plot(t.9 1 -500 500]) ylabel('V_i_C_A [V]') xlabel('Time [Sec]') grid figure(2) subplot(3.iiB) axis([0.2) plot(t.1.ViBC) axis([0.1.grid subplot(3.iiA) axis([0.

iiC) axis([0.9 1 -100 100]) ylabel('i_i_C [A]') xlabel('Time [Sec]') grid figure(3) subplot(3.1.VLBC) axis([0.2) plot(t.9 1 -400 400]) ylabel('V_L_A_B [V]') title('Load line to line voltages (V_L_A_B.1.VLCA) axis([0. V_L_C_A)') grid subplot(3.1) plot(t.1.9 1 -400 400]) ylabel('V_L_C_A [V]') xlabel('Time [Sec]') grid figure(4) subplot(3.3) plot(t.9 1 -400 400]) ylabel('V_L_B_C [V]') grid subplot(3.iLA) axis([0.1.VLAB) axis([0.plot(t. V_L_B_C.1) plot(t.9 1 -50 50]) .

1) plot(t.2) plot(t.iiA.9 1 -50 50]) ylabel('i_L_C [A]') xlabel('Time [Sec]') grid figure(5) subplot(4.1.iLB) axis([0. i_i_C [A]') legend('i_i_A'.'-.1. i_i_B.9 1 -50 50]) ylabel('i_L_B [A]') grid subplot(3.':') axis([0.'-'.iiC.ViAB) axis([0.ylabel('i_L_A [A]') title('Load phase currents (i_L_A. i_L_C)') grid subplot(3.t.1.3) plot(t.iLC) axis([0.9 1 -500 500]) ylabel('V_i_A_B [V]') grid subplot(4. i_L_B.9 1 -100 100]) ylabel('i_i_A. 'i_i_C') grid .'.2) plot(t.iiB. t.1. 'i_i_B'.

9 0.t.subplot(4.VLBC. V_L_B_C.iLA.917 -1.1.'.'-'. 'V_L_B_C'.'-.Vsin.'-'. i_L_C [A]') legend('i_L_A'.'-'.VLCA.9 1 -50 50]) ylabel('i_L_A. V_s_i_n [V]') legend('V_t_r_i'. t.917 -500 500]) ylabel('V_i_A_n [V]') grid .t.'.4) plot(t. 'i_L_C') xlabel('Time [Sec]') grid %For only Sine PWM figure(6) subplot(4.') axis([0.9 0. V_L_C_A [V]') legend('V_L_A_B'.5]) ylabel('V_t_r_i.5 1.1.iLC.1.1) plot(t.1.2) plot(t.'-.'-.VLAB. t.3) plot(t. 'i_L_B'.Vtri.9 1 -400 400]) ylabel('V_L_A_B. 'V_L_C_A') grid subplot(4. t.':') axis([0.iLB. i_L_B.ViAn) axis([0.':') axis([0. 'V_s_i_n') title('V_t_r_i and V_s_i_n') grid subplot(4.

9 0. V_s_i_n [V]') legend('V_t_r_i'.4) plot(t.909 -1.'-.') axis([0.1.subplot(4.Vsin. 'V_s_i_n') grid subplot(4.'-'.5 1.909 -500 500]) ylabel('V_i_A_n [V]') xlabel('Time [Sec]') grid .Vtri.9 0.1.ViAn) axis([0. t.3) plot(t.5]) ylabel('V_t_r_i.