# How does an MPPT charge controller control the input voltage?

I understand how buck/boost converters change the output voltage, but how is an MPPT converter able to control the input voltage/current while keeping the same output voltage? I understand the theory of MPPT, but not the implementation, and every search for "how MPPT works" leads to how the theory works.

• An MPPT controller does not keep the same output voltage. It allows the output voltage to vary in order to control the amount of power being transferred -- typically using it to charge a battery at a variable rate. Jun 23, 2019 at 1:16
• @DaveTweed Really? My understanding of MPPT controllers on the implementation level is way off then. Jun 23, 2019 at 1:28
• They try to maximize power, hence the name. So the voltage doesn't have to stay the same. Jun 23, 2019 at 6:08
• @DaveTweed "An MPPT controller does not keep the same output voltage" unless the output voltage is dictated by some other factor, such as a connected battery (in short time windows, the voltage is constant and same as the battery voltage) or the "other" MPPT connected parallel. Nov 29, 2019 at 16:45
• @DaveTweed What you say is not wrong. However, even then, the output voltage of MPPT controller is obviously dictated by the battery voltage, so "the output current is varied accordingly". As a result, neither the output voltage nor the output current is regulated by MPPT. MPPT only releases correct amount of energy by its output and the "load" determines the voltage and the current with this energy while MPPT is actually doing M.P.P.T. (working at the Maximum Power Point of the source). If MPPT regulates something in the output, it means that it doesn't track MPP at this moment. Dec 1, 2019 at 10:42

An MPPT basically works by attempting to present a solar panel with the ideal "resistance".

In the following image, the red line shows the current-vs-voltage curve of a typical solar panel. The basic idea is that for zero current (open-circuit), they provide maximum output voltage, and as you increase the current output (i.e. you go from infinite resistance to zero resistance) the voltage of the solar panel decreases. Somewhere in this range, there is an ideal amount of "resistance" that when connected to the solar panel, will extract the most power. Or, in other words, there is an ideal amount of current to "pull" from the solar panel that will provide the maximum amount of power.

The way MPPTs do this is by having some kind of DC-DC converter, such as a buck-boost converter, in which they carefully control the output current of the solar panel (i.e. the input current of the MPPT) such that the maximum power is obtained. Essentially, they behave as if they were variable resistors, trying to find the best spot to consume the most amount of power. Of course, this inevitably makes the output voltage variable, as this input current adjustment will come from the DC-DC converter's duty cycle.

Additionally, some MPPT algorithms are smarter than others, since sometimes there are multiple power maximums: EDIT:

As requested, images were taken from here and here. Unfortunately these pages are not very informative.

• So the initial assumption of "constant output voltage" was wrong. That's what I wasn't understanding. Jun 23, 2019 at 2:06
• Yep. If you want to have an MPPT with a constant output voltage, you'd need to have an intermediate energy storage (such as a capacitor bank) after the first DC/DC converter, and then place another DC/DC converter after your energy storage. But it would kind of beat the point of the MPPT if the second converter doesn't output enough power.
– Chi
Jun 23, 2019 at 2:10
• Can you please provide links or citations for the graphics that you copied into your answer? Thanks. Jun 23, 2019 at 12:55
• Good explanation, the last 2 graphs work well Aug 1, 2022 at 18:56

Realistically, when you use an buck-converting MPPT solar charge controller, and assuming it is in MPPT mode, the controller varies the battery charge current to maintain the solar panel input voltage at the maximum power point for the solar panel.

Or, more or less equivalently, you could say it varies the PWM duty cycle of the buck converter to maximize charge current (which incidentally keeps the solar panel at its maximum power voltage).

I know I am answering an old question that already has an answer. I don't think the accepted answer is very accurate. The output voltage is, essentially, set by the battery. It is a mistake to think it is varied by the controller. The main job of the controller is to find and track the unique value of duty cycle that results in maximum charge current going into the battery.

As a practical matter, the maximum power voltage point of a solar panel does not change much with changes in lighting or changes in temperature. So the solar panel voltage will be relatively constant. So the input and output voltages remain relatively constant (change slowly over time) and the current is the main thing that changes.