# Stochastic Fractal Search MATLAB Code to Optimize Power System

5/5 - (1 vote)

In this comprehensive article, we will delve into the world of Stochastic Fractal Search MATLAB Code (SFS) and its remarkable application in power system optimization, particularly in the context of load flow analysis. This algorithmic approach promises to unlock efficiency by minimizing power losses and improving voltage profiles in electrical grids.

## Introduction

In an era where energy efficiency and sustainability are paramount, optimizing power systems is of utmost importance. Stochastic Fractal Search, inspired by the intricate patterns of fractals found in nature, presents a unique approach to tackling complex optimization challenges.

## Understanding Stochastic Fractal Search: An Insight into SFS Algorithm

### The Origin and Inspiration

Stochastic Fractal Search (SFS) is a powerful metaheuristic optimization algorithm that draws inspiration from the natural phenomenon of fractals. Fractals are self-similar patterns that are repeated at different scales. This property allows fractals to explore a large and complex search space efficiently.

SFS was developed by Mirjalili in 2015 as a way to solve complex optimization problems that are difficult for traditional methods to handle. SFS is a stochastic algorithm, meaning that it uses randomness to guide its search. This makes it well-suited for solving problems with multiple local optima, as it can avoid getting trapped in local optima and find better solutions.

### Algorithm Overview

The SFS algorithm works by generating a population of particles and then iteratively moving the particles towards the optimal solution. Each particle represents a possible solution to the optimization problem. The particles are moved around the search space using a combination of two mechanisms:

• Diffusion: This mechanism allows the particles to explore the search space randomly.
• Updating: This mechanism allows the particles to be attracted to better solutions.

The diffusion mechanism is inspired by the way that fractals spread out over space. The updating mechanism is inspired by the way that particles in a swarm move toward the best food source.

## The Power System Optimization Challenge: A Glimpse into Load Flow Analysis

### The Necessity of Optimization

Optimization is crucial for maintaining the stability and efficiency of power systems. Power systems, complex and dynamic, require constant monitoring and adjustment to maintain reliable operation. Automation through optimization algorithms plays a crucial role in ensuring the utmost efficiency and reliability of power systems.

Moreover, optimization serves various purposes, including:

1. Cost Reduction: Optimization minimizes the expenses associated with electricity generation and distribution.
2. Emissions Reduction: Optimization techniques mitigate greenhouse gas emissions and other pollutants originating from power systems.
• Integrating renewable energy: Optimization can be used to integrate renewable energy sources, such as solar and wind power, into the power grid in a reliable and efficient way.

### Objective Function: Minimizing Power Losses and Enhancing Voltage Profile

Recently, one of the most common objective functions is to minimize power losses and enhance the voltage profile. Power losses occur as electricity flows through the transmission and distribution system, and they can be significant, especially in large and complex power systems. Reducing power losses can save money and improve the efficiency of the power grid.

The voltage profile of a power system is the distribution of voltage levels throughout the system. It is important to maintain voltage levels within acceptable limits, as too high or too low voltages can damage equipment and cause blackouts. Optimization algorithms can be used to enhance the voltage profile by adjusting the settings of generators and other equipment. ### The Backward Forward Sweep Load Flow Method

The backward forward sweep load flow method is a numerical algorithm used to solve power flow problems. It is a popular choice for load flow analysis because it is efficient and accurate.

The backward forward sweep method works by iteratively solving a set of linear equations. The algorithm starts by making an initial guess for the voltage and current at each node in the power system. It then calculates the power flow through each transmission line. Next, the algorithm updates the voltage and current at each node based on the calculated power flow. This process is repeated until the algorithm converges on a solution.

The backward forward sweep load flow method is a powerful tool that can be used to model and analyze a wide range of power system problems. It is an essential tool for power system optimization, as it allows engineers to evaluate the impact of different optimization strategies on the performance of the power system.

## Stochastic Fractal Search in Action: Exploiting and Exploring the Search Space

### Step 1: Diffusion Process (Exploitation)

The first step in the SFS algorithm involves the diffusion process. Here, we focus on how SFS exploits the search space to improve solutions.

The diffusion process in SFS is a mechanism for exploiting the search space around a promising solution. It works by generating new solutions that are similar to the current solution, but with some random variation. This allows SFS to converge to the optimal solution more quickly.

One way to implement the diffusion process is to use a fractal search. Fractals are self-similar patterns that can be found in nature, such as snowflakes and coastlines. Fractal search works by generating new solutions within a fractal region around the current solution. This allows SFS to explore the search space more thoroughly and find better solutions.

Another way to implement the diffusion process is to use a Gaussian walk. Gaussian walks are random walks that follow a Gaussian distribution. This means that the new solutions generated by a Gaussian walk are likely to be close to the current solution, but there is a small chance that they will be much further away. This allows SFS to explore the search space more broadly and find better solutions.

### Step 2: Update Process (Exploration)

The second step, the update process, is all about exploration. We discuss how SFS balances exploration and exploitation to find optimal solutions.

The update process in SFS is a mechanism for exploring the search space beyond the current solution. It works by generating new solutions that are different from the current solution, but still within the search space. SFS avoids getting trapped in local optima and finds better solutions.

