Single and 3-Phase Induction Motors

Google

29 Eylül 2007 Cumartesi

AC Induction Motor Control Using the Constant V/f Principle and a Space-vector PWM Algorithm

  • Cost-effective and energy efficient 3-phase induction motor drive
  • Interrupt driven
  • Low memory and computing requirements

  1. AT90PWM3 Key Features
  2. Principle of the Space-Vector Modulation
  3. Efficient Implementation of the SV-PWM
  4. Sector Determination Algorithm
  5. Hardware Description (ATAVRMC200)
  6. Software Description
  7. Project Description
  8. Experimentation
Resources; Code Size : 2 584 bytes ,RAM Size : 217 bytes, CPU Load : 33% @ 8MHz

AT90PWM3 Key Features

The control algorithms have been implemented on the AT90PWM3, a low-cost lowpower single-chip microcontroller, achieving up to 16 MIPS and suitable for the control of DC-DC buck-boost converters, permanent magnet synchronous machines, threephase induction motors and brushless DC motors. This device integrates:

• 8-bit AVR advanced RISC architecture microcontroller (core similar to the ATmega 88)
• 8K Bytes of In-System-Programmable Flash memory
• 512 Bytes of static RAM to store variables and lookup tables dedicated to the application program
• 512 bytes of EEPROM to store configuration data and look-up tables
• one 8-bit timer and one 16-bit timer
• 6 PWM channels optimized for Half-Bridge Power Control
• an 11-channel 10-bit ADC and a 10-bit DAC
• 3 on-chip comparators
• a programmable watchdog timer with an internal oscillator

Principle of the Space-Vector Modulation

Figure 1. shows the typical structure of a three-phase induction motor connected to a VSI (Voltage Source Inverter). Since the motor is considered as a balanced load with an unconnected neutral ,Vn=(Va+Vb+Vc)/3 , Van=Va-Vn=(Vab-Vac) /3 , Vbn=Vb-Vn=(Vbc-Vac) /3 and Vcn=Vc-Vn=(Vca-Vbc) /3 . Since the upper power switches can only be On or Off, and since the lower ones are supposed to always be in the opposed state (the dead-times of the inverter legs are neglected), there are only eight possible switching states, as shown on Figure 2. Six of voltages.them lead to non-zero phase voltages, and two interchangeable states lead to zero phase When mapped in a 2D-frame fixed to the stator using a Concordia transformation, the six non-zero phase voltages form the vertices of a hexagon. (See Figure 3.)



As shown on Figure 3. , the angle between two successive non-zero voltages is always 60 degrees.

In complex form, these non-zero phase voltages can be written as Vk , with k = 1..6 and Vo-v7=0V. Table 1. shows the line-to-line and line-to-neutral voltages in each of the 8 possible configurations of the inverter.



In the Concordia frame, any stator voltage Vs = Vα + jVβ =Vsm cos(θ) + jVsm sin(θ) located insidethis hexagon belongs to one of the six sectors, and can be expressed as a linear combination of the two non-zero phase voltages which delimit this sector: Vs=dkVk+(dk+1)(Vk+1). Equating dkVk+(dk+1)(Vk+1) to Vsm cos(θ) + jVsm sin(θ) in each sector leads to the expressions of the dutycycles shown in Table 2. Since the inverter cannot instantaneously generate Vs the spacevector PWM principle consists in producing a Ts-periodic voltage whose average value equal Vs by generating Vk during Tk=dkTs and Vk+1 during Tk+1 = (dk+1)Ts.

Since dk+(dk+1) these voltages must be completed over the switching period To by Vo and/or V7 . Several solutions are possible , and the one which minimizes the total harmonic distorsion of the stator current consists i applying Vo and V7 during the same duration To=T7 is equally applied at the beginning and at the end of the switching period, whereas is applied at the middle. As an illustration, the upper side of
Figure 4 . shows the waveforms obtained in sector 1

Efficient Implementation of the SV-PWM

