Solar Controller
The solar controller controls the flow of electricity from the solar panels
to the storage battery bank. The solar controller has two separate functions: to manage the storage battery bank charging process, and to control the output of the solar panels to get the most energy from them.
Solar controllers are available in a wide range of capabilities.
The very simplest solar controller monitors the charge in the storage battery bank and stop charging when it is fully charged.
A more complex solar controller also disconnects the load circuit when the charge is too low, and there is likelihood of damaging the storage battery bank.
A more complex solar controller will also perform a three-stage charging process that maximizes the life of the storage battery bank and minimizes battery electrolyte loss due to gassing

Maximum-power-point Tracking
The most sophisticated solar controllers manage the electrical output from the solar panels to maximize their efficiency. Electrical power is a combination of both voltage and amperage, so high power results from both high voltage and high amperage. As the load on a solar panel increases the amperage it provides increases and the voltage decrease. At one particular load condition the combination of amperage and voltage is at a maximum, and so the power from the panel is at its maximum. This load condition is called the maximum power point. The maximum power point of a solar panel varies depending on sunlight conditions at the time.
The load conditions of the maximum power point of a solar panel at any given moment is unlikely to match the varying load of the storage battery bank as it goes through different levels of charge, and other electrical loads such as an inverter. A sophisticated solar controller can transform the amperage and voltage coming from the solar panel to match the load requirements and keep the solar panel operating at its maximum power point. The solar controllers do this by repeatedly making small adjustments to the load that it places on the solar panel to see if the power output increases or decreases.
This class of solar controller is a called a maximum-power-point tracking (MPPT) solar controller. A MPPT controller can increase the
output from a solar panel by 20%.