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 basically works by attempting to present a solar panel with the ideal "resistance".
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.
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.