Basics of Inverters
Basics of Inverters
and also the inverters topology in other words working of inverters, then we discussed
the Major Components of Inverters. Now in this post I am gonna explain the pure sine
wave inverter and how to create it. I have used AVR microcontroller int his project. The
reason I am using random microcontrollers is that so you guys get a taste of each one.
Before starting on sine wave inverter read this article again and again as I have also
mentioned the problem i got while making it. You should also read the Modified Sine
Wave Design with Code.
I have divided this tutorial into four parts which are shown below. This is a step by step
guide to design and build an inverter and I hope at the end of this tutorial you guys will
be able to design your own inverter. I tried my best to keep it simple but still if you guys
got stuck at any point ask in comments and I will remove your query. This project is
designed by our team and they put real effort in getting this done so thats why we have
placed a small fee on its complete description. You can buy the detailed description of
this project along with the complete code and circuit diagram, by clicking on the below
button:
I have also posted a Pure SineWave Inverter Simulation in Proteus, which will be
quite helpful if you are designing a pure sine wave inverter.
1 #include <stdlib.h>
2
3 #include <avr/io.h>
4
5 #include <util/delay.h>
6
7 #include <avr/interrupt.h>
8
9 #include <avr/sleep.h>
10
11 #include <math.h>
12
13 #include <stdio.h>
14
15 0x80, 0x83, 0x86, 0x89, 0x8C, 0x90, 0x93, 0x96,
16
17 0x99, 0x9C, 0x9F, 0xA2, 0xA5, 0xA8, 0xAB, 0xAE,
18
19 0xB1, 0xB3, 0xB6, 0xB9, 0xBC, 0xBF, 0xC1, 0xC4,
20
21 0xC7, 0xC9, 0xCC, 0xCE, 0xD1, 0xD3, 0xD5, 0xD8,
22
23 0xDA, 0xDC, 0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8,
24
25 0xEA, 0xEB, 0xED, 0xEF, 0xF0, 0xF1, 0xF3, 0xF4,
26
27 0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFC,
28
29 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
30
31 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD,
32
33 0xFD, 0xFC, 0xFB, 0xFA, 0xFA, 0xF9, 0xF8, 0xF6,
34
35 0xF5, 0xF4, 0xF3, 0xF1, 0xF0, 0xEF, 0xED, 0xEB,
36
37 0xEA, 0xE8, 0xE6, 0xE4, 0xE2, 0xE0, 0xDE, 0xDC,
38
39 0xDA, 0xD8, 0xD5, 0xD3, 0xD1, 0xCE, 0xCC, 0xC9,
40
41 0xC7, 0xC4, 0xC1, 0xBF, 0xBC, 0xB9, 0xB6, 0xB3,
42
43 0xB1, 0xAE, 0xAB, 0xA8, 0xA5, 0xA2, 0x9F, 0x9C,
44
45 0x99, 0x96, 0x93, 0x90, 0x8C, 0x89, 0x86, 0x83,
46
47 0x80, 0x7D, 0x7A, 0x77, 0x74, 0x70, 0x6D, 0x6A,
48
49 0x67, 0x64, 0x61, 0x5E, 0x5B, 0x58, 0x55, 0x52,
50
51 0x4F, 0x4D, 0x4A, 0x47, 0x44, 0x41, 0x3F, 0x3C,
52
53 0x39, 0x37, 0x34, 0x32, 0x2F, 0x2D, 0x2B, 0x28,
54
55 0x26, 0x24, 0x22, 0x20, 0x1E, 0x1C, 0x1A, 0x18,
56
57 0x16, 0x15, 0x13, 0x11, 0x10, 0x0F, 0x0D, 0x0C,
58
59 0x0B, 0x0A, 0x08, 0x07, 0x06, 0x06, 0x05, 0x04,
60
61 0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01,
62
63 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
64
65 0x03, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x0A,
66
67 0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x11, 0x13, 0x15,
68
69 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24,
70
71 0x26, 0x28, 0x2B, 0x2D, 0x2F, 0x32, 0x34, 0x37,
72
73 0x39, 0x3C, 0x3F, 0x41, 0x44, 0x47, 0x4A, 0x4D,
74
75 0x4F, 0x52, 0x55, 0x58, 0x5B, 0x5E, 0x61, 0x64,
76
77 0x67, 0x6A, 0x6D, 0x70, 0x74, 0x77, 0x7A, 0x7D
78
79 void InitSinTable()
80
81 {
82
83 Page | 42
84
85 //sin period is 2*Pi
86
87 const float step = (2*M_PI)/(float)256;
88
89 float s;
90
91 float zero = 128.0;
92
93 //in radians
94
95 for(int i=0;i<256;i++)
96
97 {
98
99 s = sin( i * step );
10
0 //calculate OCR value (in range 0-255, timer0 is 8 bit)
10
1 wave[i] = (uint8_t) round(zero + (s*127.0));
10
2 }
10
3 }
10
4 void InitPWM()
10
5 {
10
6 /*
10
7 TCCR0 - Timer Counter Control Register (TIMER0)
10
8 -----------------------------------------------
10
9 BITS DESCRIPTION
11
0 NO: NAME DESCRIPTION
11
1 --------------------------
11
2 BIT 7 : FOC0 Force Output Compare
11
3 BIT 6: WGM00 Wave form generartion mode [SET to 1]
11
4 BIT 5: COM01 Compare Output Mode [SET to 1]
11
5 BIT 4: COM00 Compare Output Mode [SET to 0]
11
6 BIT 3: WGM01 Wave form generation mode [SET to 1]
11
7 BIT 2: CS02 Clock Select [SET to 0]
11
8 BIT 1: CS01 Clock Select [SET to 0]
11
9 BIT 0: CS00 Clock Select [SET to 1]
12
0 Timer Clock = CPU Clock (No Pre-scaling)
12
1 Mode = Fast PWM
12
2 PWM Output = Non Inverted
12
3 */
12
4 TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00);
12
5 TIMSK|=(1<<TOIE0);
12
6 //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32
12
7 DDRB|=(1<<PB3);
12
8 }
12
9 ISR(TIMER0_OVF_vect)
13
0 {
13
1 OCR0 = wave[sample];
13
2 sample++;
13
3 if( sample >= 255 )
13
4 sample = 0;
13
5 }
13
6
13
7
13
8
13
9
14
0
14
1
14
2
14
3
14
4
14
5
14
6
14
7
14
8
14
9
15
0
15
1
15
2
15
3
15
4
15
5
15
6
15
7
15
8
15
9
16
0
16
1
16
2
16
3
16
4
16
5
16
6
16
7
16
8
16
9
17
0
17
1
H-BRIDGE CIRCUIT
H-Bridge Circuit is acting as the main core of Pure sine Wave Inverter.
H-bridge circuit is basically enables a voltage to be applied across a load in either
direction.
In inverters, it is used to amplify the input square wave coming from the micro-
controller.
We are giving modulated square wave at the input of the H-bridge because if we
give sine wave to the MOSFET or any other switching device like the BJT or IGBT,
very high switching losses occur. This is because when we give sinusoidal waveform
to any of these devices, they start operating in the linear region, and power loss
occurs in devices operating in linear region.
When we give a square waveform to them, they operate on either saturation or
cut-off regions thus having minimum power loss.
We used IRF5305 and IRFP150 MOSFETs. These are high power MOSFETs
with maximum current rating of 31 Amp and 42 Amp respectively.
IFR5305 is a Pchannel MOSFET whereas IRFP150 is an N-channel MOSFET.
The circuit configuration of H-bridge is given below:
FIGURE 2 : H-Bridge Circuit
Working
Working of an H-bridge for pure sine wave inverter can be divided into two
modes.
In Mode1, the input signal at the gate of M1 is high and at the gate of M4 it is
low.This causes conduction from M1-M4 and we achieve a +12V signal at the output.
In Mode2, the input signal at the gate of M3 is high and at the gate of M2 it is
low.This causes conduction from M3-M2 and we achieve a -12V signal at the output.
And thus we obtain a 24Vpeak-peak signal at the output.
The working of H-Bridge in both conduction modes can be easily understood by
the following figure:
FIGURE 3 : H-Bridge Conduction Modes (A)
Due to the conduction of half part of the bridge at +ve half cycle and the other half
part of the bridge at ve half cycle, we obtain a square waveform of 24 Vpeak-peak at
the output.
In figure below is the Proteus simulation showing the waveform output of bridge
circuit during each conduction cycle.
FIGURE 4 : Wave-forms of H-bridge conduction cycle
Observations
In the H-bridge circuit we have observed that input signal s frequency does not
change at the output that means the frequency remains un-altered.
Only the power of the signal increase in terms of current.
Problems
Initially we used all the MOSFETs of same type (i-e. n-channel MOSFETs). This
caused the shorting of the MOSFETs during the conduction mode. This phenomenon
is known as shooting over of the MOSFET.
Despite the duration of this shooting over was quite small, it caused loading on
the MOSFETs.
The MOSFETs started heating up due to this, and eventually they burned out.
Another problem occurred while using the MOSFETs of same channel was that
the upper MOSFETs (M1 and M3) did not turn on properly.
After studying, we learned that they required 18V to turn on thus; we needed a
MOSFET driver that was IR2110.
We worked on it but it did not working properly too, because according to the
formula for bootstrap capacitor given in datasheet, the driver must have given 18V
output but it was not working so we had to search for an alternate.
Then after extended study we came to know that replacing the upper two n
channel MOSFETs with p channel MOSFET is the solution. We applied this technique
and it worked.
Using this technique also solved the problem of MOSFET shooting over by
inducing a dead time/delay in the MOSFET switching.
LC FILTER
FIGURE 5 : LC filter
Working
Understanding the working of H-Bridge is very essential, if you want to work on
Pure sine Wave Inverter.
The method to determine L or C is simple. Suppose we are required to determine
the inductance, then by above circuit,
Problems
First we designed an RC circuit but we observed that the Resistance R in the
circuit acts as a load and dissipates power.
After studying, we decided to use an LC filter.
The main problem with the LC filter was the designing of the inductor as the
inductor of desired value was not available in the market, thus we had to make it by
hand.
LC meter was not available also thus we had to repeatedly calculate the
inductance value mathematically.
WORKING OF PURE SINE WAVE INVERTER