You are on page 1of 15

mppt: a maximum power point

tracking photovoltaic system.


INTRODUCTION
To maximize a photovoltaic (PV) system's output power, continuously
tracking the maximum power point (MPP) of the system is necessary. The
MPP depends on irradiance conditions, the panel's temperature, and
the load connected. Maximum power point tracking (MPPT) algorithms
provide the theoretical means to achieve the MPP of solar panels; these
algorithms can be realized in many different forms of hardware and software.
PV systems that lack MPPT rarely operate at the most efficient, MPP. This is
why the rated power of the solar panel is almost never realized when
connecting a load. The goal of this project was to rapidly develop, construct,
and test a working solution to the MPP problem with a limited budget.

CONTENTS
INTRODUCTION
HARDWARE COMPONENTS

SOLAR PANEL
DIGITAL CONTROLLER
DC-DC CONVERTER
SENSING CIRCUITS
DIGITAL-TO-ANALOG CONVERTER
SOFTWARE AND ALGORITHMS
MPPT ALGORITHMS
EMBEDDED SOFTWARE
FUTURE WORK
PROJECT COST
FUTURE WORK
CONCLUSION
This project was developed from the ground up with only a few references.
Dr. Jaber Abu-Qahouq was the team's advisor and provided invaluable
guidance throughout the project's lifetime. The team consisted of five
undergraduate students: Travis Grant, Stephen Tirador, Nathan Wilbanks,
Matt York, and myself.
Rapid development necessitated that the team first look through existing
analysis and possible solutions to the MPP problem. It became clear that the
perturb and observe (P&O) technique was widely used for its ease of
implementation. It is based on the following criterion: if the operating voltage
of the PV array is perturbed in a given direction and if the power drawn from
the PV array increases, this means that the operating point has moved
toward the MPP and, therefore, the operating voltage must be further
perturbed in the same direction. Otherwise, if the power drawn from the PV
array decreases, the operating point has moved away from the MPP and,
therefore, the direction of the operating voltage perturbation must be
reversed.
The team chose to implement the P&O algorithm in software to add flexibility
to the system as well as simplify the system to the point where the system
could be rapidly constructed and testing commenced. The following
components were needed to design a minimal working solution: solar panel,
current sensor, voltage sensor, DC-DC converter, digital controller, and the
glue logic/circuitry to connect everything together.

SOLAR PANEL

The solar panel used in our system is an OEM40 model manufactured by


SunWize Technologies, Inc and was provided by the Department of
Electrical and Computer Engineering's Dr. Tim Haskew. It has a power
rating of 40 W, an open-circuit voltage (Voc) of 21 Vdc, and a short-circuit
current (Isc) of 2.68 A.

DIGITAL CONTROLLER

The microcontroller provides the control in our system. The choice of


microcontroller for the system dictates much of the cost, performance, and
flexibility of the entire system. Taking into consideration the project's
constraints, the Texas Instruments TMS320F28335 model digital signal
controller (DSC) was chosen. The single-chip C2000 family of
microcontrollers is targeted toward real-time control applications thanks to
powerful, high performance integrated peripherals. The core is "mathoptimized" and gives designers the means to improve system efficiency,
reliability, and flexibility when the application requires complex algorithms. It
features:

32-BIT FLOATING POINT CPU (<=150 MHZ, MODIFIED HARVARD ARCHITECTURE)

MEMORY: 68K SARAM, 512K FLASH

MAC OPERATIONS

16 12-BIT ADC CHANNELS (<=25MHZ)

18 PWM OUTPUTS

LOW POWER DISSIPATION (<1W @ 150MHZ AND ALL PERIPHERAL CLOCKS ENABLED)

3 32-BIT CPU TIMERS

1 WATCHDOG TIMER

88 GPIO

6 CHANNEL DMA

The C2000's development tools are very useable and help minimize
development time. Software for the controller can be developed, deployed,
and tested with ease thanks to the provided, easy to use IDE featuring a
C/C++ assembler/compiler/linker in addition to a powerful debugger and
seamless device programmer.

DC-DC CONVERTER

A DC-to-DC converter is an electronic circuit which converts a source of


