A Quick-Simulation Tool for Induction Motor Drives Controlled Using Advanced Space-Vector-Based PWM Techniques V. S. S. Pavan Kumar Hari1 and G. Narayanan2 Department of Electrical Engineering, Indian Institute of Science, Bangalore 560 012, INDIA Email: pavan@ee.iisc.ernet.in1 , gnar@ee.iisc.ernet.in2 Abstract— Space-vector-based pulse width modulation (PWM) for a voltage source inverter (VSI) offers flexibility in terms of different switching sequences. Numerical simulation is helpful to assess the performance of a PWM method before actual implementation. A quick-simulation tool to simulate a variety of space-vector-based PWM strategies for a two-level VSI-fed squirrel cage induction motor drive is presented. The simulator is developed using C and Python programming languages, and has a graphical user interface (GUI) also. The prime focus being PWM strategies, the simulator developed is 40 times faster than MATLAB in terms of the actual time taken for a simulation. Simulation and experimental results are presented on a 5-hp ac motor drive. I. I NTRODUCTION Voltage source inverter (VSI)-fed induction motor stands among the most sought-after industrial drive configurations. A two-level VSI realized with IGBTs is shown in Fig. 1. Pulse + S1 C VDC S3 function for R-phase is defined as mR = 0.5 + S5 (3)−+− D1 D3 D5 R Y B ++−(2) II III S4 S6 D4 S2 D6 D2 – α q VREF +−−(1) (0)−−− 1.0 IV VI V (5)−−+ This work was supported by the Department of Heavy Industry, Government of India, under a project titled “Off-line and Real-time Simulators for Electric Vehicles / Hybrid Electric Vehicle Systems”. I (7)+++ (4)−++ Fig. 1. Two-level voltage source inverter using insulated gate bipolar transistors. width modulation (PWM) of the switches is required to control the output voltage and frequency of a VSI, for a given DC bus voltage VDC . Generation of PWM waveforms by comparing three-phase sinusoidal modulating waves (mR , mY and mB ) against a common triangular carrier wave is popularly known as sine triangle PWM (STPWM) [1]. Considering a unipolar triangular carrier with peak value Vp , the sinusoidal modulating (1) where Vm is the peak value of sinusoid. Modulating signals mY and mB are phase shifted by 120◦ and 240◦ , respectively, with respect to mR . Addition of third harmonic to the sinusoidal modulating functions increases the highest possible ac voltage output of the VSI. The DC bus utilization with such third harmonic injection PWM (THIPWM) is maximum when the amplitude of the third harmonic added is one sixth of the fundamental amplitude. This DC bus utilization is matched by the space-vector-based PWM (SVPWM) strategies [1]. Further, THIPWM also reduces the total harmonic distortion (THD) in the output current of the VSI. The THD is minimum if the third harmonic amplitude is 25% of the fundamental amplitude [2]. Conventional space vector PWM (CSVPWM) results in THD, which is quite close to this [1], [2]. Bus-clamping PWM O C Vm sin ωt 2Vp ωt = 0◦ d +−+(6) Fig. 2. Voltage vectors of a voltage source inverter. Magnitudes of the vectors are normalized with respect to DC bus voltage VDC . I, II, III, IV, V and VI are sectors [2]. (BCPWM) methods yield lower THD than CSVPWM at high modulation indices for a given average switching frequency [3]. Advanced bus-clamping PWM (ABCPWM) techniques, proposed recently, outperform BCPWM methods in terms of THD at high modulation indices [4]. ABCPWM methods have also been shown to have other advantages such as reduced pulsating torque [5], improved converter efficiency [2],[6] and low acoustic noise [7] under various operating conditions. SR Tz 12 T1 T2 1 2 T1 Tz 12 T2 T1 1 2 T2 1 2 T1 Tz 12 T1 T2 1 1 2 T2 Tz 2 T2 T1 0 − − − 2 + + − 1 + − − 7 + + + 1 + − − 2 + + − 1 + − − 0 − − − 2 + + − 2 + + − 1 + − − 1 + − − SR 1 SY SY 0 0 Vp SB cR 1 1 0 Vp cR cB SB 1 SR 1 SY 0 Vp 7 + + + 2 + + − 1 0 SB 1 Vp cR cB1 cB2 cR1 cR2 cY cY cY 2 cY 2 cB 0 1 SY 1 1 SY 2 0 SY 1 0 SY 2 SY = SY 1 ⊕ SY 2 0 cB 0 SR1 SR2 SR = SR1 SR2 SY = SY 1 SY 2 (a) (b) (c) 0 1 0 SB1 0 SB2 1 SB = SB1 ⊕ SB2 (d) 21 Generation of switching functions for different ABCPWM sequences (a) 0121, (b) 7212, (c) 1012 and (d) 2721 in sector I. 27 12 72 27 01 0121 (a) CSVPWM (b) Advanced Clamp PWM Fig. 4. 30◦ 27 01 1012 (c) Hybrid PWM PWM techniques considered. Most SVPWM methods synthesize the desired voltage reference vector VREF (see Fig. 2) by applying the two nearest active vectors and the zero vector. For the reference vector shown in Fig. 2, the active vector 1 and the active vector 2 are applied for durations T1 and T2 , respectively, as given by (2) [8], [9], sin(60◦ − α) Ts = mR − mY (2a) sin 60◦ sin α T2 = VREF Ts = mY − mB (2b) sin 60◦ where Ts is the duration of a sub-cycle, and α is the angle of reference vector from the start of a sector. The zero vector is applied for the rest of sub-cycle duration as given below. T1 SR 1 + − − SY SB cY 1 cY 1 Fig. 3. 2 + + − = VREF Tz = Ts − T1 − T2 (3) CSVPWM applies the voltage vectors in a sequence starting with one zero state and ending with the other zero state in each sub-cycle; the two zero states are applied for 0.5Tz each [1]. The switching sequences 0-1-2-7 and 7-2-1-0 are applied in alternate sub-cycles in sector I [see Fig. 4(a)]. ABCPWM schemes apply only one zero state for the entire duration Tz , but apply an active state twice as illustrated in Fig. 3(a) to Fig. 3(d). The ABCPWM method, shown in Fig. 4(b), employs sequences 0-1-2-1 and 1-2-1-0 in alternate sub-cycles in the first half of sector I. Sequences 7-2-1-2-2-1-2-7,... are applied in the second half [4], [10]. Fig. 4(c) shows a hybrid PWM method which employs sequences 1012 and 2721 along with the conventional sequence 0127. Here, sequence 1012 is applied for 0◦ < α < 14◦ , 0127 is applied for 14◦ < α < 46◦ and 2721 is applied for the remaining duration in sector I. To simulate an induction motor drive fed from a pulse width modulated two-level VSI, the switching function needs to be generated for each switch in the inverter. This reduces to generation of switching functions for the three legs (SR , SY and SB ) since the two switches in each leg are complementary in nature. The switching functions corresponding to continuous PWM schemes (STPWM, THIPWM and CSVPWM) and BCPWM schemes can easily be generated by comparing three-phase modulating signals with triangular carrier. However, generating SR , SY and SB is quite involved in case of ABCPWM strategies. A method for determining the switching functions for ABCPWM schemes in discussed in section II. A tool for simulation of VSI-fed induction motor drive, controlled with different PWM methods, is developed in this work. This tool is capable of simulating continuous PWM methods, BCPWM methods and a variety of ABCPWM methods. The details of the simulator developed are discussed in section III. While there are commercial and open-source tools available (e.g. MATLAB[11], Octave[12] and SEQUEL[13]) for simulating a wide range of dynamic systems, the tool developed R-ph stator current (A) 0.2 0.4 0.6 0.8 1.0 120 100 80 60 40 20 0 20 400.0 0.2 0.4 0.6 0.8 1.0 1600 1400 1200 1000 800 600 400 200 00.0 0.2 0.4 0.6 0.8 1.0 Speed (RPM) 80 60 40 20 0 20 40 600.0 Torque (N-m) (a) Screenshot of the simulator developed. (b) Simulation results: Direct on-line start of a 5hp induction motor. Fig. 5. 4 2 0 2 4 6 8 1.45 1.46 1.47 1.48 Time (sec) 1.49 4 2 0 2 4 6 1.45 1.50 6 R-ph stator current (A) R-ph stator current (A) 1.46 (a)-(1) 2 0 2 4 1.47 1.48 Time (sec) 1.49 8 1.45 1.50 (a)-(2) 1.46 1.47 1.48 Time (sec) 1.49 1.50 (a)-(3) 6 6 4 Current (A) 4 Current (A) 4 6 2 0 −2 4 2 Current (A) R-ph stator current (A) 8 6 8 6 0 −2 −2 −4 −4 −4 −6 1.45 1.455 1.46 1.465 1.47 1.475 1.48 1.485 1.49 1.495 1.5 Time (sec) 2 0 −6 −6 1.45 1.455 1.46 1.465 1.47 1.475 1.48 1.485 1.49 1.495 1.5 Time (sec) 1.45 1.455 1.46 1.465 1.47 1.475 1.48 1.485 1.49 1.495 1.5 Time (sec) (b)-(1) (b)-(2) (b)-(3) (c)-(1) (c)-(2) (c)-(3) Fig. 6. Motor line current waveforms at a fundamental frequency of 40Hz with different PWM techniques: (a) Simulated with matra, (b) Simulated with MATLAB and (c) Experimentally measured. (1)-CSVPWM, (2)-Advanced 30◦ clamp PWM and (3)-Hybrid PWM. Average switching frequency fsw is 1kHz. here is focused on PWM-VSI-fed induction motor drives. This tool is shown to be quicker than MATLAB in carrying out simulations of motor drive. Simulation results obtained from this tool are compared with those from MATLAB and also with experimental results on a 5hp motor drive (see section IV). II. S PACE V ECTOR BASED PWM : R EALIZATION The first step to realize a space vector PWM is identification of the sector where VREF falls in. When the magnitude and angle of VREF are available, the sector can easily be determined from the angle. However, the reference is rarely available in magnitude-angle form. On the other hand, the voltage reference is usually provided by the controller as daxis and q-axis reference in the synchronous reference frame, or as α-axis reference and β-axis reference in the stationary reference frame, or as three-phase voltage references. The voltage reference is assumed to be available as a three-phase quantity here. (Even otherwise, the voltage references can be transformed to three-phase quantities.) The sector can be identified by comparing mR , mY and mB . For example, mR > mY > mB indicates that VREF is in sector I. Quite often, a sector may be divided into a number of sub-sectors, each employing a different switching sequence [see Fig. 4(b) and Fig. 4(c)]. Boundaries separating the different sub-sectors in a sector need to be represented in terms of mR , mY and mB . Once the sub-sector is identified, the switching sequence is known. For the four ABCPWM sequences, the switching functions can be determined as discussed below. Consider the sequence 0121 in Fig. 3(a). PWM pulse of the single-switching phase SR can be generated by comparing one modulating function cR against the carrier. Two modulating functions cY 1 and cY 2 corresponding to Y-phase generate the PWM pulses SY 1 and SY 2 , respectively. The final PWM output of Y-phase SY is an XOR function of SY 1 and SY 2 . Bphase gets clamped to negative DC bus in sector I (i.e. SB = 0) with the sequence 0121. Similar procedure can be followed for the remaining sequences [Fig. 3(b) to Fig. 3(d)]. For instance, double-switching of R-phase with 1012 can be achieved by generating the pulses SR1 and SR2 (see Fig. 3(c)) and passing them through an XNOR function. All the modulating functions (cR , cR1 , cY , cY 2 etc.) can be expressed in terms of the dwell-times of inverter states. The dwell-times are functions of mR ,mY and mB as shown by (2). For example, cB2 = (0.5T2 ) + Tz for the sequence 2721 [see Fig. 3(d)]. 600 0 200 400 600 1.475 1.480 1.485 1.490 Time (sec) 1.495 Peak magnitude normalized w.r.t. VDC 1000 2000 3000 4000 Frequency (Hz) 5000 400 200 0 200 400 600 1.475 1.500 (a)-(1) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.00 Line-to-line voltage vRY (V) 200 600 1.480 1.490 Time (sec) 1.495 1000 2000 3000 4000 Frequency (Hz) 5000 200 0 200 400 600 1.475 1.500 (a)-(2) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.00 (b)-(1) 0.8 0.7 0.7 0.4 0.3 0.2 0.6 0.5 0.4 0.3 0.2 0.1 0.1 0 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Magnitude of Peak (p.u.) 0.8 0.5 1.490 Time (sec) 1.495 1.500 1000 2000 3000 4000 Frequency (Hz) 5000 (b)-(3) 0.7 0.6 1.485 (a)-(3) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.00 0.8 0 1.480 (b)-(2) Magnitude of Peak (p.u.) Magnitude of Peak (p.u.) 1.485 400 Peak magnitude normalized w.r.t. VDC Line-to-line voltage vRY (V) 400 Peak magnitude normalized w.r.t. VDC Line-to-line voltage vRY (V) 600 0.6 0.5 0.4 0.3 0.2 0.1 0 Frequency (kHz) (c)-(1) 0.5 1.0 1.5 2.0 2.5 3.0 3.5 Frequency (kHz) (c)-(2) 4.0 4.5 5.0 0 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Frequency (kHz) (c)-(3) Fig. 7. (a) Motor line-to-line voltage, (b) and (c) Harmonic spectra of line-to-line voltage at a fundamental frequency of 40Hz with different PWM techniques: (a) and (b) Simulated with matra, (c) Experimentally measured [PWM of R-phase minus PWM of Y-phase]. (1)-CSVPWM, (2)-Advanced 30◦ clamp PWM and (3)-Hybrid PWM. Average switching frequency fsw is 1kHz. III. S IMULATION T OOL D EVELOPED The squirrel cage induction machine is a sixth order system when stator and rotor are modelled in their respective coordinate systems [14]. Thus, numerical simulation of an open-loop induction motor drive can be viewed as solving of a system of six ordinary differential equations (ODE) at each time step. A large number of numerical methods are available to solve a system of ODEs. In general, reduced step-size improves the accuracy of solution; Runge-Kutta methods are shown to be stable for smaller step sizes [15]. The simulator developed uses the Explicit Runge-Kutta 4th Order method to solve the system of ODEs. The simulator does not provide any option to the user to choose the ODE solver method. Further, the maximum integration step-size is limited to 1µs. A screenshot of the simulation tool developed, “matra”, is shown in Fig. 5(a). The single-window graphical user interface (GUI) is written in PyGTK [16]. Details of the induction machine and VSI and other simulation parameters have to be entered by the user. The user has to select one among the three PWM methods, namely, STPWM, THIPWM and SVPWM. In case of SVPWM, total number of switching sequences in a sector has to be specified, which is same as the number of sub-sectors. Boundaries separating the sub-sectors have to be given in terms of angle. Finally, the sequence employed in each sub-sector has to be specified. The simulation data can be loaded from and saved to a text file. The text file is taken as an input to the main simulation routine, written in C programming language [17]. Output of the C program is plotted using NumPy and Matplotlib of the Python programming language [18]. The plotting window of Matplotlib has basic features such as x-axis zoom, y-axis zoom and rectangular zoom. Further, the plot can be saved in many formats including PNG, SVG, EPS, PDF, JPEG and EMF. IV. S IMULATION A ND E XPERIMENTAL R ESULTS Configuration of the computer used for testing the simulation tool is Intel Core i3-3120 3.2 GHz processor with 4 TABLE I C OMPARISON OF matra WITH MATLAB PWM method CSVPWM Advanced 30◦ clamp PWM Hybrid PWM Actual time taken for a simulation of 1.5s with 500ns time-step matra MATLAB R2013a (sec) (sec) 5.393 226.43 5.632 282.88 5.638 295.1 threads, 4GB 1333MHz DDR3 RAM and Fedora 19 Linux operating system. The experimental setup consists of a 10kVA IGBT-based two-level VSI connected to a 5hp, 400V, 50Hz, 4-pole squirrel-cage induction motor. The PWM techniques are implemented on ALTERA Cyclone II field programmable gate array (FPGA)-based digital controller [19]. Fig. 5(b) shows the simulation results when the 5hp induction motor is started direct on-line. The simulation step-size is 1µs, and the simulation end time is 1s. The actual time taken for simulation is 7.12 seconds. The total number of time points in the simulation above is 106 . When only steady-state results are of interest (as in the case of comparing different PWM schemes), only the last significant data points need to be stored. This results in reduced time for simulation. Simulation of the PWM methods, shown in Fig. 4, is carried out with matra and MATLAB R2013a. Measured parameters of the induction machine are given as inputs. The fundamental frequency is 40Hz, and the average switching frequency fsw is 1kHz. Simulation step size is 500ns, and the simulation end time is 1.5s. Only the last 105 data points are stored to improve the simulation speed. Actual time taken for simulation by matra and MATLAB are tabulated in Table I. It can be observed that the simulator developed performs 40 times faster than MATLAB. Motor line current waveforms with matra and MATLAB are presented in Fig. 6(a) and Fig. 6(b), respectively, for different PWM techniques. Further, experimental motor current waveforms under the same conditions are presented in Fig. 6(c). The simulation results from matra are in excellent agreement with those from MATLAB and also with experimental observations. Simulated waveforms of line-to-line voltage (vRY ) of the motor are shown in Fig. 7(a) for different PWM methods. Fig. 7(b) shows harmonic spectra of vRY simulated with matra. The measured harmonic spectra of line-to-line voltage are presented in Fig. 7(c). The simulated harmonic spectra are close to their experimental counterparts. Thus, the accuracy of the simulator is verified and the fastness is evaluated. V. C ONCLUSIONS A quick simulation tool for VSI-fed induction motor drives with a variety of PWM techniques is developed. The PWM techniques include continuous PWM methods, discontinuous or bus-clamping PWM methods, and advanced bus-clamping PWM methods. Generation of switching functions in case of ABCPWM schemes is explained. Simulation results from the tool developed, those from MATLAB, and experimental results on a 5-hp motor drive are presented. The simulation speed of the developed tool is 40 times that of MATLAB. The simulator developed has a simple GUI and is useful for the study of various PWM techniques. ACKNOWLEDGMENT Pavan Kumar Hari would like to thank V. Seshadri Sravan Kumar, Department of Electrical Engineering, Indian Institute of Science and Arvind Iyer, Department of Aerospace Engineering, Indian Institute of Science for their valuable inputs towards programming in C and Python. R EFERENCES [1] D. G. Holmes and T. A. Lipo, Pulse width modulation for power converters: Principles and practice, Hoboken, NJ: IEEE Press and John Wiley Interscience, 2003. [2] Di Zhao, V. S. S. P. K. Hari, G. Narayanan and R. Ayyanar, “Spacevector-based hybrid pulsewidth modulation techniques for reduced harmonic distortion and switching loss”, IEEE Trans. Power Electron., vol. 25(3), pp. 760-774, March 2010. [3] H. Khan, E. Miliani, K. E. K. Drissi, “Discontinuous random space vector modulation for electric drives: A digital approach”, IEEE Trans. Power Electron., vol. 27(12), pp. 4944-4951, December 2012. [4] T. Bhavsar and G. Narayanan, “Harmonic analysis of advanced busclamping PWM techniques”, IEEE Trans. Power Electron., vol. 24(10), pp. 2347-2352, October 2009. [5] K. Basu, J. S. S. Prasad, G. Narayanan, H. K. Krishnamurthy and R. Ayyanar, “Reduction of torque ripple in induction motor drives using an advanced hybrid PWM technique”, IEEE Trans. Ind. Electron., vol. 57(6), pp. 2085-2091, June 2010. [6] J. S. S. Prasad and G. Narayanan. “Minimum switching loss pulse width modulation for reduced power conversion loss in reactive power compensators”, IET Power Electron., 2013. [7] A. C. Binojkumar, J. S. S. Prasad and G. Narayanan, “Experimental investigation on the effect of advanced bus-clamping pulsewidth modulation on motor acoustic noise”, IEEE Trans. Ind. Electron., vol. 60(2), pp. 433-439, February 2013. [8] D-W. Chung, J-S. Kim and S-K. Sul, “Unified voltage modulation technique for real-time three-phase power conversion, IEEE Trans. Ind. Appl., vol. 34(2), pp. 374-380, March/April 1998. [9] A. Cataliotti, F. Genduso, A. Raciti and G. R. Galluzzo, “Generalized PWM-VSI control algorithm based on a universal duty-cycle expression: Theoretical analysis, simulation results and experimental validations”, IEEE Trans. Ind. Electron., vol. 54(3), pp. 1569-1580, June 2007. [10] G. Narayanan, Di Zhao, H. K. Krishnamurthy, R. Ayyanar and V. T. Ranganathan, “Space vector based hybrid PWM techniques for reduced current ripple”, IEEE Trans Industrial Electronics, vol. 55(4), pp. 16141627, April 2008. [11] http://www.mathworks.in/products/matlab [12] http://www.gnu.org/software/octave [13] http://www.ee.iitb.ac.in/ sequel [14] Werner Leonhard, “Control of Electric Drives”, Springer International Edition, 2003. [15] M. B. Patil, V. Ramanarayanan and V. T. Ranganathan, Simulation of Power Electronic Circuits, Narosa Publishing House, Delhi, 2009. [16] http://www.pygtk.org [17] B. W. Kernighan, D. M. Ritchie, The C Programming Language, Tsinghua University Press / Prentice-Hall, 1988. [18] http://www.python.org, http://www.numpy.org, http://matplotlib.org [19] S. Venugopal and G. Narayanan, “Design of FPGA based digital platform for control of power electronics systems”, Proc. NPEC ’05, National Power Electronics Conference, Indian Institute of Technology, Kharagpur, December 2005.