Table 2. seems to show that the duty cycles have different expressions in each sector. A thorough study of these expressions show that since sin(x)=sin(π-x) , all these duty cycles can be written in a unified way as dk and dk+1 with θ''=(π/3)- θ' and θ'= θ -(k-1)π/3. Since these expressions no longer depend on the sector number, they can be denoted as da and db . Since θ' is always between 0 and π/3, computing da and db requires a sine table for angles inside this interval only. This greatly reduces the amount of memory required to store this sine table. The AT90PWM3 provides the 3 power stage controllers (PSC) to generate the switching waveforms computed from the Space Vector algorythms. The counters will count from zero to a value corresponding to one half of the switching period (as shown on the lower side of Fig. 4), and then count down to zero. The values that must be stored in the three compare registers are given in Table 3.


Sector Determination Algorithm

To determine the sector which a given stator voltage belongs Vs to, some algorithms have been proposed in the literature which generally require many arithmetic operations and are based on the coordinates of Vs in the Concordia plane or in the a-b-c phase space. When this voltage is deduced from a V/f control principle, its modulus Vsm is computed by the V/f law recalled i the previous application note, and its phase θ is deduced from ωs by a discrete-time integrator. To implement this sector determination algorithm efficiently, we manage θ' and k instead of θ in a dedicated integrator shown on Fig. 6. The sector number is the output of a modulo six counter activated each time θ' exceeds π/3 , and θ' is confined to lie between 0 and π/3 (see Fig. 7).


The resulting dataflow diagram, shown on Fig. 8, can be used to build a speed control loop (Figure 8.), in which the difference between the desired speed and the measured speed feeds a PI controller that determines the stator voltage frequency. To decrease the complexity of the controller, the input of the V/f law and of the space vector PWM algorithm is the absolute value of the stator voltage frequency. If the output of the PI controller is a negative number, two of the switching variables driving the power transistors of the inverter are interchanged.



Hardware Description (ATAVRMC200)

This application is available on the ATAVRMC200 evaluation board. This board provides a way to start and experiment asynchronous motor control.

ATAVRMC200 main features:

• AT90PWM3 microcontroller
• 110-230VAC motor drive
• Intelligent Power Module (230V / 400W board sized)
• ISP & Emulator interface
• RS232 interface
• Isolated I/O for sensors
• 0-10V input for command or sensor

Software Description

All algorithms have been written in the C language using IAR's embedded workbench and AVR Studio as development tools. For the space vector PWM algorithm, a table of the rounded values of for k between 0 and 80 is used. The length of this table (81 bytes) is a better trade-off between the size of the available internal memory and the quantification of the rotor shaft speed. For bi-directional speed control, the values stored in two of the comparators are interchanged when the output of the PI regulator is a negative number Figure 8.

Project Description

The software is available in the attached project on the Atmel web Site. The project to use is Project_Vector.

Experimentation

Figure 9. shows the speed response and the stator voltages obtained with the microcontroller for speed reference steps between +700 and -700 rpm. These experimental results were obtained with a 750 W induction machine. This figure shows that the desired speed is reached after a 1.2 s long transient, and that when the stator frequency ωs obtained at the output of the PI regulator nears zero, the stator voltage magnitude is equal to the boost voltage. These figures also confirm that transient obtained with a a space vector PWM is smoother but also longer.

7 Ağustos 2007 Salı

Introduction


Single-phase induction motors are extensively used in appliances and industrial controls. The Permanent Split Capacitor (PSC) single-phase induction motor is the simplest and most widely used motor of this type.

By design, PSC motors are unidirectional, which means they are designed to rotate in one direction. By adding either extra windings, and external relays and switches, or by using gear mechanisms, the direction of rotation can be changed. In this application note we will discuss in detail, how to control the speed of a PSC motor in both directions using a PIC16F72 microcontroller and power electronics.

The PIC16F72 microcontroller was chosen because it is one of the simplest and low-cost general purpose microcontrollers Microchip has in its portfolio. Even though it does not have the PWMs in hardware to drive complementary PWM outputs with dead band inserted, all PWMs are generated in firmware using timers and output to general purpose output pins.

Theory Of Operation