direct current from one voltage level to another. It is a class of power
converter. Electronic switch-mode DC to DC converters operate by storing
the input energy temporarily and then releasing that energy to the output at
a different voltage and current. Just like a transformer, they essentially just
change the input energy into a different impedance level. So whatever the
output voltage level, the output power all comes from the input; there's no
energy manufactured inside the converter. In fact some energy is used by
the converter circuitry and components while doing their job. It is this
principle that makes a DC-DC Converter essential for MPPT.
The converter presents an electrical load to the solar panel that varies as the
output voltage of the converter varies. This load variation in turn causes a
change in the operating point (current and voltage characteristics) of the
panel. Thus by intelligently controlling the operation of the DC-DC converter,
the power output of the panel can be intelligently controlled and made to
output the maximum possible.
The DC-DC power converter used in our system is a Micro 24 Vout, 100 W
V28C24C100BL model manufactured by Vicor. The input voltage range of
the converter is 9-36 Vdc. Because the voltage provided by the solar panel
(which serves as the input voltage to the converter) can drop below the
converter's 9 Vdc minimum and thus cause the converter to shut down, our
MPPT system is only operational when the voltage provided by the solar
panel is greater than or equal to 9 Vdc. The output voltage of the converter
can be varied between 10% and 110% of its nominal 24 Vdc output (i.e. 2.426.4 Vdc) via a reference input voltage at the SC pin with respect to the -OUT
pin between 0.123-1.353 Vdc. The converter has the capability of functioning
in isolated or non-isolated mode depending on whether the grounds of the
converter (-IN and -OUT) are separate or connected together, respectively.

SENSING CIRCUITS
V OLTAGE S ENSOR

