Introduction

Increasing power demand, which has led to an increase in fuel costs over the years, has resulted in reducing operating costs of power systems becoming an important issue. One of the choices is to use the generator efficiently and economically. Operational economics, involving power generation and delivery, that minimizes power production costs, is called Economic Dispatch (ED). The objective of finding solutions to the ED problem is to control the committed generator’s output to minimize total costs while the power demand and other constraints are satisfied.

Traditionally, the fuel cost function of a generator is represented by a single quadratic function. To solve the problem of ED, there are two approaches including numerical and meta-heuristics methods. Recently, many numerical conventional optimization methods have been tested, such as lambda iteration [1], gradient method [2], linear programming [3], interior point [4], lagrangian relaxation [5] and dynamic programming techniques [6]. These methods impose no restrictions on the nature of the cost curves and therefore can solve ED problems with inherently nonlinear and discontinuous costs. However, numerical methods can result in problems with complicated and large power systems where problems of dimensionality or local optimality might exist. Previously, meta-heuristics methods have been used to solve the economic dispatch and power electrical system problem, including the genetic algorithm (GA) [7,8,9], particle swarm optimization (PSO) [10,11,12], ant colony optimization (ACO) [13, 14], bee colony optimization (BCO) [15,16,17], the cuckoo search algorithm (CSA) [18], the shuffled frog leaping algorithm (SFLA) [19], the firefly algorithm (FA) [20] and simulated annealing (SA) [21, 22]. These methods often provide fast and reasonable solutions, including global optimization with short time searching. Among them, the SA method is a probabilistic technique for approximating the global optimum of a given function. Specifically, it approximates global optimization in a large search space and has fast convergence. However, the conventional SA algorithm can have a limitation in reaching a global optimum solution in a reasonable computational time when the initial solution is far away from the region where an optimum solution is required. In the SA algorithm, the initial population is randomly generated which is the reason for computation and convergence taking a long time as the population is initiated too early. This problem has been solved by estimating an initializing value and defining the search scope for the random method. Lambda iteration has been used as an initial value instead of the traditional random value, the scope of the search has sometimes been defined with the SA algorithm properties then used to find the best solution. However, this method can have the problem of narrowing and inappropriately restricting the search scope. Determining the proper scope of the search is difficult, so repeated testing can waste time. This problem can be solved by using a “multiple searches” method. Multiple searches help to find the region where the most appropriate global optimum solution exists.

Problem Formulation

The economic dispatch problem, with prohibited operating zones, is approached by allocating system load demand commitments to groups of generators over the scheduled time period so that they have minimal generation costs while satisfying physical constraints and operating requirements.

Objective Function

The objective function, corresponding to the production cost, can be approximated to be a quadratic function of the active power outputs from the generating units. Symbolically, it is represented as in (1):

$$Minimize{:} F_{T} = \sum\limits_{i = 1}^{N} {F_{i} (P_{i} )}$$
(1)

Usually, the fuel cost of a thermal unit is expressed as a quadratic polynomial of its output (Pi) as below (2):

$$F_{i} (P_{i} ) = a_{i} P_{i}^{2} + b_{i} P_{i} + c_{i}$$
(2)

where ai, bi and ci are the cost coefficients of the ith generator; Pi is the power output of the ith generator.

Constraints

The objective functions are subject to the following constraints:

  1. (a)

    Power balance constraint

The load capacity is equal to the sum of the total amount of electricity demand with a total power loss in the transmission system is as below (3):

$$\sum\limits_{i = 1}^{N} {(P_{i} )} = P_{D} + P_{loss}$$
(3)

where PD is the load demand and Ploss is the total transmission network losses, which is a function of the unit power outputs that can be represented using B coefficients as below (4):

$$P_{loss} = \sum\limits_{i = 1}^{N} {} \sum\limits_{j = 1}^{N} {P_{i} B_{ij} P_{j} + } \sum\limits_{j = 1}^{N} {B_{0i} P_{i} + } B_{00}$$
(4)
  1. (b)

    Generator rating constraint

The output power of each generating unit has to lie between a lower and an upper bound. This is represented by a pair of inequality constraints as follow (5):

