Particle swarm optimization (PSO) is a population-based stochastic search technique for solving optimization problems over continuous space, which has been proven to be efficient and effective in wide applications in scientific and engineering domains. However, the universality of current PSO variants, i.e., their ability to achieve good performance on a variety of different fitness landscapes, is still unsatisfying. For many practical problems, where the fitness landscapes are usually unknown, employing a trial-and-error scheme to search for the most suitable PSO variant is computationally expensive. Therefore, it is necessary to develop a more adaptive and robust PSO version to provide users a black-box tool for various application problems. In this paper, we propose a self-adaptive learning based PSO (SLPSO) to make up the above demerits. SLPSO simultaneously adopts four PSO based search strategies. A probability model is used to describe the probability of a strategy being used to update a particle. The model is self-adaptively improved according to the strategies’ ability of generating better quality solutions in the past generations. In order to evaluate the performance of SLPSO, we compare it with eight state-of-the-art PSO variants on 26 numerical optimization problems with different characteristics such as uni-modality, multi-modality, rotation, ill-condition, mis-scale and noise. The experimental results clearly verify the advantages of SLPSO. Moreover, a practical engineering problem, the economic load dispatch problem of power systems (ELD), is used to further evaluate SLPSO. Compared with the previous effective ELD evolutionary algorithms, SLPSO can update the best solution records.