I am building a solar MPPT tracker. First of all: what I understood from MPPT is that MPPT units transfer the maximum power available from a solar panel at that time to the load. This can be done by changing the duty cycle of the boost converter. My questions are, assuming my load is constant:

  1. By changing the duty cycle what is happening (please explain from basics)

  2. I heard that MPPT is effective only if the output load is variable - is that true?

  3. How is the duty cycle changed? (please explain the algorithm)

  4. What is the 'partial shading condition' and how is MPPT implemented in this effectively?

  • 1
    \$\begingroup\$ 2. No, the MPPT will still be used to take the dynamic operating conditions of the PV panel into consideration. Even though you have a constant load, the operating conditions (e.g. temperature or illumination [W/m^2]) of the PV panel will change during time, which shifts its maximum power point. Thus you will need a MPPT to actively search for the point of voltage and current in which your PV panel delivers the most power. \$\endgroup\$
    – asgerbj
    Oct 19, 2014 at 10:57
  • \$\begingroup\$ True, but if the MPPT cannot adjust the load (say, by adjusting the charging current to a battery pack) then it may not be able to get the maximum efficiency as it will not be able to hunt around much for the maximum power point as it cannot adjust the output power. Adding a battery pack and charger as an adjustable load allows the MPPT controller to get the highest efficiency. \$\endgroup\$ Oct 20, 2014 at 9:52

2 Answers 2


The point of MPPT (maximum power point tracking) is to continuously adjust the load presented to the solar array for maximum possible power transfer. The output voltage from the solar array is affected by the current - if the current is too high, the voltage will drop and if the current is too low, then the voltage will saturate. This is represented by the I-V characteristic of the solar array, and it varies with temperature and illumination.

Basically, the way this works is the input resistance of the controller is adjusted such that the product of the voltage and current (power) drawn from the panels is the largest. The controller is generally configured in a similar manner to a buck DC to DC converter, and the duty cycle of the switching transistor is adjusted to change the current draw from the array. The voltage and current from the array are monitored by the controller, and the duty cycle (current draw) is adjusted to keep the efficiency high. According to https://en.wikipedia.org/wiki/Maximum_power_point_tracking , there seem to be several different methods of doing this. The simplest method is called 'perturb and observe', and the idea is to adjust the operating point slightly and then check to see if the new operating point is better or worse than the old one.

One possible problem with MPPT is that the output power will vary continuously, therefore it is necessary to have some sort of load-smoothing capability in order to fully utilize the power from the array. Generally this is done with a large battery bank. The batteries will be charged from the array with varying charge current as the power from the array fluctuates, ensuring that the maximum amount of power from the array can be captured.

Partial shading is where some parts of the solar array are in shade and as a result perform differently. MPPT controllers connected to the entire array cannot compensate for this, and the efficiency will suffer. MPPT controllers connected to individual panels can track the best power point on each panel individually and can compensate for partial shading to some degree.



A dc-dc converter is generally used in a PV system as an interface between a PV string and a load, as shown below:

enter image description here

The control parameter d refers to the duty cycle of the converter. Assuming that M(d) is the voltage conversion ratio, the relationship between the input and output voltages (currents) for the dc-dc converter can be written as: $$V_{in} = \frac{V_{out}}{M(d)}, I_{in} = \frac{M(d)}{I_{out}}$$ Divide Vin into Iin, we have: $$ R_{in} = \frac{V_{in}}{I_{in}} = \frac{V_{out}/M(d)}{M(d) \cdot I_{out}} = \frac{1}{M(d)} \cdot \frac{V_{out}}{I_{out}} = \frac{R_{out}}{M(d)}$$ In the PV system, we have $$R_{pv} = \frac{R_{load}}{M(d)}$$ where Rpv and Rload refer to the equivalent resistance for PV and load.

Then, the operating condition resulted by a PV string connected with a dc-dc converter is shown as below:

enter image description here

As shown in this figure, when you change d, the operating point will be changed even if Rload is constant. The aforementioned part is how the MPPT works with duty cycle.

Q2: Not ture. Please refer to the Q1.

Q3: Normally, there are two groups of peaple. One group prefers to used indirect control. For example, their MPPT methods give a desired voltage. Then, this desired voltage is compared with the current sensed voltage. The difference is, then, sent to a PI controller. Finally, the Pi gives a PWM to control. For the other group, they use the direct control. Their MPPT just give a value of d to generate a PWM.

Both of them can change duty cycle d but the different ways.

Q4: The second figure is the I-V curve for partial shading condition (PSC). It is caused by the SOLAR IRRADIANCE MISMATCH between the PV modules if these PV modules are connected in series.

It is hard to say which method is the most effective. But the most popular one refers to “0.8Voc” Model method.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.