Next Article in Journal
Aligning Software Engineering Teaching Strategies and Practices with Industrial Needs
Previous Article in Journal
Multimodal Biometrics Recognition Using a Deep Convolutional Neural Network with Transfer Learning in Surveillance Videos
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Solving the Optimal Reactive Power Dispatch Problem through a Python-DIgSILENT Interface

by
Martin M. Sánchez-Mora
1,
David Lionel Bernal-Romero
2,
Oscar Danilo Montoya
2,3,*,
Walter M. Villa-Acevedo
1 and
Jesús M. López-Lezama
1,*
1
Departamento de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de Antioquia, Calle 70 No. 52-21, Medellín 050010, Colombia
2
Grupo de Compatibilidad e Interferencia Electromágnetica, Facultad de Ingeniería, Universidad Distrital Francisco José de Caldas, Bogotá 110231, Colombia
3
Laboratorio Inteligente de Energía, Facultad de Ingeniería, Universidad Tecnológica de Bolívar, Cartagena 131001, Colombia
*
Authors to whom correspondence should be addressed.
Computation 2022, 10(8), 128; https://doi.org/10.3390/computation10080128
Submission received: 16 June 2022 / Revised: 20 July 2022 / Accepted: 22 July 2022 / Published: 25 July 2022

Abstract

:
The Optimal Reactive Power Dispatch (ORPD) problem consists of finding the optimal settings of reactive power resources within a network, usually with the aim of minimizing active power losses. The ORPD is a nonlinear and nonconvex optimization problem that involves both discrete and continuous variables; the former include transformer tap positions and settings of reactor banks, while the latter include voltage magnitude settings in generation buses. In this paper, the ORPD problem is modeled as a mixed integer nonlinear programming problem and solved through two different metaheuristic techniques, namely the Mean Variance Mapping Optimization and the genetic algorithm. As a novelty, the solution of the ORPD problem is implemented through a Python-DIgSILENT interface that combines the strengths of both software. Several tests were performed on the IEEE 6-, 14-, and 39-bus test systems evidencing the applicability of the proposed approach. The results were contrasted with those previously reported in the specialized literature, matching, and in some cases improving, the reported solutions with lower computational times.

1. Introduction

Electric power systems play a key role in modern societies, since they allow us to transport energy from generation centers to loads. This is carried out through a complex infrastructure that involves centrally-dispatched generation, substations and high-voltage transmission lines. The ORPD is part of the daily operation of power systems; it consists of finding the right settings of transformer taps, reactor banks and voltage set points in generation buses, generally with the aim of minimizing active power losses [1]. The ORPD is usually solved after the unit commitment, which is the process of programming the active power generation as a function of their biding prices and limits [2,3]. The first attempts to solve the ORPD problem resorted to classical optimization techniques such as linear programming [4], quadratic programming [5] and interior point methods [6]. Although these techniques are effective for solving convex optimization problems, they do not perform well when solving Mixed Integer Nonlinear Programming (MINLP) problems. These type of problems are better handled by heuristic and metaheuristic techniques as shown in [7,8,9,10] when it is not possible to transform these into mixed-integer models.
Owing to its nature, several metaheuristic techniques have been applied to solve the ORPD problem. The main advantage of these approaches is that they are able to deal with nonconvex optimization problems involving discrete and continuous variables [11,12]. Furthermore, they do not require differentiability of the objective function or constraints, overcoming the disadvantages of classic optimization algorithms. Metaheuristic algorithms are usually inspired by natural or social phenomena. Some of these methodologies, applied to the solution of the ORPD problem, are described below.
In [13], the authors propose a gravitational search algorithm (GSA) applied to the ORPD problem. In this technique, the solution candidates are represented by masses that interact according to the law of gravity and Newton’s laws. The proposed GSA is tested on the IEEE 30-bus, 57-bus and 118-bus test systems considering minimization of active power losses, improvement of voltage profile and enhancement of voltage stability. An opposition-based GSA is developed in [14] to further improve the optimization performance of the basic GSA.
In [15], the ORPD is approached using a harmony search algorithm with the objective of minimizing power losses and improving voltage profile. This method is based on a phenomenon inspired by the improvisation process of musicians. The study is implemented on the IEEE 30-bus and 57-bus test systems, and the results obtained are compared with other techniques that include GA and Particle Swarm Optimization (PSO).
In [16,17], the authors use a particle swarm optimization (PSO) method to solve the ORPD problem considering voltage security assessment and voltage stability, respectively. The PSO is a metaheuristic inspired by the behavior of bird flocks and fish schools. Several variants of this approach have also been applied to solve the ORPD problem. In [18], three PSO variants are explored to solve the reactive power and voltage control problem. The first two are known as global and local neighborhood variants of PSO, while the third one is the coordinated aggregation PSO algorithm. In [19], the turbulent and turbulent crazy variants of PSO are also implemented. The authors perform several tests on the IEEE 57-bus and IEEE 118-bus test systems, comparing their results with other metaheuristic techniques. It was found that the performance of PSO is considerably improved when the turbulent and turbulent crazy variants are implemented, outperforming classic metaheuristic approaches. In [20], the authors proposed a hybrid fuzzy-PSO algorithm that features improved exploration and exploitation processes to approach the ORPD in real-size power systems. Test systems of up to 354 nodes were used to validate the results. This algorithm showed a better performance than the classical PSO approach.
In [21], a stochastic fractal search method is used to solve the multi-objective ORPD problem considering the minimization of power losses along with voltage deviation and a voltage stability index. In [22], the authors implemented the mean-variance mapping optimization (MVMO) algorithm to solve the ORPD problem. The effectiveness of the proposed algorithm was tested in the IEEE 30-bus test system and compared with other metaheuristic approaches.
A survey of different metaheuristic techniques applied to the ORPD problem is presented in [23]. In this paper, the authors also propose the sine–cosine algorithm to approach the ORPD problem. A validation of the proposed algorithm is carried out with differential evolution (DE) and PSO among other techniques. In [24], the authors propose an optimization algorithm based on the gradient to solve the ORPD, taking into account dispersed distributed generation in distribution networks. In [25], the authors use a hybrid fractional PSO with GSA (FPSOGSA) to solve the ORPD problem. The proposed model is validated with the IEEE 30 and IEEE 57-bus test systems with the minimization of active power transmission line losses and voltage deviation. The authors in [26] propose an entropy evolution technique implemented into FPSOGSA to further improve its performance.
In [27,28,29,30], evolutionary algorithms for addressing ORPD are presented. These algorithms are based on the postulates of biological evolution in which an initial set of individuals (solution candidates) give rise to other individuals with which they must compete in such a way that the fittest (best quality solutions) prevail over time, giving rise to new and better solutions. In [27], an evolutionary algorithm based on quantum computing is presented that seeks to jointly solve the optimal dispatch of both active and reactive power. The authors validate their approach with the IEEE 30 and 118-bus test systems comparing their results with those obtained with simulated annealing (SA) and ant colony optimization. In [28], a DE algorithm is proposed bearing in mind several objectives, including voltage stability enhancement, voltage profile improvement and losses minimization. In [31], the authors implemented a specialized GA in the DIgSILENT programming language (DPL) to solve the ORPD problem. As a main contribution, the proposed approach takes advantage of the modeling capabilities of DIgSILENT [32]. This software includes a detailed modeling of all sorts of power system elements, including generators, reactors, transmission lines and transformers. Furthermore, it counts with its own programming language that can be used to run power flow calculations with low computational time.
Other optimization techniques applied to solve the ORPD include moth–flame optimization [33], the bat optimization algorithm [34], tabu search [35,36] and the slime mold algorithm [37] among others. A detailed description of such techniques is not within the scope of this document; nonetheless, a review of metaheuristic techniques used to solve the ORPD problem can be consulted in [38].
Following the research line adopted by [31], this paper presents a Python-DIgSILENT interface to solve the ORPD problem. The proposed approach integrates the advantages of using a specialized software that allows detailed modeling of network assets and has effective power flow algorithms (DIgSILENT) with a versatile programming language that surpasses the capabilities of DPL (Python). The main contribution of this paper is the integration of this software to solve the ORPD problem in electric power systems. The ORPD problem is well known in electrical engineering for being nonlinear, nonconvex and presenting several sub-optimal solutions. The complexity of the ORPD problem largely surpasses the built-in capabilities and functionalities of the DigSILENT Power Factory software alone. Therefore, an interface with an object-oriented, high-level programming language is implemented. The main advantage of the proposed interface is the fact of counting with several optimization libraries that can be used not only to solve the ORPD problem but other optimization problems in electric power systems. To show the applicability of the proposed approach and for comparative purposes with [31], several tests were carried out with the IEEE 6, IEEE 14 and IEEE 39-bus test system with two metaheuristic techniques developed in Python programming language, namely MVMO and GA.
The rest of the document is organized as follows: Section 2 presents the general mathematical formulation of the ORPD problem in power systems. Section 3 describes the Python-DIgSILENT interface developed in this research work. Section 4 presents the main characteristics of the test systems that feature 6, 14 and 39 buses, respectively. Section 5 presents the tests and results where the Python-DIgSILENT interface is used to solve the ORPD using MVMO and GA in three benchmark IEEE test systems. Finally, the conclusions are discussed in Section 6.

