Motor Control

Chapter 3

Three Phase Induction Motor Control


Table of Contents


3.1 Hardware Required


3.2 Connection Procedure


3.3 PWM generation to run the Three Phase Induction Motor

3.1 Hardware required

1. RIO – cRIO 9054

a. Slot 1: NI 9220

b. Slot 3: NI 9401

c. Slot 4: NI 9401

2. 3 Leg Inverter with measurements

3. 1 HP Three Phase Squirrel Cage Induction Motor with Proximity sensor

3.2 Connection Procedure

  1. Using auto transformer, connect the three phase AC Supply to the AC input of the converter.
  2. Connect the Multimeter in the DC Voltage mode across the Capacitor Voltage terminals (DC+ and DC-)
  3. Connect the Converter output R, Y and B Terminals to R, Y and B input terminals of the Three Phase Induction Motor.
  4. RIO Hardware Connection
    1. Mod 4 / DIO 0 – Pin 14 – H1 Pulse input
    2. Mod 4 / DIO 1 – Pin 16 – L1 Pulse input
    3. Mod 4 / DIO 2 – Pin 17 – H2 Pulse input
    4. Mod 4 / DIO 3 – Pin 19 – L2 Pulse input
    5. Mod 4 / DIO 4 – Pin 20 – H3 Pulse input
    6. Mod 4 / DIO 5 – Pin 21 – L3 Pulse input
    7. Mod 4 / COM – Pin 13 – Pulse Ground
    8. Mod 3 / DIO 0 – Pin 14 – Proximity output
    9. Mod 3 / DIO 7 – Pin 25 – Proximity 5V input
    10. Mod 3 / COM – Pin 13 – Proximity Ground

3.3 PWM generation to run the Three Phase Induction Motor

1. Open the New VI under the FPGA Target

2. Select Function Palette > PE Libraries for FPGA > PWM > Three Phase SPWM and add it to the block diagram. Configure the Three Phase SPWM Express as given below

     (a) Reference Frequency (Hz): 50

     (b) Carrier Frequency (Hz): 10,000

     (c) Base Clock Frequency (MHz): 40

     (d) Modulation: Bipolar

     (e) Modulation Index: 0.5

     (f) Deadtime (Iterations): 10

     (g) Lookup Table Size: 1024 Samples


3. Select Function Palette > PE Libraries for FPGA > Time > Loop time in ticks and connect it to the loop time input of the Three Phase SPWM node.


4. Create the controls for the Reset, Enable PWM, Reference Frequency (Ticks / Periods), Carrier Frequency (periods / ticks), Modulation Index and Deadtime (iterations). Create the Boolean Indicators for the H1, L1, H2, L2, H3 and L3.


5. Set the DIO module line directions (Refer 2.2.1)

(a) Mod 3: DIO 0-3: Input

(b) Mod 3: DIO 4-7: Output

(c) Mod 4: DIO 0-3: Output

(d) Mod 4: DIO 4-7: Output

6. Add the Mod4 DIO lines 0,1,2,3,4 and 5 to the block diagram and connect it to H1, L1, H2, L2, H3 and L3 respectively.


7. Create the While loop to run the program continuously.


8. Select Function Palette > PE Libraries for FPGA > Time > Speed and add it to the block diagram. Connect the Mod3/ DIO0 to the pulse input. Create constants for the Base Clock, Pulse per revolution and Cycles to Filter.

(a) Base Clock: FPGA Base clock frequency

(b) Pulse per revolution: Number of pulses generated by Proximity sensor per revolution

(c) Cycles to Filter: Number of Clock cycles to filter the noise signal in the proximity input


9. Create the While loop for the speed measurement VI.


10. Right Click on the Boolean Stop button available in the While loop created in step 7 and select Create > Local Variable. Place Local Variable in the speed measurement loop.


11. Right Click on the Local Variable and select Change to Read. Connect the Stop Local variable output to the stop condition of the speed measurement loop.


12. Right Click on the Boolean Stop (in the PWM Loop) and Select Mechanical Action > Switch When pressed.


13. Add the Mod3/DIO 7 to Speed measurement loop and set it as Digital output. Connect Boolean Constant True to the Mod3/DIO 7 output.


14. Save the FPGA VI and click the Run button to compile it.

15. Create a New VI in the RT Target.

16. Select Function Palette > FPGA Interface > Open FPGA VI Reference and add it to the block diagram. Right click on the node and select Configure Open FPGA VI Reference.


17. Select the VI based FPGA VI Call and Select the FPGA VI Saved in step 14 (1) . Click OK button (2) to select the file. Again click the OK button to save the configuration. Add constant to the FPGA Resource input of the Open FPGA VI Reference and Select RIO0 (3).


18. Add Read / Write Control (Function Palette > FPGA Interface > Read / Write Control) to the block diagram and connect the FPGA VI Reference In and Error In


19. Left Click on the Unselected and create the Controls and Indicators to access the variables available in the FPGA VI.


20. Add the Close FPGA VI Reference (Function Palette > FPGA Interface > Close FPGA VI Interface) to the block diagram and connect the FPGA VI Reference In and Error In.


21. Add the While loop to the read/write node with its controls & indicator. Add the Wait function (100ms delay) to the while loop.


Block diagram of the RT VI for Three phase SPWM generation

 Front panel of the RT VI for the three phase SPWM generation

22. Save the VI in the name as

23. Click the Run button in the RT VI front panel. It will load the FPGA VI in the FPGA target and execute it. We can give the input values through the RT VI. RT VI runs at 10Hz (1/100ms) for user interface. The FPGA VI Runs at 1.6MHz (one iteration takes 25 ticks at 40MHz clock).

24. The recommended dead time for this inverter is 5µs.

(a) Dead time (in iterations) = dead time in seconds / (loop time in ticks x 1/ base clock)

(b) Dead time (in iterations) = 0.000005 / (25 x 1/40M) = 0.000005 / 0.000000625 = 13.33

(c) Dead time (in iterations) = 8 iterations.

25. Update the dead time in the RT VI

26. Observe the top and bottom PWM Pulses of each leg in the oscilloscope. Make sure that top and bottom pulses are having dead time between them.

27. Turn on the power supply to the inverter kit

28. Slowly increase the input AC voltage using auto transformer and set the DC bus voltage as 550V

29. Vary the modulation index and reference since waveform frequency. The induction motor speed will vary with respect to the reference sine waveform frequency.

30. Take the required readings and tabulate it.

31. Reduce the 3 Phase AC power supply to 0V and turn off power supply to the inverter.

error: Content is protected !!