One way to implement the update process is to use a random walk. Random walks are random movements through the search space. This allows SFS to explore the search space more broadly and find better solutions.

Another way to implement the update process is to use a mutation operator. Mutation operators are random changes to solutions. This allows SFS to explore the search space in a different direction and find better solutions.

### Balancing Act: Exploration vs. Exploitation

Finding the right balance between exploration and exploitation is crucial for the success of SFS. We explore strategies to achieve this equilibrium.

Finding the right balance between exploration and exploitation is crucial for the success of SFS. Too much exploration and SFS will not converge to the optimal solution quickly enough. Excessive exploitation can lead SFS to get trapped in a local optimum.

There are a number of ways to achieve the right balance between exploration and exploitation in SFS. One way is to use a parameter called the exploration rate. The exploration rate controls the frequency of using the update process. A higher exploration rate results in more exploration and less exploitation.

To achieve the right balance between exploration and exploitation, one can opt for a hybrid approach. This approach combines both the diffusion process and the update process. SFS utilizes the diffusion process to exploit the search space around a promising solution, while concurrently employing the update process to explore the search space beyond the current solution.

### Configuring SFS Parameters

We provide insights into configuring SFS parameters to adapt the algorithm to specific optimization tasks.

Certainly, here’s a basic explanation of the usage of each variable in the provided SFS MATLAB code:

1. `S.Maximum_Diffusion = 2;`
• Usage: Sets the maximum diffusion value, controlling how far a candidate solution can move away from the current solution in each iteration.
2. `S.Walk = 1;`
• Usage: Determines the step size or “walk” length for candidate solutions, influencing the exploration and exploitation balance.
3. `S.Function_Name = 'DG1_SFS';`
• Usage: Specifies the name of the objective or fitness function that SFS will optimize. Users replace this with the actual function they want to optimize.
4. `S.Ndim = 1;`
• Usage: Defines the number of dimensions in the search space. In this case, it’s set to 1 for a one-dimensional optimization problem.
5. `S.Lband = 2;`
• Usage: Sets the lower bound for each dimension of the search space, specifying the minimum value allowed for candidate solutions.
6. `S.Uband = 32;`
• Usage: Specifies the upper bound for each dimension of the search space, defining the maximum value allowed for candidate solutions.
7. `S.plot = 0;`
• Usage: Controls whether or not the algorithm will generate plots during the optimization process. A value of 0 indicates no plots, while 1 may indicate the generation of plots for visualization.
8. `S.ShowResult = 0;`
• Usage: Determines whether to display the optimization results after the algorithm finishes. A value of 0 means no display, while 1 may indicate displaying the results.
9. `StartOptimiser = tic;`
• Usage: Starts a timer to measure the execution time of the optimization process. It records the time at which the optimization begins.

These variables collectively configure the behavior of the Stochastic Fractal Search algorithm and define the optimization problem’s characteristics. Users can adjust these parameters to suit their specific optimization tasks and problem domains.

## The Role of MATLAB in SFS Optimization: Implementing SFS in MATLAB

### Integrating the Objective Function

In the journey towards optimizing power systems, the objective function plays a pivotal role. It serves as the compass that guides the Stochastic Fractal Search (SFS) algorithm toward the most efficient solutions. We delve deep into the process of integrating this critical component into the SFS optimization framework. Understanding the nuances of your objective function and its relationship with the optimization process is key to achieving the desired results. We emphasize the importance of tailoring the objective function to meet specific optimization goals, such as minimizing power losses and enhancing voltage profiles.

```clc;close all; clear all; global PLr1 global QLr1 global DG_Location1 global DG_Location2 global DG_Sizrr1 global DG_Sizrr2 global voltr1 voltr1 = ones(1,33); disp('Choose Load Model by prssing key') S.imdl = input('Constant put 0, Industrial put 1, Residential 2, Commercial 3: ') S.P_Factor = input('How much power factor you want to select, For 85% put 0.85, for 75% put 0.75 etc: '); S.Maximum_Generation=input('Maximum iterations: '); S.Start_Point=input('Maximum population: '); %%%% DG1 disp('*************** DG1_SFS function results *************'); S.Maximum_Diffusion = 2; S.Walk = 1; % *Important S.Function_Name = 'DG1_SFS'; S.Ndim = 1; S.Lband =2;% ones(1, S.Ndim)*(-100); S.Uband =32;% ones(1, S.Ndim)*(100); S.plot = 0; %If you want to plot the problem in 3D, set it to 1. Your dimension problem %If its greater than 2, else an error will appear. S.ShowResult = 0; StartOptimiser = tic; [pbest, fbest, F] = Stochastic_Fractal_Search(S); EndOptimiser = toc(StartOptimiser); fprintf('The time of finding solution is: %f\n', EndOptimiser); sprintf('Power-Loss= %d KW, Power-Loss= %d KVAr' ,PLr1,QLr1') sprintf('DG Location= %d , DG Power = %d KVA' ,DG_Location1,DG_Sizrr1') figure();plot(abs(voltr1)); title('Voltage of DG1 optimized by SFS'); figure();plot(sort(F,'descend')); title('Power loss of DG1 optimized by SFS'); sprintf('The best solution is: %d ' , pbest); sprintf('The value of the best fitness function is: %d',fbest);```