A PSC motor is usually a 2-phase asymmetrically wound motor. The main winding is designed to take the load current.The current flowing through the start winding is much less than the main winding. Therefore, the start winding will have a different electrical characteristic compared to the main winding. In order to produce the Magnetomotive Force (MMF) produced by the start winding very near to the main winding, the start winding has additional turns, higher resistance, and reduced current flowing through it. This makes the motor windings asymmetrical.


The motor is energized with a single-phase AC power supply, with a capacitor connected in series with the start winding (also called an auxiliary winding) as shown in Figure 1. The value of the capacitor is chosen so that the total impedance on the auxiliary winding produces sufficient phase shift in current to generate a rotating magnetic field in the air gap. Typically, the current flowing through the start winding leads the current flowing through the main winding by 90 degrees.


By adding a microcontroller-based control circuit to the motor, the voltage across the main winding and start winding can be maintained at 90 degrees to each other. The other advantage is that the starting capacitor can be removed from the circuit, thus reducing the total system cost.

Drive Topology

  1. Using an H-Bridge Inverter
  2. Using a 3-Phase Inverter Bridge

Using an H-Bridge Inverter


The first approach is relatively easy as far as the power circuit and control circuit are concerned. On the input side, a voltage doubler is used and on the output side an H-bridge, or 2-phase inverter, is used as shown in Figure 2. One end of the main and start windings are connected to each half bridge and the other ends are connected together to the neutral point of the AC power supply, which also serves as the center point for the voltage doubler.



The control circuit requires four PWMs with two complementary pairs with sufficient dead band between the complementary outputs. PWM0-PWM1 and PWM2-PWM3 are the PWM pairs with dead band. The PIC16F72 does not have PWMs designed in the hardware to output the way we need. Therefore, the PWMs should be generated in firmware and output to the port pins. Using PWMs, the DC bus is synthesized to give two sine voltages at 90 degrees out of phase with varying amplitude and varying frequency according to the VF profile. If the voltage applied to the main winding lags the start winding by 90 degrees, the motor runs in one (i.e., forward) direction. To reverse the direction of rotation, the voltage supplied to the main winding should lead the voltage supplied to the start winding.

Figure 3 and Figure 4 show the main and start winding voltages in forward and reverse respectively.

click to enlarge Fig.3

click to enlarge Fig.4


Using a 3-Phase Inverter Bridge

The input section is replaced with a standard diode bridge rectifier. The output section has a 3-phase inverter bridge. The main difference from the previous scheme is the way the motor windings are connected to the inverter. One end of the main winding and start windings are connected to one half bridge each. The other ends are tied together and connected to the third half bridge, as shown in Figure 5.

With this drive topology, control becomes more efficient; however, the control algorithm becomes more complex. The voltages V a, V b and V c should be controlled to achieve the phase difference between the effective voltages across the main and start windings to have a 90 degree phase shift to each other. The turn ratio of the start winding to the main winding is defined by:

where a is the turn ratio, and VMAIN and VSTART are the effective voltage across the main winding and the start winding.

In order to have equal voltage stress on all devices, thus improving the device utilization and provide the maximum possible output voltage for a given DC bus voltage, all three inverter phase voltages are kept at the same amplitude as follows: The effective voltage across the main and start winding is given as:

The voltages are shown in the phasor diagram in Figure 6.


As seen in the phasor diagram in Figure 6, the voltages across phase A and phase B are out of phase, and the phase difference between phase A and phase C is q degrees. By applying basic trigonometry, q can be calculated by:
By applying the Pythagorean Theorem, the voltage vector V1 can be calculated as:


Because the turn ratio remains constant for a given motor, a can be a compile time option. With this, q and V1 can be precomputed for a given motor. This simplifies the run time calculation. Based on the phase angle, phase voltages Va, Vb and Vc can be calculated as:


Vdc is the DC bus voltage, and wt is the angular velocity of the electrical cycle. The direction of rotation can be easily controlled by adding or subtracting q in the Vc calculation.