$$P_{i}^{\text{min} } \le P_{i} \le P_{i}^{\text{max} }$$
(5)

where, \(P_{i}^{\text{min} }\) and \(P_{i}^{\text{max} }\) are respectively the lower and upper bounds for power outputs of the ith generating unit.

  1. (c)

    Ramp-rate limits and prohibited operating zone

The limit is defined as the rate at which the output power generated can’t change beyond a certain rate due to mechanical inertia in the thermal units. A decision in the current time period will affect a decision at a later time period due to variation in power demands from the present to a future time. There exist two possible cases in the actual operation of the available units. Increasing generation condition in Eq. (6) and decreasing generation condition in Eq. (7):

$$P_{i}^{0} - P_{i} \le UR_{i}$$
(6)
$$P_{i}^{0} - P_{i} \ge DR_{i}$$
(7)

In the equation, \(P_{i}^{0}\) is the generation power that the generation unit generated in the previous step, DR and UR show the fall and rise of the border values, therefore, the capacity of the generators within these the ranges is as below (8):

$$\text{max} \left( {P_{i}^{\text{min} } ,P_{i}^{0} - DR_{i} } \right) \le Pi \le \text{min} \left( {P_{i}^{\text{max} } ,P_{i}^{0} + UR_{i} } \right)$$
(8)

Performance of thermal power generators is restricted in the prohibited zone as the steam valve does not work properly at this time. Therefore, during this period, generators should not be operated. Zones for the operation of the generator are shown in Fig. 1.

Fig. 1
figure 1

Prohibited operating zone function cost curve

Hence, dynamic economic dispatch problems with prohibited operating zones and with operational border values of the generation units, are solved as follows (9):

