Most of the concepts involved in Electrical Engineering have been developed from the 20th century to the present day. One of the most popular studies in this field is the power flow problem for electrical systems composed of multiple nonlinear loads (i.e., loads with constant power consumption) 1. This problem is formulated by applying Kirchhoff’s voltage law to each node in the system, which results in a set of nonlinear algebraic equations that consider steady-state conditions 2. In this vein, this editorial note presents a tutorial for Electrical Engineering students regarding the general implementation of the three-phase power Flow problem in distribution networks via the successive approximations method 3.
General three-phase power flow formulation
The general formula for the power flow solution in three-phase networks is obtained after applying Kirchhoff’s voltage law to each network node, which produces the set of constraints defined by
where Yds3φ ∈ C3(n−1)×3 and Ydd3φ ∈ C3(n−1)×3(n−1) are complex sub-matrices obtained for the nodal three-phase admittance matrix Ybus3φ (note that this matrix can be obtained using the node-to-branch incidence and the admittance primitive matrices 3); Id3φ ∈ C3(n−1)×1 is the complex vector of demanded currents, which is a nonlinear function of the demanded voltages Vd3φ ∈ C3(n−1)×1 and the constant complex power loads; and Vs3φ ∈ C3×1 is the complex power voltage output at the terminals of the substation. Note that C denotes the set of complex numbers.
Remark 1. The calculation of the demanded current vector Id3φ depends on the load connection type, i.e., Wye (Y ) or Delta (Δ).
To illustrate the general calculation of the three-phase demanded currents, consider the schematic load connections presented in Figs. 1a and 1b.
For these load connections, when Tellegen’s second theorem is applied (i.e., the relation between voltages, currents, and powers), the following compacted three-phase current formulas are obtained:
where the matricesMand H take the following form
and (·) is the complex conjugate operation applied to the argument.
Iterative power flow solution
Considering the general power flow formula in (1) and the definition of the demanded current in 4, an iterative power flow formula can be obtained (4).
where
for all k in the set of the demanded buses.
Remark 2. Eqs. (5) and (6) are iteratively solved until the desired error of convergence is reached, i.e.,
with ε being the convergence’s tolerance.
Julia implementation
Julia is an efficient programming environment that combines the advantages of Python, Matlab, and R with the efficiency of well-known programming languages such as C++ or Fortran 5. To illustrate the general implementation of the three-phase power flow problem in Julia, consider a small distribution grid composed of seven buses and six lines, which is unbalanced and operates with a line-to-ground voltage of 23 kV at the terminals of the substation. All the information on this system is directly presented in the Julia scripts. Fig. 2 illustrates the first part of the three-phase power flow problem’s implementation in distribution networks.
Fig. 2 presents the parametric information of the network, i.e., the distribution line impedance (in this example, the three-phase impedance matrix is assumed to be balanced with values only in its diagonal) and the constant power loads. Note that, if node_data.Type [k,1] == 1, the load associated with the k-node is Y -connected; otherwise, it is Δ−connected.
The next step is calculating the nodal admittance matrix. This process is shown in Fig. 3.
Once the nodal admittance matrix has been constructed, the iterative power flow formula defined in (5), the current calculation in (6), and the stopping criterion in (7) are implemented in Julia using a function called Successive3f(node_data,Ybus3f,error,tmax,Sb) (Fig. 4). This implementation is intuitive, and the student/researcher can easily follow all the procedures for solving the three-phase power flow problem via the successive approximations method.
Finally, to obtain the general power flow solution for the 7-bus grid used in this example, the power flow function calculates all the phase voltages, which allows obtaining the total grid apparent power losses and reporting the voltage magnitudes and angles per phase. This process is depicted in Fig. 5. It is worth mentioning that, this figure, the apparent power losses are calculated using Eq. (8).
where V corresponds to the voltage output obtained by calling the power flow function implemented in Fig. 4 as V3f = Successive3f(node_data,Ybus3f,error,tmax,Sb).
The power flow solution for this numerical example is plotted in Fig. 6.
The student/researcher interested in the Julia-based three-phase power flow solution presented in this editorial note should thoroughly examine all the codifications and follow each one of the presented plots (see Figs. 2 to 6) to reach the same numerical solution presented in Fig. 6.
Conclusion
This editorial note presented an intuitive algorithm based on the successive approximations power flow method with the aim of solving the three-phase power flow problem in electric distribution networks via the Julia programming environment (version 1.9.2). The main idea of this tutorial is to provide a new power flow tool for Electrical Engineering students and researchers, an easily implementable open-source algorithm for conducting studies in unbalanced distribution networks.