2. Mathematical Modeling of the ORPD Problem

Within the ORPD problem the continuous variables are related to generation of active and reactive power as well as voltage magnitudes. On the other hand, the integer variables are related to transformer tap positions as well as reactive power compensators. The mathematical modeling of the ORPD problem adopted in this research is described in the next subsections [39].

2.1. Objective Function

Several objective functions may be envisaged when approaching the ORPD, such as enhancement of voltage profile, amelioration of voltage stability or minimization of power losses, the last one being the most common. Equation (1) presents the objective function considered in this paper which consists on minimizing the total active power losses for a given operative scenario. In this case, p loss represents the value of the objective function; v m and v k are the magnitudes of voltages at buses m and k with angles θ m and θ k , respectively; Y k m t a is the admittance magnitude associated with buses k and m. This admittance depends on the values of the transformer taps t a , and its angle is given by ϕ k m t a . Finally, N indicates the set of network buses.
min p loss = k N m N Y k m t a v k v m cos θ k θ m ϕ k m t a ,
Note that the admittance matrix is a function of the transformers tap positions. This is due to the fact that such devices change the operational state of the transformer based on the fact that its capacities and inductive effects modify the reactance components of the admittance matrix [40].

2.2. Equality Constraints

The ORPD is subject to active and reactive power balance restrictions at each bus given by Equations (2) and (3), respectively.
p k g p k d = m N Y k m t a v k v m cos θ k θ m ϕ k m t a , k N
q k g q k d + q k c c j q k l r l = m N Y k m t a v k v m sin θ k θ m ϕ k m t a , k N
In this case, p k g and q k g indicate the active and reactive power injections given by the generator located at node k; p k d and q k d indicate the active and reactive power demands at bus k; q k c c j indicates the reactive power injection provided by a capacitor bank located at bus k with the tap position c j ; q k l r l is the reactive power absorption of a reactor located at bus k with a tap position given by r l .

2.3. Inequality Constraints

Equations (4) and (5) represent voltage and reactive power generation limits for all the generators. Constraints given by Equations (6)–(8) enforce limits on the taps of capacitor banks, reactors and power transformers. Finally, Equation (9) limits the voltage magnitudes in all buses.
v i g , min v i g v i g , max , i G
q g , min q k g q k g , max , k N
c j min c j c j max , j C
r l min r l r l max , l L
t a min t a t a max , a T
v k min v k v k max , k N
In this case, v i g is the voltage magnitude of the ith generator; c j is the tap position of capacitor bank j; r l is the tap position of the lth reactor compensator; v i g , max and v i g , min represent the bounds (upper and lower, respectively) related to voltage variables at generation buses; q k g , max and q k g , min represent upper and lower limits of power generation at bus k; c j max and c j min indicate the maximum and minimum bounds of the tap positions at the jth capacitor bank; r l max and r l min indicate the maximum and minimum limits of the tap positions at the lth reactor; t a max and t a min indicate the maximum and minimum limits of the tap position related to the ath transformer; finally, v k max and v k min are the upper and lower voltage limits associated to the kth node.
Note that the injections of reactive power provided by the capacitor banks as well as the absorption of reactive power of the reactors are a function of the tap positions of these devices [22,41]. Furthermore, the tap modeling can be performed as a continuous variable or by means of discrete stages, using the former results in a nonlinear optimization model, while using the later results in a general MINLP problem [42].
The optimization problem indicated by Equations (1)–(9) is nonlinear and nonconvex. This is evident in Equations (2) and (3) which involve trigonometric functions as well as a nonlinear relation of the admittance matrix with the transformer taps [21,43]. Moreover, the presence of integer variables makes the problem even more complex. As evidenced in the literature review, these types of problems are usually solved through metaheuristic techniques instead of classical optimization methods. In this paper we implemented two metaheuristic techniques to approach the ORPD problem through a Python-DIgSILENT interface, namely MVMO and GA.

3. Python-DIgSILENT Interface

This section presents the main characteristics of the Python-DIgSILENT interface to face the ORPD problem through the combination of the Newton–Raphson load flow solution in DIgSILENT [31], and the metaheuristic optimization techniques, i.e., the MVMO and the GA, implemented in the Python programming environment [44].

3.1. DIgSILENT Power Factory Software

DIgSILENT PowerFactory is one of the most popular power system software available in the market. It is widely used by electricity companies for analyzing generation, distribution and transmission and is also used by industrial systems. DIgSILENT covers a full range of functions, from standard features to advanced and highly sophisticated applications, that includes real-time simulation, renewable energy, distributed generation, and performance monitoring for the supervision and testing of electrical systems. DIgSILENT is easy to use, is Windows compatible and integrates flexible and reliable system modeling capabilities along with sophisticated algorithms and a unique database concept [45]. In addition, with its flexibility for scripting and interfaces, it is suited for highly automated and integrated solutions in business applications.
To sum up, DIgSILENT PowerFactory was selected in this research work bearing in mind the following criteria: (1) it counts with its own programming language (DPL) that can be used to compute several load flows with low computational effort, (2) it allows detailed modeling of power system devices that includes transmission lines, transformers, reactors, as well as generators and induction motors, and (3) the integration of power system elements is straightforward for load flow analyses [46].

3.2. Python Programming Language

Python is an open-source, cross-platform programming language whose philosophy emphasizes code readability. It is an object-oriented, high-level programming language that features fewer steps compared to Java and C [47]. Python was initially founded in 1991 by developer Guido Van Rossum. Due to its readability along with dynamic typing and binding, it has rapidly become popular among programmers, and currently it is among the fastest growing languages in the world. One of the advantages of Python programming language is counting with a very active community. Many organizations such as Google, Yahoo and YouTube have adopted Python.
Python has been integrated with other languages used for solving optimization problems, among which are those related to power systems. Python’s versatility, ease of adaptation, integration and robustness have given it a place in the formulation of optimization problems, either as a main language or as a complement. The specialized literature presents diverse examples of the use of tools developed in Python that allow modeling, use of specialized analysis methods and easy integration with external methodologies for solving power system problems [48,49]. In addition, examples of power system problem solving, such as electrical planning [50], weak node detection using statistical methods [51] and optimal reactive power dispatch [52] have been implemented using this programming language.

3.3. Design of the Python-DIgSILENT Interface

The Python-DIgSILENT interface integrates all the features of Python (libraries, readable code, documentation and support community) and allows access from Python to all the functionality that DIgSILENT PowerFactory provides as power system modeling software. The interface integrates Python libraries that focus on optimization, data analytics and machine learning in conjunction with the detailed power system modeling that allows DIgSILENT PowerFactory. An example of the interface is depicted in Figure 1 where power losses of a transmission system are computed.
Figure 2 shows how to perform the same calculation using the standard DPL (DIgSILENT Programming Language) form of programming, which involves an understanding of the features of writing code, necessitates more time in application development and does not have the aforementioned benefits of using a programming language such as Python.
The workflow between DigSILENT and the Python programming language is shown in Figure 3. In this case, the software DigSILENT allows integration with the Python executable via ComPython objects. Using Python, the integration library is loaded, which allows the connection with the DigSILENT program and with the optimization libraries.

3.4. Implementation of Optimization Libraries

The solution of the proposed optimization problem involved the use of open-source Python libraries. In this case, the MVMO [53] and PyMoo [54] libraries were used. These libraries allow the assignment of constraint functions, the objective function, the control variables and the input parameters (initial population, initial control variables, number of mutations and number of iterations). The PyMoo library contains different optimization algorithms. In this paper, the GA was implemented. The use of this library and specifications for different algorithms can be consulted in [55].
The power systems under analysis are modeled in the DIgSILENT Power Factory tool, and by means of this tool, the update of the control variables and the validation by means of load flow of the system constraints are performed. The implementation of the codes, the initial configurations of the variables and the DIgSILENT Power Factory files are available in [56].
As already mentioned, since the ORPD is a combinatorial problem, two metaheuristic approaches were selected for its solution, namely GA and MVMO. These methodologies are briefly described in the next subsections.

