# How does applying an MPPT algorithm on a buck converter result in maximum current into the battery?

When an MPPT solar charge controller —in my case, based on buck topology— is charging a battery in constant current (CC) mode, the MPPT algorithm is applied to find the PV panel voltage (or input voltage to the buck converter) where maximum power can be extracted from the PV panel to charge the battery with maximum current; let this voltage point be denoted as VMP.

It finds the maximum power point (MPP) of the PV panel by adjusting the duty cycle (D) according to the MPPT algorithm (varying the impedance seen by the PV panel hence its operating point) to find the PV panel voltage (or input voltage to the buck converter), VMP, at which maximum power can be delivered.

How does this process result in charging the battery with maximum (within limits) current?

Maximum power transfer occurs when the source impedance equals the load impedance.

The MPPT controller uses one of several algorithms or methods to match the buck input impedance to the panel's output impedance for a given set of conditions. Another way of looking at it is it adjusts the input current to maximize the input power, V*I.

Since the battery voltage is relatively constant over a short period of time (presumably between MPPT calculations) maximizing the power transfer (V*I) maximizes the current into the battery. (Within limits, of course.)

• rather than impedance, I found it informative to visualize an MPPT (dunno if it's useful for calculations) as holding a stable input voltage which is the MPP voltage, and trying to keep the input capacitor voltage at that voltage, by transferring energy to the output when it is too high, and not when it is too low. Of course, then the control algorithm has to adjust that voltage level until it finds the correct MPP voltage. Commented Feb 22, 2023 at 17:48
• @user253751 That's also an interesting way to look at it, thanks. Commented Feb 22, 2023 at 18:31
• @datenheim you have a fast control loop that tries to hold a certain input voltage, enclosed by a slow control loop that tries to optimize which voltage is best to hold in order to transfer the most power. Everyone says impedance, but I'm not sure why they say that, because a switching converter controller deals in currents and voltages, not impedances. Commented Feb 22, 2023 at 18:51
• @JohnD You are saying that maximizing input power from solar panel maximizes current into the battery since battery voltage is relatively constant over a short period of time. Can you elaborate on this? Commented Feb 22, 2023 at 20:40
• @xrosaber Power input is voltage in times current in. Power out is voltage out times current out. Power out=Power in minus losses. So by maximizing power in, you also maximize power out. If voltage out (battery voltage) is relatively constant, the only variable left that can increase power out is battery current. Commented Feb 22, 2023 at 20:49

For a given charge history and temperature, the battery voltage is almost constant, regardless of current, so maximum power and maximum charging current are the the same condition for practical purposes. Measuring current is simpler.

The controlling parameter for a buck converter is the switch duty cycle. The MPPT determines the optimum duty by experimenting. Increase the duty cycle a small amount. If the current increases, increase the duty cycle again. If the current decreases decrease the duty cycle. Keep making small adjustments using the rule that the adjustment is in the direction of the last adjustment if the current increased, but in the opposite direction if the current decreased. The duty cycle will wind up oscillating around the optimum.

The output voltage of the DC/DC converter isn't regulated, and behaves roughly like a current source, with the battery determining the voltage.

When the solar panel sits at its MPP on its I/V curve, and the DC/DC converter converts the maximised solar panel power Pmax = Vsolar·Isolar into power going to the battery, then Ibat = Pmax/Vbat (assuming 100% efficiency). Vbat is only changing slowly and can be assumed constant between algorithm iterations. Optimised power, divided by a constant, yields optimised current.

The goal of the MPPT algorithm is not to have the solar panel sit at its MPP; the goal is to maximise current into the battery. Maximum current happens to be delivered when the solar panel sits at its MPP, and the DC/DC converter can deliver maximum current at the battery's voltage.

An MPPT tries to find the point on a solar panel's I/V characteristic where the DC/DC converter's output current is maximised by varying the input impedance of the DC/DC converter and measuring the current delivered into the battery.

This current (not power) is what is actually measured to determine if the solar panel sits at its MPP. It is the current into the battery that is maximised this way; that is the whole point of the algorithm, and also the way it works.

• Firstly, everything I'm saying is in the context of the MPPT solar charge controller (onwards abbreviated to MPPT for convenience) charging a battery in constant current mode —where the objective is to maximize charging current, or in other words, provide as much power as the battery can accept. Commented Feb 22, 2023 at 20:39
• "An MPPT tries to find the point on a solar panel's I/V characteristic where the DC/DC converter's output current is maximised by varying the input impedance of a DC/DC converter and measuring the current delivered into the battery." Doesn't the MPPT try to find the point on a solar panel's I/V characteristic where the DC/DC converter input power is maximum (given the battery can accept the power)? I say this because it employs an MPPT algorithm which seeks to maximize power output from solar panel, not maximum DC/DC converter output current. Commented Feb 22, 2023 at 20:39
• "This current (not power) is what is actually measured to determine if the solar panel sits at its MPP." Again, in an MPPT algorithm (example P&O), power is measured, not output current, to find the solar panel's MPP. There is no explicit instruction in the MPPT algorithm (nor defined in its purpose) to seek to maximize output current. But the consequence of seeking the MPP results in maximum output current. Its still not clear to me why. Commented Feb 22, 2023 at 20:39