Computing stuff tied to the physical world

MPPT hunting

In Hardware on May 21, 2013 at 00:01

Solar panels are funny power sources: for each panel, if you draw no power, the voltage will rise to 15..40 V (depending on the type of panel), and when you short them out, a current of 5..12 A will flow (again, depending on type). My panels will do 30V @ 8A.

Note that in both cases just described, the power output will be zero: power = volts x amps, so when either one is zero, there’s no energy transfer! – to get power out of a solar panel, you have to adjust those parameters somewhere in between. And what’s even worse, that optimal point depends on the amount of sunlight hitting the panels…

That’s where MPPT comes in, which stands for Maximum Power Point Tracking. Here’s a graph, copied from, with thanks:


As you draw more current, there’s a “knee” at which the predominantly voltage-controlled output drops, until the panel is asked to supply more than it has, after which the output voltage drops very rapidly.

Power is the product of V and A, which is equivalent to the surface of the area left of and under the current output point on the curve.

But how do you adjust the power demand to match that optimal point in the first place?

The trick is to vary the demand a bit (i.e. the current drawn) and then to closely watch what the voltage is doing. What we’re after is the slope of the line – or in mathematical terms, its derivative. If it’s too flat, we should increase the load current, if it’s too steep, we should back off a bit. By oscillating, we can estimate the slope – and that’s exactly what my inverter seems to be doing here (but only on down-slopes, as far as I can tell):

Screen Shot 2013-05-14 at 15.35.03

As the PV output changes due to the sun intensity and incidence angle changing, the SMA SB5000TL inverter adjusts the load it places on the panels to get the most juice out of ’em.

Neat, eh?

Update – I just came across a related post at Dangerous Prototypessynchronicity!

  1. This might be ask for the sake of asking, but the sketch above only is for a certain amount of insolation. Is there -as far as you know- a difference in the SHAPE of the MPP curve with changed insolation?

    Would a JeeNode be able to do MPP on a solar cell using a suitable R/C/FET combo?

    • The shape does not change very much with insolation (only due to secondary effects). Of course, the short circuit current is linearly dependant on insolation :-). The output voltage has a quite strong negative temperature depedance. MPP tracking is mostly done quite slowly (changes in insolation are also slow), a Jeenode has much more than the necessary processing power to do this.

  2. Maybe an L/C/FET combo would be more effective. As far as I can see, a resistor could only waste power.

  3. I’m a complete newbie at this but how do you make use of the MPPT info? How can you tune and control the output current draw and voltage? And how can you make optimal use of it?

  4. Baruch, an MPPT charge controller (e.g., to charge batteries from PV) or a grid-tie inverter will work a bit like a switch-mode power supply. It changes the frequency or mark-space ratio or whatever to control the amount of current, and hence the voltage, drawn from the PV panels for optimum power transfer to the batteries or grid.

    Normally the device will hunt up and down the power curve, varying the current, looking for the optimum, automatically tracking changes as the sunlight varies. Sometimes it has to sweep the whole range in case it’s got caught up on a local maximum – this sort of thing can happen if you have multiple panels and some of them are partially shaded.

Comments are closed.