3.4.1. Genetic Algorithm

Genetic algorithms are search heuristics inspired by Charles Darwin’s theory of natural evolution. They are designed to mimic the process of natural selection in which the fittest individuals are more likely to transmit their genes to the next generations [57]. There are several variants of GAs; nonetheless, the version of GA available in [58] and illustrated in Figure 4 was implemented.
In the first stage of the algorithm, an initial population of randomly or pseudo-randomly candidate solutions is generated. Every candidate solution is represented as a vector (chromosome) that contains the four optimization variables of the system as indicated in Figure 5.
In this case, the initial population is randomly created taking into account the limits of the optimization variables. Once the initial population is obtained, the quality or fitness of every individual is computed. This corresponds to the power losses given by Equation (1). For this, a power flow is executed for every candidate solution using DIgSILENT and taking as inputs the information provided in their codification.
The next step of the GA is the process of selection. In this step, two subsets of the population are randomly selected, and the fittest individual from each subset is chosen to generate new candidate solutions (offspring). The two selected individuals or candidate solutions are then the parents of new solutions that are obtained through a crossover operation. In this stage, the information of the parents is exchanged at a random position. The last stage of the GA is the mutation in which a randomly selected element of the chromosome is changed. This steps allows the algorithm to escape from locally-optimal solutions.
Within the GA, the size of the population is kept constant; therefore, new solutions or offspring replace the worst solutions of the current population. The process is carried out until a given number of generations is executed.

3.4.2. MVMO

The MVMO is a population-based stochastic technique which performs a search procedure within a normalized range of optimization variables. The MVMO uses the same structure of candidate solutions as illustrated in Figure 6. MVMO uses the solution variables as an adaptive memory to save the n-best solutions that are found, a generic version available in [59]. Like other evolutionary solution algorithms, MVMO adopts an optimal value criterion to select the main solution, i.e., the stored optimal solution, from which the next generation (offspring) solution is created.
The search space of the MVMO for all variables is limited to [0, 1]. So then, the maximum and minimum values of the variables must be normalized in this range. In each iteration, it is not possible that any solution component surpasses the corresponding constraints. To achieve this goal, a unique mapping function ( h function) was developed. This function has as inputs the means and variance of the best candidate solutions that the optimization algorithm has found so far. The shape and mapping curves are fixed in relation to the advancement in the search space, and the MVMO updates the good solution around the best solutions in each iteration [60]. The MVMO algorithm searches around the best local candidate solution with a small possibility of being trapped in a local optimal solution. The feasibility of the solution is examined, and a fitness value is given for this solution. To handle constraints, the static penalization approach was implemented. In this case, all variables are restricted by applying the fitness function due to the fact that control variables are self-limited.
The mapping function is in charge of transforming a given variable x i * varied randomly with unity distribution to another variable x i , which is concentrated around the mean value.
The solutions file is the knowledge base of the methodology that guides the search. Then, the n best solutions or individuals found so far by the MVMO are stored in this file. The fitness value of each solution is also saved. The update is only performed if the new solution candidate turns out to be better than those currently in the file. The viable solutions are at the top of the file. These individuals are sorted in accordance to their fitness value. Non-viable solutions are sorted in accordance to their fitness and are placed at the bottom of the file. Once the file is complete with n feasible individuals, any non-feasible candidate solutions will not have a chance to be saved in the file.
The best solution found so far (the first solution positioned in the file), labeled as xbest, is the parent. In this case, a variable selection is carried out for the generation of the offspring. The MVMO algorithm seeks the mean value stored in the solution file for the best individual only in m selected directions. Therefore, only these dimensions of the offspring are updated, while the remaining D m are assigned the corresponding x b e s t values, D being the number of control variables (problem dimension). Next, the mutation stage is carried out for each selected m dimension.
The MVMO also has a swarm variant with n p particles. In this case, each particle has its own solution file and mapping function. In the swarm MVMO algorithm, every particle carries out m steps to identify an optimal set of independent solutions. Subsequently, the current solutions (particles) exchange information. In some cases, some solution candidates might be very close to each other, meaning that there is information redundancy, and therefore, redundant particles must be discarded. The best local and global solution ( g b e s t ) are defined. In addition, the normalized distance between each solution to the best local and global solutions are calculated.
The ith particle is eliminated from the process if its normalized distance is lower than a certain predefined threshold; if the solution is still considered, its search is focused towards the global best solution. This is performed by assigning the global best solution as the parent. Finally, the MVMO search process stops after a given number of fitness evaluations. The authors in [61,62] present a detailed description of the swarm MVMO algorithm.

4. Description of the Test Systems

The main features and data of the power systems under study are presented in this section for future validation of the proposed approach. These systems have 6, 14 and 39 buses, respectively. The last two systems can be found directly in the DIgSILENT software [31].

4.1. IEEE 6-Bus Test System

