Solar panel I-V characteristics are highly non-linear; this results in a Power-Voltage plot featuring a maximum at a given Voltage Vmpp across the panel.
As you pointed out in your question, it happens that the IV curve changes over time according to the light irradiance and temperature, and Vmpp changes, too. That's the reason why methods to track Vmpp are sought: squeezing as much power as possible from the source, i.e., the panel.
Between your panel and the storage element (battery, supercapacitor) there is an harvesting circuit, based on a (switched) DC-DC converter topology (e.g., boost); MPPT techniques are implemented inside this circuit to keep the input voltage of the harvester (i.e., the output voltage of the panel) as close as possible to Vmpp.
Therefore, when you target MPPT, the focus is on optimal power transfer from the source to the harvester (which -in turn- will actually introduce some loss itself, yep!). As RoyC puts it, optimal battery charge is another story.
Maybe the schematic below will help: the photovoltaic panel is modelled as a current source in parallel with a diode (representing the PN junction); the goal of MPPT is to keep the voltage V as close as possible to Vmpp.
simulate this circuit – Schematic created using CircuitLab
For clarity, I have drawn one possible implementation of a Boost-based solar harvester.
The IC I put in the schematic is a Schmitt trigger comparator whose task is that of keeping the voltage at its non-inverting terminal as close as possible to Vref. One can set Vref = Vmpp in order to achieve our goal.
simulate this circuit
Now: how can we generate Vref = Vmpp?
Even in this case there are different possibilities: for example, an additional timing cicuitry can be designed to disconnect periodically the solar panel load, so that a peak holder can 'capture' the panel open-circuit voltage Voc. It can be seen that Vmpp is usually an approximately constant fraction of Voc, irrespectively of the the environmental conditions. By knowing the ratio Vmpp/Voc, a voltage divider can be used to obtain Vmpp starting from the stored value of Voc.
Considerations about the schematic above:
- this is just an example of implementation: it should be noted that an external control logic is not required to switch the MOSFET on and off; instead, the comparator output accomplishes this task, which is very useful in applications where power-draining microcontrollers cannot be afforded;
- the low-power comparator draws its supply from the harvester input terminal; since this has some fluctuation (mostly depending on the inductor value and on the comparator's time delay) an RC filter can be used to smooth it.
Other possible harvesting solutions include the use of microcontrollers implementing some sort of 'Perturbe & Observe' algorithm: as shown in another answer, in this case the operating conditions are changed a little bit while monitoring the response of the input power.
Good question. You are right that there is a contradiction there. How can you do maximum power point tracking if the load is not able to accept the maximum power? For a grid tie inverter, it is no problem because the grid can accept all the power that the solar array can produce.
But what about a battery? What if the battery is charged already, or if the maximum power would result in too high of a charge current? The way this contradiction is resolved is that the MPPT charge controller for an off-grid system will do MPPT only when the battery can accept the maximum power. At other times, it will abandon the MPPT protocol and function as a normal charge controller.
In a typical off-grid system, the battery will be large enough to accept the solar array's maximum power output during bulk-charging, but once the charge controller transitions to constant voltage, the maximum power will not be used.
Best Answer
This is a meaningless question. Let's assume for a second the answer is "no". That would mean that the battery would discharge due to the load. That would mean the battery wouldn't be fully charged anymore. Which would mean the answer wouldn't be "no" anymore.
So you're asking what happens in a hypothetical split second in which the battery is fully charged.
In any event, most actual charge controllers just connect the battery and the load directly to each other whenever they want to supply power to the load. They then manage the connection between the solar panel and the battery+load to supply as much power to the load and battery as they possibly can, backing off if the battery voltage gets too high.
They don't care (and often don't know) how much of that power is going to the battery and how much is going to the load. There job is just to: