MPPT for Solar PV Panel

Introduction: MPPT for Solar PV Panel

About: Robotics Maniac, Love learning everything from technology to cooking and stuff like types of clouds and behaviour of certain types of absurd fishes!

Maximum Power Point Tracking (or MPPT) for solar PV panel is a vast subject of interest for many researchers out there.
The reason being that maximum efficiency of any solar PV Panel is 25.89%
Optimisation Techniques like Perturb and Observe, Ant Colony Optimisation, etc are being explored in order to attain the maximum possible power point.

Here is an instructable which you can easily follow to make your own P&O algorithm and implement it using a CUK Inverter.

Hey, and don't worry! I will tell you all that you need to know on the way.

Step 1: What Do You Mean by MPPT in a Solar Panel?

I'm going to use most simple definations here for all to understand. So all those people who love to be "technically correct" and use fancy jargons, pls bear with me!

Pls refer to the I-V curve here. You will notice that the curve between Power and Voltage is highest at one point and then slags of in the neighbourhood.
Also, the I-V curve is getting intersected at a particular bending (or Knee-Point). This is exactly what we call "Maximum Power Point".
Now like I mentioned earlier, the max power that can be obtained from any PV panel is 25.89%. So we need to ensure that we try and hit the max power each time Atleast. That's the reason why we want to make such algorithms and converters.

Step 2: P&O Algorithm

The Perturb and Observe algorithm is an algorithm which is widely used for industrial Solar PV panel systems.
P&O algorithm is essentially just that- you Perturb or disturb any input parameter of the PV panel and wait for the output to settle for you to observe.
It is a simple algorithm, and you can easily code it on MatLAB or any microcontroller.

Pls look at the flow chart to understand the algorithm.

The input parameters here are Irradiance and Temperature.

Pls understand that a PV Panel of specific rating shows negative resistance coefficient beyond a certain temperature. So to say, it starts conducting lesser as the temperature increases.

So, when the irradiance changes, say with clouds passing or the sun changing its position in sky, the algorithm should kick in such that we still obtain the max possible power.

What you want to control as output from your converter is the Duty Cycle.
Pls read further to understand what is this duty cycle and how does it fit our picture.

Step 3: CUK Converter

The CUK converter is not very different than a buck- boost converter.
It is a DC/ DC Converter which gives output voltage greater than or lesser than the input voltage, depending upon the Duty cycle.
This nature of the converter obviously implies that we can easily control the output voltage by controlling the duty cycle by our algorithm.

Kindly understand the working of the CUK converter here::

So now that you are clear with what a CUK Converter is, let us dive into the algorithm and then the converter hardware implementation!

Step 4: Components Required

MatLab 2015a (with Simulink libraries)
Arduino IDE

Hardware Required:
1.5mH Inductors - 2 nos
220uF capacitor, 400V- 1 no
0.47 uF capacitor, 450V- 1 no
220-12V transformer
(PS: 220V Ac is the normal supply in India, pls choose you transformer accordingly)
A Current sensor (a tiny module which you can buy off any website)
A Voltage sensor
A 4Amp 50 ohms variable resistor for the load
PCB board of suitable size
Soldering Kit
RTF20 Power Diode- 1 no
IRF840 MOSFET- 1no
Heat sinks for the diode and mosfet
MOSFET Stand- 1 no
1 amp wires
Connectors (the black and red ones in the picture)
Arduino Mega or Uno

Keep handy:
Nose plier
Wire cutter
Hand drill machine (to drill holes in your PCB and attach the connectors)
Nuts and bolts (for the connectors)

Step 5: How to Write the P&O Algorithm

As shown in the previous section, you can use the algorithm to easily make your code on Matlab or on Arduino.
In fact you can write and control your code on Matlab and dump it on Arduino as well!

However, it is inevitable that you write your code on Matlab and call the m-file into you CUK converter simulink model as a "Function".

Pls find CUK converter simulink models here:

Step 6: CUK Converter Hardware Implementation

On the PCB board:

Connect the connectors for Input power supply, diode, MOSFET and output load.
To do this, drill 4 pairs of holes at good distances on the PCB and set the connectors on the board using nuts and bolts.

Next, you have to build your circuit as per the circuit diagram.

Make sure that your Inductors and Capacitors are rated for Atleast 4 Amps (that is 400V or 450V)

Once all connections are done, connect your variable resistor to the load side connectors.

Use a multimeter between the load terminals. Pls note that CUK Converter gives reverse polarity at the output.

Use a Function generator at 10kHz square pulse to test your initial prototype. You can even code an Arduino to generate the 10kHz frequency.

So in a nut shell, your hardware connections should be as follows:

The 220V AC supply comes into your transformer.
PS:: we are initially going to test our prototype with the 220Vac supply. However, once we are satisfied with the performance of the prototype, we can replace it with the solar PV panel.

Transformer steps it down to 12V and gives the supply to the TLP250 driver circuit.

The function generator gives 10KHz square pulses at the IN1 and IN2 pins of the TLP250

The positive output O1 of TLP250 goes to the "GATE" of the MOSFET while the negative output goes to any of the common grounding points on the PCB.

The voltage sensor and the current sensor is connected between the transformer outputs.

They go straight into the Arduino, where they are being monitored for changes in the input supply.

Step 7: Final Step

Once testing with the 220V AC supply is done, you can integrate it on your solar panel and watch it work as you get the maximum possible power!

Pls let me know in the comments if you have any other queries or doubts.

This project was made as part of a final year graduation project.

Hope you have understood it well and will implement it to explore the beauty of these renewable energy resources.

Lastly, pls pls pls do conserve precious resources! It is not a matter of brief awareness anymore! Many places in India, in fact even my city is facing power cuts and consequences of so much pollution.

Renewable Energy Contest

Participated in the
Renewable Energy Contest

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    8 Discussions


    4 years ago

    Could that schematic be replaced with one that is readable? It's really hard to follow everything without one.

    And, for those of us who do not have access to the very inexpensive student versions of MatLab and Simulink, the cost of the full commercial versions are too prohibitive. Some alternate means should be provided for budget DIY projects.


    Reply 3 years ago

    That can be easily accessed in the institutes digital labs


    3 years ago

    Can you provide the PV panel model


    3 years ago

    Hello, Anmol Saxena, I am doing similar project to yours. However, mine is totally on MATLAB using Simscape Power Systems and Electronic library. I am trying to simulate battery charged by PV panels using controller (dc-dc buck-boost converter) first with MPPT and without it. I am totally new to MATLAB so it is time consuming. Can you provide some tutoring?

    Anmol Saxena
    Anmol Saxena

    4 years ago

    Guys, if you like my instructable, I request you all to pls vote for me for the renewable resources contests :D

    Anmol Saxena
    Anmol Saxena

    4 years ago

    You are technically using MatLab to verify how your CUK converter works for the PV panel using the P and O algorithm

    Anmol Saxena
    Anmol Saxena

    4 years ago

    Hi Artmez, thanks for writing in.
    You could use Cadence softwares like PSpice or Orcad Capture to make a schematic of your CUK converter.

    Also, the algorithm (like mentioned in the instructable) could be executed straight away on Arduino or any other microcontroller.