An improved perturbation and observation maximum power point tracking algorithm for PV panels