Improved particle swarm optimization (PSO) algorithm

This tool can be used for every type of optimization problem (minimization / maximization / fitting, single / multi objective).
2.1K Downloads
Updated 25 Oct 2022
Author
Vistit the engimix.com platform to run online or download my engineering packages, including:
  • Mathematical optimizer (e.g. multi-method and multi-objective optimizer based on the PSO (Particle Swarm Optimization) algorithm, GA (Gentic Algorithm) and GD (Gradient Descent) method);
  • Electrical models (e.g. PMSM (Permanent Manget Synchronous Motor) control and modelling);
  • Thermal models (e.g. heat pumpts, etc.);
  • Etc.
You will find user-guides, documentation, demos and source code for each package.
Test cases
Two test cases are shown:
  • TestCase01_SingleObjFunOpt: Experimental data fitting.
  • TestCase02_MultiObjFunOpt
How to run
  • Open the folder associated to one of the two test cases;
  • Run "Fitting.m" or "Minimization.m" according to the test case you have choosen
How to modify it:
  • Open the folder associated to one of the two test cases;
  • Modify the script to calculate the objective function to be optimized in the "ObjFun_fun.m" file mantaining the input and output data formats;
  • Modify the parameters in the main file ("Fitting.m" or "Minimization.m" according to the best case you have choosen)
  • Run the main file ("Fitting.m" or "Minimization.m" according to the best case you have choosen)
Other usages:
  • Optimization of dynamic models on Simulink (look at my other projects on the File Exchange portal

Cite As

Federico Giai Pron (2026). Improved particle swarm optimization (PSO) algorithm (https://github.com/FGP310592/ParticleSwarmOptimization/releases/tag/4.1.12), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2020b
Compatible with any release
Platform Compatibility
Windows macOS Linux

TestCase01_SingleObjFunOpt

TestCase02_MultiObjFunOpt

Version Published Release Notes
4.1.12

See release notes for this release on GitHub: https://github.com/FGP310592/ParticleSwarmOptimization/releases/tag/4.1.12

4.1.10

See release notes for this release on GitHub: https://github.com/FGP310592/ParticleSwarmOptimization/releases/tag/4.1.10

3.1.0.0

See release notes for this release on GitHub: https://github.com/FGP310592/ParticleSwarmOptimization/releases/tag/3.1

1.1.2

- Changed the name of the file

1.1.1

- PSO parameters moved from "Optimization_PSO_v0x.m" to "Fitting.m", for simplifying the access.
- Partial results displayed for long optimization processes.

1.0.1

Comments

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.