Many photovoltaic devices, such as PV panels and concentrated photovoltaic (CPV) modules, require outdoor testing for design verification, durability, and safety. A low-cost means of testing the output power of PV devices outdoors is to use a DC electronic load (eload); it provides high power-handling capability at a low cost.

Often one of the main functions of outdoor PV testing is maximum power-point tracking (MPPT). But because eloads are general-purpose instruments, it is up to the PV test engineer to implement an algorithm in the test software to perform MPPT.

Fortunately, there are a lot of MPPT algorithms you can choose from, with more than 19 published papers on the implementation and performance of different MPPT algorithms.

However, these algorithms were designed for solar inverters. Inverters are different from test systems, so a MPPT algorithm that performs well in an inverter may not necessarily perform well in a PV test system. This article introduces a MPPT algorithm that is a good fit for PV testing with an eload. We discuss how the algorithm is implemented and why it’s a good fit for MPPT in outdoor PV test systems.

The main difference between implementing a given MPPT algorithm in an inverter and an eload is in the I/O latency. In inverters, the MPPT algorithm runs on an internal microprocessor that can measure and compute and make load adjustments in microseconds. To perform the same set of operations with custom software and an eload could easily take tens of milliseconds due to the unavoidable I/O latency between the computer and the eload. This I/O latency is the main bottleneck affecting tracking speed. With that in mind, we chose and modified the MPPT algorithm discussed in this article to meet the needs of a PV test system using the following three criteria:

1. Fewer I/O transactions: Because I/O transactions impede MPPT speed, the number of I/O transactions must be small to ensure sufficient tracking response under varying environmental conditions.

2. Implementation simplicity: If you face typical time and budget constraints in PV testing, you don’t want to spend too much time implementing a complex MPPT algorithm, as it is only one small part of the test plan.

3. MPP measurement accuracy: Test data must be accurate and credible to properly validate the performance of a PV design.

Before we introduce an algorithm that meets the above criteria, we need to briefly discuss eloads. An eload is an instrument that can sink and measure the output power of a power source, such as a power supply or a PV device. Like a variable resistor, an eload can be adjusted to control the amount of power it is sinking. Eloads can measure the voltage drop across them and the current they are sinking. Eloads typically have three modes of operation: constant voltage, constant current, and constant resistance. The eload will maintain its mode setting even when the power output of the source it is connected to changes. For instance, if the eload is connected to the output of a PV panel and has a constant-voltage (CV) mode setting of 25 V, it will adjust its internal resistance to remain at 25 V as the I-V curve of the panel varies. If the maximum voltage of the panel (Voc) drops below 25 V, the eload will act like an open and the voltage across it will be whatever Voc is. In photovoltaic test, eloads are typically used in CV mode, so we will use this mode for defining the algorithm.

The algorithm that will be used for performing MPPT with an eload is a modified version of the incremental-conductance (IC) algorithm, which we will refer to as the incremental conductance for eloads (ICE) MPPT algorithm. For a detailed description of the IC algorithm for inverters, see the paper, “Maximum Photovoltaic Power Tracking: an Algorithm for Rapidly Changing Atmospheric Conditions”. The ICE algorithm works by comparing the incremental conductance and the instantaneous conductance of a PV device’s output. These values give us the measured change in the I-V curve to tell us if we are already at the MPP. If we are not at the MPP, it tells us which way to go on the curve to find it.

The mathematical relationships of voltage and current that ICE uses to track the MPP can be expressed as:

At MPP: dP/dV = 0

Right of MPP: dP/dV < 0

Left of MPP: dP/dV > 0

Where dP is the change in power and is equivalent to d(IV).

Of course, we cannot exactly compute dI, dV, or dP. But we can approximate them using: ΔP = Pn – Pp, ΔV = Vn – Vp, and ΔI = In – Ip, where "p" indicates previous measured value and "n" indicates new measured value. Using the above relationships, we can tell whether we are at the MPP or to the left (at a lower voltage level than the voltage value of MPP, or Vmp) or right (at a higher voltage level than Vmp) of it on the I-V curves (for an example, see Figure 1).

For the ICE example in Figure 1, we are performing MPPT with an eload on the three I-V curves. The eload is set to CV mode. The colored dot on each curve represents that curve’s MPP. Our starting point is the MPP on curve 1 (blue dot). Our eload’s CV setting is Vmp, and we have measured and stored the current and voltage values at this point.

Now suppose that a change occurs and we go from curve 1 to curve 2. If we now measure the current and voltage, the voltage will be the same (because the eload is in CV mode), but the current will be different, so we know we are no longer at the MPP. Because the eload is in CV mode, we are now at the point on curve 2 to which the gray arrow #1 is pointing. We can tell which way we need to go to find the new MPP by using the following relationships: If dI (approximated using dI ≈ ΔI = In – Ip) is negative, we know we are to the right of the MPP and we need to move to the left (decrease CV setting); if dI is positive, we do the opposite.

In our example, moving from curve 1 to curve 2, dI will be negative, so we need to decrement our CV setting to find the new MPP. We decrement our CV setting by some set voltage step that we will call Vinc. Because we will now be at a different voltage and current level, we must use both for deciding our next action. Now that we have moved closer to the MPP on curve 2, dP will be positive and dV will be negative, so we know we are still to the right of the MPP. We continue decrementing our CV setting until dP equals zero, meaning it has no slope (it is not actually possible to reach dP = 0, but we will address that later). We have reached the MPP on curve 2 and it changes to curve 3.

Now we are on curve 3 where gray arrow #2 is pointing. Because our voltage did not change, we would once again detect that a change occurred by measuring a change in the current. This time dI will be positive, so we know we are to the left of the MPP and we must increment the CV setting (move right on the curve), using Vinc to find MPP.

As you may have already noticed, since ΔP and ΔV are only approximations of dP and dV, you really cannot reach dP/dV = 0 (ΔP/ΔV = 0). In fact, because we are stepping the voltage up or down to find the MPP, dV will always be the size of Vinc, which does not tell us when we are at the MPP. Thus, we are really concerned only with dP. So we need to come up with some error value E, where if E ≥ dP ≥ -E, the algorithm decides that the eload is at the MPP. If E is too small, the ICE algorithm will oscillate around the MPPT.