A-Modified-Binary-PSO-to-solve-the-Thermal-Unit-Commitment-Problem

This repository contains the results of my Master thesis as published in here: https://ethesys.lis.nsysu.edu.tw/ETD-db/ETD-search/view_etd?URN=etd-0713118-191039

The thesis file can be found here: https://drive.google.com/open?id=1g-V09C45TIsVyHdf6WtMIl_hjd0GJdHg

This project was written in the following language: MATLAB

This project contains the folllowing files:

## Scripts :

  • Swarm_Generator.m: Generates a swarm of binary particles of dimensions N x T where N is the number of units in the power system and T is the study horizon (e.g. 24 hours). This script is useful for any swarm-based metaheuristic that aims to tackle the classic Thermal Unit Scheduling problem.

  • Swarm Optimizer.m: Implements a Binary Particle Swarm Optimization (BPSO) algorithm to solve the Thermal Unit Commitment Problem. Eight modified activations functions based on the popular sigmoid and tanh functions are considered. This optimizer performs better than Dynamic Programming, both in running time and total cost, when considering the IEEE 10-unit benchmark system.

The Dynamic Programming solution used for comparison can be found here:

https://www.mathworks.com/matlabcentral/fileexchange/32073-unit-commitment-by-dynamic-programming-method

## Helper Functions:

  • AFLC.m: Returns a sorted array in a descending fashion according to AFLC criteria.

  • ED_fmincon.m: Finds the minimum of the constrained non-linear optimization objective (fmincon)

  • F_LIM_ED.m: Enhanced Lambda Iteration (ELI) Method to solve the Economic Dispatch problem (EDP)

  • F_LIM_ED_RR.m : Same as F_LIM_ED.m but considers the ramping rate constraints in the TUCP problem.

  • LIM_ED.m : Lambda Iteration Method to solve the Economic Dispatch problem (EDP)

  • LIM_ED_RR.m Same as F_LIM_ED.m but considers the ramping rate constraints in the TUCP problem.

  • Recomm_swp.m: Recommit units to satisfy System Power Demand at time t

  • SU_COST.m: Computes the start up and shut down costs (to expand) of the UC schedule

  • check_MUT_MDT.m: Checks if the current schedule satisfies the MUT/MDT constraints are satisfied in the UC problem

  • check_SR_PD.m: Checks if the current schedule satisfies the SR constraint is satisfied in the UC problem

  • constraint_repair.m : Schedule repair function based on the proposed pivot heuristic algorithm

  • count_intervals.m :Returns a vector of ON/OFF intervals & their respective duration.

  • mod_repair_MDT_MUT.m: Modified straightforward repair for pivot heuristic

  • sf_repair_MDT_MUT.m: Straightforward repair of MDT/MUT constraint in the Thermal UC problem

  • until_zero : Returns the first or last occurring zero closest to the pivot.This function is part of the modified repair strategy by pivot heuristic