Figure 7 depicts the IEEE 6-bus test system used in this study. The system features two power generators located at buses 2 and 6 (slack bus), 2 capacitive banks, 2 power transformers and 5 transmission lines. Table 1 presents the data of these devices which include the nominal parameters of capacitor banks, transformers, generators and loads. In this case, the capacitor banks were represented as synchronous compensators featuring nominal capabilities from 0 to 5 MVAr.
Table 2 presents the transformer data of this system. In this case, the maximum range for a safe operation of these transformers is of ± 10 % . The data presented in Table 2 are needed for the parametrization of transformers in DIgSILENT.
Note that the last column in Table 2 defines the parameter pT to define the percentage of variations of the voltage output in the transformers equipped with taps. It is worth mentioning that the minimum and maximum positions for the transformer’s taps (see columns 4 and 5 in Table 2 are related with the typical settings in DIgSILENT software where the nominal input/output voltages for the transformer are defined for a tap value of 10,000.
Table 3 presents the technical characteristics of the generators present in the IEEE 6-bus test system. In this case, bus 2 is a voltage-controlled node with minimum and maximum voltages of 0.95 p.u. and 1.15 p.u., respectively. On the other hand, bus 6 is assigned as the slack or reference bus. For comparative purposes with [31], its minimum and maximum voltages are assigned as 0.95 p.u. and 1.15 p.u., respectively.

4.2. IEEE 14-Bus Test System

The IEEE 14-bus test system is illustrated in Figure 8. This system includes 5 transformers, 16 transmission lines, 2 generators and 3 capacitor banks. This power system is also made of four areas with voltage levels of 132 kV, 33 kV, 11 kV and 1 kV.
Table 4 presents the electrical parameter of the transmission lines for the IEEE 14-bus test system, while Table 5 shows the transformers information. In this system the slack node is bus 1, and node 2 is a voltage-controlled bus. Furthermore, three synchronous compensators are used as capacitor banks operating in the continuous domain. These elements are located at buses 3, 6 and 8; buses 3 and 6 feature a nominal power of 20 MVAr and bus 8 a nominal power of 30 MVAr.

4.3. IEEE 39-Bus Test System

The IEEE 39-bus test system, illustrated in Figure 9, features four areas with voltage levels of 345 kV, 230 kV, 138 kV and 16.5 kV. This system has 10 generators, 34 transmission lines and 12 transformers.
The electrical parameters of the IEEE 39-bus test system and the characterization of the transformers are indicated in Table 6 and Table 7, respectively.

5. Tests and Results

This section presents the results obtained with the power systems described in Section 4. All tests were run on a personal computer Intel(R) Core(TM) i5-8365U processor 1.60 GHz. RAM 16 Gb, with a Windows 10 operating system, 64 bits, single language. The results of the two implemented methodologies (MVMO and GA) using the Python-DIgSILENT interface described in this paper are compared with those obtained through the CBGA proposed in [31] using DPL. For the sake of simplicity, only Case A1 of the aforementioned paper is considered.

5.1. Results with the IEEE 6-Bus Test System

Table 8 presents the results obtained with the developed Python-DIgSILENT interface considering MVMO and GA. These results are compared with the CBGA implemented in [31].
The results presented in Table 8 show that the reduction in power losses obtained with the three algorithms is identical and corresponds to 21.85% with respect to the original values (base case). Note that the voltage set points of the generators obtained with the three optimization approaches is also the same. In this case the voltage set point for the slack bus is 1.05 p.u., and the maximum voltage magnitude for generation buses is 1.1 p.u. The capacitor banks installed in the test system operate almost at their maximum limits in the three approaches explored. Regarding tap positions of transformers, there are some small differences between the results obtained with proposed interface (both MVMO and GA) and the DIgSILENT DPL (CBGA); nonetheless, such difference does not alter the amount of power loss reduction.
Table 9 presents the line loading. It can be observed that the three optimization methods result in roughly the same loading conditions. In all cases, it is reduced, resulting in lower power losses. Some transmission lines reduce their loading conditions by an important percentage: for example, line 6-3 that passes from an initial condition of 48.23% to 41.26% or line 6-4 that passes from 55.8% to 47.4% .
Figure 10 illustrates the voltage magnitudes for each simulation along with the base case. Note that for all methodologies, there is an important enhancement of the voltage profile: nonetheless, without violating the voltage limits of the system. Note that some buses exhibit important voltage improvements, such as bus 2 that passes from 1.00 p.u. to 1.10 p.u. and bus 3 that originally has 0.84 p.u. and passes to 0.94 p.u.

5.2. Results with the IEEE 14-Bus Test System

Table 10 presents the optimal reactive power outputs in capacitor banks, voltage set points of generators, tap positions of transformers and the total power losses for each methodology compared to the base case. The active power loss reduction is around 21% for the three methodologies. The highest reduction is obtained with the CBGA; nonetheless, the differences with the other two methodologies implemented in the proposed Python-DIgSILENT interface are not high. In this case, the solution obtained with the CBGA is 0.1% and 0.4% better than those achieved with MVMO and GA, respectively. The voltage set point for the slack bus is kept the same for the three methodologies; nonetheless, there are small differences in the voltage set points obtained for the PV bus. The CBGA proposes 1.037 p.u for generator G2 located at bus 02, while MVMO and GA set this voltage at 1.0353 p.u. and 1.03723 p.u., respectively. Regarding tap position, all methodologies coincide in the same results. Note that unlike the IEEE 6-bus test system, where transformer taps were set close to their maximum values, in this test system the results of the taps were different. Such variation in transformer tap positions are principally conditioned by voltage output in power generators. On the other hand, capacitor banks with nominal rates of 20 MVAr for the compensators located at nodes PQBus06 and PQBus08 and 30 MVAr for the capacitor at bus PQB03 present small differences with the three methodologies. Note that this last one is not set near its upper limit as is the case for the other capacitor banks.
The line loading for the base case and for each implemented metaheuristic is presented in Table 11. In this case, results after optimization are roughly the same for the three methodologies. Note that there is a reduction in the power flows in all lines. In particular, Line 1–10 passes from a loading of 12.48% to 6.1%. In addition, lines 9–10 and 9–14 experience high loading, passing from 28.54% and 28.99% to approximately 13.8% and 17.4%, respectively, after optimization.
Figure 11 illustrates the voltage profile of the IEEE 14-bus test system for the base case and every optimization technique. Note that an important improvement on voltage profile is achieved through the optimization techniques without violating the lower and upper voltage bounds of the system.
It can be seen in Figure 11 that some buses show important improvement in their voltage magnitudes, such as buses 10 to 14 which start with a relatively low voltage around 0.85 p.u. and end up with nearly 1.1 p.u. after the optimization process. This change is mainly due to the new positions of transformer taps and the reactive power injected by the capacitor banks.

5.3. Results with the IEEE 39-Bus Test System

The solutions obtained with the IEEE 39-bus test system are reported in Table 12. These include voltage set points of generators and transformer tap positions (this test system does not feature capacitor banks). In this case, the solution achieved by the MVMO matches the one obtained by the CBGA (although with different values of the optimization variables). On the other hand, the reduction obtained by the GA implemented in the Python-DIgSILENT interface is slightly better than that of the CBGA and MVMO. Nonetheless, the three methodologies achieve a reduction of power losses of around 31% with respect to the base case. An important feature of these three solutions is the variability of the optimization variables which evidences the multimodal feature of the ORPD.
The loading percentage of each transmission line obtained with the three optimization methodologies is presented in Table 13. As with the previous test systems, a generalized reduction in loading conditions is experienced in all lines. It is worth mentioning that the power flow relief in transmission lines for this system is higher than that of the previous test systems. In fact, most transmission lines have an important loading reduction with the exception of lines 1–39 and 14–15 that experience a small increment in their power flows.
The voltage profile of the IEEE 39-bus test system is illustrated in Figure 12 for the base case and for the solutions obtained with the implemented methodologies. Note that there is an important improvement in voltage profile; nonetheless, these remain within their bounds. This implies that the proposed tested methodologies ensure the feasibility of the proposed solutions.

5.4. Processing Times

The average processing times required by the proposed Python-DIgSILENT interface and the CBGA implemented in the DPL environment from DIgSILENT [31] are presented in Table 14. As expected, processing times increase with the number of nodes since more decision variables must be considered in the optimization processes. Note that an important improvement in computation time is achieved through the proposed approach, especially when applying the GA.

6. Conclusions

This paper presented a Python-DIgSILENT interface to approach the optimal reactive power dispatch problem in electric power systems. The proposed interface takes advantage of all the functionalities provided by DIgSILENT software for system modeling and power flow calculations along with an object-oriented high-level programming language that allows using optimization libraries. The optimal reactive power dispatch was solved using two metaheuristic approaches, namely MVMO and GA. Several tests were carried out on three benchmark IEEE power systems. Voltage set points of generators, transformer tap positions and reactive power injection in capacitor banks were used as optimization variables.
The numerical results reported power loss reductions with respect to the base case of up to 21.85%, 21.1% and 31.88% for the IEEE-6, 14 and 39 bus test systems, respectively. This evidenced the effectiveness of the proposed approach for reducing active power losses through the optimal management of reactive power resources. All tests were carried out with a fixed voltage of the slack bus of 1.05 p.u and a maximum voltage in generation buses of 1.1 p.u. In all cases, it was verified that voltage magnitudes were kept within their allowable limits. On the other hand, significant reductions on loading conditions were observed in all test systems.
A comparison was carried out with previously reported results in the specialized literature. The proposed approach was able to match the results obtained by a CBGA implemented in DIgSILENT programming language using the same test systems and initial conditions. Nonetheless, better computing times were obtained with the proposed approach.
The proposed Python-DIgSILENT interface opens the possibility to explore other metaheuristic methodologies available in Python optimization libraries. Future work may also include other variants of the optimal reactive power dispatch, such as considering a multi-period and multi-area approach as well as taking into account voltage stability issues.

Author Contributions

Conceptualization, M.M.S.-M., D.L.B.-R., O.D.M., W.M.V.-A. and J.M.L.-L.; data curation, M.M.S.-M., O.D.M. and W.M.V.-A.; formal analysis, M.M.S.-M., O.D.M., W.M.V.-A. and J.M.L.-L.; funding acquisition, O.D.M., W.M.V.-A. and J.M.L.-L.; investigation, M.M.S.-M., D.L.B.-R., O.D.M., W.M.V.-A. and J.M.L.-L.; methodology, M.M.S.-M., O.D.M., W.M.V.-A. and J.M.L.-L.; project administration, W.M.V.-A. and J.M.L.-L.; resources, O.D.M., W.M.V.-A. and J.M.L.-L.; software, M.M.S.-M., O.D.M., W.M.V.-A. and J.M.L.-L.; supervision, O.D.M., W.M.V.-A. and J.M.L.-L.; validation, M.M.S.-M., D.L.B.-R., O.D.M., W.M.V.-A. and J.M.L.-L.; visualization, M.M.S.-M., O.D.M., W.M.V.-A. and J.M.L.-L.; writing—original draft, M.M.S.-M., D.L.B.-R., O.D.M., W.M.V.-A. and J.M.L.-L.; writing—review and editing, M.M.S.-M., D.L.B.-R., O.D.M., W.M.V.-A. and J.M.L.-L. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

No new data were created or analyzed in this study. Data sharing is not applicable to this article.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

C Set of all capacitor banks installed.
G Set of all network generators.
L Set of all installed reactors.
N Set that contains all the nodes of the network.
T Set of all network transformers on.
ϕ k m t a Admittance angle that relates nodes k and m (rad).
θ k Voltage angle at bus k (rad).
θ m Voltage angle at bus m (rad).
aTransformers index.
c j Tap position for the jth capacitor bank.
c j max Maximum limit of the tap position in the jth capacitor bank.
c j min Minimum limit of the tap position in the jth capacitor bank.
jCapacitor banks index.
k , m Sub-indices associated with nodes.
lReactors index.
p k d Active power consumption at bus k (W).
p k g Active power generation at bus k (W).
p loss Objective function value associated with the grid power losses (W).
q k c c j Reactive power injection through the capacitor bank connected at bus k (var).
q k d Reactive power consumption at bus k (var).
q k g Reactive power generation at bus k (var).
q k l r l Reactive power absorption through the reactor connected at bus k (var).
r l Tap position for the lth reactor.
r l max Maximum limit of the tap position in the lth reactor.
r l min Minimum limit of the tap position in the lth reactor.
t a Tap position in the ath transformer.
t a max Maximum limit of the tap position in the ath transformer.
t a min Minimum limit of the tap position in the ath transformer.
v i g , max Maximum voltage limit for the output voltage in the generator i (V).
v i g , min Minimum voltage limit of the output voltage in the generator i (V).
v i g Magnitude of the output voltage in generator i (V).
v k Voltage magnitude at bus k (V).
v k max Maximum voltage limit of the voltage at node k (V).
v k min Minimum voltage limit of the voltage at node k (V).
v m Voltage magnitude at bus m (V).
Y k m t a Admittance magnitude that relates nodes k and m (rad).

References

  1. Villa-Acevedo, W.M.; López-Lezama, J.M.; Valencia-Velásquez, J.A. A Novel Constraint Handling Approach for the Optimal Reactive Power Dispatch Problem. Energies 2018, 11, 2352. [Google Scholar] [CrossRef]
  2. Marín-Cano, C.C.; Sierra-Aguilar, J.E.; López-Lezama, J.M.; Jaramillo-Duque, Á.; Villegas, J.G. A Novel Strategy to Reduce Computational Burden of the Stochastic Security Constrained Unit Commitment Problem. Energies 2020, 13, 3777. [Google Scholar] [CrossRef]
  3. Sierra-Aguilar, J.E.; Marín-Cano, C.C.; López-Lezama, J.M.; Jaramillo-Duque, Á.; Villegas, J.G. A New Affinely Adjustable Robust Model for Security Constrained Unit Commitment under Uncertainty. Appl. Sci. 2021, 11, 3987. [Google Scholar] [CrossRef]
  4. Mota-Palomino, R.; Quintana, V.H. Sparse Reactive Power Scheduling by a Penalty Function - Linear Programming Technique. IEEE Trans. Power Syst. 1986, 1, 31–39. [Google Scholar] [CrossRef]
  5. Quintana, V.; Santos-Nieto, M. Reactive-power dispatch by successive quadratic programming. IEEE D 1989, 4, 425–435. [Google Scholar] [CrossRef]
  6. Granville, S. Optimal reactive dispatch through interior point methods. IEEE Trans. Power Syst. 1994, 9, 136–146. [Google Scholar] [CrossRef]
  7. López-Lezama, J.M.; Cortina-Gómez, J.; Muñoz-Galeano, N. Assessment of the Electric Grid Interdiction Problem using a nonlinear modeling approach. Electr. Power Syst. Res. 2017, 144, 243–254. [Google Scholar] [CrossRef]
  8. Gracia-Velásquez, D.G.; Morales-Rodríguez, A.S.; Montoya, O.D. Application of the Crow Search Algorithm to the Problem of the Parametric Estimation in Transformers Considering Voltage and Current Measures. Computers 2022, 11, 9. [Google Scholar] [CrossRef]
  9. Arenas-Acuña, C.A.; Rodriguez-Contreras, J.A.; Montoya, O.D.; Rivas-Trujillo, E. Black-Hole Optimization Applied to the Parametric Estimation in Distribution Transformers Considering Voltage and Current Measures. Computers 2021, 10, 124. [Google Scholar] [CrossRef]
  10. Saldarriaga-Zuluaga, S.D.; López-Lezama, J.M.; Muñoz-Galeano, N. Optimal coordination of over-current relays in microgrids considering multiple characteristic curves. Alex. Eng. J. 2021, 60, 2093–2113. [Google Scholar] [CrossRef]
  11. Pareja, L.A.G.; Lezama, J.M.L.; Carmona, O.G. Optimal Placement of Capacitors, Voltage Regulators, and Distributed Generators in Electric Power Distribution Systems. Ingeniería 2020, 25, 334–354. [Google Scholar] [CrossRef]
  12. Montoya, O.D. Notes on the Dimension of the Solution Space in Typical Electrical Engineering Optimization Problems. Ingeniería 2022, 27, e19310. [Google Scholar] [CrossRef]
  13. Duman, S.; Sonmez, Y.; Guvencc, U.; Yorukeren, N. Optimal reactive power dispatch using a gravitational search algorithm. IET Gener. Transm. Distrib. 2012, 6, 563. [Google Scholar] [CrossRef]
  14. Shaw, B.; Mukherjee, V.; Ghoshal, S. Solution of reactive power dispatch of power systems by an opposition-based gravitational search algorithm. Int. J. Electr. Power Energy Syst. 2014, 55, 29–40. [Google Scholar] [CrossRef]
  15. Khazali, A.; Kalantar, M. Optimal reactive power dispatch based on harmony search algorithm. Int. J. Electr. Power Energy Syst. 2011, 33, 684–692. [Google Scholar] [CrossRef]
  16. Yoshida, H.; Kawata, K.; Fukuyama, Y.; Takayama, S.; Nakanishi, Y. A particle swarm optimization for reactive power and voltage control considering voltage security assessment. IEEE Trans. Power Syst. 2000, 15, 1232–1239. [Google Scholar] [CrossRef]
  17. Cai, G.; Ren, Z.; Yu, T. Optimal Reactive Power Dispatch Based on Modified Particle Swarm Optimization Considering Voltage Stability. In Proceedings of the 2007 IEEE Power Engineering Society General Meeting, Tampa, FL, USA, 24–28 June 2007; pp. 1–5. [Google Scholar] [CrossRef]
  18. Vlachogiannis, J.; Lee, K. A Comparative Study on Particle Swarm Optimization for Optimal Steady-State Performance of Power Systems. IEEE Trans. Power Syst. 2006, 21, 1718–1728. [Google Scholar] [CrossRef]
  19. Gutiérrez, D.; Villa, W.M.; López-Lezama, J.M. Flujo Óptimo Reactivo mediante Optimización por Enjambre de Partículas. Inform. Tecnol. 2017, 28, 215–224. [Google Scholar] [CrossRef]
  20. Naderi, E.; Narimani, H.; Fathi, M.; Narimani, M.R. A novel fuzzy adaptive configuration of particle swarm optimization to solve large-scale optimal reactive power dispatch. Appl. Soft Comput. 2017, 53, 441–456. [Google Scholar] [CrossRef]
  21. Duong, T.L.; Duong, M.Q.; Phan, V.D.; Nguyen, T.T. Optimal Reactive Power Flow for Large-Scale Power Systems Using an Effective Metaheuristic Algorithm. J. Electr. Comput. Eng. 2020, 2020, 1–11. [Google Scholar] [CrossRef]
  22. Londoño, D.C.; Villa-Acevedo, W.M.; López-Lezama, J.M. Assessment of Metaheuristic Techniques Applied to the Optimal Reactive Power Dispatch. In Communications in Computer and Information Science; Springer International Publishing: Cham, Switzerland, 2019; pp. 250–262. [Google Scholar] [CrossRef]
  23. Saddique, M.S.; Bhatti, A.R.; Haroon, S.S.; Sattar, M.K.; Amin, S.; Sajjad, I.A.; ul Haq, S.S.; Awan, A.B.; Rasheed, N. Solution to optimal reactive power dispatch in transmission system using meta-heuristic techniques—Status and technological review. Electr. Power Syst. Res. 2020, 178, 106031. [Google Scholar] [CrossRef]
  24. Zhao, J.; Zhang, Z.; Yao, J.; Yang, S.; Wang, K. A distributed optimal reactive power flow for global transmission and distribution network. Int. J. Electr. Power Energy Syst. 2019, 104, 524–536. [Google Scholar] [CrossRef]
  25. Khan, N.H.; Wang, Y.; Tian, D.; Raja, M.A.Z.; Jamal, R.; Muhammad, Y. Design of Fractional Particle Swarm Optimization Gravitational Search Algorithm for Optimal Reactive Power Dispatch Problems. IEEE Access 2020, 8, 146785–146806. [Google Scholar] [CrossRef]
  26. Jamal, R.; Men, B.; Khan, N.H.; Raja, M.A.Z.; Muhammad, Y. Application of Shannon Entropy Implementation Into a Novel Fractional Particle Swarm Optimization Gravitational Search Algorithm (FPSOGSA) for Optimal Reactive Power Dispatch Problem. IEEE Access 2021, 9, 2715–2733. [Google Scholar] [CrossRef]
  27. Vlachogiannis, J.G.; Lee, K.Y. Quantum-Inspired Evolutionary Algorithm for Real and Reactive Power Dispatch. IEEE Trans. Power Syst. 2008, 23, 1627–1636. [Google Scholar] [CrossRef]
  28. Ela, A.A.E.; Abido, M.; Spea, S. Differential evolution algorithm for optimal reactive power dispatch. Electr. Power Syst. Res. 2011, 81, 458–464. [Google Scholar] [CrossRef]
  29. Bakirtzis, A.; Biskas, P.; Zoumas, C.; Petridis, V. Optimal power flow by enhanced genetic algorithm. IEEE Trans. Power Syst. 2002, 17, 229–236. [Google Scholar] [CrossRef]
  30. Ara, A.L.; Kazemi, A.; Gahramani, S.; Behshad, M. Optimal reactive power flow using multi-objective mathematical programming. Sci. Iran. 2012, 19, 1829–1836. [Google Scholar] [CrossRef]
  31. Bernal-Romero, D.L.; Montoya, O.D.; Arias-Londoño, A. Solution of the Optimal Reactive Power Flow Problem Using a Discrete-Continuous CBGA Implemented in the DigSILENT Programming Language. Computers 2021, 10, 151. [Google Scholar] [CrossRef]
  32. Ganesh, S.; Perilla, A.; Torres, J.R.; Palensky, P.; van der Meijden, M. Validation of EMT Digital Twin Models for Dynamic Voltage Performance Assessment of 66 kV Offshore Transmission Network. Appl. Sci. 2020, 11, 244. [Google Scholar] [CrossRef]
  33. Mei, R.N.S.; Sulaiman, M.H.; Mustaffa, Z.; Daniyal, H. Optimal reactive power dispatch solution by loss minimization using moth-flame optimization technique. Appl. Soft Comput. 2017, 59, 210–222. [Google Scholar] [CrossRef]
  34. Bhongade, S.; Tomar, A.; Goigowal, S.R. Minimization of Optimal Reactive Power Dispatch Problem using BAT Algorithm. In Proceedings of the 2020 IEEE First International Conference on Smart Technologies for Power, Energy and Control (STPEC), Nagpur, India, 25–26 September 2020; IEEE: Piscataway, NJ, USA, 2020. [Google Scholar] [CrossRef]
  35. Abido, M.A. Optimal Power Flow Using Tabu Search Algorithm. Electr. Power Compon. Syst. 2002, 30, 469–483. [Google Scholar] [CrossRef]
  36. Lenin, K. Reduction of active power loss by improved tabu search algorithm. Int. J. Res. GRANTHAALAYAH 2018, 6, 1–9. [Google Scholar] [CrossRef]
  37. ElSayed, S.K.; Elattar, E.E. Slime Mold Algorithm for Optimal Reactive Power Dispatch Combining with Renewable Energy Sources. Sustainability 2021, 13, 5831. [Google Scholar] [CrossRef]
  38. Rojas, D.G.; Lezama, J.L.; Villa, W. Metaheuristic Techniques Applied to the Optimal Reactive Power Dispatch: A Review. IEEE Lat. Am. Trans. 2016, 14, 2253–2263. [Google Scholar] [CrossRef]
  39. Aghbolaghi, A.J.; Tabatabaei, N.M.; Boushehri, N.S.; Parast, F.H. Reactive Power Optimization in AC Power Systems. In Power Systems; Springer International Publishing: Cham, Switzerland, 2017; pp. 345–409. [Google Scholar] [CrossRef]
  40. Barboza, L.V.; Ziirn, H.H.; Salgado, R. Load Tap Change Transformers: A Modeling Reminder. IEEE Power Eng. Rev. 2001, 21, 51–52. [Google Scholar] [CrossRef]
  41. Londoño-Tamayo, D.; Villa-Acevedo, J.L.L.W. Mean-Variance Mapping Optimization Algorithm Applied to the Optimal Reactive Power Dispatch. INGECUC 2021, 17, 239–255. [Google Scholar] [CrossRef]
  42. Sharif, S.; Taylor, J. MINLP formulation of optimal reactive power flow. In Proceedings of the IEEE 1997 American Control Conference (Cat. No.97CH36041), Albuquerque, NM, USA, 8–10 May 1997. [Google Scholar] [CrossRef]
  43. Morán-Burgos, J.A.; Sierra-Aguilar, J.E.; Villa-Acevedo, W.M.; López-Lezama, J.M. A Multi-Period Optimal Reactive Power Dispatch Approach Considering Multiple Operative Goals. Appl. Sci. 2021, 11, 8535. [Google Scholar] [CrossRef]
  44. Acosta, M.N.; Adiyabazar, C.; Gonzalez-Longatt, F.; Andrade, M.A.; Torres, J.R.; Vazquez, E.; Santos, J.M.R. Optimal Under-Frequency Load Shedding Setting at Altai-Uliastai Regional Power System, Mongolia. Energies 2020, 13, 5390. [Google Scholar] [CrossRef]
  45. Gonzalez-Longatt, F.M.; Rueda, J.L. (Eds.) PowerFactory Applications for Power System Analysis; Springer International Publishing: Cham, Switzerland, 2014. [Google Scholar] [CrossRef]
  46. Bifaretti, S.; Bonaiuto, V.; Pipolo, S.; Terlizzi, C.; Zanchetta, P.; Gallinelli, F.; Alessandroni, S. Power Flow Management by Active Nodes: A Case Study in Real Operating Conditions. Energies 2021, 14, 4519. [Google Scholar] [CrossRef]
  47. Dierbach, C. Python as a First Programming Language. J. Comput. Sci. Coll. 2014, 29, 73. [Google Scholar]
  48. Thurner, L.; Scheidler, A.; Schäfer, F.; Menke, J.H.; Dollichon, J.; Meier, F.; Meinecke, S.; Braun, M. Pandapower—An Open-Source Python Tool for Convenient Modeling, Analysis, and Optimization of Electric Power Systems. IEEE Trans. Power Syst. 2018, 33, 6510–6521. [Google Scholar] [CrossRef]
  49. Milano, F. A python-based software tool for power system analysis. In Proceedings of the 2013 IEEE Power Energy Society General Meeting, Vancouver, BC, Canada, 21–25 July 2013; pp. 1–5. [Google Scholar] [CrossRef]
  50. Condren, J.; An, S. Automation of transmission planning analysis process using Python and GTK+. In Proceedings of the 2006 IEEE Power Engineering Society General Meeting, London, UK, 18–22 June 2006; p. 8. [Google Scholar] [CrossRef]
  51. Yusuff, A.; Mosetlhe, T.; Ayodele, T. Statistical method for identification of weak nodes in power system based on voltage magnitude deviation. Electr. Power Syst. Res. 2021, 200, 107464. [Google Scholar] [CrossRef]
  52. Latif, A.; Ahmad, I.; Palensky, P.; Gawlik, W. Multi-objective reactive power dispatch in distribution networks using modified bat algorithm. In Proceedings of the 2016 IEEE Green Energy and Systems Conference (IGSEC), Long Beach, CA, USA, 6–7 June 2016; pp. 1–7. [Google Scholar] [CrossRef]
  53. Mean Variance Mapping Optimization Algorithm. Available online: https://pypi.org/project/MVMO/ (accessed on 30 April 2022).
  54. Pymoo: Multi-Objective Optimization in Python. Available online: https://pymoo.org/index.html (accessed on 30 April 2022).
  55. Blank, J.; Deb, K. Pymoo: Multi-Objective Optimization in Python. IEEE Access 2020, 8, 89497–89509. [Google Scholar] [CrossRef]
  56. Implemtación de MVMO y GA en DigSilent Power Factory con Python. Available online: https://github.com/Msanchez1002/MVMO_GA (accessed on 30 April 2022).
  57. Agudelo, L.; López-Lezama, J.M.; Muñoz-Galeano, N. Vulnerability assessment of power systems to intentional attacks using a specialized genetic algorithm. Dyna 2015, 82, 78–84. [Google Scholar] [CrossRef]
  58. GA: Genetic Algorithm. Available online: https://pymoo.org/algorithms/soo/ga.html (accessed on 30 April 2022).
  59. MVMo: Mean Variance Mapping Optimization Algorithm. Available online: https://github.com/dgusain1/MVMO (accessed on 30 April 2022).
  60. Erlich, I.; Venayagamoorthy, G.K.; Worawat, N. A Mean-Variance Optimization algorithm. In Proceedings of the IEEE Congress on Evolutionary Computation, Barcelona, Spain, 18–23 July 2010; pp. 1–6. [Google Scholar] [CrossRef]
  61. Rueda, J.L.; Erlich, I. Optimal dispatch of reactive power sources by using MVMO optimization. In Proceedings of the 2013 IEEE Computational Intelligence Applications in Smart Grid (CIASG), Singapore, 16–19 April 2013; pp. 29–36. [Google Scholar] [CrossRef]
  62. Rueda, J.L.; Erlich, I. Evaluation of the mean-variance mapping optimization for solving multimodal problems. In Proceedings of the 2013 IEEE Symposium on Swarm Intelligence (SIS), Singapore, 16–19 April 2013; pp. 7–14. [Google Scholar] [CrossRef]
Figure 1. Example of an AC load flow loss calculation (evaluated using Newton–Raphson) in Python-DIgSILENT script software.
Figure 1. Example of an AC load flow loss calculation (evaluated using Newton–Raphson) in Python-DIgSILENT script software.
Computation 10 00128 g001
Figure 2. Example of an AC load flow loss calculation (evaluated using Newton–Raphson) in DIgSILENT Programming Language.
Figure 2. Example of an AC load flow loss calculation (evaluated using Newton–Raphson) in DIgSILENT Programming Language.
Computation 10 00128 g002
Figure 3. DIgSILENT Power Factory and Python Programming Language workflow.
Figure 3. DIgSILENT Power Factory and Python Programming Language workflow.
Computation 10 00128 g003
Figure 4. Flowchart of the implemented GA.
Figure 4. Flowchart of the implemented GA.
Computation 10 00128 g004
Figure 5. Illustration of a candidate solution to the ORPD problem.
Figure 5. Illustration of a candidate solution to the ORPD problem.
Computation 10 00128 g005
Figure 6. Flowchart of the implemented MVMO algorithm.
Figure 6. Flowchart of the implemented MVMO algorithm.
Computation 10 00128 g006
Figure 7. IEEE 6-bus test system diagram.
Figure 7. IEEE 6-bus test system diagram.
Computation 10 00128 g007
Figure 8. IEEE 14-bus test system diagram.
Figure 8. IEEE 14-bus test system diagram.
Computation 10 00128 g008
Figure 9. IEEE 39-bus test system diagram.
Figure 9. IEEE 39-bus test system diagram.
Computation 10 00128 g009
Figure 10. Voltage profile of the IEEE 6-bus test system considering different methodologies.
Figure 10. Voltage profile of the IEEE 6-bus test system considering different methodologies.
Computation 10 00128 g010
Figure 11. Voltage profile of the IEEE 14-bus system considering different methodologies.
Figure 11. Voltage profile of the IEEE 14-bus system considering different methodologies.
Computation 10 00128 g011
Figure 12. Voltage profile of the IEEE 39-bus test system considering different methodologies.
Figure 12. Voltage profile of the IEEE 39-bus test system considering different methodologies.
Computation 10 00128 g012
Table 1. Electrical data of the IEEE 6-bus test system.
Table 1. Electrical data of the IEEE 6-bus test system.
Transmission Lines
LineFromToLine Impedance’s
#BusBusR ( Ω )X ( Ω )
1634.8818720.55942
2643.1752014.68530
3433.8499316.15383
45211.1925825.40160
52128.6958741.67450
Transformer Characteristics
TransformerFromToTransformer Tap
#BusBusSettings
1419100
2359100
Bus-Bar Characteristics
BusLoadPower Injections
# P L (MW) Q L (Mvar) P G (MW) Q G (Mvar)
1551300
200500
350505
40005
5301800
6--Slack node
Table 2. Characterization of transformers in the IEEE 6-bus test system.
Table 2. Characterization of transformers in the IEEE 6-bus test system.
TransformerFromToMinimumMaximumAddition VoltageVoltage
#BusBusVoltageVoltageper Tap (%)Range (%)
141910011,1000.001−0.1 pT 0.1
235910011,1000.001−0.1 pT 0.1
Table 3. Technical characteristics of the generators in the IEEE 6-bus test system.
Table 3. Technical characteristics of the generators in the IEEE 6-bus test system.
GeneratorTerminal v 1 g , min = v 6 g , min (p.u.) v 1 g , max (p.u.) v 6 g , max (p.u.)
120.951.11.15
Slack60.951.051.1
Table 4. Parameters for the IEEE 14-bus test system.
Table 4. Parameters for the IEEE 14-bus test system.
Transmission Lines
LineFromToLine Impedance’sLineFromToLine Impedance’s
#BusBusR ( Ω )X ( Ω )#BusBusR ( Ω )X ( Ω )
1126.75354220.6195696111.0343322.16602
2126.75354220.61956106121.338492.78577
3159.41418738.86250116130.720371.41864
4238.18753734.49428129100.346410.92020
52410.1250930.72200139141.384222.94443
6259.92296830.296851410110.893522.09164
73411.6758229.800271512132.405812.17669
8452.3261047.337241613141.861423.78993
Transformers Characteristic
Trans.FromToTapTrans.FromToTap
#BusBusSettings#BusBusSettings
15611,10048711,100
24911,10054711,100
39711,100
Bus-Bar Characteristics (All Power Units inMW and MVAr)
BusLoadInjectionBusLoadInjection
# P L Q L P G Q G # P L Q L P G Q G
1--Node Slack80.00.00.030.0
221.712.740.042.4929.516.60.00.0
394.219.00.020.0109.05.80.00.0
447.8−3.90.00.0113.51.80.00.0
57.61.60.00.0126.11.60.00.0
611.27.50.020.01313.55.80.00.0
70.00.00.020.01414.95.00.00.0
Table 5. Transformers characteristics of the IEEE 14-bus test system.
Table 5. Transformers characteristics of the IEEE 14-bus test system.
TransformerFromToMinimumMaximumAddition VoltageVoltage
#BusBusVoltageVoltageper Tap (%)Range (%)
147910011,1000.0022−2.2 pT 2.2
249910011,1000.0031−3.1 pT 3.1
356910011,1000.0068−6.8 pT 6.8
487910011,1000.0068−6.8 pT 6.8
597910011,1000.0068−6.8 pT 6.8
Table 6. Parameters of the IEEE 39-bus test system.
Table 6. Parameters of the IEEE 39-bus test system.
Lines Characteristic
LineFromToLine Impedance’sLineFromToLine Impedance’s
#BusBusR ( Ω )X ( Ω )#BusBusR ( Ω )X ( Ω )
1120.0255470.301813140.0267320.30
21390.0120000.301914150.0248840.30
3230.0258270.302015160.0287230.30
42250.2441860.302116170.0235950.30
5340.0183090.302216190.0246150.30
63180.0248120.302316210.0177770.30
7450.0187500.302416240.0152540.30
84140.0186040.302517180.0256090.30
9560.0230760.302617270.0225430.30
10580.0214280.302721220.0171420.30
11670.0195650.302822230.0187500.30
126110.0256090.302923240.0188570.30
13780.0260860.303025260.0297210.30
14890.0190080.303126270.0285710.30
159390.0120000.303226280.0272150.30
1610110.0279060.303326290.0273600.30
1710130.0279060.303428290.0278140.30
Transformers Characteristic
Trans.FromToTapTrans.FromToTap
#BusBusSettings#BusBusSettings
12309100719339100
26319100820349100
310329100922359100
4111291001023369100
5131291001125379100
6192091001229389100
Bus Characteristics (All Power Units in MW and MVAr)
BusLoadInjectionBusLoadInjection
# P L Q L P G P G # P L Q L P G P G
3322.02.4--27281.075.5--
4500.0184.0--28206.027.6--
7233.884.0--29283.526.9--
8522.0176.0--30--2500.0
127.588.0--319.24.6Slack bus
15320.0153.0--32--6500.0
16329.032.3--33--6320.0
18158.030.0--34--2540.0
20628.0103.0--35--6500.0
21274.0115--36--5600.0
23247.584.6--37--5400.0
24308.0−92.2--38--8300.0
25224.047.2--39110425010000.0
26139.017.0--
Table 7. Characterization of the transformers in the IEEE 39-bus test system.
Table 7. Characterization of the transformers in the IEEE 39-bus test system.
TransformerFromToMinimumMaximumAddition VoltageVoltage
#BusBusVoltageVoltageper Tap (%)Range (%)
10230910011,1000.0025−2.5 pT 2.5
22537910011,1000.0025−2.5 pT 2.5
32938910011,1000.0025−2.5 pT 2.5
42235910011,1000.0025−2.5 pT 2.5
52336910011,1000.0070−7.0 pT 7.0
61933910011,1000.0070−7.0 pT 7.0
72034910011,1000.0009−0.9 pT 0.9
81920910011,1000.0060−6.0 pT 6.0
91032910011,1000.0070−7.0 pT 7.0
101312910011,1000.0006−0.6 pT 0.6
111112910011,1000.0006−0.6 pT 0.6
120631910011,1000.0070−7.0 pT 7.0
Table 8. Results for the IEEE 6-bus test system.
Table 8. Results for the IEEE 6-bus test system.
ElementsBase CaseCBGA [31]MVMOGA
GeneratorsVoltage (p.u.)Voltage (p.u.)
G1 Bus06 (slack)1.00001.05001.05001.0500
G2 Bus021.00001.09991.09991.0999
TransformersTap PositionTap Position
Trafo Bus 04-01910011,08911,10011,099
Trafo Bus 03-05910011,09911,08511,099
Capacitor BankReactive power (Mvar)Reactive power (Mvar)
PQ Bus030.00004.99924.99994.9999
PQ Bus040.00004.99954.99994.9999
Power Losses (MW)12.91010.08910.08910.089
Reduction (%)-21.8521.8521.85
Table 9. Line loading for the IEEE 6-bus test system considering different approaches.
Table 9. Line loading for the IEEE 6-bus test system considering different approaches.
LineBase CaseCBGA [31]MVMOGA
(Start-End)Loading (%)Loading (%)Loading (%)Loading (%)
Line 6-348.231441.266841.264541.2661
Line 6-455.803947.452647.449747.4517
Line 4-310.92079.58439.58419.5842
Line 5-233.533430.400730.401630.4008
Line 1-217.456316.133816.133916.1337
Table 10. Results for the IEEE 14-bus test system.
Table 10. Results for the IEEE 14-bus test system.
ElementsBase CaseCBGA [31]MVMOGA
GeneratorsVoltage (p.u.)Voltage (p.u.)
G1 Bus01(slack)1.00001.05001.05001.0500
G2 Bus021.00001.03701.03531.03723
TransformersTap PositionTap Position
Trafo Bus 05-0611,100910091009100
Trafo Bus 04-0911,100910091009100
Trafo Bus 09-0711,10011,10011,10011,000
Trafo Bus 08-0711,000910091009100
Trafo Bus 04-0711,000910091009100
Capacitor BankReactive power (Mvar)Reactive power (Mvar)
PQ Bus060.000019.993619.999619.9997
PQ Bus080.000019.990219.999819.9998
PQ Bus030.000026.467026.245419.9999
Power Losses (MW)17.20013.55813.56013.573
Reduction (%)-21.1821.1621.08
Table 11. Loading conditions of lines for the IEEE 14-bus test system.
Table 11. Loading conditions of lines for the IEEE 14-bus test system.
LineOriginal ValuesCBGA [31]MVMOGA
(Start-End)Loading (%)Loading (%)Loading (%)Loading (%)
Line 1–2(1)36.748632.999333.011033.0158
Line 1–2(2)36.748632.999333.011033.0158
Line 1–533.344331.636531.636131.6289
Line 2–335.207430.869530.865430.8590
Line 2–427.788823.708723.703223.7258
Line 2–521.114017.508017.503017.5326
Line 3–411.302110.484910.486110.4167
Line 4–530.578827.144027.142627.1161
Line 6–1113.136811.695111.691211.7381
Line 6–1215.441812.743212.739812.7746
Line 6–1334.683829.640529.632129.7191
Line 9–1028.548613.813713.815813.7414
Line 9–1428.993517.487217.485317.4782
Line 10–1112.48956.18806.18796.1764
Line 12–132.30322.56202.56092.5750
Line 13–149.99798.88538.88268.9126
Table 12. Results for the IEEE 39-bus system.
Table 12. Results for the IEEE 39-bus system.
ElementsBase CaseCBGA [31]MVMOGA
GeneratorsVoltage (p.u)Voltage (p.u)
G1 Bus391.00001.07761.06571.0753
G2 Bus31(slack)1.00001.05001.05001.0500
G3 Bus321.00001.08101.07281.0903
G4 Bus331.00001.09851.07331.0917
G5 Bus341.00001.04141.07641.0995
G6 Bus351.00001.09701.08791.0891
G7 Bus361.00001.07611.05741.0857
G8 Bus371.00001.07921.07031.0960
G9 Bus381.00001.09821.08411.0880
G10 Bus301.00001.06521.05651.0725
TransformersTap PositionTap Position
Trafo Bus 02-30910010,44010,86310,416
Trafo Bus 25-37910010,83011,10011,100
Trafo Bus 29-38910010,02111,10010,844
Trafo Bus 22-35910010,21494559480
Trafo Bus 23-36910011,065939710,850
Trafo Bus 19-33910010,56210,16910,892
Trafo Bus 20-349100964810,96610,222
Trafo Bus 19-20910010,7299,33510,041
Trafo Bus 10-32910011,03711,10010,927
Trafo Bus 13-12910010,72511,10010,737
Trafo Bus 11-12910010,08510,97110,373
Trafo Bus 06-31910011,05810,63510,179
Power Losses (MW)38.79026.47626.47926.422
Reduction(%)-31.7531.7531.88
Table 13. Loading conditions of the lines for the IEEE 39-bus system.
Table 13. Loading conditions of the lines for the IEEE 39-bus system.
(Lines (Start-End)Base Case LoadingCBGA [31] (%)MVMO LoadingGA (%)
L 1–231.591921.957120.760721.2570
L 1–231.591921.957120.760721.2570
L 1–3924.687624.113225.783725.0039
L 2–371.588256.839856.891256.7258
L 2–2544.428737.913438.067437.8657
L 3–430.809816.908417.169517.4032
L 3–1813.07569.09929.61128.8264
L 4–527.642522.775722.541122.5985
L 4–1450.529543.943744.091443.7494
L 5–686.275172.239172.548372.1871
L 5–859.163250.894151.391550.9805
L 6–779.223167.641868.148167.7006
L 6–1167.124558.463758.379958.2336
L 7–835.668229.404829.722329.4501
L 8–937.891512.24399.873511.5506
L 9–3932.021017.012519.182117.6749
L 10–1167.601259.446659.597758.8809
L 10–1354.524346.934446.391646.8317
L 13–1452.339244.161643.989143.8117
L 13–1452.339244.161643.989143.8117
L 14–155.24548.08037.02357.5485
L 15–1662.739251.765552.136151.9074
L 16–1746.887835.567335.439335.5494
L 16–1992.558177.732577.682277.6428
L 16–2160.795551.615751.274351.3467
L 16–2417.580817.715817.304717.2731
L 17–1838.434732.681032.907732.5544
L 17–2713.80786.23146.11145.7034
L 21–22112.763093.701093.898993.7535
L 22–2322.760011.74297.11087.2783
L 23–2464.031254.106353.961753.9557
L 25–2616.424412.680813.390711.8264
L 26–2751.422941.551741.626841.3364
L 26–2825.386223.506623.302823.9918
L 26–2933.937731.486831.273031.9884
L 28–2960.768253.790153.651854.1180
Table 14. Average processing times for all the IEEE test systems considering different optimization approaches.
Table 14. Average processing times for all the IEEE test systems considering different optimization approaches.
Test SystemCBGA [31] (s)MVMO (s)GA (s)
IEEE 6-bus test system88.9424.4714.45
IEEE 14-bus test system124.7443.9629.96
IEEE 39-bus test system193.80132.5989.42
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Sánchez-Mora, M.M.; Bernal-Romero, D.L.; Montoya, O.D.; Villa-Acevedo, W.M.; López-Lezama, J.M. Solving the Optimal Reactive Power Dispatch Problem through a Python-DIgSILENT Interface. Computation 2022, 10, 128. https://doi.org/10.3390/computation10080128

AMA Style

Sánchez-Mora MM, Bernal-Romero DL, Montoya OD, Villa-Acevedo WM, López-Lezama JM. Solving the Optimal Reactive Power Dispatch Problem through a Python-DIgSILENT Interface. Computation. 2022; 10(8):128. https://doi.org/10.3390/computation10080128

Chicago/Turabian Style

Sánchez-Mora, Martin M., David Lionel Bernal-Romero, Oscar Danilo Montoya, Walter M. Villa-Acevedo, and Jesús M. López-Lezama. 2022. "Solving the Optimal Reactive Power Dispatch Problem through a Python-DIgSILENT Interface" Computation 10, no. 8: 128. https://doi.org/10.3390/computation10080128

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop