Tuesday, 23 April 2013

Microcontroller Based Solar Tracking System




Objective of this project:

  • solar power generation
  • Storage of the power
  • Increasing the efficiency
  • Utilization of Storage Energy


The major disadvantage of solar PV module is it's very poor efficiency. By using a efficient Solar Tracking System for PV module, we can achieve better efficiency of the module.




Sun Tracking:

Before going to the details of construction Solar Tracker, we need to know what is solar tracking and offcourse how Sun Tracking works.
Sun moves east to west. So if we can move the module east to west accordingly then we'll get the total incedent power from sun.
Now illuminating intensity E α cosθ 
where θ goes as follows


So if we keep the panel facing the sun θ = 0deg.

So, E α 1, we will have the maximum sunlight, which will emit more electrons and hence will deliver more power.
Here we need to move the panel 1 degree for 4 minutes.

Construction Part

Apparatus required for the tracking of the panel:

The following apparatus are required for the tracking part.

1. Stepper motor
2. At mega 16 micro controller for the control of the motor.
3. Bjt s for the switching performance.
4. Supply for the stepper motor.

Inverter design for making an alternating voltage: 

This is also a main part of this project. As now a day’s all the apparatus are ac driven so we need an inverter to convert the dc to ac. We prepared an equivalent circuit using matlab. Where the voltage is changing due to the switching performance of the power mosfets.

We know that if the load applied to the inverter is RLC over damped the output current waveform will be sinusoidal. We achieved this by applying such load.

After the successful operation of the inverter circuit we fed the power to a single phase induction motor to compare the performances of the motor when the inverter supply is applied and when an ideal supply is applied. The comparative study will be given. Now let us see the inverter circuit.

Pulse generators with proper delay have been used here to switch the mosfets at proper intervals for generating the 50 hz frequency. 

Inverter Circuit in Matlab:

 

 Analysis of the Inverter Circuit

According to the diagram mosfet and mosfet 1 are fired together for the positive half cycle. And mosfet 2 and 3 are for the negative half cycle.

Our required freq. is 50hz.
T=1/50 sec

   =0.02 sec

So our required time period is .02 sec that means .01 sec for +ve half cycle and the other .01 sec for the –ve half cycle. So the pulse generators will be operated accordingly.

Now let us see the parameters of the pulse generators.


These parameters were used for mosfet and mosfet 1 for producing the positive half cycle



Here delay of .01 sec is given. That means the other two switching devices will be on after the positive half cycles completed to produce the negative half cycle



Load Parameter : Impedance of the circuit is 3 ohm approx


Voltage wave form of the inverter :

The wave is a square wave. But not a proper square wave. Due the inductance there is a curve






Current Waveform of Inverter : For the presence of RLC load the output wave form is proper sinusoidal


Algorithm:


In this project we are using sun tracking system, in which system the solar panel change its’ position according with the sun position. We all know that sun changes it’s position 10 with 4 min change in time.
We are using a stepper motor with a step angle of 20.
So, in this case a phase of the stepper motor will be excited 8 min after the previous excitation.
Because, in a single excitation the motor will rotate 20. We require 10 in 4 min. So, a delay of 8 min is required between 2 excitation.
When sun raises in the morning the panel is in a particular position, the motor will help the panel to track the sun during the whole day.
When sun sets, i.e. the charging current is zero, the motor will fix the panel in it’s original position.

In this project we are using 8 step hybrid motor.






PROGRAMING:

This programing is done in avr language. Atmel “ATMEGA16” microcontroller is used to run the stepper motor in this project.
 

  #include
#include
#include
#include
#include
   
int main(void)
{
DDRA =0xFF;
unsigned int i;
for(i=0;i<45 br="" i="">{
PORTA=0xA0;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x20;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x60;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x40;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);;
PORTA=0x50;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x10;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x90;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
PORTA=0x80;
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
_delay_ms(250);
}
for(i=0;i<45 br="" i="">{
PORTA=0x80;
_delay_ms(250);
PORTA=0x90;
_delay_ms(250);
PORTA=0x10;
_delay_ms(250);
PORTA=0x50;
_delay_ms(250);
PORTA=0x40;
_delay_ms(250);
PORTA=0x60;
_delay_ms(250);
PORTA=0x20;
_delay_ms(250);
PORTA=0xA0;
_delay_ms(250);
}
return 0;
}



0 comments:

Post a Comment