$$P_{i} = \left\{ {\begin{array}{*{20}l} {P_{i}^{\text{min} } \le P_{i} \le P_{i,1}^{l} } \hfill \\ {P_{i,j - 1}^{u} \le P_{i} \le P_{i,j}^{l} ,\quad j = 2,3 \ldots n_{i} } \hfill \\ {P_{i,n}^{u} \le P_{i} \le P_{i,1}^{\text{max} } } \hfill \\ \end{array} } \right.$$
(9)

Hybrid of Lambda Iteration (λ) and Simulated Annealing (HLSA)

HLSA is an initial estimate using the principle of equal cost (incremental cost: λ), defined boundaries around λ values, and performing each procedure according to the SA method. The SA, lambda iteration (λ) and HLSA for solving the ED problem are described below.

Simulated Annealing (SA) [23]

The Simulated Annealing (SA) algorithm is a nature-inspired method which is adapted from the process of gradual cooling of metal in nature. In the metallurgical annealing process, a solid is melted at high temperature until all molecules can move about freely and then a cooling process is performed until thermal mobility is lost. SA is a probabilistic technique for approximating the global optimum of a given function. Specifically, it is a meta-heuristic approach to approximating global optimization in a large search space. It is often used when the search space is discrete. For problems where finding an approximate global optimum is more important than finding a precise local optimum in a fixed amount of time, simulated annealing may be the preferable method. In general, Simulated Annealing algorithms work as follows. At each time step, the algorithm randomly selects a solution close to the current one, measures its quality, and then decides to move to that solution or to stay with the current solution based on either one of two probabilities.

The basic step of the SA algorithm is presented with the following pseudo-code.

figure c

Additional mechanisms for the SA method include controlled parameters for the SA algorithm including: starting Temperature, Final Temperature, Temperature Decrement and Iterations at each Temperature, which are described as follows.

  1. (a)

    Starting Temperature

The starting temperature must be set to a reasonable value so that it is very likely to be accepted as the solution in the first step of the application of the algorithm. However, if the default temperature is too high, the SA step will not occur because of slow convergence, and generally, the optimization process will cause random. In contrast, if the initial temperature is very low, it is possible to get more local solutions. There are no specific methods for finding the right starting temperature that deals with the whole range of problems. It is advisable to increase the system temperature quickly to the point at which the worst solution percentage is acceptable and then thereafter to gradually decrease the temperature.

  1. (b)

    Final Temperature

During the application of the SA algorithm, it is common to let the temperature fall to zero degrees. However, if the temperature decrease becomes an exponent, the SA step can work longer. Finally, the stopping threshold may be a low temperature or a suitable spot when the system is “frozen” at the current temperature.

  1. (c)

    Temperature Decrement

Once the initial and final temperatures are set, it is necessary to find a way to change from the initial to the final temperature. How the way in which the temperature is reduced is very important for the success of the algorithm. It is suggested that the following way is used to reduce the temperature (10):

$$T(t) = \frac{d}{\log (t)}$$
(10)

where d is a positive constant. The alternative is the geometric relationship of Eq. (11):

$$T(t) = a.t$$
(11)

where parameter a, is a constant near 1. In effect, its typical values range between 0.8 and 0.99.

  1. (d)

    Iterations at Each Temperature

Optimizing the number of repetitions of the algorithm is very important. Using a certain number of iterations for each temperature is the proper solution. Indicate the actuation of a single repetition for each temperature, while the lowering of the temperature should occur at a very slow pace, which can be demonstrated by Eq. (12):

$$T(t) = \frac{t}{(1 + \beta .t)}$$
(12)

where, β takes a very low value.

Lambda Iteration (λ)

At the solution, multiple generators have the same marginal (or incremental) cost. This common marginal cost is equal to λ. If the cost difference between generators is different, by reducing capacity at higher cost margins and increasing capacity at lower cost margins, overall costs can be reduced. If demand changes, changes in total costs can be estimated from λ, and the solved value of λ can be used to evaluate Pi. Equation (2) is the fuel cost of power generation of each generator. This equation is used to calculate the incremental cost (λ) using the differential equation shown in Eq. (13):

$$\frac{{d(F_{i} (p_{i} ))}}{{d(p_{i} )}} = \lambda$$
(13)

Total fuel cost is lowest when λ values are equal for each generator. The value of λ for the initial configuration of the system can be calculated by using the following (14) and the electric power of each generator can be calculated from Eq. (15):

$$\lambda = \frac{{P_{D} + \sum\nolimits_{i = 1}^{N} {\frac{{b_{i} }}{{2a_{i} }}} }}{{\sum\nolimits_{i = 1}^{N} {\frac{1}{{2a_{i} }}} }}$$
(14)
$$p_{i} = \frac{{\lambda - b_{i} }}{{2a_{i} }}$$
(15)

Hybrid of Lambda Iteration (λ) and Simulated Annealing (HLSA) for Solving the ED Problem

A hybrid of lambda iteration and simulated annealing is used to solve the economic dispatch problem by using the principle of equal cost (incremental cost: λ), an estimate of the initial value to narrow search scope and to find the most appropriate solution as SA properties around the estimates. The HLSA algorithm to solve the economic dispatch is described as follows:

Step 1: Specify the parameters of hybrid lambda iteration and simulated annealing including the initial temperature, the final temperature, cool shed, maximum number of iterations and the maximum number of successes.

Step 2: Calculate the value of λ for the initial configuration of the system using the SA algorithm. In this process, the initial λ is determined from Eq. (14).

Step 3: Find the lower and upper limits of the ith generating unit using the follow (16)–(17):

$$P_{i}^{\text{max} } = \frac{{\lambda - b_{i} }}{{c_{i} }}{ + }\left( {\frac{{\lambda - b_{i} }}{{c_{i} }} \cdot rank} \right)$$
(16)
$$P_{i}^{\text{max} } = \frac{{\lambda - b_{i} }}{{c_{i} }} - \left( {\frac{{\lambda - b_{i} }}{{c_{i} }} \cdot rank} \right)$$
(17)

bi and ci are the cost coefficients of the ith generator and rank is the multiplier to determine the extent, the solution is more than 0 and less than 1.

Step 4: Random to the initial population (Si) of the power output of the ith generation from step 3 can be expressed as follows (18):

$$P_{i} = P_{i}^{\text{min} } + ((P_{i}^{\text{max} } - P_{i}^{\text{min} } )\cdot rand(1))$$
(18)

The value must satisfy the system requirements by considering the system conditions. Capacity constraints of the generator must be within the minimum and maximum ranges of each generator.

Step 5: Create a random close proximity (Sj) and calculate the cost of production to compare with the value obtained from Step 4.

Step 6: If the new answer is better than the original answer, then the new answer will be chosen. But if the new answer is inferior to the original answer, calculate the deviation of cost ΔS = Sj− Si and generate random numbers. Then accept the new solution (Sj) instead of the original solution (Si).

Step 7: Proceed to temperature adjustment in the next state from Eq. (19):

$$T_{K} = r*T_{K - 1}$$
(19)

Step 8: Repeat until all conditions have been met.

Multiple Hybrid of Lambda Iteration (λ) and Simulated Annealing (MHLSA)

Multiple searches help to find the regions with the most appropriate global solution. MHLSA uses multiple search methods of HLSA at the same time. The concept of MHLSA arises from the solution of the HLSA method in Sect. 3.3. In Step 3, configuring rank to get the right value is difficult, so repeated testing can waste time. Convergence speeds can be improved by implementing multiple searches. The MHLSA algorithm uses several initial solutions to maximize the probability of reaching the area with the most optimal solution. The procedure of the MHLSA algorithm is shown in Fig. 2, which consists of several independent HLSA algorithms. Additional mechanisms are as follows.

Fig. 2
figure 2

Proposed HLIBCO algorithm

Specify Parameter

The parameters used in the SA algorithm are initial temperature, final temperature, cool shed, maximum number of tries, and maximum number of successes within. The parameter values used in SA, HLSA, and MHLSA to test the operation of the simulation are presented in Table 1.

Table 1 The parameters of SA, HLSA, and MHLSA

Calculate the Value of Lambda (λ)

Lambda iteration is based on the principle of equal cost (incremental cost: λ), and an estimate of the initial value to narrow the search scope and finding the most appropriate solution as a swarm of bees around the estimates. Total fuel cost is lowest when λ is equal among the generators. The value of λ for the initial configuration of the system is calculated from Eq. (14).

Multiple Adaptive Search Scope

In this method, \(rank\) is a multiplier in scoping the answer. It is used to determine the lower and upper power limits of the ith generating unit by defining the scope of the value of λ, which comes from Eqs. (16) and (17). The size of \(rank\) effects search answers. Determining the proper \(rank\) size of the search is difficult, so repeated testing can waste time. Adjusting the size of \(rank\) to multiple values at the same time provides a scalable range for the search. The adaptive search scope is a process for finding nearby locations. This process depends on the size of the \(rank\). \(Rank\) is the variance, which is the key factor in the search. Hence the right size \(rank\) must be chosen. In general, low \(rank\) sizes can be used to reduce computational time due to narrower search spans. On the other hand, a \(rank\) size with a high value provides a more accurate solution but makes the calculation time longer. Nevertheless, the searched result may not reach the global optimum. In this method, the \(rank\) size can be adjusted based on the number iterations of the SA algorithm as defined in the MHLSA algorithm. As a result, the problem can be solved more accurately. Therefore, the adaptive search scope improves the calculation speed and accuracy of the solution. Multiple \(rank\) values in this article are defined as follows: \(rank\) #1 = 0.1, \(rank\) #2 = 0.15, \(rank\) #3 = 0.2 and \(rank\) #4 = 0.25.

Multiple Search

In large-scale solutions, it may be necessary to use several computers at the same time to calculate the result. These solutions involve parallel searches. However, the multiple searches implemented in this paper are performed using a single personal computer [24]. The basic idea is to reduce the time spent searching results by improving the accuracy and relevance of each search, as well as the ability to manage the results. Multiple searches use a multitasking algorithm that combines algorithm features and additional search capabilities. The answer may come from one or more algorithms. Multiple searches are a way of taking advantage of the power of many algorithm, that may not be as eloquent as the traditional algorithm, and help to find the promising region where the global optimum solution exists. This concept is used to improve the efficiency of the HLSA algorithm after initial estimation by the lambda iteration and to define the range of multiple searches scope, as described in Sect. 4.3. The search algorithm for better algorithms is used in the SA algorithm step as described in Sect. 3.1. The sequence of execution starts from SA#1 to SA#4 for execution for finding better solutions.

Evaluate the Fitness and Select the Best Value

The fitness function is the specificity of the objective function that is used to summarize similar design approaches to achieve the goal that is set. After each round of testing or simulation, the idea was to bring the worst design solution out and rebuild it from the best design solution. The results of each solution have to be good enough to indicate an approximation of the overall specification, and this is built on using the fitness function to test or simulate the results of the solution. If the algorithm is poorly designed, it will come to an abnormal solution or will have difficulty converging. Moreover, the result must be computed quickly. The whole process involves “evaluating the fitness and selecting the best value”.

Check Stopping Criterion

In general, there are several possible conditions to stop a search. Here, stop search is used if any of the following three conditions are met: firstly, as defined by the limit time. That means that if the calculation time is more than or equal to the time limit, the search process will stop. Secondly, defined by the maximum allowable iterations—if the iteration number is greater than or equal to the maximum allowed number of iterations, the search process will stop. Finally, when the appropriate values meet the objective function within the constraints and conditions of the system.

Case Study

The proposed MHLISA algorithm has been applied to solving the economic dispatch problem with prohibited operating zones in two different test cases for verifying its feasibility. These are a three unit system and a six unit system. Each optimization method was implemented in the MATLAB program which was run on a 2.30 GHz Intel (R) Core (TM) i5 with 8 GB of RAM.

The First Case Study

A three unit system is considered and the system load demand was set as 300 MW. The system data are shown in Tables 2 and 3. The system loss coefficient matrix was as follows [25]:

$$B_{{ij}} = \left[ {\begin{array}{*{20}l} {{\text{0}}{\text{.000136}}} \hfill & {{\text{0}}{\text{.0000175}}} \hfill & {{\text{0}}{\text{.000184}}} \hfill \\ {{\text{0}}{\text{.0000175}}} \hfill & {{\text{0}}{\text{.000154}}} \hfill & {{\text{0}}{\text{.000283}}} \hfill \\ {{\text{0}}{\text{.000184}}} \hfill & {{\text{0}}{\text{.000283}}} \hfill & {{\text{0}}{\text{.00161}}} \hfill \\ \end{array} } \right]$$
Table 2 Generator data in case 1
Table 3 Ram rate limits and prohibited zone in case 1

The results of the proposed method are divided into two parts: convergence speed and convergence with BCO, SA and HLSA methods and the best solution compared to EP, PSO and HPSO methods.

The Second Case Study

The test system for this case consisted of six thermal units. The constraints included the generation limits, fuel cost coefficients, ramp-rate limits and prohibited operating zones of these thermal units, 26 buses and 46 transmission lines. The transmission loss was calculated using a B matrix as given by [26]. The results of the proposed method were divided into two parts: convergence speed and convergence with BCO, SA and HLSA methods and the best solution compared to PSO, HPSO and MSSA methods.

The characteristics of the six thermal units are given in Tables 4 and 5 [26].

$$B_{{ij}} = 10^{{ - 1}} \left[ {\begin{array}{*{20}l} {{\text{0}}{\text{.017}}} \hfill & {{\text{0}}{\text{.012}}} \hfill & {{\text{0}}{\text{.007}}} \hfill & { - {\text{0}}{\text{.001}}} \hfill & { - {\text{0}}{\text{.005}}} \hfill & { - {\text{0}}{\text{.002}}} \hfill \\ {{\text{0}}{\text{.012}}} \hfill & {{\text{0}}{\text{.014}}} \hfill & {{\text{0}}{\text{.009}}} \hfill & {{\text{0}}{\text{.001}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill & { - {\text{0}}{\text{.001}}} \hfill \\ {{\text{0}}{\text{.007}}} \hfill & {{\text{0}}{\text{.009}}} \hfill & {{\text{0}}{\text{.031}}} \hfill & {0.0} \hfill & { - {\text{0}}{\text{.010}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill \\ { - {\text{0}}{\text{.001}}} \hfill & {{\text{0}}{\text{.001}}} \hfill & {{\text{0}}{\text{.0}}} \hfill & {{\text{0}}{\text{.24}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill & { - {\text{0}}{\text{.008}}} \hfill \\ { - {\text{0}}{\text{.005}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill & { - {\text{0}}{\text{.010}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill & {{\text{0}}{\text{.129}}} \hfill & { - {\text{0}}{\text{.002}}} \hfill \\ { - {\text{0}}{\text{.002}}} \hfill & { - {\text{0}}{\text{.001}}} \hfill & { - {\text{0}}{\text{.006}}} \hfill & { - {\text{0}}{\text{.008}}} \hfill & { - {\text{0}}{\text{.002}}} \hfill & {0.15} \hfill \\ \end{array} } \right]$$
$$B_{{0i}} = 10^{{ - 2}} \times \left[ { - 0.3908\quad - 0.1297\quad 0.7047\quad 0.0591\quad 0.2161\quad - 0.6635} \right]$$
$$B_{00} = 0.056$$
Table 4 Generator data in case 2
Table 5 Ram rate limits and prohibited zone in case 2

Simulation and Results

The convergence of speed is used as a basis for comparison. In this test, the parameters of SA, HLSA and MHLSA are shown in Table 1 and the following parameters are used in the BCO method:

  • Population size (n) = 50

  • Number of selected sites (m) = 20

  • Number of best sites (e) = 5

  • Number of bees around best sites (nep) = 50

  • Number of bees around other sites (nsp) = 50

Case 1, simulation results for the selected values ising BCO, SA, HLSA, and the MHLSA methods. Case study 1, 200 trail runs were conducted, and the best solutions that satisfy the system constraints are shown in Table 6.

Table 6 Results of MHLSA, HLSA, SA and BCO for three units

The total cost of the MHLSA method was less than that of the BCO, HLSA and SA methods and the loss in the transmission line was also lower. Computational and convergence times are shown in Fig. 3. The MHLSA method used fewer iterations to find the solution, and the convergence was faster than the BCO, SA and HLSA methods and the results were comparable to EP [27], PSO [27] and HPSO [27] (Table 7).

Fig. 3
figure 3

Solution and convergence time of MHLSA, HLSA, SA, and BCO in case 1

Table 7 Three generators test system: comparison of results

Case 2, This case study utilized a benchmark test system having 26 buses, 46 transmission lines, and 6 thermal generating units. The total system load was 1263 MW. 200 trail runs were conducted, and the best solutions are shown in Table 8 that satisfies the system constraints, including the power balance and the generator limits constraints, ramp rate limits, prohibited operating zones, and transmission losses. Table 8 presents a comparison between the results obtained by the BCO, SA, HLSA, and the MHLSA algorithms.

Table 8 Results of MHLSA, HLSA, SA and BCO for six generating unit

Computational and convergence times were as shown in Fig. 4, which clearly demonstrates the speed of the convergence approach, where the MHLSA method used through iteration to find fewer answers. Converge was faster than with the BCO, SA and HLSA methods.

Fig. 4
figure 4

Solution and convergence time of MHLSA, HLSA, SA and BCO in case 2

A comparison of results using the proposed methods with those from PSO [27], HPSO [27] and MSSA [28] are shown in Table 9, which the proposed method gets a better than the other ways.

Table 9 Six generators test system: comparison of results

Conclusion

In this work, new mechanisms are implemented for solving different ED problems with ramp rate limits and prohibited operating zones. Many sophisticated techniques, such as initial estimation using the lambda iteration, adaptive search scopes, multiple searches, and simulated annealing have been added to the MHLSA, in order to enhance the search potential. The MHLSA algorithm has been proposed to solve the ED problem by initial estimation using the lambda iteration method, using the SA method to find the best solution, and using multiple searches as a mechanism to increase efficiency in finding appropriate solutions. The MHLSA optimization mechanisms out-performed a number of other algorithms. The strength of the algorithm was demonstrated in two case studies involving different ED problems with ramp rate limits and prohibited operating zones. The convergence quality of MHLSA algorithm in these two case studies proved the robustness of the algorithm. Study results from the studies involving either three or six generating units confirmed that the MHLSA was superior to the HLSA, SA and BCO methods in terms of providing a high-quality solution, stable convergence characteristics, and good computation efficiency. The results clearly showed that the proposed algorithm yielded better results than the comparison method. Electric system operators can use this algorithm for optimization of their networks.