This repository contains the implementation of an Improved Whale Optimization Algorithm (IWOA) developed for my Master's thesis research on solar photovoltaic (PV) model parameter estimation. The research focuses on enhancing the standard Whale Optimization Algorithm through six novel modifications that improve the balance between exploration and exploitation.
The extraction of parameters for solar photovoltaic models is a complex nonlinear, multivariable optimization problem. This research addresses this challenge by improving the Whale Optimization Algorithm.
- Sinusoidal variation of the control parameter 'a' for better exploration
- Oscillatory behavior patterns to enhance convergence
- Logarithmic decrease strategies for exploitation phase
- Exponential decay mechanisms for fine-tuning
- Inverse relationship functions for parameter adaptation
- Quadratic decrease patterns for balanced search
Improved-Whale-Optimization-Algorithm/
├── src/
│ ├── algorithms/ # Optimization algorithms
│ │ ├── IWOA.py # Improved Whale Optimization Algorithm
│ │ ├── WOA.py # Standard Whale Optimization Algorithm
│ │ ├── Diff Evo.py # Differential Evolution Algorithm
│ │ └── Least Squares.py # Least Squares optimization
│ ├── models/ # PV modeling components
│ │ ├── IV_Model.py # Current-Voltage model implementation
│ │ └── IV-Curve.py # IV curve plotting and analysis
│ ├── experiments/ # Experimental scripts and results
│ │ ├── Laboratory.py # Main experimental framework
│ │ ├── Test.py # Testing procedures
│ │ └── Function_A*.py # Function A modification experiments
│ └── utils/ # Utility functions
│ ├── FunctionUtil.py # Core utility functions
│ └── root_multiple.py # Base algorithm framework
├── docs/
│ └── papers/ # Research papers and publications
├── results/
│ ├── data/ # Experimental data and statistics
│ └── figures/ # Generated plots and visualizations
├── tests/ # Unit tests
├── requirements.txt # Python dependencies
└── README.md # This file
- Clone the repository:
git clone <repository-url>
cd Improved-Whale-Optimization-Algorithm- Install required dependencies:
pip install -r requirements.txtfrom src.algorithms.IWOA import BaoWOA
# Initialize algorithm parameters
woa_params = {
"epoch": 100,
"pop_size": 50
}
root_params = {
"print_train": True
}
# Create and run the algorithm
algorithm = BaoWOA(root_params, woa_params)
best_position, loss_history = algorithm._train__()from src.models.IV_Model import *
# Load PV module parameters and run estimation
# See IV_Model.py for detailed implementationThe algorithm was validated through:
- 10 benchmark functions for performance evaluation
- Statistical analysis of convergence behavior
- Comparative studies with standard WOA and other optimization algorithms
- Improved convergence rate compared to standard WOA
- Better balance between exploration and exploitation phases
- Enhanced solution quality for multimodal optimization problems
numpy>=1.21.0- Numerical computationsmatplotlib>=3.5.0- Plotting and visualizationpandas>=1.3.0- Data manipulationpvlib>=0.9.0- PV modeling libraryscipy>=1.7.0- Scientific computing
The complete research findings are available in the docs/papers/ directory:
Improved_Parameter_Estimation_of_TD_PV_Models_FINAL.pdf- Complete thesisImproved_Parameter_Estimation_of_TD_PV_Models__Article_.pdf- Research article
- Photovoltaics
- Parameter Estimation
- Triple Diode
- Whale Optimization
- Metaheuristic Algorithms
- Solar Energy
This repository represents completed research work. For questions or collaborations, please refer to the contact information in the research papers.
This research code is provided for academic and research purposes. Please cite appropriately if used in your research.
If you use this work in your research, please cite the corresponding papers available in the docs/papers/ directory.