Figure 7 shows the phase voltages V a, V b and V c, and Figure 8 shows the effective voltages across the main winding (VMAIN) and the start winding (VSTART). Figure 8 also shows that the effective phase difference between the voltages is 90 degrees and the effective voltage ratio is a.

click to enlarge Fig.7

click to enlarge Fig.8

Implementation Using The Pic16f72

In order to control a 3-phase inverter bridge, we need three PWM pairs with complementary outputs. In addition, each complementary pair of PWMs needs dead time in between any OFF and ON switch events to avoid a DC bus short circuit.The PIC16F72 does not have these features in the hardware.However, this can be easily implemented using a general purpose timer and six output pins as shown in Figure 9.



Generating Software PWMs

The scheme shown here gives a fixed PWM frequency of approximately 7.9 kHz. Timer1 (1:4 prescale) is counted up from 00 to 634. At the beginning of the cycle (when Timer1 = 00), the PWMs controlling the upper switches (i.e., PWM1, PWM3 and PWM5) are turned ON. Based on the individual PWM duty cycle, the corresponding PWM output is turned OFF.

MAIN LOOP




Interrupt Service Routines (ISR)


Initialization


• PORTC<0:5> are initialized to output PWMs.

• Timer1 is initialized with 8-bit operation and 1:4 prescale.

• A/D channels are initialized to read frequency reference (AN0), motor current (AN1) and heatsink temperature (AN2).
- Frequency reference is read using a potentiometer connected to A/D Channel 0.
- Motor current is read using a shunt resistor in the DC return path. The voltage corresponding to the motor current is amplified and connected to A/D channel 1.

• Timer0 is used for setting the motor frequency based on the potentiometer setting. On every Timer0 overflow, new PWM duty cycles are advanced by 10 electrical degrees on the Sine table.
• The Sine table is loaded into RAM

• Timer0 overflow, Timer1 overflow and INT interrupts are enabled.

Main Routine

These tasks are done in the MAIN_LOOP routine:

• New PWM duty cycle is calculated by the subroutine UPDATE_PWM_DUTYCYCLES Three pointers pointing to three different values on the Sine table corresponding to the phase difference between V a, V and V . The sine table is drawn to maximum duty cycle available when the sine value reaches 90 degrees. Every value is scaled down based on the frequency input to follow a linear VF profile.

• PWM duty cycle sorting is handled by the subroutine PRIORITIZE_PWMS PWM duty cycles calculated earlier are sorted in ascending order, so that the duty cycle with minimum ON time can be addressed first and PWM with maximum duty cycle last.Corresponding Flags are set to indicate which PWM duty cycle corresponds to which PWM output

• Timer0 reload value is calculated by the subroutine TIMER0_OVERFLOW Timer0 is used for setting the motor frequency. The Timer0 reload value is calculated based on three factors: first is the frequency reference input from the potentiometer, second is the number of sine table values, and third is the MCU operating frequency.

• Polling for the ADC result is handled by the subroutine AD_CONV_COMPLETE ADC conversion is poled in the main routine. Alternatively, frequency reference (AN0), motor current (AN1) and heatsink temperature (AN2) are selected and converted.

Interrupt Service Routines (ISRs)

• Timer1 ISR: In the first three Timer1 overflow ISRs, the corresponding Odd PWM output is turned off in each ISR. The complementary output is turned on after a dead time of five cycles (1 ms). In the fourth Timer1 overflow ISR, the PWM cycle is restarted. All PWMs are turned OFF and the timer is loaded with the value corresponding to the lowest duty cycle value. This is repeated for each PWM cycle.

• Timer0 ISR: A flag is set to indicate that the Sine output should advance by 10 degrees on the Sine table. The Timer0 registers are reloaded with the value corresponding to the motor frequency reference.

• INT ISR: The INT pin is used to interface hardware overcurrent fault. Motor current is compared with a fixed voltage reference using an op amp comparator. Each time the motor current exceeds the reference, in INT ISR a count (0C_COUNT) is decremented. If the count reaches zero in one Timer0 cycle, then the motor is stopped and overcurrent is indicated. This count is reset in every Timer0 ISR.