In order for the MPPT controller to measure the voltage provided by the solar
panel, two resistors, R1 and R2, are employed in parallel with the solar panel
to act as a voltage divider. The voltage across R2 in the voltage divider is fed
into an analog-to-digital converter (ADC) driver circuit (op-amp in a voltage
follower configuration that feeds into a low-pass filter) before being delivered
to the ADCINA0 channel of the MPPT controller. By choosing the values of R1
and R2 as 1.07 M and 165 k, respectively, the maximum amount of
current diverted from the load, I2, is small enough, even in a worst-case
scenario, to be considered negligible.
The allowable voltage range for each ADC channel of the MPPT controller is
0-3 Vdc. Therefore, the voltage across R2 (which serves as a scaled-down
representation of the solar panel's voltage) should not exceed 3 Vdc. Based
on the chosen value of R2 as 165 k, the maximum voltage, V(R2,max), sent
to the ADC driver circuit (and thus ADC channel ADCINA0) is ~2.81 Vdc.

C URRENT S ENSOR

In order for the MPPT controller to measure the current provided by the solar
panel, a single resistor (Rsense) is placed in series between the solar panel
and the DC-DC converter. The voltage across Rsense is fed into an AD8215
current sensor manufactured by Analog Devices whose output voltage is
then fed into an ADC driver circuit (op-amp in a voltage follower
configuration that feeds into a low-pass filter) before being delivered to the
ADCINA1 channel of the MPPT controller. By choosing the value of Rsense as
51 m, the maximum voltage drop across Rsense, VRsense, is small enough,
even in a worst-case scenario, to be considered negligible.
As stated previously, the allowable voltage range for each ADC channel of
the MPPT controller is 0-3 Vdc. Therefore, the output voltage of the AD8215
current sensor (which serves as an equivalent voltage representation of the
solar panel's current) should not exceed 3 Vdc. Based on the chosen value of
Rsense as 51 m, the maximum voltage, Vout, sent to the ADC driver circuit
(and thus ADC channel ADCINA1) is ~2.73 Vdc.

C OMPLETE S ENSING C IRCUIT WITH ADC D RIVER


C IRCUITS

In order to condition each of the voltage signals sent to the ADC channels of
the MPPT controller, Texas Instruments OPA340 model op-amps are used in
voltage follower configurations with each of their outputs fed into a low-pass
filter. The OPA340s provide low output impedance to each of the ADC
channels without modifying each of the output voltages being sent from the
voltage and current sensor circuits. Of added benefit is the op-amps' ability
to protect each of the ADC channels from being permanently damaged by an
input voltage that exceeds its maximum operating threshold. This is
accomplished by powering each of the op-amps with the maximum allowed
voltage of the ADC channels: 3 Vdc. This effectively clips any potentially
damaging voltage that would otherwise be fed into the ADC channel at a
safe value of 3 Vdc. The voltage and sensor circuits along with their
corresponding ADC driver circuits are all combined to form the "sensing
circuit" for the MPPT system.

DIGITAL-TO-ANALOG CONVERTER

The DC-DC converter is controlled via a reference input voltage at the SC pin
with respect to the -OUT pin between 0.123-1.353 Vdc. The digital signal
controller utilizes on-chip pulse width modulated (PWM) signal generators to
create an output signal meant to control the DC-DC converter. An analog lowpass filter can remove the high frequency components of the PWM signal,
leaving only the low-frequency content. In this MPPT application, a secondorder passive filter was used to provide adequate filtering and resolution.
The PWM duty cycle is controlled via software; the duty cycle values for
which the reference input voltage of the converter is 0.123-1.353 Vdc were
obtained experimentally and the software ensures that the signal is never
out-of-range. This (PWM as DAC) solution is a legitimate lower cost
alternative to dedicated off-chip DACs.

MPPT ALGORITHMS
Various algorithms may perform MPPT. Important factors to consider when
choosing a technique to perform MPPT are the ability of an algorithm to
detect multiple maxima, costs, and convergence speed.
The irradiance levels at different points on a solar panel's surface tend to
vary. This variation leads to multiple local maxima power points in one
system. The efficiency and complexity of an algorithm determine if the true
maximum power point or a local maximum power point is calculated. In the
latter case, the maximum electrical power is not extracted from the solar
panel.

The type of hardware used to monitor and control the MPPT system affect
the cost of implementing it. The type of algorithm used largely determines
the resources required to build an MPPT system.
For a high-performance MPPT system, the time taken to converge to the
required operating voltage or current should be low. Depending on how fast
this convergence needs to occur and your tracking system requirements, the
system requires an algorithm (and hardware) of suitable capability.

P ERTURB AND O BSERVE


The concept behind the "perturb and observe" (P&O) method is to modify the
operating voltage or current of the photovoltaic panel until you obtain
maximum power from it. For example, if increasing the voltage to a panel
increases the power output of the panel, the system continues increasing the
operating voltage until the power output begins to decrease. Once this
happens, the voltage is decreased to get back towards the maximum power
point. This pertubulance continues indefinitely. Thus, the power output value
oscillates around a maximum power point and never stabilizes.

P&O is simple to implement and thus can be implemented quickly. The major
drawbacks of the P&O method are that the power obtained oscillates around
the maximum power point in steady state operation, it can track in the
wrong direction under rapidly varying irradiance levels and load levels, and
the step size (the magnitude of the change in the operating voltage)
determines both the speed of convergence to the MPP and the range of
oscillation around the MPP at steady state operation.

I NCREMENTAL C ONDUCTANCE
Incremental conductance considers the fact that the slope of the powervoltage curve is zero at the maximum power point, positive at the left of the
MPP, and negative at the right of the MPP. The MPP is found by comparing
the instantaneous conductance (I/V) to the incremental conductance (I/V).
Once you have the MPP, the system maintains this power point unless a
change in V or I occurs (caused by an external event). If this happens, the
algorithm will find the new MPP.

This technique has an advantage in that it can reach and maintain the MPP
without losing some efficiency by having to oscillate around this point. Under
rapidly changing conditions this algorithm tracks more accurately than the
P&O method. The disadvantage of this method is that it can take longer to
reach the MPP because the increased computation required decreases the
number of perturbations to the operating voltage and current possible in a
set amount of time.

EMBEDDED SOFTWARE

To implement this intelligence, the group employed the aforementioned


TF320F28335 digital controller. With this development target in mind, the
software development began immediately. The team focused on getting
minimal "working" code onto the controller as soon as possible. The team
became familiar with the TI IDE, debugger, programmer, and most
importantly the header files. Through the course of a couple of weeks
different projects were deployed to the board, ranging from flashing an LED
to running programs from the flash memory. Each peripheral to be used in
the MPPT project was investigated and played with in these first few weeks.
Most significantly, unit tests for the PWM and the ADC (using DMA) were
developed. Each unit test was built with pre-defined pass/fail criteria.
For the PWM unit test, the duty cycle of the PWM would be automatically,
continuously varied through the entire operating range of the final MPPT
project as defined by the DC-DC converter control pin specs. The test would
pass if the PWM duty never exceeded or fell under the defined upper and
lower limits and if the PWM duty was continuously increasing or decreasing.
This test could run without interfacing with the DC-DC converter; an
oscilloscope was hooked into the PWM pins of the controller and the test
behavior was observed.
For the ADC unit test, the result of an ADC conversion would be stored in a
monitored variable. The reference analog signal was varied through a range
of values and the variables value was recorded for each analog value. These
recorded values were compared to calculated, expected values to verify
operation.
Once the team was very comfortable working with the C2000, work began on
a custom MPPT algorithm based on the P&O algorithm from before. This
algorithm was attempted first since it was the simplest solution requiring the
least amount of effort while still fulfilling requirements. The simplicity of the
algorithm could also afford the team more time to integrate the hardware
and software near the end of development if necessary. This system and
algorithm does not require a scheduler; if the controller needed to be more
reactive to more inputs (tracking the MPP of more solar panels) then a
scheduling method would likely be necessary to ensure a quick response to
all inputs and efficient utilization of the processor.
This system is designed to run for a long time; the software is single purpose
and loops forever. Each loop is an iteration of the P&O algorithm described
earlier. Each iteration starts by setting a variable to the calculated amount of
power being supplied by the panel (current and voltage values known from
ADC). The program then switches on whether the power point is increasing
or decreasing in voltage. Inside each case the iteration's power value is
compared to the previous iteration's and the duty of the PWM is either

increased or decreased to move closer to the MPP; if the PWM duty is


increased, the voltage will be increasing, if the PWM duty is decreased, the
voltage will be decreasing. Before repeating the loop, the previous iteration's
power variable is set to the current iteration's. Pseudo code for this behavior
is below.
next_pwr = calcPwr(adc_voltage, adc_current);
switch(voltage_direction){
case PV_RIGHT :
if (next_pwr > prev_pwr){incDuty();}
else if (next_pwr <= prev_pwr){
decDuty();
voltage_direction = PV_LEFT;}
break;
case PV_LEFT :
if(next_pwr >= prev_pwr){decDuty();}
else if (next_pwr < prev_pwr){
incDuty();
voltage_direction = PV_RIGHT;}
break;
}
prev_pwr = next_pwr;

PROJECT COST
Item
Solar Panel

Notes
SunWize OEM40 (on hand)

Price
0.00

Digital Controller TMS320F28335 Experimenter Kit

110.00

DC-DC Converter Vicor Micro 24 Vout, 100 W (V28C24C100BL)

175.00

Circuit Materials OPA340s, AD8215, prototyping board, passive components,

35.00

etc
$320.0
0

When proposing this project, the projected cost and budget was $500. We
came in considerably under budget primarily thanks to having a solar panel
on hand. A solar panel could have been constructed from solar cells available
at $.5/Watt, or about $20, though construction materials would add more
cost. Our simple system (40W panel and P&O algorithm) could have been
constructed with a very simple microcontroller and a less capable DC-DC
converter, bringing the cost down to close to $150.
However, with a cheaper microcontroller, the math operations take longer to
evaluate. The incremental conductance algorithm is more math intensive
and has more control flow for one iteration; a cheap microcontroller will not
offer the same performance as the C2000. Also, the C2000 has enough
performance capabilities and ADC and PWM channels to calculate the MPPT
of many different solar panels simultaneously.

FUTURE WORK
The scope of this project was simply to create a working prototype of a MPPT
system. This system successfully uses the simple P&O algorithm to reach the
MPP. The additional resources (labor) needed to implement the more
complex incremental conductance algorithm is quite modest. Reaching a
stable, true MPP at steady state instead of oscillating around this point would
improve the system's efficiency and increase reliability. Thus implementing
the incremental conductance algorithm is a good choice in continuing this
project.
Another extension of this project would be to directly power the
microcontroller and other circuits from the solar panel instead of from a
power supply. Or to incorporate a power supply into the system that draws
energy from the solar panel or an energy storage element that is in turn
charged by the solar panel. This extension would allow the system to be
deployed to remote locations.
Yet another more useful system would be one that could directly power a DC
or AC load. An additional DC-DC converter would be needed to supply a
regulated DC signal. An inverter is needed to supply an AC signal. If the AC
signal is meant to connect to the grid, it is necessary to synchronize the
frequency of the signal with that of the grid in addition to limiting the voltage
to no higher than the grid voltage.

This digital controller would allow us to add these features to our system with
relative ease thanks to its high performance and many peripherals.
UPDATE: Thanks to the success of this project and the large amount of
documentation left behind, two new teams will be working on extending
different parts of this project for next year.

CONCLUSION
A renewable energy system, like the one implemented here, is suitable for
residential and/or industrial applications. Such a system would typically
provide a regulated AC output voltage that may also track the input mains
utility voltage in phase and amplitude at hundreds to thousands of watts.
Thus a system such as this can be deployed easily with little concern about
adapting a home or business's electrical wiring to take advantage of solar
energy. Many areas allow surplus energy generated by systems such as this
to be sold to the utility grid in a policy known as "net metering." But for this
project, these features were out of scope.

You might also like