%%%% DG2
disp(‘*************** DG2_SFS function results *************’);
S.Maximum_Diffusion = 2;
S.Walk = 1; % *Important
S.Function_Name = ‘DG2_SFS’;
S.Ndim = 2;
S.Lband = ones(1, S.Ndim)*(2);
S.Uband = ones(1, S.Ndim)*(32);
S.plot = 0;
%If you want to plot the problem in 3D, set it to 1. Your dimension problem
S.ShowResult = 0;
StartOptimiser = tic;
[pbest, fbest, F] = Stochastic_Fractal_Search(S);
EndOptimiser = toc(StartOptimiser);
fprintf(‘The time of finding solution of DG2: %f\n’, EndOptimiser);
sprintf(‘Power-Loss of DG2= %d KW, Power-Loss of DG2= %d KVAr’ ,PLr1,QLr1′)
sprintf(‘DG1 Location= %d , DG1 Power = %d KVA’ ,DG_Location1,DG_Sizrr1′)
sprintf(‘DG2 Location= %d , DG2 Power = %d KVA’ ,DG_Location2,DG_Sizrr2′)
figure();plot(abs(voltr1)); title(‘Voltage of DG2 optimized by SFS’);
figure();plot(sort(F,’descend’)); title(‘Power loss of DG2 optimized by SFS’);
sprintf(‘The best solution of DG2: %d ‘ , pbest);
sprintf(‘The value of the best fitness function of DG2: %d’,fbest);

Bringing the power of the SFS algorithm to your MATLAB environment is the next step in our optimization journey. We provide a step-by-step guide on how to seamlessly integrate the SFS algorithm into your programming workspace. By doing so, you gain access to a powerful tool capable of exploring and exploiting the search space effectively. Harnessing the SFS algorithm within MATLAB empowers you to fine-tune its parameters and adapt it to your unique optimization tasks.

### Visualizing Optimization Results

Visualization is the bridge that connects raw data to actionable insights. In the context of SFS-based power system optimization, visualization facilitates understanding and interpreting optimization outcomes. We explore various techniques and strategies for visualizing SFS results. Whether it’s plotting convergence curves, mapping voltage profiles, or showcasing the reduction in power losses, effective visualization enhances your ability to make informed decisions and communicate results with clarity.

## Case Study: Optimizing Power System Efficiency

### Step by Step Load Flow Optimization

In this hands-on case study, we lead you through the practical application of SFS in optimizing power system efficiency. We break down the optimization process into manageable steps, ensuring a clear understanding of each stage. By the end of this section, you will have comprehensively overviewed how to effectively utilize SFS to address real-world power system challenges.

### Defining the Objective Function

We delve into the nitty-gritty details of defining the objective function tailored specifically for power loss minimization and voltage profile enhancement. This step is crucial in aligning the optimization process with the desired outcomes, setting the stage for SFS to work its magic.

### Setting Bounds for Variables

In power system optimization, realism and feasibility are paramount. Here, we explore the process of setting bounds for variables within the optimization problem. By defining the allowable ranges for variables, you ensure that the solutions generated by SFS are practical and align with the physical constraints of the power system.

### Running SFS for Power Loss Minimization

With all the preparatory work in place, it’s time to set the SFS algorithm in motion. We provide you with step-by-step instructions for running SFS to minimize power losses in a real-world power system scenario. Witness firsthand how SFS explores the search space, evaluates potential solutions, and refines its approach to achieve the optimization objective.

### Analyzing Voltage Profile Improvements

The culmination of the optimization process is the realization of voltage profile improvements. Explore how SFS, through its intelligent search strategy, can lead to significant enhancements in voltage profiles. These improvements not only contribute to grid stability but also have far-reaching effects on the reliability and performance of the entire electrical grid.

## Benefits and Applications of SFS in Power Systems: Why SFS Matters

We highlight the broader benefits and applications of SFS in the realm of power systems, from enhancing stability to integrating renewable energy sources.

### Conclusion:

As we conclude our exploration of Stochastic Fractal Search in power system optimization, we reflect on its potential to shape the future of efficient, sustainable, and reliable electrical grids.

The Stochastic Fractal Search (SFS) algorithm emerges as a potent force for change. It excels at optimizing complex objective functions, making it the ideal choice for reducing losses in distribution systems, as demonstrated in our project.

By effectively minimizing power losses while enhancing voltage profiles, SFS contributes significantly to energy conservation, cost reduction, and environmental sustainability. It bolsters grid stability and reliability, ensuring uninterrupted power supply. Moreover, SFS adapts seamlessly to integrate renewable energy sources into power systems, advancing the transition to cleaner energy.

In conclusion, SFS is a game-changer for power system optimization, offering a path toward a more efficient and sustainable energy future.

### References: Further Reading and Resources

This comprehensive article aims to provide a thorough understanding of how the Stochastic Fractal Search algorithm can be harnessed to optimize power systems, ultimately contributing to a more sustainable and efficient energy future.