Fpga-based implementation of an adaptive p&o mppt controller for pv applications