Load Flow Analysis of Multi-Converter Transmission Systems · PDF file ·...
Transcript of Load Flow Analysis of Multi-Converter Transmission Systems · PDF file ·...
Load Flow Analysis of
Multi-Converter Transmission Systems
A Thesis
Submitted to the Faculty
of
Drexel University
By
Shaun Mendoza Cruz
in partial fulfillment of the
requirements for the degree
of
Master of Science in Electrical Engineering
June 2014
ii
© Copyright 2014
Shaun Mendoza Cruz. All Rights Reserved
iii
ACKNOWLEDGEMENTS
I would like to take this opportunity to express the utmost gratitude for my thesis advisor,
Dr. Chikaodinaka Nwankpa for all the assistance, guidance, and advice he has provided throughout
this research endeavor. I also thank him for his mentorship throughout my final years at Drexel as
an undergraduate student.
The Center of Electric Power Engineering (CEPE) has provided me an exceptional
education complemented with excellent hands-on lab experience which I am grateful for. Thank
you to Dr. Karen Miu for introducing the field of power engineering to me. Thank you to Dr.
Thomas Halpin for furthering my fundamental knowledge of power engineering to a graduate level
of thinking. Thank you to Dr. Dagmar Niebur for providing me with exciting alternative power
engineering research opportunities. I would also like to thank Drs. Dagmar Niebur and Thomas
Halpin for serving on my thesis committee. I am appreciative of their feedback and am grateful of
their valuable comments which has been utilized to further this thesis research.
For their financial support, thank you to those at the American Society for Engineering
Education (ASEE), the Science, Mathematics and Research for Transformation (SMART)
Scholarship for Service Program, and the Naval Surface Warfare Center (Carderock Division).
Finally, I would like to thank several people who have supported me on a more personal
basis. To my parents, Marcelino and Maria Cruz, thank you for raising me, supporting me, and
guiding me on all aspects of my life. To my sister, Stacy Cruz, thank you for being a great role
model and loving sibling. To my girlfriend, Yanni Eboras, thank you for being the inspiration for
me to achieve and supporting me even when things looked bleak. Also, thank you to all my
extended family and friends for your love and support. This thesis is dedicated to all of you.
iv
TABLE OF CONTENTS
LIST OF FIGURES ..................................................................................................................... viii
LIST OF TABLES ......................................................................................................................... xi
1 INTRODUCTION .................................................................................................................. 1
1.1 Overview .......................................................................................................................... 1
1.2 Background ...................................................................................................................... 4
1.2.1 Load Flow Methodologies for Traditional AC Systems ........................................... 4
1.2.2 High Voltage Direct Current (HVDC) Links ............................................................ 6
1.2.3 Load Flow Methodologies for HVDC Transmission Systems ................................. 8
1.3 Motivation ...................................................................................................................... 10
1.4 Problem Statement ......................................................................................................... 11
1.5 Approach ........................................................................................................................ 12
1.6 Organization of Thesis ................................................................................................... 13
2 DEVELOPMENT OF A LOAD FLOW ANALYSIS TOOL .............................................. 15
2.1 Overview ........................................................................................................................ 15
2.2 Sato and Arillaga’s Method............................................................................................ 15
2.2.1 DC Subroutine ........................................................................................................ 16
2.2.2 Full Load Flow Routine .......................................................................................... 20
2.3 Modifications to Sato and Arillaga’s Method ................................................................ 21
2.3.1 Simplified DC Load Flow Routine ......................................................................... 22
v
2.3.2 Isolated Bus Load Flow for AC Routine ................................................................ 26
2.3.3 Full Double Loop Approach ................................................................................... 28
2.3.4 Example Case: Grainger and Stevenson’s 4-Bus System ....................................... 31
2.3.5 Ordering of HVDC Link Substitutions ................................................................... 35
3 CONVERGENCE ANALYSIS OF LOAD FLOW FOR DIFFERENT POWER SYSTEMS
38
3.1 Overview ........................................................................................................................ 38
3.2 Grainger and Stevenson’s 4-Bus System ....................................................................... 39
3.3 IEEE 9-Bus System ........................................................................................................ 44
3.4 IEEE 14-Bus System ...................................................................................................... 49
3.5 IEEE 30-Bus System ...................................................................................................... 53
3.6 IEEE 118-Bus System .................................................................................................... 57
3.7 Summary of Convergence Properties ............................................................................. 62
4 DEVELOPMENT OF AN ENHANCED LOAD FLOW SOLVER .................................... 64
4.1 Overview ........................................................................................................................ 64
4.2 Convergence of Modified Sato and Arillaga’s Method in Terms of Percent DC
Transmission ............................................................................................................................. 64
4.3 Enhanced Load Flow Solver Algorithm......................................................................... 66
4.4 Results of Enhanced Load Flow Solver ......................................................................... 68
vi
5 APPLICATION OF ENHANCED LOAD FLOW SOLVER ON VOLTAGE STABILITY
70
5.1 Overview ........................................................................................................................ 70
5.2 HVDC Link Substitutions Based On Transmission Power Magnitude ......................... 71
5.3 Substitution Orderings with Heavily Loaded Bus as First Isolation .............................. 74
6 CONCLUSION ..................................................................................................................... 80
6.1 Summary of Thesis Work .............................................................................................. 80
6.2 Potential Future Work .................................................................................................... 81
LIST OF REFERENCES .............................................................................................................. 84
APPENDIX ................................................................................................................................... 87
APPENDIX A: Additional Information about HVDC Links ................................................... 87
A.1 Calcluation of Vx, Vy, and Ids ...................................................................................... 87
A.2 Reactive Power for HVDC Links .................................................................................. 89
APPENDIX B: Power System Data in MATPOWER Format ................................................. 90
B.1 Data for Grainger and Stevenson’s 4-Bus System ......................................................... 90
B.2 Data for IEEE 9-Bus System .......................................................................................... 91
B.3 Data for IEEE 14-Bus System ........................................................................................ 93
B.4 Data for IEEE 30-Bus System ........................................................................................ 95
B.5 Data for IEEE 118-Bus System ...................................................................................... 98
APPENDIX C: MATLAB Code ............................................................................................. 107
vii
C.1 Main Code for Load Flow Analysis Tool .................................................................... 107
C.2 Code to set HVDC Link Parameters ............................................................................ 111
C.3 Code for AC Subroutine ............................................................................................... 114
C.4 Code for DC Subroutine ............................................................................................... 117
C.5 Main Code for Enhanced Load Flow Method .............................................................. 120
viii
LIST OF FIGURES
Figure 1. Power flow notation at a bus i for active (left) and reactive (right) power ..................... 5
Figure 2. One line diagram for typical HVDC transmission system [10] ...................................... 7
Figure 3. Sato and Arillaga’s HVDC link model .......................................................................... 17
Figure 4. Flow chart of Sato and Arillaga’s DC subroutine ......................................................... 19
Figure 5. Flowchart of Sato and Arillaga’s full load flow routine................................................ 21
Figure 6. Simplified DC subroutine developed in this thesis ....................................................... 26
Figure 7. Power system with included HVDC link (left) and substitution of equivalent power
sources for AC routine (right) ....................................................................................................... 26
Figure 8. Power system with multiple HVDC links tied to one bus (left) resulting in isolated bus
during substitution (right) ............................................................................................................. 27
Figure 9. Modified Sato and Arillaga’s Full Load Flow Method ................................................. 30
Figure 10. One-line diagram for Grainger and Stevenson’s 4-bus system ................................... 31
Figure 11. One-line diagram of 4-Bus system with HVDC link connecting bus 3 and 4 ............ 33
Figure 12. Placement of HVDC links (left) resulting in multiple disjoint sub-systems (right) .... 36
Figure 13. Example of minimum spanning tree in which removal of line results in two systems 36
Figure 14. Ordering of HVDC Link Substitutions........................................................................ 37
Figure 15. Time diagram for full load flow routine of 4-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 40
Figure 16. Time plot for AC load flow routine of 4-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 42
Figure 17. Iteration plots for full load flow method and AC load flow routine of 4-bus system using
Newton-Raphson method (a and b) and Gauss Seidel method (c and d)...................................... 43
ix
Figure 18. IEEE 9-Bus System [22] ............................................................................................. 45
Figure 19. Time diagram for full load flow routine of 9-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 46
Figure 20. Time plot for AC load flow routine of 9-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 47
Figure 21. Iteration plots for full load flow method and AC load flow routine of 9-bus system using
Newton-Raphson method (a and b) and Gauss Seidel method (c and d)...................................... 48
Figure 22. IEEE 14-Bus System [23] ........................................................................................... 49
Figure 23. Time diagram for full load flow routine of 14-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 50
Figure 24. Time plot for AC load flow routine of 14-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 51
Figure 25. Iteration plots for full load flow method and AC load flow routine of 14-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d) ............................ 52
Figure 26. IEEE 30-Bus System [24] ........................................................................................... 53
Figure 27. Time diagram for full load flow routine of 30-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 54
Figure 28. Time plot for AC load flow routine of 30-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 55
Figure 29. Iteration plots for full load flow method and AC load flow routine of 30-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d) ............................ 57
Figure 30. IEEE 118-Bus System [25] ......................................................................................... 58
x
Figure 31. Time diagram for full load flow routine of 118-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine .............................................. 59
Figure 32. Time plot for AC load flow routine of 118-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine ............................................................. 61
Figure 33. Iteration plots for full load flow method and AC load flow routine of 118-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d) ............................ 62
Figure 34. Comparison of Gauss Seidel method to Newton-Raphson method in regards to faster
convergence time with respect to percentage of DC transmission ............................................... 65
Figure 35. Enhanced Load Flow Solver algorithm. ...................................................................... 67
Figure 36. Generic P-V curve ....................................................................................................... 70
Figure 37. Full load flow convergence times for maximum active power load ........................... 73
Figure 38. Full load flow convergence times for maximum reactive power load ........................ 73
Figure 39. Minimum spanning tree for IEEE 30-Bus system with heavily loaded bus 10 .......... 75
Figure 40. Time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b) ......................................................................................................................... 76
Figure 41. AC time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b) ......................................................................................................................... 76
Figure 42. Minimum spanning tree for IEEE 30-Bus system with heavily loaded bus 30 .......... 78
Figure 43. Time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b) ......................................................................................................................... 79
Figure 44. AC time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b) ......................................................................................................................... 79
xi
LIST OF TABLES
Table 1. Line Data for Grainger and Stevenson’s 4-Bus System ................................................. 31
Table 2. Bus Data for Grainger and Stevenson’s 4-Bus System .................................................. 31
Table 3. Calculated Bus Data from Load Flow Solution of 4-Bus System .................................. 32
Table 4. Calculated Line Flows from Load Flow Solution of 4-Bus System ............................... 32
Table 5. Equivalent Impedances of 4-Bus System ....................................................................... 33
Table 6. HVDC Parameters .......................................................................................................... 34
Table 7. Calculated Bus Voltages for Systems with HVDC Links ............................................. 34
Table 8. Calculated Converter Powers and Line Flows for Systems with HVDC Links ............. 35
Table 9. Convergence Time and Iteration Data for Load Flow of IEEE 14-Bus System ............. 68
Table 10. Stressed System Load Flow for Lines Connected to Bus 10 of IEEE 30-Bus System. 72
xii
ABSTRACT
Load Flow Analysis of Multi-Converter Transmission Systems
Shaun Mendoza Cruz
Chikaodinaka Nwankpa, Ph.D.
This thesis discusses the development of a load flow methodology capable of solving for
the load flow of power systems inclusive of multiple point-to-point HVDC links. The methodology
is an extension of a previous algorithm developed by Sato and Arillaga. Recent pushes for
renewable power and developments supporting HVDC transmission for short distances will
facilitate the substitution of multiple HVDC links for existing transmission lines. The extended
methodology is utilized as a load flow analysis tool and is applied to various power systems to
determine the effects of multiple HVDC links on the convergence properties of the load flow
methods (i.e. timing and number of iterations). It was found that the percentage of DC transmission
in a system is a good indicator of which embedded AC load flow method should be utilized in the
extended methodology. Specifically at a DC transmission percentage of 90% or higher, the Gauss
Seidel method has speeds comparable to the Newton-Raphson method. Leveraging off this finding,
an Enhanced Load Flow solver is developed, which optimizes for faster convergence with a second
priority to reducing memory requirements. The Enhanced Load Flow solver is a robust
methodology which is easily extended to include other AC load flow methods. This research also
looked into the effects of substituting AC transmission lines with HVDC links on the speed of
convergence for voltage stability studies. It was found that the substitution of HVDC links for lines
connected to a heavily loaded bus for a stressed system yields a lower convergence time for the
voltage stability study.
1
1 INTRODUCTION
1.1 Overview
Load flow analysis is a key tool which supports the planning, operation, and control efforts
of power systems. Utilizing numerical methods, the traditional load flow methods (i.e. Gauss
Seidel, Newton-Raphson, Fast Decoupled) all solve for the bus voltages, voltage angles, real
power, and reactive power of AC power systems. The solution then serves as a basis for several
different analyses since it solves for the expected steady state operation of the transmission
network (Ex. voltage stability analysis). However, it should be noted that the initial development
of these load flow methodologies assumed a purely AC transmission system.
It is a well-known fact that there is a push for the use of alternative energy resources as
sources of generation for today’s power grid. The green-energy resources of interest (i.e. solar,
wind, geothermal, etc) are sometimes located in remote regions, requiring long-distance
transmission to the main power grid. Alongside the incorporation of these renewable generation
sources therefore comes the incorporation of multiple high voltage direct current (HVDC) links
which have proven to be of economic feasibility for long-distance transmission [1]. In addition,
there has been some recent technological developments to support the use of HVDC links for even
shorter distances, which will further the incorporation of DC components into the current power
system by replacing existing AC transmission lines with HVDC lines [2]. Thus, instead of a pure
AC transmission network, current transmission networks are moving towards an integrated system
of traditional AC transmission and multiple HVDC links.
This said, the load flow solvers initially designed for pure AC transmission needed to be
altered to accommodate the load flow through the converters. It was found that in-depth load flow
calculations for HVDC links required the determination of HVDC output voltages and currents,
2
optimum transformer tap position, current settings for constant power control, power transfer at
the converter terminals, etc. This methodology contrasted with AC load flow methods which
mainly require only the bus/generator limits, Y-bus matrix formulation, generator and load data.
Thus, by inspection of the general methodologies, existing load flow methodologies had to be
altered to incorporate a solution methodology for DC transmission alongside retaining the solution
method for AC transmission.
It is clear that a DC sub-routine can be embedded into current AC load flow methods to
accommodate the inclusion of HVDC links. That is, solve for the DC systems separately and
represent the HVDC links as two power sources on the sending/receiving end buses, then perform
a traditional AC load flow analysis. This sub-routine methodology, proposed by Sato and Arrillaga
[3] (and henceforth will be referred as Sato and Arrillaga’s method throughout this thesis), clearly
impacts the performance metrics of obtaining a steady state solution (i.e. number of convergence
iterations, total convergence time, accuracy, etc). However, it is yet to be determined the relation
between the number of HVDC links and the impacts on performance metrics. Significant impacts
on the performance metrics due to the inclusion of multiple HVDC links into existing power
systems may facilitate an environment in which a certain load flow algorithm is optimal in
comparison to the others.
Another area of interest is the impact of the integration of multiple HVDC links on the
analyses which utilize load flow methods as a basis. In particular, the voltage stability study and
the development of P-V curves for multi-link HVDC transmission systems is of interest. In order
to obtain an accurate representation of the P-V curve for AC transmission networks, full iterative
AC load flow methods (Ex. Newton-Raphson) are needed. In contrast, approximated methods will
result in inaccurate P-V curves, specifically as the point of voltage collapse is approached for
3
increased loading. Research has been done to determine the voltage stability at the terminal ends
of the HVDC links integrated into AC networks [4-5]. However little research has be done
regarding the impact of HVDC links on the speed of voltage stability studies. It is highly likely
that a significant impact on the speed would be found due to the nature of the solution methodology
(i.e. including both a DC and AC routine).
This thesis is concerned with several experimental studies on the load flow analysis of
multiple HVDC link transmission systems. In particular, this thesis is concerned with finding a
correlation between the number of HVDC links within a transmission network and the
convergence properties of Sato and Arrillaga’s method. Leveraging off the findings, the
development of a load flow solver which extends Sato and Arrillaga’s method to multiple HVDC
link transmission systems is done. The load flow solver optimizes for convergence time and
memory requirements and is called the Enhanced Load Flow solver. In addition, the impact of the
increased amount of DC transmission on the speed of a voltage stability analysis of a multi-link
HVDC transmission system is performed. Specifically, the deliverables are as follows:
1. A summary of the convergence analysis of load flow methods applied to various
benchmark power systems with respect to the inclusion of multiple HVDC links.
2. The development of an Enhanced Load Flow solver for integrated AC/DC systems.
3. A summary of the impact multiple HVDC links have on voltage stability analysis.
The following section provides an overview of load flow analysis, HVDC links, and existing
load flow methodologies for HVDC transmission systems. Section 1.3 discusses the motivation
for exploring the convergence properties of load flow methods applied to HVDC transmission
4
systems. Section 1.4 presents the current issues with Sato and Arrillaga’s method if it is applied to
multi-link HVDC transmission systems. Section 1.5 presents the approach used to characterize the
performance of load flow methodologies on multi-link HVDC systems, how the Enhanced Load
Flow solver was developed, and the effects of HVDC links on voltage stability studies. Finally,
section 1.6 explains the organization of the remaining chapters of the thesis.
1.2 Background
1.2.1 Load Flow Methodologies for Traditional AC Systems
The load flow problem is one of the classical computation problems in power systems
engineering. Load flow studies are utilized as a basis for the development of power systems as
well as the optimal operation of a power system. Because of its importance, a large amount of
work has been done in regards to the formulation of methodologies to solve the load flow problem.
All load flow methodologies are attempts to solve for the voltage magnitude and voltage
phase angle at each bus in a power system. Calculations of the complex power injections at a bus
and power losses on a transmission line can then be performed using the solved complex voltages.
In its basic polar form, the power flow equations are as follows:
𝑃𝑖 = ∑ |𝑌𝑖𝑛𝑉𝑖𝑉𝑛| cos(𝜃𝑖𝑛 + 𝛿𝑛 − 𝛿𝑖)𝑁𝑛=1 (1)
𝑄𝑖 = − ∑ |𝑌𝑖𝑛𝑉𝑖𝑉𝑛| sin(𝜃𝑖𝑛 + 𝛿𝑛 − 𝛿𝑖)𝑁𝑛=1 (2)
where i is the bus number of the bus injection being calculated (i.e. the “from” bus), n denotes the
number of a bus in the power system (i.e. the “to” bus), Yin is the corresponding element in the
Ybus matrix describing the admittance of the power system, θin is the phase angle of the
5
corresponding element in the Ybus matrix, Vi and Vn are the bus voltages for buses i and n
respectively, δi and δn are the phase angle of the bus voltages i and n respectively, and Pi and Qi
represent the calculated net real and reactive power entering the network at bus i (respectively)
[6].
The net power entering the network at bus i is equivalent to the generated power, Pgi, minus
the demanded load power, Pdi. We denote the net scheduled power Pi,sched as this difference.
Similar notation is used for reactive power. Figure 1 illustrates the power flow at a bus i.
Figure 1. Power flow notation at a bus i for active (left) and reactive (right) power
Being that Pi and Qi are calculated values obtained from equations (1) and (2) and Pi,sched
and Qi,sched are true values, the goal for any load flow methodology is to find the correct voltage
values such that the following power-balance equations hold true:
0 = 𝑃𝑖 − 𝑃𝑖,𝑠𝑐ℎ𝑒𝑑 = 𝑃𝑖 − (𝑃𝑔𝑖 − 𝑃𝑑𝑖) (3)
0 = 𝑄𝑖 − 𝑄𝑖,𝑠𝑐ℎ𝑒𝑑 = 𝑄𝑖 − (𝑄𝑔𝑖 − 𝑄𝑑𝑖) (4)
The set of known and unknown parameters used to further describe a particular load flow
problem for a power system is dependent on the bus types. One bus is considered to be a reference
6
bus as is called the slack bus. The remaining buses in the system are categorized into either PQ or
PV buses. PQ buses are load buses in which the complex power at the bus is known, and only the
complex voltage at the bus needs to be found. PV buses are generator buses in which the real
power and voltage magnitude are known, and only the reactive power and bus voltage phase needs
to be found.
For a 2-bus power system, an analytic approach can be used to solve for the complex
voltages. However, the amount of nonlinear equations for larger systems garners the use of
numerical methods. The traditional load flow methodologies of Gauss-Seidel [7], Newton-
Raphson [8], and Fast Decoupled Load Flow [9], are all based on general-purpose numerical
iterative techniques.
1.2.2 High Voltage Direct Current (HVDC) Links
There are several benefits for using direct current transmission as opposed to the traditional
three-phase ac transmission. It has been proven that it is more economically attractive (in
comparison to ac transmission) when a large amount of power needs to be transmitted over a long
distance (typically 300-400 miles). Also, because the transmission is DC, it is possible to connect
two networks operating at different/unsynchronized frequencies. The power flow of DC
transmission is also easier to control, and thus there is an improved stability [10].
Figure 2 shows a typical HVDC transmission system, with details of the power electronics
of one terminal. Using Figure 2 as a guide and proceeding from left to right, we see that terminal
obtains voltage (typically 69-230kV) from the connected ac system. The ac voltage is then filtered
to reduce harmonics generated by the conversion process and the power factor is corrected by
means of a capacitor bank. The voltage is then transformed up to the transmission level via a Y-Y
7
and Δ-Y transformer. The stepped up ac voltage is then rectified to a DC voltage which is smoothed
by the inductor and DC filter, and applied to the HVDC transmission line. A similar architecture
is used at the terminal at the other end of the DC transmission line except utilizing inverter
operation and stepping down the voltage to whatever is required by the corresponding ac system.
It should be noted that power flow over the line can be reversed (i.e. bidirectional), depending on
the firing angle used for converter operation as either a rectifier or inverter [10].
Figure 2. One line diagram for typical HVDC transmission system [10]
The actual conversion from AC to DC or DC to AC is achieved by the positive pole 12-
pulse converter and negative pole 12-pulse converter in each terminal. Each pole consists of two
6-pulse line-frequency bridge converters connected via the transformers to yield the 12-pulse
8
converter arrangement. The physics behind the 12-pulse line-frequency converters and the
smoothing inductor are the key components which will drive the derivation of power flow
equations though the HVDC link. These equations will be discussed further in Chapter 2, in the
overview of Sato and Arillaga’s method.
1.2.3 Load Flow Methodologies for HVDC Transmission Systems
After over a century of reliable HVDC transmission [11], there has been vast development
in the load flow methods as applied to integrated AC-DC systems. The initial proposed
methodologies used equivalent-current-source concepts to simulate the HVDC links in an
equivalent AC fashion [12]. Barker and Carré took these equivalent-current-source concepts and
applied it to a full load-flow program which solved both the load flows through the HVDC links
and the remaining AC load flows of the transmission system using the successive overrelaxation
method [13].
One of the main pioneers in the analysis of power networks that included HVDC
transmission, Jos Arrillaga, presented the first investigation on the convergence of the load flow
methods with respect to the influence of the inclusion of a HVDC link into a transmission system
[3]. His paper, “Improved load-flow techniques for integrated a.c.-d.c. systems”, explained a more
realistic simulation of HVDC links and detailed the incorporation of a DC subroutine into
traditional AC load flow methods (i.e. an extension of Barker and Carré’s methodology). It was
concluded that the resulting substitution of a transmission line for an HVDC link resulted in an
increased number of iterations, yielding 30% extra computation (for a 14-bus system). It also
showed that certain load flow methodologies converge faster than others when HVDC links are
incorporated into the transmission system.
9
As the AC load flow methodologies were developed, the integrated AC-DC load flow
methods needed to be altered as well. The development of the fast decoupled load flow method
necessitated a representation of HVDC links compatible with the methodology. Arrillaga
accomplished this in his paper “Integration of h.v.d.c. links with fast-decoupled load-flow
solutions” [14]. The results of the methodology showed retention of the reliability, speed, and
storage advantages of the fast decoupled load flow method. It was also shown that the DC portion
of the methodology had a significant impact on convergence time and storage for small power
systems, such as a 14 bus system. However, as the system grew in size, these impacts grew more
insignificant. In addition, Arrillaga mentioned that multiple HVDC links yielded extra time and
storage proportional to the number of links, but yielded no special problem with respect to
convergence of the methodology.
It should be noted that the methodologies previously explained utilized a sequential
approach – the load flow through an HVDC link was solved separately via a DC subroutine,
followed by an AC routine to solve the remaining load flows of the transmission system. Other
methodologies such as [15] also used the sequential approach. However, unified approach
methodologies were also developed such as [16]. The unified approach methods essentially
incorporated the solution of the HVDC links within the equations for the solution of the AC
transmission system (i.e. embedded HVDC equations into AC iteration equation) usually
employing a Newton-Raphson type approach. Unified methods were considered to be less-robust
and thus sequential approaches were preferred.
As the idea of HVDC links being incorporated into the transmission system widened, the
topic of load flow analysis for multi-terminal HVDC links came about. [17-20] explain the
extension of the methodologies to mutli-terminal systems. It should be stated that this thesis is
10
concerned not with the question of load flow for multi-terminal systems, but the question of load
flow for multi-link HVDC transmission systems such that each HVDC link contains only one pair
of converters (one inverter and one rectifier), also known as point-to-point transmission.
1.3 Motivation
Load flow analysis is key component of several different applications with respect to power
systems analysis. Being that numerical analysis methodologies are implemented to solve the load
flows, convergence properties of the particular solution methodology applied have always been of
interest. The most ideal method would result in a low iteration count, convergence of quadratic or
higher nature, small number of operations, minimal RAM, and fast overall solution time.
With the introduction of multiple HVDC links into the transmission system, it is clear that
the convergence of current AC-DC load flow methodologies will be impacted. Intuitively, the
convergence will be slower and require additional CPU usage. However, if a convergence analysis
is performed, it may be found that there exists a non-intuitive correlation of convergence properties
to the number of HVDC links in a transmission system. There exists several load flow
methodologies which can be implemented to solve the AC-DC network. Depending on the
convergence characteristics, a certain load flow methodology may be preferred over another.
The increased amount of HVDC links may also generate an impact on the speed of voltage
stability analysis of the transmission network. Due to the nonlinear nature of a stressed (i.e. loading
limit reached) transmission system, full AC iterative methodologies are required for accurate
determination of the current operating point on the P-V curve. Still, the Jacobian matrix used in
majority of load flow algorithms becomes increasingly singular as the maximum loading point is
reached. This results in a higher computation time and larger number of iterations to acquire an
11
accurate result for points near the maximum loading point. However, because of the solution
methodology of Sato and Arillaga’s method, a reduced AC network is solved and the lessened
number of equations can result in a faster convergence time and less iterations for similar accuracy.
In addition to the computational benefits to load flow studies of power systems containing
multiple HVDC links, the main motivation of this thesis is the actual increased inclusion of HVDC
links into existing power networks. HVDC links allow the transfer of more power, an increased
controllability, and the interconnection of two power systems under different operation
characteristics (ex. frequency). Because of the clear utilization benefits and the economic benefits,
the installment of HVDC links will occur in the future. However, there exists very little research
done for multi-link systems. This thesis aims to provide a starting point for power system engineers
to use when exchanging multiple existing transmission lines with HVDC links.
1.4 Problem Statement
Two observations can be made about the implementation of Sato and Arrillaga’s method
on an integrated AC-DC transmission network. The first and most obvious is that additional time
must be spent in the load flow method to execute the DC subroutine. The second is that after
convergence of the DC subroutine, the substitution of representative power sources on terminal
buses essentially removes a transmission line from the solution of the AC routine. In other words,
a sparser Y-bus matrix is a resultant of the DC subroutine.
Realizing these two observations is key to understanding the impact of utilizing Sato and
Arrillaga’s method as applied to a multiple HVDC link system. Each HVDC link must be solved
separately by a separate DC subroutine, thus increasing convergence times. However, as the
number of HVDC links increases, the sparseness of the Y-bus matrix is also increased, which
12
intuitively should decrease the AC routine convergence time. Therefore, to optimize Sato and
Arrillaga’s method, a correlation between the number of HVDC links to the convergence
properties of the method should be found. This correlation could lead to a decision factor in
choosing what AC routine is best for the particular number of HVDC links in a system.
Another issue which may occur is HVDC link placement within a plant to load flow
convergence. Because several AC transmission lines are being substituted for HVDC links, there
are certain topologies in such that a bus may become “isolated” in terms of the AC load flow
routine. These isolated buses therefore would cause a convergence issue strictly because a separate
routine to solve for the bus voltages must be performed. In addition to this, whatever components
(i.e. generator, compensator, etc) are connected to the bus will also be removed from the system,
which may also influence the convergence properties.
It is also unknown about the impacts on voltage stability studies with the increased
integration of HVDC links. When operating near the maximum loading point, traditional load flow
methods take high computation time and a large number of iterations to converge to an accurate
result. A decrease in iteration count and convergence time may occur when the same loading point
is analyzed using Sato and Arillaga’s method, due to the DC subroutine and the reduced AC system
solved by the AC routine.
1.5 Approach
A personal PC with Matlab R2013a (version 8.1.0.604) was used as a platform to code
Sato and Arrillaga’s method and apply it to various multi-converter AC-DC transmission systems.
MATPOWER 4.1 was used for the embedded AC load flow methods [21].
13
Transmission lines were substituted for HVDC links in benchmark IEEE power systems.
From analysis of the load flow results for the different configurations, correlations between the
numbers of HVDC links in the transmission system to the convergence properties was determined.
The convergence properties for a 4-bus, 9-bus, 14-bus, 30-bus and 118-bus system were all looked
into. Using the results, the Enhanced Load Flow solver was developed in this thesis. This load
flow solver takes advantage of the benefits of using specific load flow methods, depending on the
structure of the transmission network (i.e. the percentage of DC transmission).
In addition, a system under stressed conditions was created by choosing an operating point
near the maximum loading point of a particular bus. The final bus voltages were determined using
a traditional AC load flow method. Substitution of different transmission lines for HVDC links
operating at the calculated load flows for the stressed system was done, and the Enhanced Load
Flow solver was used to recalculate the load flow. The time for the solver to converge and solve
the integrated AC-DC system was compared to the convergence time of the Newton-Raphson
method applied to an entirely AC system.
1.6 Organization of Thesis
An overview of Sato and Arrillaga’s method and the modifications made to the methodology
to extend the usage to multi-link HVDC transmission systems and analyze different embedded AC
methods is given in Chapter 2 of this thesis. Chapter 3 provides the results of the convergence
analysis of the modified Sato and Arillaga’s method applied to different power systems, in an
effort to determine the correlation of the number of HVDC links inclusive in an AC-DC
transmission system to the convergence properties of the methodology. The development of the
Enhanced Load Flow solver which determines the load flows for multi-link HVDC transmission
14
systems benefiting from the findings of the convergence studies is explained in Chapter 4. An
experimental set up (and results of the experiment) to determine the effects of substituting AC
lines with HVDC links on the speed of voltage stability analysis is presented in Chapter 5. The
conclusion of the thesis as well as recommendations for future work are given in Chapter 6.
15
2 DEVELOPMENT OF A LOAD FLOW ANALYSIS TOOL
2.1 Overview
A key component to this thesis work is the development of an algorithm capable of solving
the load flow of power systems containing multiple HVDC links. Sato and Arillaga’s method was
chosen as the benchmark algorithm, being that the algorithm is of a simple and elegant structure
which is easily modified. Also, since Sato and Arillaga’s method was one of the first developed
for load flow analysis of power systems containing HVDC links, it seemed natural to develop the
original methodology. This chapter explains the modifications made to Sato and Arillaga’s method
to extend the algorithm to multi-link systems.
It should be noted that the algorithm explained in this section is not to be confused with
the Enhanced Load Flow solver, which will be explained in a later chapter of the thesis. Although
the developments described in this chapter do form a basis for the final load flow solver, the
intended use was for analyzing the effects of including multiple HVDC links in an existing power
system, and hence the claim to be a load flow analysis tool.
2.2 Sato and Arillaga’s Method
Sato and Arillaga developed a load flow technique which improved the accuracy and
convergence rates of existing load flow methodologies when the power system contained a HVDC
link. In their paper “Improved load-flow techniques for integrated a.c.-d.c. systems”, they
explained an improved simulation of an HVDC link which incorporated the control concepts used
in HVDC links and optimum tap-change procedures. The improved simulation was also translated
into a DC subroutine and used in conjunction with traditional AC load flow techniques to create a
16
load flow solver for integrated AC-DC power systems. The load flow methodology is discussed in
further detail in the following sections.
2.2.1 DC Subroutine
Sato and Arillaga’s method assumes that the HVDC link, depicted in Figure 3, is equipped
with both closed-loop current control and constant margin angle control. Under normal operation,
the inverter end of the link determines the direct voltage and operates on constant margin angle
control, and the rectifier end fixes the operating current by operating on constant current control.
With these assumptions, the following equations can be written for the direct voltages of the
HVDC link:
𝑉𝑖𝑛𝑣 = 3√2
𝜋 𝑣𝑖𝑛𝑣 cos 𝛾 −
3
𝜋𝑋𝑖𝑛𝑣𝐼𝑙𝑖𝑛𝑒 (5)
𝑉𝑙𝑖𝑛𝑒 = 𝑉𝑟𝑒𝑐𝑡 − 𝑉𝑖𝑛𝑣 = 𝑅𝑙𝑖𝑛𝑒𝐼𝑙𝑖𝑛𝑒 (6)
𝑉𝑟𝑒𝑐𝑡 = −𝐴𝑟𝑒𝑐𝑡{𝐼𝑙𝑖𝑛𝑒 − 𝐼𝑑𝑠𝑟𝑒𝑐𝑡} (7)
where Vinv is the inverter side DC voltage, Vline is the voltage drop on the transmission line, Vrect
is the rectifier side DC voltage, vinv is the r.m.s phase to phase voltage on the inverter side, γ is
the extinction angle, Xinv is the commutation reactance of the inverter, Iline is the transmission line
current, Rline is the resistance of the transmission line, Arect is the slope of the constant current
characteristic of the rectifier, and Idsrect is the DC current setting of the rectifier.
17
Figure 3. Sato and Arillaga’s HVDC link model
Combining equations (5-7) the equation for the operating current can be found to be:
𝐼𝑙𝑖𝑛𝑒 = 3√2
𝜋 𝑣𝑖𝑛𝑣 cos 𝛾−𝐼𝑑𝑠𝑟𝑒𝑐𝑡𝐴𝑟𝑒𝑐𝑡
3
𝜋𝑋𝑖𝑛𝑣−{𝑅𝑙𝑖𝑛𝑒−1}𝐴𝑟𝑒𝑐𝑡
(8)
which can be substituted back into equations (5-7) to find the DC voltages of the HVDC link.
In order to find the value of the DC current setting Idsrect, the optimum operating voltage
for the HVDC link needs to be calculated. The operating voltage Vx is found using the rectifier
constant current characteristic and the inverter constant margin angle characteristic, alongside the
power settings of the HVDC link. Using Vx, the current setting Idsrect and the maximum voltage Vy
can be found. The optimum operating voltage is found by minimizing the function
𝑢 = 𝑉𝑦 − 𝑉𝑥 > 0 (9a)
where 𝑉𝑦 =𝐾
𝑉𝑥 (9b).
Details of how to find Vx, Vy, and Ids can be found in [3], and are discussed in Appendix A.
18
Since the purpose of the methodology is to compute the power flows through an HVDC
link, it is necessary to calculate the power transfer at the converter terminals. For each converter,
the power transfer is calculated as follows:
𝑆𝑟𝑒𝑐𝑡 = 𝑉𝑟𝑒𝑐𝑡𝐼𝑙𝑖𝑛𝑒 + 𝑗𝑉𝑟𝑒𝑐𝑡𝐼𝑙𝑖𝑛𝑒 tan 𝜙𝑟𝑒𝑐𝑡 (10)
𝑆𝑖𝑛𝑣 = 𝑉𝑖𝑛𝑣𝐼𝑙𝑖𝑛𝑒 + 𝑗𝑉𝑖𝑛𝑣𝐼𝑙𝑖𝑛𝑒 tan 𝜙𝑖𝑛𝑣 (11)
where tan 𝜙𝑘 = 𝑠𝑔𝑛(𝑘)2𝑢𝑘+sin 2𝜃𝑘−sin 2{𝜃𝑘+𝑢𝑘}
cos 2𝜃𝑘−cos 2{𝜃𝑘+𝑢𝑘} (12)
𝑢𝑘 = cos−1{(2𝜋)𝑉𝑘
(3√2)𝑣𝑘− cos 𝜃𝑘} − 𝜃𝑘 (13)
such that 𝑠𝑔𝑛(𝑖𝑛𝑣) = −1, 𝑠𝑔𝑛 (𝑟𝑒𝑐𝑡) = 1, 𝑎𝑛𝑑 𝜃𝑘 is equal to the firing angle α or extinction
angle γ for the rectifier or inverter (respectively).
The converter-transformer, filters, compensators, and other interface elements can be
represented by a network which is easily translated into a matrix of equations to solve for unknown
voltages. A Newton-Raphson approach is used to solve for the unknown voltages and currents in
the network representation. Finally, a tap changer routine is used to update the taps of the
transformers accordingly. These calculations are also detailed in [3], and thus concludes the DC
subroutine of Sato and Arillaga’s method. Figure 4 shows a flow chart representation of the DC
subroutine.
19
Figure 4. Flow chart of Sato and Arillaga’s DC subroutine
20
2.2.2 Full Load Flow Routine
The full load flow routine depicted in Sato and Arillaga’s methodology for solving
integrated AC-DC power systems is based off an iterative sequential algorithm. First, the unknown
voltages and phases of the AC system are initialized. Using the initial guess, the DC subroutine
explained in the previous section is used to solve for the load flow through the HVDC link. The
HVDC link in the AC network is then replaced by power sources on the terminal buses equivalent
to the calculated power transfers from equations 10-13 (i.e. a power source of value equal to Srect
is connected to the rectifier end bus terminal, and a power source of value equal to Sinv is connected
to the inverter end bus terminal).
Once the substitution of the HVDC link is made for the equivalent power sources, Sato and
Arillaga allow two different approaches to solve for the bus voltages of the network. The first
approach, called the single loop approach, calls for only one iteration of a selected AC load flow
methodology (Gauss Seidel, Newton-Raphson, or Z-matrix method) to update the bus voltages
before returning to the DC subroutine. The single loop process of one DC subroutine followed by
one AC iteration repeats until convergence is met. The second approach, called a double loop
approach, calls for multiple iterations of the selected AC load flow methodology before returning
to the DC subroutine. The double loop process of one DC subroutine followed by several AC load
flow iterations repeats until system convergence is met. Note that convergence for either approach
is determined by a tolerance on the order less than or equal to 10-5, and is calculated as the
maximum change in voltage magnitude between one full load flow iteration. Figure 5 shows a
flow chart representation of the full load flow routine depicted in Sato and Arillaga’s methodology.
21
Figure 5. Flowchart of Sato and Arillaga’s full load flow routine
2.3 Modifications to Sato and Arillaga’s Method
A few modifications are now proposed to Sato and Arillaga’s method in order to increase
the speed of the algorithm, as well as allow it to be used for multi-link HVDC systems. A simplified
22
DC subroutine was developed to ensure an equivalence of load flow solution between a pure AC
network and an integrated AC-DC network and to reduce computation time. The double loop
approach was also used for the full load flow algorithm, with only the Gauss Seidel and Newton-
Raphson methods used to solve for the network bus voltages. A modified AC routine was also
included to deal with instances where the placement of HVDC links results in an “isolation” of a
bus, in which traditional AC load flow methods are incapable of calculating the bus voltage. The
following sections discuss the details of the modifications made to Sato and Arillaga’s method.
2.3.1 Simplified DC Load Flow Routine
For the purposes of this thesis, it is convenient to assume an ideal HVDC link capable
producing the same power flows as the original AC transmission line. By assuring the HVDC link
provides the same power flow, we eliminate non-convergence of the load flow algorithm due to
an infeasible demand by the HVDC link. As is, Sato and Arillaga’s improved simulation of an
HVDC link returns power flows close to, but not equivalent to, the exact power flows calculated
from a full AC load flow routine on the original AC power system. Thus, a simplified DC load
flow routine was utilized.
To ensure exactness, the original power flows of a pure AC network was first determined
using MATPOWER’s netwon raphson function, and stored in memory. For a specific transmission
line, the bus in which the power is flowing from (i.e. the negative line flow) was set as the rectifier
end of the HVDC link. Likewise, the bus in which the power was flowing to (i.e. the positive line
flow) was considered to be the inverter end. The impedance of the line was also stored in memory,
and thus we have now stored Srect, Sinv, and Rline.
23
Given the initialized bus voltages, the ac voltages on the high side of the converter
transformers can be calculated from the transformer tap positions. Using the number of tap
positions and the regulation range of the transformer, the tap position correlates to a percentage of
the low side voltage, which will be called the operating regulation. That is
𝑡 =𝑟𝑒𝑔𝑚𝑖𝑛+
𝑟𝑒𝑔𝑚𝑎𝑥−𝑟𝑒𝑔𝑚𝑖𝑛(#𝑜𝑓𝑡𝑎𝑝𝑠−1)
∗(𝑡𝑎𝑝𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛−1)
100 (14)
where regmin and regmax are the minimum and maximum regulation percentages of the
transformer, and t is the correlated percentage of low side voltage or operating regulation. The
initial tap position of the transformers is set such that the high side and low side voltages are
equivalent (i.e. t = 1). Using the newly calculated t values, the high side voltages can be calculated
as
𝑣𝑖𝑛𝑣,ℎ𝑖𝑔ℎ = 𝑣𝑖𝑛𝑣,𝑙𝑜𝑤 ∗ 𝑡𝑖𝑛𝑣 (15)
𝑣𝑟𝑒𝑐,ℎ𝑖𝑔ℎ = 𝑣𝑟𝑒𝑐,𝑙𝑜𝑤 ∗ 𝑡𝑟𝑒𝑐 (16).
Because we have the expected apparent powers Srect and Sinv, we are able to calculate the
DC current using the expected active powers taken as the real component of Srect and Sinv.
𝐼𝑙𝑖𝑛𝑒 = √||𝑃𝑟𝑒𝑐𝑡|−|𝑃𝑖𝑛𝑣||/𝑅𝑙𝑖𝑛𝑒 (17)
Using the calculated line current, the inverter and rectifier DC voltage can be calculated as follows:
24
𝑉𝑖𝑛𝑣 = 𝑃𝑖𝑛𝑣/𝐼𝑙𝑖𝑛𝑒 (18)
𝑉𝑟𝑒𝑐𝑡 = 𝑉𝑖𝑛𝑣 + 𝑅𝑙𝑖𝑛𝑒 ∗ 𝐼𝑙𝑖𝑛𝑒 (19)
From analysis of equation (17), it is clear that if the impedance of the line has a real part
equal to zero, such that the original transmission line has no resistance, a division of zero occurs.
Although in reality all transmission lines contain a resistance, data provided for the benchmark
power systems used in this thesis round down to zero for small numbers. To deal with this issue,
when the impedance values are stored in memory, all elements containing a zero real part are set
to a fictitious value of 0.001 p.u. This assures that the division of zero is avoided. Another issue
that may occur is that the original power flow of the AC transmission line would yield no real line
loss, or in other words, Prect = Pinv, and we obtain a zero line current. A loss of 0.2W is added to
all instances in which this issue would occur.
The power transfer at the converter terminals are calculated using equations (10-13). The
resulting values have a real part equal to the expected Pinv and Prect values. It is assumed that a
synchronous compensator or capacitor bank is included in the HVDC link which is able to balance
the imaginary component of Srect and Sinv to be equivalent to the original load flows. Techniques
to do this are discussed in Appendix A. Note that since the converter powers are forced to be equal
to the original load flow values, recalculating Srect and Sinv seems to be redundant. However, if one
wished to calculate the unknown voltages from the network representation of the converter
interface as explained in the original Sato and Arillaga DC subroutine, the values of the
compensator/capacitor power is needed alongside the power transfers at the converter terminals.
For this thesis, these values are not needed and thus not included in the modified routine.
25
As a final step, the tap positions of the transformers are updated. The new operating
regulation value is calculated as:
𝑡𝑖𝑛𝑣 = 𝑐𝑒𝑖𝑙 ( 𝑉𝑖𝑛𝑣+
3
𝜋𝑥𝑐,𝑖𝑛𝑣𝐼𝑙𝑖𝑛𝑒
3√2
𝜋cos(𝛾)∗|𝑣𝑖𝑛𝑣|
) 𝑥 100 (20)
𝑡𝑟𝑒𝑐 = 𝑐𝑒𝑖𝑙 ( 𝑉𝑟𝑒𝑐+
3
𝜋𝑥𝑐,𝑟𝑒𝑐𝐼𝑙𝑖𝑛𝑒
3√2
𝜋cos(𝛼)∗|𝑣𝑟𝑒𝑐|
) 𝑥 100 (21)
If the new operating regulation value is less than the minimum regulation, the tap position is set to
the lowest tap position as to not exceed the limitations of the transformer. Likewise, if the value is
greater than the maximum regulation, the tap is set to the highest tap position. Otherwise, the tap
is set to the corresponding position which allows the desired regulation value.
The modifications made to the DC subroutine to ensure the one-to-one correspondence
with the original power flows allow for a shorter DC subroutine time. Not only is the complexity
of the equations reduced, but also the optimization process of the operating voltage and the
Newton-Raphson approach to solve for the internal voltages are eliminated, further reducing the
computation time. Figure 6 details the simplified DC subroutine.
26
Figure 6. Simplified DC subroutine developed in this thesis
2.3.2 Isolated Bus Load Flow for AC Routine
Once the DC subroutine is complete for a particular HVDC link, the AC transmission line is
removed from the power system and power sources equivalent to the calculated power transfers
are placed on the bus terminals, as shown in Figure 7. For a single HVDC link, it is rare that an
issue occurs when an AC load flow method is run to update the bus voltages. All buses are
connected via AC transmission lines and thus all bus voltages can be updated via traditional
methods.
Figure 7. Power system with included HVDC link (left) and substitution of equivalent power
sources for AC routine (right)
27
However, this thesis is concerned with multiple point-to-point HVDC links throughout an
existing AC network. For a particular arrangement of HVDC links, such that all transmission lines
connected to a particular bus are now HVDC links, the substitution of equivalent power sources
will introduce an isolated bus to the network, as shown in Figure 8. Although the bus is not actually
isolated (as in the HVDC links still connect the bus to the rest of the system), AC load flow
methods are not capable of solving for the isolated bus voltage. This introduces an issue with Sato
and Arillaga’s method when solving multi-link systems. A simple modification of the AC load
flow methods is able to deal with the issue of isolated buses.
Figure 8. Power system with multiple HVDC links tied to one bus (left) resulting in
isolated bus during substitution (right)
From the load flow solution of the power system prior to the inclusion of HVDC links, the
generation, load, and voltage into a bus are all known values. Using this, we are able to calculate
the equivalent impedance of the i’th bus as follows:
𝑍𝑏𝑢𝑠,𝑖 =𝑉𝑏𝑢𝑠,𝑖
2
𝑆𝑔𝑒𝑛,𝑖+𝑆𝑙𝑜𝑎𝑑,𝑖 (22)
28
If a bus has no generator and load, such that the denominator of equation (22) would be zero, the
denominator is set to a value of 1 ensuring the calculation of an equivalent impedance. A flag is
also assigned to these buses indicating that there is no attached generation and load. All equivalent
impedances for each bus are stored in memory. Now if an isolation occurs, a separate subroutine
is used to calculate the voltage of the isolated bus as follows:
𝑉𝑏𝑢𝑠,𝑖 = √𝑍𝑏𝑢𝑠,𝑖 ∗ (−𝑆𝑖𝑛𝑗𝑒𝑐𝑡𝑖𝑜𝑛𝑠,𝑖) (23)
where Sinjections are the sum of the power transfer of the converters. Regarding the flagged buses,
Sinjecctions would be equivalent to zero, and thus to ensure equation (23) results in the correct bus
voltage, Sinjections is set to -1.
2.3.3 Full Double Loop Approach
Sato and Arillaga stated in their results that between the two full load flow methodologies,
the double loop approach provided a much faster convergence [3]. This is because the multiple
iterations of AC load flow completed before returning to the DC subroutine updates the bus
voltages such that the DC subroutine is capable of calculating more accurate power transfers at the
converter terminals. Also stated in the paper is that the iteration count is high enough, a converged
AC load flow may occur.
Leveraging of Sato and Arillaga’s findings, it is clear that full convergence of an AC load
flow method to update the bus voltages should be done before returning to the DC subroutine.
Thus, instead of using a high-iteration count in the double loop approach, it was decided that as
many iterations required for convergence should be completed before returning to the DC
subroutine. This assures that redundant iterations of AC load flow are not performed, as well as
29
assuring the best approximation of bus voltages is provided before returning to the DC subroutine,
ultimately providing a much faster convergence as explained by Sato and Arillaga. Figure 9 details
the modified Sato and Arillaga’s method used in this thesis.
30
Figure 9. Modified Sato and Arillaga’s Full Load Flow Method
31
2.3.4 Example Case: Grainger and Stevenson’s 4-Bus System
Several different power systems are available in MATPOWER’s database. The simplest of
the power systems is a 4-Bus system used in “Power System’s Analysis” by Grainger and
Stevenson [6]. Figure 10 shows the layout of the power system and Tables 1 and 2 list the power
system details, with a bases of 100MVA and 230kV.
Figure 10. One-line diagram for Grainger and Stevenson’s 4-bus system
Table 1. Line Data for Grainger and Stevenson’s 4-Bus System
From bus
To bus
G (per unit)
B (per unit)
Shunt Total Charging (Mvar)
Shunt Y/2 (per unit)
1 2 3.815 -19.08 10.25 0.05125 1 3 5.170 -25.85 7.750 0.03875 2 4 5.170 -25.85 7.750 0.03875 3 4 3.024 -15.12 12.75 0.06375
Table 2. Bus Data for Grainger and Stevenson’s 4-Bus System
Bus Generated
P (MW) Generated Q (Mvar)
Load P (MW)
Load Q
(Mvar) V
(per unit) Bus
Type
1 - - 50 30.99 1 + 0j Slack 2 0 0 170 105.35 1 + 0j PQ 3 0 0 200 123.94 1 + 0j PQ 4 318 - 80 49.58 1 + 0j PV
32
The first step in the load flow algorithm is to calculate the load flows of the original
unaltered AC power system and store them in memory. This is done using MATPOWER’s
Newton-Raphson function. Leveraging off the calculated voltages, the equivalent impedances are
found using equation 22. The results of the load flow are summarized in Tables 3 and 4, and the
calculated equivalent impedances are found in Table 5.
Table 3. Calculated Bus Data from Load Flow Solution of 4-Bus System
Bus Generated
P (MW) Generated Q (Mvar)
Load P (MW)
Load Q (Mvar)
V magnitude (per unit)
V phase (deg)
Bus Type
1 186.81 114.5 50 30.99 1 0 Slack 2 0 0 170 105.35 0.982 -0.976 PQ 3 0 0 200 123.94 0.969 -1.872 PQ 4 318 181.43 80 49.58 1.02 1.523 PV
Table 4. Calculated Line Flows from Load Flow Solution of 4-Bus System
From Bus To Bus P (MW) Q (Mvar)
1 2 38.69 22.3 1 3 98 61.21 2 1 -38 -31.24 2 4 -132 -74.11 3 1 -97 -63.57 3 4 -103 -60.37 4 2 133 74.92 4 3 104.75 56.93
33
Table 5. Equivalent Impedances of 4-Bus System
Bus Equivalent Impedance (per
unit)
1 0.5325 - 0.3241j 2 -0.4013 + 0.2680j 3 -0.3248 + 0.2319j 4 0.3439 - 0.1673j
Now that the expected power flows and equivalent impedances are stored in memory, a
replacement of one transmission line for an HVDC link is made. In particular, the line connecting
bus 3 and bus 4 is replaced as shown in Figure 11. Parameters for the HVDC link are shown in
Table 6. The parameters were chosen such that it would be a rare occurrence for the HVDC link
to be incapable of operating at the desired power settings. It should be noted that all HVDC links
in this thesis have the same parameters.
Figure 11. One-line diagram of 4-Bus system with HVDC link connecting bus 3 and 4
34
Table 6. HVDC Parameters
Parameter Inverter (values)
Rectifier (values)
Initial Tap Position 16 16 Number of Taps 31 31
Minimum Regulation (%) 85 85 Maximum Regulation (%) 115 115
Delay/Extinction (degrees) 10 10 Minimum Delay/Extinction
(degrees) 10 10 Amplification Factor (p.u) 53.71 53.71
Commutation Reactance, Xc, (p.u) 0.07275 0.07275
Once the substitution is made, the modified Sato and Arillaga method is now run to obtain
the load flow results of the system using the Newton Rapshon method for the AC routine. Keeping
the current layout of the power system, the next substitution is made for the line connecting bus 2
and bus 4, and a load flow result is obtained with the two links in place. The procedure is continued
for a HVDC link substitution for line connecting bus 1 and bus 3, followed by substitution of the
last remaining line. The results of each of the load flows is detailed in Table 7 and Table 8. As
shown, the calculated voltages and load flows are equivalent to those of the original AC system in
Tables 3 and 4, showing that the modified methodology works as desired.
Table 7. Calculated Bus Voltages for Systems with HVDC Links
Voltage Magnitude at Bus # (p.u) Voltage Angle at Bus # (degrees)
# of HVDC Links 1 2 3 4 1 2 3 4
1 1 1 1 1 0 0 0 0
2 0.982 0.982 0.982 0.982 -0.976 -0.976 -0.976 -0.976
3 0.969 0.969 0.969 0.969 -1.872 -1.872 -1.872 -1.872
4 1.02 1.02 1.02 1.02 1.523 1.523 1.523 1.523
35
Table 8. Calculated Converter Powers and Line Flows for Systems with HVDC Links
Converter Powers (MW)
1 HVDC Link 2 HVDC Links 3 HVDC Link 4 HVDC Link
Rectifier Bus
Inverter Bus Rectifier Inverter Rectifier Inverter Rectifier Inverter Rectifier Inverter
4 3 104.74 102.91 104.74 102.91 104.74 102.91 104.74 102.91 4 2 - - 133.25 131.53 133.25 131.53 133.25 131.53 1 3 - - - - 98.117 97.086 98.117 97.086 1 2 - - - - - - 38.691 38.465
AC Line Flows
From Bus To Bus P(MW) Q(Mvar) P(MW) Q(Mvar) P(MW) Q(Mvar) P(MW) Q(Mvar)
1 2 38.69 22.29 38.69 22.29 38.69 22.29 - - 2 1 -38.46 -31.23 -38.46 -31.23 -38.46 -31.23 - - 1 3 98.11 61.21 98.11 61.21 - - - - 3 1 -97.08 -63.56 -97.08 -63.56 - - - - 2 4 -131.53 -74.113 - - - - - - 4 2 133.25 74.91 - - - - - -
2.3.5 Ordering of HVDC Link Substitutions
It is clear that the order of substitutions of transmission lines for HVDC links can vary. For
the 4-bus system described in the previous section there are 24 different orderings for the
substitutions. For an N-line system, there are N! different permutations of the orderings. As the
size of the system grows, the number of permutations grows drastically.
It was found that certain orderings caused a non-convergence of the load flow algorithm.
These orderings were such that the substitutions of power sources for the AC routine resulted in
multiple disjoint sub-systems, as depicted in Figure 12. Because there are multiple disjoint sub-
systems, a traditional AC load flow method is required to solve for each sub-system. However, it
is not guaranteed that the load flow of the sub-systems can be solved for. Some sub-systems may
contain no generator buses to serve as the slack bus, while others may just have an inadequate
slack bus capable of supporting the AC load flow method.
36
Figure 12. Placement of HVDC links (left) resulting in multiple disjoint sub-systems (right)
To deal with this issue, it was decided that all orderings which resulted in disjoint sub-systems
would be avoided by finding the minimum spanning tree of the connected buses using MATLAB’s
built in functions. The minimum spanning tree of a power system is a subset of all the transmission
lines which uses the minimum amount of lines required to connect all buses in the system, such
that removal of one line in the minimum spanning tree results in two systems, as shown in Figure
13.
Figure 13. Example of minimum spanning tree in which removal of line results in two systems
37
All remaining lines not contained in the minimum spanning tree are links, and permutations
of the links can be done such that disjoint sub-systems are not formed if a substitution is made for
any ordering of the links. Once all the transmission lines considered to be links are replaced with
HVDC links, the lines furthest from the identified slack node are removed, forming isolated buses.
This assures that no disjoint systems are formed and an adequate slack is provided to support the
AC load flow of the remaining larger system. As such, the ordering of any power system is detailed
in Figure 14. The number of different permutations is now equivalent to M!, where M is the
number of links in the power system.
Figure 14. Ordering of HVDC Link Substitutions
It should be noted that there may exist multiple minimum spanning trees for a particular power
system. However, MATLAB’s graphminspantree function returns only one solution determined
by Prim’s algorithm, and this is used as the minimum spanning tree for the ordering of substitutions
of HVDC links.
38
3 CONVERGENCE ANALYSIS OF LOAD FLOW FOR
DIFFERENT POWER SYSTEMS
3.1 Overview
One of the deliverables of this thesis is the investigation of the influence of multiple HVDC
links on the rate of convergence of different load flow methods. However, it should be mentioned
that the rate of convergence is also influenced by the power system size. Depending on the number
of transmission lines and buses, there may be influences on the number of iterations required for
convergence. Specifically, the total time for the entire load flow, the time devoted to the DC
subroutine, the time for the entire AC load flow method, the time for the isolated bus load flow,
and the time for the connected power system AC load flow (i.e. Gauss Seidel or Newton Raphson)
were measured. The number of full load flow iterations and the number of AC load flow iterations
were also measured. A better understanding of the routines being measured can be obtained by
inspection of Figure 9.
Numerous different power systems can be found in MATPOWER’s database. As mentioned
in the previous chapter, Grainger and Stevenson’s 4-Bus system is the simplest and was used to
test the load flow analysis tool. In addition to the 4-Bus system, the IEEE 9-Bus system, IEEE 14-
Bus system, IEEE 30-Bus system and IEEE 118-Bus system were used as test cases. By using
these systems of varying sizes and substituting lines for HVDC links, similar trends amongst the
systems as well as unique trends (i.e. dependent to the system architectures) could be found
regarding the rate of convergence. Data for the power systems can be found in MATPOWER’s
casefiles [21] and are shown in Appendix B. Code written can be found in Appendix C.
Although there are several ways to quantify convergence, this thesis looks into the number
of iterations and the solution time as metrics for the convergence analysis. Plots were generated
39
using these metrics with respect to the number of HVDC links in a system. Because the program
was run on a personal PC, fluctuations in convergence times occurred between runs of the same
orderings due to non-processor isolation. To overcome this, 500 trials of the same run were
averaged together for systems with only one set ordering (i.e 4-bus and 9-bus). It was also found
that the different orderings due to the permutation of the link transmission lines led to similar
trends with negligible differences, and thus only the first 500 orderings were used and averaged
together for systems with multiple orderings (i.e 14-bus, 30-bus, and 118-bus), also reducing the
error from the non-processor isolation. This chapter details the findings for the various power
systems.
3.2 Grainger and Stevenson’s 4-Bus System
Grainger and Stevenson’s 4-Bus system which is depicted in Figure 10 was mainly used as
a test system to ensure the validity of the load flow analysis tool. It is a radial system with two
generators. The system only has four transmission lines to be replaced with HVDC links, and thus
the minimum spanning tree to connect all four buses is three lines. Due to the ordering scheme
explained in section 2.3.5, only one ordering of substitutions for HVDC links is determined: line
connecting buses 3 and 4, then 2 and 4, 1 and 3, and finally 1 and 2. This ordering results in the
second generator bus being isolated after the second HVDC link is placed and the slack bus being
isolated at the 4th HVDC link.
The time it takes to run the load flow method using the Newton-Raphson method and Gauss
Seidel method for the AC routine is shown in Figure 15. As shown, there are three main
components to the partition of the total time: the time for the AC routine (i.e. Newton-Raphson or
40
Gauss Seidel), the time for the DC subroutine, and the time for additional computation (i.e.
processing of variables for the program).
Figure 15. Time diagram for full load flow routine of 4-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine
With regards to the total time, it is shown that there is an increase of 1.2% in total time for
the Newton-Raphson method when the 1st HVDC link is placed and 1% when the 2nd HVDC link
is placed. The 3rd HVDC link results in a decrease of 6.5% in total time, followed by a dramatic
80% decrease. For the Gauss Seidel method, there is a 5.9% increase in total time for the 1st HVDC
link, followed by a decrease of 21.5%, 7.2%, and 78.8% for the 2nd, 3rd, and 4th HVDC links
respectively. Also, in comparison of the two methods it seems as if the Newton-Raphson approach
is slightly faster than the Gauss Seidel approach as expected.
From inspection of the plots, it is clear that the total time is dominated by the AC routine.
This is confirmed by the dramatic decrease in total time when all the transmission lines are replaced
with HVDC links, and the non-iterative AC load flow routine for isolated buses and the DC
41
subroutine are dominant in the algorithm. Both the DC subroutine and additional computation
make (at most) 20% of the total time. However, it should be noted that the spike in DC time which
occurs at 1 HVDC link is a resultant of the creation of DC subroutine variables. Declaring the
variables prior to the load flow routine would eliminate the spike causing the total time to follow
a trend similar to the AC routine.
An interesting phenomena is the spike in the time required for the AC routine once the first
transmission line in the minimum spanning tree is substituted for an HVDC link for the Newton-
Raphson method. For Grainger and Stevenson’s 4-bus system this occurs at 2 HVDC links since
the minimum spanning tree contains three transmission lines and there are only four total
transmission lines in the system. Looking at Figure 15, it can be calculated that the total increase
in AC time is about 11.6%. In contrast, utilizing the Gauss Seidel method for the AC routine results
in the largest decrease (not including the jump from one remaining AC transmission line to full
HVDC transmission) of approximately 18.8% once the minimum spanning tree is reached. The
point where the minimum spanning tree is reached is also when a generator bus is isolated. Also
noted is the decrease in AC time once more lines in the minimum spanning tree are replaced for
either AC load flow methodology.
The timing partition of the AC routine can be found in Figure 16. It is clear that the total
AC time is dominated by the load flow of the remaining connected power system (i.e. system
buses) up until all buses are isolated, in which the isolated bus routine is the only routine taking
time. Because the isolated bus subroutine is algebraic equations, there is minimal time required to
do the calculations. The extra time deals with the processing of variables for the AC routine.
42
Figure 16. Time plot for AC load flow routine of 4-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine
An explanation for the trends described for the system buses portion of the AC routine has
to do with the iterative process of the numerical methods. The number of iterations for the methods
required for convergence is shown in Figure 17. When the first HVDC link is included, the number
of AC iterations remains constant, while the total time for the system bus routine decreases for the
Newton-Raphson method. This is because the admittance matrix is now sparser (due to the removal
of a line) and therefore the jacobian is sparser. MATPOWER is a toolbox for MATLAB which
leverages off sparseness of matricies for faster computation, resulting in the reduction in time.
Once the minimum spanning tree is reached with the second HVDC link, the number of iterations
increases dramatically resulting in an increase in time (i.e. more iterations leads to more
computation time). A decrease in time is again seen at the 3rd HVDC link because of the increased
sparseness of the jacobian.
43
Figure 17. Iteration plots for full load flow method and AC load flow routine of 4-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d)
The Gauss Seidel method utilizes a different approach to load flow which is sensitive to
the amount of non-zero terms in the admittance matrix. More iterations are required for
convergence once 1 HVDC link is included, resulting in the increase in total time for the system
bus routine. When the minimum spanning tree is reached, the number of iterations drops drastically
because the calculation of one bus is removed entirely, and the remaining equations all drop one
term (i.e. terms concerning bus 4). This is why there is a drastic drop in time as well. The third
44
HVDC link results in another isolation and thus another removal of an equation, causing the
continued decrease in iteration count and time.
It is shown that the choice of AC routine does not affect the number of full load flow
iterations required for convergence. In fact, it is shown that for the 4-bus system, 2 full load flow
iterations are required for convergence up until the system consists entirely of HVDC links, when
only 1 iteration is required. This is probably due to the full convergence of the AC routine prior to
returning to the DC subroutine. Only 1 iteration is required for a system consisting entirely of
HVDC links because the AC routine for isolated buses utilizes the expected final voltages when
calculating the equivalent impedance.
3.3 IEEE 9-Bus System
The IEEE 9-Bus system shown in Figure 18 is a radial system with three generators and 9
transmission lines. The minimum spanning tree of the system consists of 8 transmission lines to
connect the 9 buses. Thus, due to the ordering scheme described in section 2.3.5, only the following
ordering is considered: 7-8, 2-8, 6-7, 3-6, 8-9, 5-6, 4-9, 4-5, and 1-4. It should be noted that the
first generator bus is isolated after the 2nd HVDC link and the second generator bus after the 4th
HVDC link, with the slack generator isolated at the 9th HVDC link.
In addition, the following plots (and plots for larger systems) should be taken as discretized
data. Although the plots are portrayed as continuous, data was only gathered for integer values of
HVDC links. It was chosen to remove the data markers for aesthetic reasons, and to ensure the rate
of change in convergence was emphasized for increased HVDC link transmission.
45
Figure 18. IEEE 9-Bus System [22]
The total time for the load flow method to converge for the 9-bus system follows similar
trends as the 4-bus system for both the Newton-Raphson and Gauss Seidel methods for the AC
routine as shown in Figure 19. The total time remains dominated by the AC routine and follows
the trend strongly. Time allocated for the DC subroutine remains under 2ms although the system
size increases, while the time for the AC routine increased. It is easier to see now that there are
more transmission lines that the time allocated for the DC subroutine has an overall increasing
trend. Again, it is shown that the Newton-Raphson method is superior in required time for
convergence in comparison to the Gauss Seidel method. Also noted is the spike in total time and
AC time for the Newton-Raphson method once the minimum spanning tree is reached at 2 HVDC
links. Unlike the 4-bus system, the Gauss Seidel method does not contain the largest decrease in
total time once the minimum spanning tree is met.
46
Figure 19. Time diagram for full load flow routine of 9-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine
The partition of the total AC routine time for the 9-bus system is shown in Figure 20. Again
the timing is dominated by the system bus routine with the isolated bus routine taking up negligible
time. It is recognized that there seems to be four different pieces to both AC routine plots once
HVDC links are introduced. The pieces occur at 1 to 2 HVDC links, 2 to 4 HVDC links, 4 to 8
HVDC links and then 8 to 9 HVDC links. This is clearly seen in the plot for the Gauss Seidel
method as the slope for the total AC time subtly changes for these sections from a decrease of
0.00399 s/link, to 0.0066 s/link, to 0.001461 s/link, and finally to 0.006188 s/link. For the Newton-
Raphson method, the slope changes from an increase of 0.001344 s/link, to a decrease of 0.002085
s/link, to a decrease of 0.000733 s/link, to a decrease of 0.00634 s/link. The end point of these
pieces of plot are also representative of the isolation of generator buses at 2 HVDC links, 4 HVDC
links, and 9 HVDC links.
47
Figure 20. Time plot for AC load flow routine of 9-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine
Further analysis of the iteration plots for the 9-bus system show similar pieces of plot as
seen in Figure 21. The Gauss Seidel method contains the exact same pieces of plot for the number
of AC load flow iterations as compared to the AC time partition. It should be noted however that
the spike which occurred in the 4-bus system when the first HVDC link was introduced is not seen
for the 9-bus system. Instead, there is only a decrease in iteration count as more HVDC links are
included. This leads to a similar trend in total AC time.
48
Figure 21. Iteration plots for full load flow method and AC load flow routine of 9-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d)
The plot for the number of iterations required for convergence of the Newton-Raphson
method shows a different trend than the AC time plot. However, the resulting iteration plot still
coincides with the AC time plot – the number of iterations jumps at 2 HVDC links resulting in the
spike in AC time, and increased sparsity of the Jacobian occurs as more HVDC links are included
resulting in the time decrease although the number of iterations remains somewhat constant.
49
Also noted from Figure 21 is that the number of full load flow iterations follows a trend
similar to the 4-Bus system. Two full load flow iterations are required for convergence regardless
of the number of links, up until the system consists soley of HVDC links when only one full load
flow iteration is required.
3.4 IEEE 14-Bus System
The IEEE 14-Bus system shown in Figure 22 was used as the test case for Sato and
Arillaga’s paper [3]. It contains in total 5 generator buses (i.e. slack, one generator, and three
condensors) and 20 transmission lines. The minimum spanning tree is 13 lines in total, and thus a
system with 8 or more HVDC links results in isolations. There are 7 link transmission lines and
thus 7! different orderings. Generator bus isolations occur at 10 HVDC links, 16 HVDC links, 18
HVDC links, and 20 HVDC links.
Figure 22. IEEE 14-Bus System [23]
50
The time partition plots for the 14-bus system shown in Figure 23. Although subtle, there
is a slight increase in time (4.1%) for the Newton-Raphson plots and a decrease in time (23%) in
the Gauss Seidel plots of total time once the minimum spanning tree is reached. The DC time for
both methods still contains the spike in time once the first link is introduced. For both the AC time
and DC time, it is shown that the time essentially doubles once the 14th HVDC link is put into
place. This has to do with the iteration counts which will be explained later.
Figure 23. Time diagram for full load flow routine of 14-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine
Plots of the AC time partition for the 14-bus system are shown in Figure 24. The Gauss
Seidel method plot highlights some key events that occur from substitution of for HVDC links. A
general increase in time occurs prior to the minimum spanning tree being met at the 8th HVDC
link. The first generator bus is isolated at the 10th link which results in a change of slope. Subtle
changes in slope also occur at 16 and 18 HVDC links, which result in the other generator buses
being isolated. For the Newton-Raphson method, an increase in time occurs at the 8th HVDC link,
51
and subtle changes in slope are seen at the points where generation buses are isolated. More
apparent changes in slope are not seen as it was in the 9-bus and 4-bus system for either AC
method, which may indicate that the isolation of a generator bus in which the generation is
produced by a condenser contributes less influence on the convergence time in comparison to a
generator.
Figure 24. Time plot for AC load flow routine of 14-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine
A key point to make is the difference in simulation time of the modified algorithm in
comparison to Sato and Arillaga’s original method [3]. Sato and Arillaga utilized the 14-bus
system and replaced only the line connecting bus 4 and 5 with an HVDC link. This resulted in a
30% increase in simulation time, which Sato and Arillaga state occurs for the substitution of any
line with an HVDC link. For this analysis, the line connecting bus 4 and 5 is replaced as the 5th
HVDC link. For the Gauss Seidel method, this resulted in an increase of 9.5% in time while the
Newton-Raphson resulted in a 0.31% increase in time. Also, the substitution of one HVDC link
52
results in a decrease in total time of 5.5% for the Gauss Seidel method and an increase in total time
of 3.7% for the Newton-Raphson method. Clearly the modified algorithm results in a faster
simulation time.
The iteration plots seen in Figure 25 explain why the time doubles at the 14th HVDC link.
As shown, the number of full-load flow iterations jumps to 2, in order for the methodology to
converge, resulting in the increase in time. Also shown is the repeated occurrence that once the
minimum spanning tree is met at 8 HVDC links, more iterations are required for convergence for
the Newton-Raphson method, and less iterations for the Gauss Seidel method
Figure 25. Iteration plots for full load flow method and AC load flow routine of 14-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d)
53
3.5 IEEE 30-Bus System
The IEEE 30-Bus system shown in Figure 26 is a standard for both load flow and voltage
stability studies. It contains 41 transmission lines and 6 generators. At 13 HVDC links, the
minimum spanning tree for the system is reached and bus isolations occur. Generator buses are
isolated at 15, 19, 24, 27, and 41 HVDC links (with the slack and a generator being removed at 41
links).
Figure 26. IEEE 30-Bus System [24]
Figure 27 shows the time partition plots for the 30-Bus system. Looking at the plot for the
Newton-Raphson method, the convergence patterns seen in the previous power systems are
confirmed. Again, the total time follows a trend similar to the AC time. Total DC time increases
54
linearly as more links are introduced. The drop in DC time at the last link is due to the drop in full
loadflow iteration count as will be discussed shortly. An interesting take away from the Newton-
Raphson plot is the curvature of the total time. It seems to increase up until a certain point
(approximately 24 links) and then start to decrease. From inspection of the AC and DC times, it
seems as if the hypothesis that although the timing for the DC subroutine increases with the number
of links, the AC routine is able to take advantage of reduced equations and matricies as the buses
are isolated resulting in an overall decrease in total time.
Figure 27. Time diagram for full load flow routine of 30-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine
Regarding the Gauss Seidel method, it should be noted that the algorithm did not converge
for 4 HVDC links to 14 HVDC links. This is expected to occur for larger power systems, as the
Gauss Seidel method is less reliable than the Newton-Raphson method when it comes to
convergence to a solution. Interestingly, the method is able to converge once an isolation of the
first generator occurs at 15 HVDC links. Overall, a decreasing trend in total time is seen. It is also
55
shown that the total time taken is considerably higher in comparison to the Newton-Raphson
method approach, but retains competitive timing once the system contains a high percentage of
HVDC links.
From inspection of the AC time partition plots for the 30-bus system in Figure 28, it is
shown that the methods retain the spikes and changes in slopes caused by the isolation of a
generation bus. At 13 HVDC links, there is a clear increase in the timing required for the isolated
buses (seen easily for the Newton-Raphson method) as well as an increase in time required for the
Newton-Raphson method to converge. No conclusions can be derived for the Gauss Seidel method
regarding the minimum spanning tree due to the non-convergence of the methodology.
Figure 28. Time plot for AC load flow routine of 30-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine
It is also interesting to see the first instance in where the total time taken for the system
buses is larger than the time allotted for extra computation. At 13 HVDC links, the timing for the
extra computation begins to decrease somewhat linearly, indicating a direct relationship to the
56
number of remaining connected buses in the power system. Because of the system size, it is easier
to see the relationship in comparison to the previous smaller power systems.
The iteration plots for the 30-bus system are seen in Figure 29. As shown, the number of
full load flow iterations is consistent at 2 up until the last HVDC link when it drops to 1 iteration.
This explains the drop in total time as well as the drop in DC time as previously discussed. Also
shown is the spike in AC load flow iterations for the Newton-Raphson approach at 13 HVDC
links, which again corresponds to the first isolation from the minimum spanning tree of the system.
Comparing Figure 28 and 29, it is clear that the number of iterations resulted in a jump in AC time
at 13 HVDC links. However, because the number of iterations is consistent for the full load flow
and AC load flow portions (for the Newton-Raphson method), there is further support for the
hypothesis that the equations describing the remaining connected network result in the trends
shown for the total time. In other words, the curvature of the plots is not affected by the number
of iterations and thus is strictly based on the math.
57
Figure 29. Iteration plots for full load flow method and AC load flow routine of 30-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d)
3.6 IEEE 118-Bus System
The IEEE 118-Bus system shown in Figure 30 is a large power system which pushes the
limits of load flow solvers. For instance, for the base case starting from flat start, MATPOWER
solves the system using the Newton-Raphson approach in 30ms, which is 50% more time than
required for the 30-bus system. MATPOWER also is unable to solve for the system using the
Gauss Seidel approach (i.e. non-convergence).
58
Figure 30. IEEE 118-Bus System [25]
The 118-Bus system contains 186 transmission lines and 54 generator buses. 35 of the 54
generators supply only reactive power. Also unique to this system in comparison to the previous
systems are multiple transmission lines connecting the same buses (ex. two transmission lines
connecting buses 42 and 49). It should be noted that the ordering scheme described in section 2.3.5
was not coded to take into account multiple transmission lines connecting the same buses. Instead,
the ordering scheme removes the lines consecutively and considers both lines to be a part of the
minimum spanning tree. Thus, there are 119 minimum spanning tree branches plus 2 “extra”
59
transmission lines sizing the minimum spanning tree at 121 lines. This means there are 65 links
and therefore isolations that occur starting at 66 HVDC links.
Only 150 orderings were used as data for the 118-bus system due to the length of time
required for the program to calculate and save the data. All orderings provided similar results and
thus it seemed plausible to gather data for 150 instead of the 500. Results for the timing partition
of the full load flow method of the 118-bus system are shown in Figure 31.
Figure 31. Time diagram for full load flow routine of 118-bus system using (a) the Newton-
Raphson method and (b) Gauss Seidel method for the AC routine
As shown in Figure 31, the total time follows a trend similar to the AC routine. Because
there are so many link transmission lines (i.e. 65 in total) it is easier to see a decrease in AC routine
time and an increase in DC time as more transmission lines are removed for the Newton-Raphson
plot. It is also shown that at 66 HVDC links the spike in time which occurs due to the beginning
of bus isolations is present for the Newton-Raphson method. A drop of 32% in total time (and a
drop in all other timings) is seen at 141 HVDC links and is a result of iteration count as will be
60
discussed later. Also noticed is the curvature of the plot – a general increase in time is seen up until
about 134 HVDC links where the total time begins to decrease. This is similar to the findings in
the 30-bus system.
The Gauss Seidel method did not converge for 0 to 163 HVDC links. Convergence is
achieved at 164 HVDC links where the system has reduced considerably in size (only 21 AC
transmission lines remain). A downward trend is seen in the total time for the Gauss Seidel method
because of the previously mentioned reduction in terms for the load flow equations. The timing
for the Gauss Seidel method does not become competitive until the end, however closer analysis
shows that the Newton-Raphson method still converges faster.
A further breakdown of the AC timing for the 118-bus system is shown in Figure 32.
Shown again is the linear decrease in extra computation time for the AC routine with regards to
the Newton-Raphson method. Also shown is the negligible time allotted for the isolated bus routine
in comparison to the time required for the system buses calculations. Although it seems as if the
Gauss Seidel method requires less extra computation time, attention should be drawn to the scale
of the timing – both methods are somewhat equivalent for extra and system bus time. From
inspection of the plots, it seems as if the dynamics regarding the system size dominates any
dynamics regarding the isolation of a generator bus and thus is not needed to be discussed further.
61
Figure 32. Time plot for AC load flow routine of 118-bus system using (a) the Newton-Raphson
method and (b) Gauss Seidel method for the AC routine
Figure 33 details the iteration plots for the 118-bus system. As previously mentioned, the
drop in time at 141 links is a result of full load flow iterations. Also, the spike in time at the
minimum spanning tree is also a result of the increased amount of AC iterations for the Newton-
Raphson method.
62
Figure 33. Iteration plots for full load flow method and AC load flow routine of 118-bus system
using Newton-Raphson method (a and b) and Gauss Seidel method (c and d)
3.7 Summary of Convergence Properties
It was found that the placement of multiple HVDC links directly effects the convergence
time of the load flow method. For instance, placement of HVDC links which result in disjoint
power systems will most likely lead to non-convergence. Also, an increase in convergence time is
seen once the first bus is isolated from the rest of the system due to placement of the links (i.e. an
isolation from the minimum spanning tree of a power system). If an isolation of generator bus
occurs, there will be a change in the convergence time. For larger systems, it is also seen that
63
although the convergence time increases as more isolations occur, there exists a point where the
timing peaks, and the decreased amount of connected buses starts to downtrend in required time
for convergence. Also, the total time is greatly influenced by the AC load flow methodology.
64
4 DEVELOPMENT OF AN ENHANCED LOAD FLOW
SOLVER
4.1 Overview
This chapter deals with leveraging off the findings from the previous test cases to develop
an enhanced load flow solver capable of determining the load flows of a multi-link power system.
In particular, the load flow solver looks at the percentage of DC transmission in the system as a
determining factor of what load flow solver to use for the AC routine. The enhanced load flow
solver is then applied to the 14 bus system and the results are compared to the previous load flow
method.
Only the Newton-Raphson and Gauss Seidel methods were looked into in this thesis. It
should be noted that this method is robust in the sense that if the convergence properties (i.e. time,
computation, and iteration) of another method are determined as in Chapter 2 and 3, it can be
integrated into the enhanced load flow solver easily. Only a comparison needs to be made between
the load flow methods to determine which methodology is optimal for the certain percentage of
DC transmission.
4.2 Convergence of Modified Sato and Arillaga’s Method in Terms of
Percent DC Transmission
From inspection of the convergence plots in Chapter 3, it is clear that the Newton-Raphson
method out performs the Gauss Seidel method in terms of minimizing convergence time for the
full load flow method and reducing iteration count for majority of the case studies. A bar graph
depiction of the comparison of the two methodologies for convergence time with respect to
65
percentage of DC transmission is shown in Figure 34. Percentage of DC transmission was
calculated as the number of HVDC links divided by the total amount of transmission lines (Ex. 1
HVDC link for Granger and Stevenson’s 4-bus system yields 25%). The size of the bar determines
how many times the certain methodology had faster full load flow convergence.
Figure 34. Comparison of Gauss Seidel method to Newton-Raphson method in regards to faster
convergence time with respect to percentage of DC transmission
As shown in Figure 34, the Newton-Raphson method out performs the Gauss Seidel
method in all percentages of DC transmission. However, it should be noted that the Gauss Seidel
method becomes competitive as the percentage of DC transmission increases. Specifically, it is
shown that the Gauss Seidel method converges faster than the Newton-Raphson method 41.53%
of the time when at least 90% of the transmission is via HVDC links. During these instances,
convergence is on average 1.1ms faster, with a maximum of being 186ms faster.
0 10 20 30 40 50 60 70 80 90 1000
500
1000
1500
2000
2500
%DC Transmission
Num
ber
of
Ord
eri
ng
s
Frequency of Faster Convergence Time of Load Flow
Newton Raphson
Gauss Seidel
66
It should be stated that the Gauss Seidel is known to require less memory for storage in
comparison to the Newton-Raphson method [6]. This is mainly because the Jacobian does not need
to be recalculated and stored every iteration for the Gauss Seidel method. Because memory storage
is of consideration for load flow methods, a 41.53% opportunity to save memory storage while
obtaining faster convergence is considered to be a good enough reason to choose the Gauss Seidel
method over the Newton-Raphson method for power systems containing over 90% DC
transmission.
4.3 Enhanced Load Flow Solver Algorithm
The algorithm for the enhanced load flow solver is actually a simple modification of the already
modified Sato and Arillaga’s method explained in Chapter 2. Prior to calculating the load flow of
the system, the number of HVDC links and the total number of transmission lines in are used to
determine the percentage of DC transmission. Leveraging off that, the optimum AC methodology
for the AC routine is chosen to minimize both the convergence time and memory requirements,
with a priority given to convergence time. As previously stated, at over 90% DC transmission, the
Gauss Seidel method becomes competitive with the Newton-Raphson method with regards to
speed of convergence. Thus, only one if statement is added which states if %DC transmission is
greater than or equal to 90%, use the Gauss Seidel method, else use the Newton-Raphson method.
The algorithm is depicted in Figure 35. The algorithm was coded in MATLAB and can be found
in Appendix C.
67
Figure 35. Enhanced Load Flow Solver algorithm.
68
4.4 Results of Enhanced Load Flow Solver
The IEEE 14-Bus power system was used as the test system for the Enhanced Load Flow
solver. It was chosen because it is the medium sized system used in this thesis as well as the fact
that the inclusion of every HVDC link increases the total percentage of DC transmission by 5%.
The Enhanced Load Flow solver was applied to the first 500 orderings of the 14-bus system. Again,
the results are all similar and were averaged together to reduce error from non-processor isolation.
The convergence time and iteration count for the load flow method using only Gauss Seidel, the
load flow method using only Newton-Raphson, and for the Enhanced Load Flow is detailed in
Table 9.
Table 9. Convergence Time and Iteration Data for Load Flow of IEEE 14-Bus System
Number of AC Iterations Full Convergence Time (s)
Number of Links %DC
Gauss Seidel
Newton-Raphson
Enhanced Load Flow
Gauss Seidel
Newton-Raphson
Enhanced Load Flow
0 0 103 2 2 0.0273 0.0080 0.0082 1 5 93 2 2 0.0258 0.0083 0.0081 2 10 110 2 2 0.0288 0.0071 0.0071 3 15 115 2 2 0.0294 0.0074 0.0072 4 20 122 2 2 0.0310 0.0074 0.0073 5 25 136 2 2 0.0339 0.0075 0.0071 6 30 152 2 2 0.0370 0.0071 0.0072 7 35 166 2 2 0.0398 0.0072 0.0073 8 40 134 3 3 0.0323 0.0075 0.0074 9 45 70 3 3 0.0195 0.0076 0.0076
10 50 70 3 3 0.0185 0.0076 0.0078 11 55 45 3 3 0.0144 0.0076 0.0077 12 60 33 3 3 0.0121 0.0077 0.0079 13 65 30 3 3 0.0115 0.0078 0.0080 14 70 32 4 4 0.0180 0.0140 0.0147 15 75 17 4 4 0.0156 0.0142 0.0142 16 80 17 4 4 0.0159 0.0142 0.0141 17 85 12 4 4 0.0150 0.0141 0.0147 18 90 9 4 9 0.0147 0.0144 0.0144 19 95 8 3 8 0.0140 0.0139 0.0143 20 100 1 1 1 0.0043 0.0042 0.0040
69
As shown in Table 9, the algorithm can be confirmed as working correctly by inspection
of the iteration count. The Enhanced Load Flow has the same iteration count as the Newton-
Raphson method (highlighted in green) up until the %DC reaches 90%, where the iteration count
matches the Gauss Seidel method (highlighted in yellow). Convergence time is not equivalent
because of the error due to the non-processor isolation being included in the averaging of the 500
orderings. However, it can be seen that the Enhanced load flow solver has an average time similar
to the Newton-Raphson method up until 18 HVDC links when it again follows the Gauss Seidel
pattern. From inspection of the last three rows of Table 9 (i.e. when the %DC is at least 90%), it
can be seen how competitive the timings are between the Newton-Raphson and Gauss Seidel
methods. Although at 95% DC transmission the Enhanced Load Flow gives a convergence time
higher than the Newton-Raphson and Gauss Seidel method, the difference in timing is on the order
of microseconds and is attributed yet again to the non-processor isolation.
Although memory requirements are not directly recorded, the time per iterate can be
calculated by a simple division using the data in Table 9. It can be shown that the Gauss Seidel
method and Enhanced Load Flow solver provide a smaller time per iterate which is indicative of
the memory requirements. Since the total time is competitive and the time per iterate is smaller
(indicating a smaller memory requirement), it is confirmed that the Enhanced Load Flow solver
optimizes for both memory and time at these high DC percentages while prioritizing the
convergence time at lower DC percentages.
70
5 APPLICATION OF ENHANCED LOAD FLOW SOLVER ON
VOLTAGE STABILITY
5.1 Overview
Load flow solvers are used in several different applications in power system engineering.
One of the main concerns of power system engineers is the security and stability of a power system
to ensure reliable power is delivered and blackouts do not occur. As the system load is increased,
there begins to be a stress on the generators which begin to reach their limitations. Buses also begin
to reach a maximum loading point in which the voltage begins to collapse. This point is nicknamed
the “tip of the nose curve” as depicted in Figure 36.
Figure 36. Generic P-V curve
Load flow solvers are used to generate the P-V curve of a particular bus of a power system.
A load flow is run to calculate the bus voltages as the load is increased. However, as the maximum
loadability point is approached, it becomes increasingly more difficult for load flow solvers to
71
achieve convergence. In fact, the Newton-Raphson method is unable to converge for points near
the tip of the nose curve due to the increased singularity of the Jacobian. For closest point near the
maximum loadabilty point in which the Newton-Raphson method converges, the time for
convergence is considerably large.
This chapter explores the influence of using the Enhanced Load Flow solver for voltage
stability studies. The hypothesis is that because substitutions for AC transmission lines are made
with equivalent power sources, a reduced power system is solved for leading to a decrease in
convergence time. In addition, the isolation of the heavily loaded bus from the power system may
result in less of a convergence time increase when the minimum spanning tree is reached. Also
looked into is the influence of selecting particular lines for HVDC substitution with regards to the
amount of power being transmitted over the line to the heavily loaded bus. In particular, the voltage
stability of the IEEE 30-Bus system was looked into.
5.2 HVDC Link Substitutions Based On Transmission Power Magnitude
To create a stressed system, the load at bus 10 for the IEEE-30 Bus system was increased
until convergence was not achieved using MATPOWER’s built in Newton-Raphson method. Bus
10 is normally loaded at 5.8 + 2.0j MVA. It was found that increasing the active power of the load
at bus 10 beyond 165MW (while keeping the reactive power at the original 2 MVar) resulted in
non-convergence and thus was utilized as the test case scenario. Similarly, increasing the reactive
power of the load beyond 170MVar (while keep the active power at the original 5.8 MW) resulted
in non-convergence. The calculated load flows of the transmission lines connected to bus 10 are
depicted in Table 10. MATPOWER’s Newton-Raphson method converged in 0.07s and 0.08s for
the maximum active power and maximum reactive power loads (respectively).
72
Table 10. Stressed System Load Flow for Lines Connected to Bus 10 of IEEE 30-Bus System
Bus 10 Power = 165 + 2j MVA Bus 10 Power = 5.8 + 170j MVA
Bus Number From Bus Injection To Bus Injection
From Bus Injection To Bus Injection
From Bus
To Bus
P (MW)
Q (Mvar)
P (MW)
Q (Mvar)
P (MW)
Q (Mvar)
P (MW)
Q (Mvar)
6 10 38.75 -1 -38.75 11.48 0.25 32.16 -0.25 -24.6 9 10 67.81 -13.79 -67.81 20.09 0.43 47.59 -0.43 -43.04
10 20 -9.12 2.02 9.21 -1.81 3.64 -13.37 -3.25 14.27 10 17 -22.3 7.38 22.48 -6.87 1.31 -18.85 -1.07 19.48 10 21 -15.34 -26.08 15.66 26.82 -4.68 -43.06 5.94 46 10 22 -11.68 -16.88 12.02 17.6 -5.39 -27.08 6.59 29.64
Utilizing the results in Table 10, the HVDC link parameters are set for the lines connected
to bus 10. Six different orderings were looked into: substitutions for HVDC links delivering the
least to most active power, least to most reactive power, least to most apparent power, and the
opposite orderings (i.e. most to least). As with the convergence studies performed in Chapter 3 of
the thesis, reduction of error due to non-processor isolation was reduced by the averaging of 500
runs of each ordering. Figures 37 and 38 show plots of the resulting full load flow convergence
times for the different orderings.
73
Figure 37. Full load flow convergence times for maximum active power load
Figure 38. Full load flow convergence times for maximum reactive power load
74
From inspection of Figures 37 and 38, it is clearly shown that the average convergence time
for the load flow of a system with HVDC links connected to the heavily loaded bus is considerably
less than a full Newton-Raphson load flow method. In fact, up to a 75% decrease in time can be
achieved by substitutions of HVDC links. An explanation of this derives from the findings in
Chapter 3 in which the substitution of lines not connected to the minimum spanning tree of the
system normally result in a decrease in AC convergence time for the Newton-Raphson method.
Because the percent DC transmission is less than 90% for the power system, the Newton-Raphson
method is the chosen methodology for the AC routine by the Enhanced Load Flow solver, and thus
follows a similar pattern. Mathematically speaking, the decrease in time is due to the increased
sparsity of the Y-Bus matrix alongside the unneeded calculation of the injected power flows from
the HVDC link (since the HVDC link is set to deliver the original power injection calculated).
It is also shown that the ordering of the substitutions of HVDC links does not impact the
convergence times greatly. As shown in Figures 37 and 38, all orderings of substitutions lie around
the same convergence times. Minor fluctuations and differences can be attributed to the error
caused by the non-processor isolation. Removal of the line delivering the largest amount of active
power, reactive power, or apparent power does not create a larger decrease in convergence time.
Substitutions at which majority of the delivered active power, reactive power, or apparent power
are now done by DC transmission also does not create a drastic change in convergence time.
5.3 Substitution Orderings with Heavily Loaded Bus as First Isolation
Utilizing the same stressed scenario with bus 10 as the heavily loaded bus (described in the
previous section) a HVDC substitution ordering was made with bus 10 as the furthest bus from the
slack bus in the minimum spanning tree. In doing so, the heavily loaded bus is the first bus to be
75
isolated from the system. Figure 39 depicts the minimum spanning tree used for this ordering, and
was created from sheer inspection of the IEEE 30-Bus system.
Figure 39. Minimum spanning tree for IEEE 30-Bus system with heavily loaded bus 10
The convergence plots for the total time partition and AC time partition are shown in
Figures 40 and 41. From inspection of the plots, it is seen that regardless of how bus 10 is brought
to a heavy loading point (i.e. reactive or active power increase) the plots follow a similar trend.
Also, all trends previously mentioned in Chapter 3 for the non-stressed systems are retained.
Because the Enhanced Load Flow method is used, a spike in convergence time is seen at around
76
37 links when 90% of the transmission is via HVDC links and the Gauss Seidel method is used.
Since the system is stressed, the Gauss Seidel method takes a longer time to converge.
Figure 40. Time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b)
Figure 41. AC time partition plot for heavily loaded bus 10 – with large active power (a) and
large reactive power (b)
77
In comparison to the plots made for the base case load flow study (Figures 27 and 28) one
major difference is seen. Once the minimum spanning tree is reached at 13 HVDC links, the
convergence time starts to increase until a certain point is reached (approximately 24 HVDC links)
where the decreased system size results in a decrease in convergence time. This occurs for both
the stressed system and base case. However, the difference in total convergence time between the
24th (approximate peak) and 13th HVDC link (when minimum spanning tree is reached) for the
base case is 3ms while the stressed case yields 2.25ms, a 25% decrease in time when the system
is stressed. With respect to the AC time devoted to the system buses calculation, the stressed case
yields a difference in time of 2.075ms while the base case yields 3.028ms, a 31.47% decrease in
time when the system is stressed. This confirms the hypothesis that the isolation of the heavily
loaded bus results in a smaller increase in convergence time when the minimum spanning tree is
reached.
To further confirm the hypothesis, a second scenario where bus 30 is heavily loaded was
looked into. Figure 42 shows the minimum spanning tree used for this ordering. By increasing the
load to 82.5 + 1.9j MVAR (highest allowable active power) or 10.6 + 62j MVAR (highest
allowable reactive power), the system is considered to be stressed.
78
Figure 42. Minimum spanning tree for IEEE 30-Bus system with heavily loaded bus 30
Figures 43 and 44 show the convergence plots for the stressed system with a heavy load
on bus 30. In comparison to the base case plots, the peak of the curvature resulting from the
isolation of buses is again lower. Specifically, the stressed system yields a difference of total time
(between links 24 and 13) of 2.57ms which is approximately 15% less than the base case. For the
AC time devoted to the system buses, the stressed system yields a time difference of 2.24ms which
is approximately 26% less than the base case.
79
Figure 43. Time partition plot for heavily loaded bus 10 – with large active power (a) and large
reactive power (b)
Figure 44. AC time partition plot for heavily loaded bus 10 – with large active power (a) and
large reactive power (b)
80
6 CONCLUSION
6.1 Summary of Thesis Work
A load flow analysis tool was developed which determines the effects of the inclusion of
multiple HVDC links on the convergence properties of particular load flow methods. This tool
utilizes a simplified DC subroutine based off Sato and Arillaga’s method and maximizes the
efficiencies explained by Sato and Arillaga to ensure only the influence of multiple links on the
AC routine is determined.
Using the load flow analysis tool, convergence patterns were determined from analysis of
HVDC link substitutions on Grainger and Stevenson’s 4-bus system and the IEEE 9-bus, 14-bus,
30-bus, and 118-bus systems. It was found that the placement of HVDC links was a key factor in
the convergence time. For instance, if multiple HVDC links were placed such that two disjoint
power systems were formed – the load flow methods would not converge to a solution. Also, when
enough transmission lines are replaced such that a bus isolation has to occur, a spike in
convergence time is usually present. The isolation of generator buses usually effects convergence
time in some way as well, although only when the generator supplies active power. In addition,
for large systems it is shown that the convergence time peaks at a certain amount of DC
transmission and begins to decrease. This pattern is not a factor of iteration count and thus is
concluded to be a resultant of solution methodology (i.e. less terms and sparser matricies leading
to faster convergence).
Overall, the Newton-Raphson method is superior in comparison to the Gauss Seidel method
when calculating the load flows. However, when the power system has 90% of transmission done
via HVDC links, the Gauss Seidel method becomes competitive in time with the Newton-Raphson
method. Leveraging off this finding, an Enhance Load Flow solver was developed to optimize for
81
speed, but also reduce memory requirements once a system architecture has enough DC
transmission to allow for Gauss Seidel to be utilized. It was shown that the Enhanced Load Flow
solver was faster and produced a lower time-per-iterate value in comparison to Sato and Arillaga’s
method utilizing only one load flow method.
Finally, the application of the Enhanced Load Flow solver on voltage stability was looked
into. It was found that the substitution of HVDC links for lines connected to the heavily loaded
bus results in a large decrease in convergence time for the load flow method in comparison to a
traditional Newton-Raphson approach. Also, it was shown that there is minimal variation in the
convergence time depending on the selection of transmission line substitution (Ex. the line
delivering the most active power vs the line delivering the least). The isolation of the heavily
loaded bus also results in a less steep curvature of the trend seen when the minimum spanning tree
is met.
6.2 Potential Future Work
There are several avenues to extend the work presented in this thesis. One of the most
obvious is the inclusion of additional load flow methods within the AC routine of the Enhanced
Load Flow solver. An analysis similar to what was described in Chapter 2 can be performed to
compare the convergence properties of the other load flow methodologies to see at what percentage
of DC transmission would the methods would be more beneficial. The inclusion of these additional
load flow methods would increase the optimality of the algorithm. It is recommended that the work
be performed using an isolated processor to ensure background noise does not introduce error into
the results.
82
The Enhanced Load Flow solver could also be modified to utilize the full Sato and Arillaga
DC subroutine, instead of the simplified version described in this thesis. Including this portion
would increase the amount of time required for the DC subroutine, but also provide more realistic
results since controllability of the links is included as well as in depth calculations of the load flows
for the terminal interfaces. The introduction of competition between multiple HVDC links
(connected to the same bus) to control the bus voltage would also become a factor for the
methodology.
An analysis could be performed utilizing a different ordering scheme. Although it was found
that all orderings retained similar trends for a particular power system, the basis of the orderings
all used the same minimum spanning tree. The minimum spanning tree utilized for each power
system was constant due to MATLAB’s functionality, although there exists several different
permutations of spanning trees. It was shown in Chapter 5 that different minimum spanning trees
for stressed systems yielded slight variations in trends, however was attributed more to the
isolation of the heavily loaded bus. Utilizing a different minimum spanning tree for the orderings
may lead to new insights on the convergence properties for load flow of multi-link HVDC systems.
The substitution of HVDC links which lead to multiple sub-systems resulted in non-
convergence of the load flow method. However, this was not looked into much detail as for an N-
bus system containing M transmission lines, there exists M! permutations of orderings. It was
assumed that all instances of orderings in which multiple sub-systems occurred resulted in non-
convergence, due to the alarming amount of non-convergences which occurred due to it. However,
not all instances were looked at. An avenue of research could be the determination of what size of
sub-system results in the non-convergence (whether it be bus size, amount of load, generation to
load ratio, etc).
83
Finally it is most important to leverage off this thesis work to determine the impacts of
HVDC link placement in existing power networks. It was shown that load flow convergence is
effected by the placement of the links, in particular because of the isolation of buses and the
creation of sub-systems. The impacts of replacing transmission lines which carry large amounts of
power with HVDC links, as well as the impacts of replacing transmission lines which have high
variation in transmitted power (depending on the forecasted load) with HVDC links should be
looked into. Load flow only calculates the steady-state voltages and power flows – taking this
thesis work and extending it to the effects on dynamic changes is a good next step.
84
LIST OF REFERENCES
[1] R. T. H. Alden and F. A. Qureshy, “HVDC – A review of applications and systems analysis
methods”, Volume: 9, Issue 4, Page 139-145, Canadian Electrical Engineering Journal,
October 1984.
[2] V. Akhmatov, M. Callavik, C. M. Franck, S.E. Rye, T. Ahndorf, M. K. Bucher, H. Muller, F.
Schettler, and R. Wiget, “Technical Guidelines and Prestandarization Work for First HVDC
Grids”, Volume 29, Issue 1, Page 327-335. IEEE Transactions on Power Delivery, October
2013.
[3] H. Sato and J. Arrillaga, “Improved load-flow techniques for integrated a.c.-d.c. systems”,
Volume 116, Issue 4, Page 525-532. Proceedings of the Institution of Electrical Engineers,
April 1969.
[4] M. H. Nguyen, T. K. Saha, and M. Eghbal, “A comparative study of voltage stability for long
distance HVAC and HVDC interconnections”, Page 1-8, 2010 IEEE Power and Energy
Society General Meeting, July 2010.
[5] A. E. Hammad and W. Kuhn, “A Computation Algorithm for Assessing Voltage Stability at
AC/DC Interconnections”, Volume: PER-6, Issue: 2, Page 45-46, IEEE Power Engineering
Review, February 1986.
[6] J. Grainger and W. Stevenson, Power System Analysis, McGraw-Hill Inc, United States of
America, 1994.
[7] J.B. Ward and H.W. Hale, “Digital computer solution of power-flow problems”, Volume 75,
No 3, Page 398-404, Power Apparatus and systems, Part III. Transactions of the American
Institute of Electrical Engineers, January 1956.
[8] W.Tinney and C.Hart, “Power flow solution by newton’s method”, Volume: PAS-86, No 11,
Page 1449-1460, IEEE Transactions on Power Apparatus and Systems, November 1967.
[9] B. Stott and O. Alsac, “Fast decoupled load flow”, Volume: PAS-93, No.3, Page 859-869,
IEEE Transactions on Power Apparatus and Systems, May 1974.
85
[10] N. Mohan, T. M. Undeland, and W. P. Robbins, Power Electronics: Converters,
Applications and Design, John Wiley & Sons Inc, United States of America, 2003.
[11] J. Arrillaga, High Voltage Direct Current Transmission, The Institution of Electrical
Engineers, London, United Kingdom, 1998.
[12] E. Uhlmann, “Representation of an h.v.d.c. link in a network analyser’, Cigre, Paris, Paper
404, 1960.
[13] I.E. Barker, B.A. Carré, “Load flow calculations for systems containing h.v.d.c. links”, IEE
Conference, Publ 22, Pages 115-118, 1966.
[14] J. Arrillaga and P. Bodger, “Integration of h.v.d.c. links with fast-decoupled load-flow
solutions”, Volume 124, Issue 5, Page 463-468. Proceedings of the Institution of Electrical
Engineers, May 1977.
[15] H.A. Sanghavi and S.K. Banerjee, “Load flow analysis of integrated AC-DC power
systems”, Page 746-751. TENCON 89’, Fourth IEEE Region 10 International Conference,
November 1989.
[16] D.A. Braunagel, L.A. Kraft, and J.L Whysong, “Inclusion of DC converter and transmission
equations directly in a Newton power flow”, Volume: 95, Issue: 1, IEEE Transactions on
Power Apparatus and Systems, January 1976.
[17] J. Reeve, G. Fahny, and B. Stott, “Versatile load flow method for multiterminal HVDC
systems”, Volume 96, Issue 3, Page 925-933, IEEE Transactions on Power Apparatus and
Systems, May 1977.
[18] H. Fudeh and C.M. Ong, “A Simple and Efficient AC-DC Load-Flow Method for
Multiterminal DC Systems”, Volume: PAS-100, Issue:11, Page 4389-4396, IEEE
Transactions on Power Apparatus and Systems, November 1981.
[19] C.M. Ong and A. Hamzei-nejad, “A General-Purpose Multiterminal DC Load-Flow”,
Volume: PAS-100, Issue:7, Page 3166-3174, IEEE Transactions on Power Apparatus and
Systems, July 1981.
86
[20] M.M. El-Marsafawy and R.M. Mathur, “A New Fast Technique for Load-Flow Solution of
Integrated Multi-Terminal DC/AC Systems”, Volume: PAS-99, Issue:1, Page 246-255, IEEE
Transactions on Power Apparatus and Systems, January 1980.
[21] http://www.pserc.cornell.edu/matpower/
[22] http://www.emeraldinsight.com/content_images/fig/1740250406025.png
[23] http://power.elec.kitami-it.ac.jp/ueda/demo/WebPF/14bus.jpg
[24] http://fglongatt.org/OLD/TEST%20SYSTEMS/IEEE_30/IEEE_30bus.png
[25] http://fglongatt.org/OLD/TEST%20SYSTEMS/IEEE_118/IEEE_118bus_2.JPG
87
APPENDIX
APPENDIX A: Additional Information about HVDC Links
A.1 Calcluation of Vx, Vy, and Ids
The following are a series of calculations assuming an optimum tap with constant-power
control. The equations are detailed in Sato and Arillaga’s paper [3] and are restated here for
convenience.
The operating voltage Vx is the intersection of the rectifier constant current characteristic
and invertor constant margin angle characteristic. It is obtained from the power setting as follows:
𝑉𝑥 = −𝐴𝑟𝑒𝑐𝑡(𝐼𝑥 − 𝐼𝑑𝑠𝑟𝑒𝑐𝑡) (A1)
𝑉𝑥 = 𝑣𝑖𝑛𝑣 cos 𝛾 −3
𝜋𝑋𝑖𝑛𝑣𝐼𝑥 + 𝑅𝑑𝑐𝐼𝑥 (A2).
By eliminating Ix from equations (A1) and (A2), the operating voltage Vx can be found by
following the following equation:
𝑉𝑥(𝐾2𝑋𝑖𝑛𝑣 − 𝑅𝑙𝑖𝑛𝑒 − 𝐴𝑟𝑒𝑐𝑡) + 𝐴𝑟𝑒𝑐𝑡𝑣𝑖𝑛𝑣 cos(𝛾) −𝐴𝑟𝑒𝑐𝑡3
𝜋𝑋𝑖𝑛𝑣 − 𝑅𝑙𝑖𝑛𝑒𝐼𝑑𝑠𝑟𝑒𝑐𝑡 = 0 (A3)
The following relation holds between the current and power settings:
𝑃𝑑𝑠 = 𝑉𝑥𝐼𝑑𝑠𝑟𝑒𝑐𝑡 (A4)
Substituting equation (A4) into (A3):
88
𝑉𝑥2(𝐾2𝑋𝑖𝑛𝑣 − 𝑅𝑙𝑖𝑛𝑒 − 𝐴𝑟𝑒𝑐𝑡) + 𝐴𝑟𝑒𝑐𝑡𝑣𝑖𝑛𝑣 cos(𝛾)𝑉𝑥 −𝐴𝑟𝑒𝑐𝑡(
3
𝜋𝑋𝑖𝑛𝑣 − 𝑅𝑙𝑖𝑛𝑒)(𝑃𝑑𝑠) = 0 (A5)
which can be solved for Vx using the quadratic formula.
Once the operating voltage Vx is found, the operating current Ix can be found by
substitution back into equation (A2).
Ids is the current setting and is a function of the power settings and operating voltage. That
is:
𝐼𝑑𝑠𝑟𝑒𝑐𝑡 = 𝑃𝑑𝑠/𝑉𝑥 (A6)
Vy, the maximum obtainable voltage, can be found using the following equation:
𝑉𝑦 = 𝐴𝑟𝑒𝑐𝑡(𝐴𝑖𝑛𝑣𝑃𝑑𝑚 + 𝑅𝑙𝑖𝑛𝑒𝑃𝑑𝑠)/(𝑉𝑥(𝐴𝑟𝑒𝑐𝑡 + 𝐴𝑖𝑛𝑣 + 𝑅𝑙𝑖𝑛𝑒)) (A7).
The optimum operating voltage can then be found using the constrained optimization equation
depicted in equations (9a) and (9b).
89
A.2 Reactive Power for HVDC Links
The converter terminals of an HVDC link absorb a large amount of reactive power. The
reactive power demand increases with increasing power transfer level. A large percentage of this
reactive power draw is provided by the harmonic filters. In fact, for a 60-Hz fundamental frequency
power system, the per-phase reactive power supplied by the filters is approximated by the
following equation [10]:
𝑄𝑓 = 377𝐶𝑓𝑉𝑠2 (A8)
where Qf is the reactive power supplied by the filter, Cf is the capacitance of the filter, and Vs is
the rms phase voltage applied across the filters.
The capacitors utilized for the AC-side filtering of the harmonics are chosen such that the
reactive power supplied never exceeds the reactive power demand of the converters when
operating under minimum power transmission. This assures over voltage does not occur. In order
to compensate for higher reactive power demand by the converters at higher power transmission
levels, additional capacitors are put in place parallel to the AC side filter. These capacitors are
switched on by a means of mechanical contactors if additional reactive power is demanded by the
converter terminals.
90
APPENDIX B: Power System Data in MATPOWER Format
B.1 Data for Grainger and Stevenson’s 4-Bus System
%% MATPOWER Case Format : Version 2 mpc.version = '2';
%%----- Power Flow Data -----%% %% system MVA base mpc.baseMVA = 100;
%% bus data % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax
Vmin mpc.bus = [ 1 3 50 30.99 0 0 1 1 0 230 1 1.1 0.9; 2 1 170 105.35 0 0 1 1 0 230 1 1.1 0.9; 3 1 200 123.94 0 0 1 1 0 230 1 1.1 0.9; 4 2 80 49.58 0 0 1 1 0 230 1 1.1 0.9; ];
%% generator data % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2
Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf mpc.gen = [ 4 318 0 100 -100 1.02 100 1 318 0 0 0 0 0 0 0 0
0 0 0 0; 1 0 0 100 -100 1 100 1 0 0 0 0 0 0 0 0 0 0
0 0 0; ];
%% branch data % fbus tbus r x b rateA rateB rateC ratio angle
status angmin angmax mpc.branch = [ 1 2 0.01008 0.0504 0.1025 250 250 250 0 0 1 -360 360; 1 3 0.00744 0.0372 0.0775 250 250 250 0 0 1 -360 360; 2 4 0.00744 0.0372 0.0775 250 250 250 0 0 1 -360 360; 3 4 0.01272 0.0636 0.1275 250 250 250 0 0 1 -360 360; ];
91
B.2 Data for IEEE 9-Bus System
%% MATPOWER Case Format : Version 2 mpc.version = '2';
%%----- Power Flow Data -----%% %% system MVA base mpc.baseMVA = 100;
%% bus data % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax
Vmin mpc.bus = [ 1 3 0 0 0 0 1 1 0 345 1 1.1 0.9; 2 2 0 0 0 0 1 1 0 345 1 1.1 0.9; 3 2 0 0 0 0 1 1 0 345 1 1.1 0.9; 4 1 0 0 0 0 1 1 0 345 1 1.1 0.9; 5 1 90 30 0 0 1 1 0 345 1 1.1 0.9; 6 1 0 0 0 0 1 1 0 345 1 1.1 0.9; 7 1 100 35 0 0 1 1 0 345 1 1.1 0.9; 8 1 0 0 0 0 1 1 0 345 1 1.1 0.9; 9 1 125 50 0 0 1 1 0 345 1 1.1 0.9; ];
%% generator data % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2
Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf mpc.gen = [ 1 0 0 300 -300 1 100 1 250 10 0 0 0 0 0 0 0 0
0 0 0; 2 163 0 300 -300 1 100 1 300 10 0 0 0 0 0 0 0 0
0 0 0; 3 85 0 300 -300 1 100 1 270 10 0 0 0 0 0 0 0 0
0 0 0; ];
%% branch data % fbus tbus r x b rateA rateB rateC ratio angle
status angmin angmax mpc.branch = [ 1 4 0 0.0576 0 250 250 250 0 0 1 -360 360; 4 5 0.017 0.092 0.158 250 250 250 0 0 1 -360 360; 5 6 0.039 0.17 0.358 150 150 150 0 0 1 -360 360; 3 6 0 0.0586 0 300 300 300 0 0 1 -360 360; 6 7 0.0119 0.1008 0.209 150 150 150 0 0 1 -360 360; 7 8 0.0085 0.072 0.149 250 250 250 0 0 1 -360 360; 8 2 0 0.0625 0 250 250 250 0 0 1 -360 360; 8 9 0.032 0.161 0.306 250 250 250 0 0 1 -360 360; 9 4 0.01 0.085 0.176 250 250 250 0 0 1 -360 360; ];
%%----- OPF Data -----%% %% area data % area refbus mpc.areas = [
92
1 5; ];
%% generator cost data % 1 startup shutdown n x1 y1 ... xn yn % 2 startup shutdown n c(n-1) ... c0 mpc.gencost = [ 2 1500 0 3 0.11 5 150; 2 2000 0 3 0.085 1.2 600; 2 3000 0 3 0.1225 1 335; ];
93
B.3 Data for IEEE 14-Bus System
%% MATPOWER Case Format : Version 2 mpc.version = '2';
%%----- Power Flow Data -----%% %% system MVA base mpc.baseMVA = 100;
%% bus data % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax
Vmin mpc.bus = [ 1 3 0 0 0 0 1 1.06 0 0 1 1.06 0.94; 2 2 21.7 12.7 0 0 1 1.045 -4.98 0 1 1.06 0.94; 3 2 94.2 19 0 0 1 1.01 -12.72 0 1 1.06 0.94; 4 1 47.8 -3.9 0 0 1 1.019 -10.33 0 1 1.06 0.94; 5 1 7.6 1.6 0 0 1 1.02 -8.78 0 1 1.06 0.94; 6 2 11.2 7.5 0 0 1 1.07 -14.22 0 1 1.06 0.94; 7 1 0 0 0 0 1 1.062 -13.37 0 1 1.06 0.94; 8 2 0 0 0 0 1 1.09 -13.36 0 1 1.06 0.94; 9 1 29.5 16.6 0 19 1 1.056 -14.94 0 1 1.06 0.94; 10 1 9 5.8 0 0 1 1.051 -15.1 0 1 1.06 0.94; 11 1 3.5 1.8 0 0 1 1.057 -14.79 0 1 1.06 0.94; 12 1 6.1 1.6 0 0 1 1.055 -15.07 0 1 1.06 0.94; 13 1 13.5 5.8 0 0 1 1.05 -15.16 0 1 1.06 0.94; 14 1 14.9 5 0 0 1 1.036 -16.04 0 1 1.06 0.94; ];
%% generator data % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2
Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf mpc.gen = [ 1 232.4 -16.9 10 0 1.06 100 1 332.4 0 0 0 0 0 0
0 0 0 0 0 0; 2 40 42.4 50 -40 1.045 100 1 140 0 0 0 0 0 0 0 0
0 0 0 0; 3 0 23.4 40 0 1.01 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 6 0 12.2 24 -6 1.07 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 8 0 17.4 24 -6 1.09 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; ];
%% branch data % fbus tbus r x b rateA rateB rateC ratio angle
status angmin angmax mpc.branch = [ 1 2 0.01938 0.05917 0.0528 9900 0 0 0 0 1 -360 360; 1 5 0.05403 0.22304 0.0492 9900 0 0 0 0 1 -360 360; 2 3 0.04699 0.19797 0.0438 9900 0 0 0 0 1 -360 360; 2 4 0.05811 0.17632 0.034 9900 0 0 0 0 1 -360 360; 2 5 0.05695 0.17388 0.0346 9900 0 0 0 0 1 -360 360; 3 4 0.06701 0.17103 0.0128 9900 0 0 0 0 1 -360 360;
94
4 5 0.01335 0.04211 0 9900 0 0 0 0 1 -360 360; 4 7 0 0.20912 0 9900 0 0 0.978 0 1 -360 360; 4 9 0 0.55618 0 9900 0 0 0.969 0 1 -360 360; 5 6 0 0.25202 0 9900 0 0 0.932 0 1 -360 360; 6 11 0.09498 0.1989 0 9900 0 0 0 0 1 -360 360; 6 12 0.12291 0.25581 0 9900 0 0 0 0 1 -360 360; 6 13 0.06615 0.13027 0 9900 0 0 0 0 1 -360 360; 7 8 0 0.17615 0 9900 0 0 0 0 1 -360 360; 7 9 0 0.11001 0 9900 0 0 0 0 1 -360 360; 9 10 0.03181 0.0845 0 9900 0 0 0 0 1 -360 360; 9 14 0.12711 0.27038 0 9900 0 0 0 0 1 -360 360; 10 11 0.08205 0.19207 0 9900 0 0 0 0 1 -360 360; 12 13 0.22092 0.19988 0 9900 0 0 0 0 1 -360 360; 13 14 0.17093 0.34802 0 9900 0 0 0 0 1 -360 360; ];
%%----- OPF Data -----%% %% generator cost data % 1 startup shutdown n x1 y1 ... xn yn % 2 startup shutdown n c(n-1) ... c0 mpc.gencost = [ 2 0 0 3 0.0430293 20 0; 2 0 0 3 0.25 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; ];
95
B.4 Data for IEEE 30-Bus System
%% MATPOWER Case Format : Version 2 mpc.version = '2';
%%----- Power Flow Data -----%% %% system MVA base mpc.baseMVA = 100;
%% bus data % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax
Vmin mpc.bus = [ 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 2 2 21.7 12.7 0 0 1 1 0 135 1 1.1 0.95; 3 1 2.4 1.2 0 0 1 1 0 135 1 1.05 0.95; 4 1 7.6 1.6 0 0 1 1 0 135 1 1.05 0.95; 5 1 0 0 0 0.19 1 1 0 135 1 1.05 0.95; 6 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 7 1 22.8 10.9 0 0 1 1 0 135 1 1.05 0.95; 8 1 30 30 0 0 1 1 0 135 1 1.05 0.95; 9 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 10 1 5.8 2 0 0 3 1 0 135 1 1.05 0.95; 11 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 12 1 11.2 7.5 0 0 2 1 0 135 1 1.05 0.95; 13 2 0 0 0 0 2 1 0 135 1 1.1 0.95; 14 1 6.2 1.6 0 0 2 1 0 135 1 1.05 0.95; 15 1 8.2 2.5 0 0 2 1 0 135 1 1.05 0.95; 16 1 3.5 1.8 0 0 2 1 0 135 1 1.05 0.95; 17 1 9 5.8 0 0 2 1 0 135 1 1.05 0.95; 18 1 3.2 0.9 0 0 2 1 0 135 1 1.05 0.95; 19 1 9.5 3.4 0 0 2 1 0 135 1 1.05 0.95; 20 1 2.2 0.7 0 0 2 1 0 135 1 1.05 0.95; 21 1 17.5 11.2 0 0 3 1 0 135 1 1.05 0.95; 22 2 0 0 0 0 3 1 0 135 1 1.1 0.95; 23 2 3.2 1.6 0 0 2 1 0 135 1 1.1 0.95; 24 1 8.7 6.7 0 0.04 3 1 0 135 1 1.05 0.95; 25 1 0 0 0 0 3 1 0 135 1 1.05 0.95; 26 1 3.5 2.3 0 0 3 1 0 135 1 1.05 0.95; 27 2 0 0 0 0 3 1 0 135 1 1.1 0.95; 28 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 29 1 2.4 0.9 0 0 3 1 0 135 1 1.05 0.95; 30 1 10.6 1.9 0 0 3 1 0 135 1 1.05 0.95; ];
%% generator data % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2
Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf mpc.gen = [ 1 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0
0 0 0; 2 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0
0 0 0; 22 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0
0 0 0 0;
96
27 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0
0 0 0 0; 23 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0
0 0 0; 13 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0
0 0 0; ];
%% branch data % fbus tbus r x b rateA rateB rateC ratio angle
status angmin angmax mpc.branch = [ 1 2 0.02 0.06 0.03 130 130 130 0 0 1 -360 360; 1 3 0.05 0.19 0.02 130 130 130 0 0 1 -360 360; 2 4 0.06 0.17 0.02 65 65 65 0 0 1 -360 360; 3 4 0.01 0.04 0 130 130 130 0 0 1 -360 360; 2 5 0.05 0.2 0.02 130 130 130 0 0 1 -360 360; 2 6 0.06 0.18 0.02 65 65 65 0 0 1 -360 360; 4 6 0.01 0.04 0 90 90 90 0 0 1 -360 360; 5 7 0.05 0.12 0.01 70 70 70 0 0 1 -360 360; 6 7 0.03 0.08 0.01 130 130 130 0 0 1 -360 360; 6 8 0.01 0.04 0 32 32 32 0 0 1 -360 360; 6 9 0 0.21 0 65 65 65 0 0 1 -360 360; 6 10 0 0.56 0 32 32 32 0 0 1 -360 360; 9 11 0 0.21 0 65 65 65 0 0 1 -360 360; 9 10 0 0.11 0 65 65 65 0 0 1 -360 360; 4 12 0 0.26 0 65 65 65 0 0 1 -360 360; 12 13 0 0.14 0 65 65 65 0 0 1 -360 360; 12 14 0.12 0.26 0 32 32 32 0 0 1 -360 360; 12 15 0.07 0.13 0 32 32 32 0 0 1 -360 360; 12 16 0.09 0.2 0 32 32 32 0 0 1 -360 360; 14 15 0.22 0.2 0 16 16 16 0 0 1 -360 360; 16 17 0.08 0.19 0 16 16 16 0 0 1 -360 360; 15 18 0.11 0.22 0 16 16 16 0 0 1 -360 360; 18 19 0.06 0.13 0 16 16 16 0 0 1 -360 360; 19 20 0.03 0.07 0 32 32 32 0 0 1 -360 360; 10 20 0.09 0.21 0 32 32 32 0 0 1 -360 360; 10 17 0.03 0.08 0 32 32 32 0 0 1 -360 360; 10 21 0.03 0.07 0 32 32 32 0 0 1 -360 360; 10 22 0.07 0.15 0 32 32 32 0 0 1 -360 360; 21 22 0.01 0.02 0 32 32 32 0 0 1 -360 360; 15 23 0.1 0.2 0 16 16 16 0 0 1 -360 360; 22 24 0.12 0.18 0 16 16 16 0 0 1 -360 360; 23 24 0.13 0.27 0 16 16 16 0 0 1 -360 360; 24 25 0.19 0.33 0 16 16 16 0 0 1 -360 360; 25 26 0.25 0.38 0 16 16 16 0 0 1 -360 360; 25 27 0.11 0.21 0 16 16 16 0 0 1 -360 360; 28 27 0 0.4 0 65 65 65 0 0 1 -360 360; 27 29 0.22 0.42 0 16 16 16 0 0 1 -360 360; 27 30 0.32 0.6 0 16 16 16 0 0 1 -360 360; 29 30 0.24 0.45 0 16 16 16 0 0 1 -360 360; 8 28 0.06 0.2 0.02 32 32 32 0 0 1 -360 360; 6 28 0.02 0.06 0.01 32 32 32 0 0 1 -360 360; ];
%%----- OPF Data -----%%
97
%% area data % area refbus mpc.areas = [ 1 8; 2 23; 3 26; ];
%% generator cost data % 1 startup shutdown n x1 y1 ... xn yn % 2 startup shutdown n c(n-1) ... c0 mpc.gencost = [ 2 0 0 3 0.02 2 0; 2 0 0 3 0.0175 1.75 0; 2 0 0 3 0.0625 1 0; 2 0 0 3 0.00834 3.25 0; 2 0 0 3 0.025 3 0; 2 0 0 3 0.025 3 0; ];
98
B.5 Data for IEEE 118-Bus System
%% MATPOWER Case Format : Version 2 mpc.version = '2';
%%----- Power Flow Data -----%% %% system MVA base mpc.baseMVA = 100;
%% bus data % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax
Vmin mpc.bus = [ 1 2 51 27 0 0 1 0.955 10.67 138 1 1.06 0.94; 2 1 20 9 0 0 1 0.971 11.22 138 1 1.06 0.94; 3 1 39 10 0 0 1 0.968 11.56 138 1 1.06 0.94; 4 2 39 12 0 0 1 0.998 15.28 138 1 1.06 0.94; 5 1 0 0 0 -40 1 1.002 15.73 138 1 1.06 0.94; 6 2 52 22 0 0 1 0.99 13 138 1 1.06 0.94; 7 1 19 2 0 0 1 0.989 12.56 138 1 1.06 0.94; 8 2 28 0 0 0 1 1.015 20.77 345 1 1.06 0.94; 9 1 0 0 0 0 1 1.043 28.02 345 1 1.06 0.94; 10 2 0 0 0 0 1 1.05 35.61 345 1 1.06 0.94; 11 1 70 23 0 0 1 0.985 12.72 138 1 1.06 0.94; 12 2 47 10 0 0 1 0.99 12.2 138 1 1.06 0.94; 13 1 34 16 0 0 1 0.968 11.35 138 1 1.06 0.94; 14 1 14 1 0 0 1 0.984 11.5 138 1 1.06 0.94; 15 2 90 30 0 0 1 0.97 11.23 138 1 1.06 0.94; 16 1 25 10 0 0 1 0.984 11.91 138 1 1.06 0.94; 17 1 11 3 0 0 1 0.995 13.74 138 1 1.06 0.94; 18 2 60 34 0 0 1 0.973 11.53 138 1 1.06 0.94; 19 2 45 25 0 0 1 0.963 11.05 138 1 1.06 0.94; 20 1 18 3 0 0 1 0.958 11.93 138 1 1.06 0.94; 21 1 14 8 0 0 1 0.959 13.52 138 1 1.06 0.94; 22 1 10 5 0 0 1 0.97 16.08 138 1 1.06 0.94; 23 1 7 3 0 0 1 1 21 138 1 1.06 0.94; 24 2 13 0 0 0 1 0.992 20.89 138 1 1.06 0.94; 25 2 0 0 0 0 1 1.05 27.93 138 1 1.06 0.94; 26 2 0 0 0 0 1 1.015 29.71 345 1 1.06 0.94; 27 2 71 13 0 0 1 0.968 15.35 138 1 1.06 0.94; 28 1 17 7 0 0 1 0.962 13.62 138 1 1.06 0.94; 29 1 24 4 0 0 1 0.963 12.63 138 1 1.06 0.94; 30 1 0 0 0 0 1 0.968 18.79 345 1 1.06 0.94; 31 2 43 27 0 0 1 0.967 12.75 138 1 1.06 0.94; 32 2 59 23 0 0 1 0.964 14.8 138 1 1.06 0.94; 33 1 23 9 0 0 1 0.972 10.63 138 1 1.06 0.94; 34 2 59 26 0 14 1 0.986 11.3 138 1 1.06 0.94; 35 1 33 9 0 0 1 0.981 10.87 138 1 1.06 0.94; 36 2 31 17 0 0 1 0.98 10.87 138 1 1.06 0.94; 37 1 0 0 0 -25 1 0.992 11.77 138 1 1.06 0.94; 38 1 0 0 0 0 1 0.962 16.91 345 1 1.06 0.94; 39 1 27 11 0 0 1 0.97 8.41 138 1 1.06 0.94; 40 2 66 23 0 0 1 0.97 7.35 138 1 1.06 0.94; 41 1 37 10 0 0 1 0.967 6.92 138 1 1.06 0.94; 42 2 96 23 0 0 1 0.985 8.53 138 1 1.06 0.94; 43 1 18 7 0 0 1 0.978 11.28 138 1 1.06 0.94;
99
44 1 16 8 0 10 1 0.985 13.82 138 1 1.06 0.94; 45 1 53 22 0 10 1 0.987 15.67 138 1 1.06 0.94; 46 2 28 10 0 10 1 1.005 18.49 138 1 1.06 0.94; 47 1 34 0 0 0 1 1.017 20.73 138 1 1.06 0.94; 48 1 20 11 0 15 1 1.021 19.93 138 1 1.06 0.94; 49 2 87 30 0 0 1 1.025 20.94 138 1 1.06 0.94; 50 1 17 4 0 0 1 1.001 18.9 138 1 1.06 0.94; 51 1 17 8 0 0 1 0.967 16.28 138 1 1.06 0.94; 52 1 18 5 0 0 1 0.957 15.32 138 1 1.06 0.94; 53 1 23 11 0 0 1 0.946 14.35 138 1 1.06 0.94; 54 2 113 32 0 0 1 0.955 15.26 138 1 1.06 0.94; 55 2 63 22 0 0 1 0.952 14.97 138 1 1.06 0.94; 56 2 84 18 0 0 1 0.954 15.16 138 1 1.06 0.94; 57 1 12 3 0 0 1 0.971 16.36 138 1 1.06 0.94; 58 1 12 3 0 0 1 0.959 15.51 138 1 1.06 0.94; 59 2 277 113 0 0 1 0.985 19.37 138 1 1.06 0.94; 60 1 78 3 0 0 1 0.993 23.15 138 1 1.06 0.94; 61 2 0 0 0 0 1 0.995 24.04 138 1 1.06 0.94; 62 2 77 14 0 0 1 0.998 23.43 138 1 1.06 0.94; 63 1 0 0 0 0 1 0.969 22.75 345 1 1.06 0.94; 64 1 0 0 0 0 1 0.984 24.52 345 1 1.06 0.94; 65 2 0 0 0 0 1 1.005 27.65 345 1 1.06 0.94; 66 2 39 18 0 0 1 1.05 27.48 138 1 1.06 0.94; 67 1 28 7 0 0 1 1.02 24.84 138 1 1.06 0.94; 68 1 0 0 0 0 1 1.003 27.55 345 1 1.06 0.94; 69 3 0 0 0 0 1 1.035 30 138 1 1.06 0.94; 70 2 66 20 0 0 1 0.984 22.58 138 1 1.06 0.94; 71 1 0 0 0 0 1 0.987 22.15 138 1 1.06 0.94; 72 2 12 0 0 0 1 0.98 20.98 138 1 1.06 0.94; 73 2 6 0 0 0 1 0.991 21.94 138 1 1.06 0.94; 74 2 68 27 0 12 1 0.958 21.64 138 1 1.06 0.94; 75 1 47 11 0 0 1 0.967 22.91 138 1 1.06 0.94; 76 2 68 36 0 0 1 0.943 21.77 138 1 1.06 0.94; 77 2 61 28 0 0 1 1.006 26.72 138 1 1.06 0.94; 78 1 71 26 0 0 1 1.003 26.42 138 1 1.06 0.94; 79 1 39 32 0 20 1 1.009 26.72 138 1 1.06 0.94; 80 2 130 26 0 0 1 1.04 28.96 138 1 1.06 0.94; 81 1 0 0 0 0 1 0.997 28.1 345 1 1.06 0.94; 82 1 54 27 0 20 1 0.989 27.24 138 1 1.06 0.94; 83 1 20 10 0 10 1 0.985 28.42 138 1 1.06 0.94; 84 1 11 7 0 0 1 0.98 30.95 138 1 1.06 0.94; 85 2 24 15 0 0 1 0.985 32.51 138 1 1.06 0.94; 86 1 21 10 0 0 1 0.987 31.14 138 1 1.06 0.94; 87 2 0 0 0 0 1 1.015 31.4 161 1 1.06 0.94; 88 1 48 10 0 0 1 0.987 35.64 138 1 1.06 0.94; 89 2 0 0 0 0 1 1.005 39.69 138 1 1.06 0.94; 90 2 163 42 0 0 1 0.985 33.29 138 1 1.06 0.94; 91 2 10 0 0 0 1 0.98 33.31 138 1 1.06 0.94; 92 2 65 10 0 0 1 0.993 33.8 138 1 1.06 0.94; 93 1 12 7 0 0 1 0.987 30.79 138 1 1.06 0.94; 94 1 30 16 0 0 1 0.991 28.64 138 1 1.06 0.94; 95 1 42 31 0 0 1 0.981 27.67 138 1 1.06 0.94; 96 1 38 15 0 0 1 0.993 27.51 138 1 1.06 0.94; 97 1 15 9 0 0 1 1.011 27.88 138 1 1.06 0.94; 98 1 34 8 0 0 1 1.024 27.4 138 1 1.06 0.94; 99 2 42 0 0 0 1 1.01 27.04 138 1 1.06 0.94; 100 2 37 18 0 0 1 1.017 28.03 138 1 1.06 0.94;
100
101 1 22 15 0 0 1 0.993 29.61 138 1 1.06 0.94; 102 1 5 3 0 0 1 0.991 32.3 138 1 1.06 0.94; 103 2 23 16 0 0 1 1.001 24.44 138 1 1.06 0.94; 104 2 38 25 0 0 1 0.971 21.69 138 1 1.06 0.94; 105 2 31 26 0 20 1 0.965 20.57 138 1 1.06 0.94; 106 1 43 16 0 0 1 0.962 20.32 138 1 1.06 0.94; 107 2 50 12 0 6 1 0.952 17.53 138 1 1.06 0.94; 108 1 2 1 0 0 1 0.967 19.38 138 1 1.06 0.94; 109 1 8 3 0 0 1 0.967 18.93 138 1 1.06 0.94; 110 2 39 30 0 6 1 0.973 18.09 138 1 1.06 0.94; 111 2 0 0 0 0 1 0.98 19.74 138 1 1.06 0.94; 112 2 68 13 0 0 1 0.975 14.99 138 1 1.06 0.94; 113 2 6 0 0 0 1 0.993 13.74 138 1 1.06 0.94; 114 1 8 3 0 0 1 0.96 14.46 138 1 1.06 0.94; 115 1 22 7 0 0 1 0.96 14.46 138 1 1.06 0.94; 116 2 184 0 0 0 1 1.005 27.12 138 1 1.06 0.94; 117 1 20 8 0 0 1 0.974 10.67 138 1 1.06 0.94; 118 1 33 15 0 0 1 0.949 21.92 138 1 1.06 0.94; ];
%% generator data % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2
Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf mpc.gen = [ 1 0 0 15 -5 0.955 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 4 0 0 300 -300 0.998 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 6 0 0 50 -13 0.99 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 8 0 0 300 -300 1.015 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 10 450 0 200 -147 1.05 100 1 550 0 0 0 0 0 0 0 0
0 0 0 0; 12 85 0 120 -35 0.99 100 1 185 0 0 0 0 0 0 0 0 0
0 0 0; 15 0 0 30 -10 0.97 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 18 0 0 50 -16 0.973 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 19 0 0 24 -8 0.962 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 24 0 0 300 -300 0.992 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 25 220 0 140 -47 1.05 100 1 320 0 0 0 0 0 0 0 0 0
0 0 0; 26 314 0 1000 -1000 1.015 100 1 414 0 0 0 0 0 0 0
0 0 0 0 0; 27 0 0 300 -300 0.968 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 31 7 0 300 -300 0.967 100 1 107 0 0 0 0 0 0 0 0
0 0 0 0; 32 0 0 42 -14 0.963 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 34 0 0 24 -8 0.984 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0;
101
36 0 0 24 -8 0.98 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 40 0 0 300 -300 0.97 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 42 0 0 300 -300 0.985 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 46 19 0 100 -100 1.005 100 1 119 0 0 0 0 0 0 0 0
0 0 0 0; 49 204 0 210 -85 1.025 100 1 304 0 0 0 0 0 0 0 0 0
0 0 0; 54 48 0 300 -300 0.955 100 1 148 0 0 0 0 0 0 0 0
0 0 0 0; 55 0 0 23 -8 0.952 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 56 0 0 15 -8 0.954 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 59 155 0 180 -60 0.985 100 1 255 0 0 0 0 0 0 0 0 0
0 0 0; 61 160 0 300 -100 0.995 100 1 260 0 0 0 0 0 0 0 0
0 0 0 0; 62 0 0 20 -20 0.998 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 65 391 0 200 -67 1.005 100 1 491 0 0 0 0 0 0 0 0 0
0 0 0; 66 392 0 200 -67 1.05 100 1 492 0 0 0 0 0 0 0 0 0
0 0 0; 69 516.4 0 300 -300 1.035 100 1 805.2 0 0 0 0 0 0
0 0 0 0 0 0; 70 0 0 32 -10 0.984 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 72 0 0 100 -100 0.98 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 73 0 0 100 -100 0.991 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 74 0 0 9 -6 0.958 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 76 0 0 23 -8 0.943 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 77 0 0 70 -20 1.006 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 80 477 0 280 -165 1.04 100 1 577 0 0 0 0 0 0 0 0
0 0 0 0; 85 0 0 23 -8 0.985 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 87 4 0 1000 -100 1.015 100 1 104 0 0 0 0 0 0 0
0 0 0 0 0; 89 607 0 300 -210 1.005 100 1 707 0 0 0 0 0 0 0 0
0 0 0 0; 90 0 0 300 -300 0.985 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 91 0 0 100 -100 0.98 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 92 0 0 9 -3 0.99 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 99 0 0 100 -100 1.01 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0;
102
100 252 0 155 -50 1.017 100 1 352 0 0 0 0 0 0 0 0 0
0 0 0; 103 40 0 40 -15 1.01 100 1 140 0 0 0 0 0 0 0 0 0
0 0 0; 104 0 0 23 -8 0.971 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 105 0 0 23 -8 0.965 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 107 0 0 200 -200 0.952 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 110 0 0 23 -8 0.973 100 1 100 0 0 0 0 0 0 0 0 0
0 0 0; 111 36 0 1000 -100 0.98 100 1 136 0 0 0 0 0 0 0
0 0 0 0 0; 112 0 0 1000 -100 0.975 100 1 100 0 0 0 0 0 0 0
0 0 0 0 0; 113 0 0 200 -100 0.993 100 1 100 0 0 0 0 0 0 0 0
0 0 0 0; 116 0 0 1000 -1000 1.005 100 1 100 0 0 0 0 0 0 0
0 0 0 0 0; ];
%% branch data % fbus tbus r x b rateA rateB rateC ratio angle
status angmin angmax mpc.branch = [ 1 2 0.0303 0.0999 0.0254 9900 0 0 0 0 1 -360 360; 1 3 0.0129 0.0424 0.01082 9900 0 0 0 0 1 -360 360; 4 5 0.00176 0.00798 0.0021 9900 0 0 0 0 1 -360 360; 3 5 0.0241 0.108 0.0284 9900 0 0 0 0 1 -360 360; 5 6 0.0119 0.054 0.01426 9900 0 0 0 0 1 -360 360; 6 7 0.00459 0.0208 0.0055 9900 0 0 0 0 1 -360 360; 8 9 0.00244 0.0305 1.162 9900 0 0 0 0 1 -360 360; 8 5 0 0.0267 0 9900 0 0 0.985 0 1 -360 360; 9 10 0.00258 0.0322 1.23 9900 0 0 0 0 1 -360 360; 4 11 0.0209 0.0688 0.01748 9900 0 0 0 0 1 -360 360; 5 11 0.0203 0.0682 0.01738 9900 0 0 0 0 1 -360 360; 11 12 0.00595 0.0196 0.00502 9900 0 0 0 0 1 -360 360; 2 12 0.0187 0.0616 0.01572 9900 0 0 0 0 1 -360 360; 3 12 0.0484 0.16 0.0406 9900 0 0 0 0 1 -360 360; 7 12 0.00862 0.034 0.00874 9900 0 0 0 0 1 -360 360; 11 13 0.02225 0.0731 0.01876 9900 0 0 0 0 1 -360 360; 12 14 0.0215 0.0707 0.01816 9900 0 0 0 0 1 -360 360; 13 15 0.0744 0.2444 0.06268 9900 0 0 0 0 1 -360 360; 14 15 0.0595 0.195 0.0502 9900 0 0 0 0 1 -360 360; 12 16 0.0212 0.0834 0.0214 9900 0 0 0 0 1 -360 360; 15 17 0.0132 0.0437 0.0444 9900 0 0 0 0 1 -360 360; 16 17 0.0454 0.1801 0.0466 9900 0 0 0 0 1 -360 360; 17 18 0.0123 0.0505 0.01298 9900 0 0 0 0 1 -360 360; 18 19 0.01119 0.0493 0.01142 9900 0 0 0 0 1 -360 360; 19 20 0.0252 0.117 0.0298 9900 0 0 0 0 1 -360 360; 15 19 0.012 0.0394 0.0101 9900 0 0 0 0 1 -360 360; 20 21 0.0183 0.0849 0.0216 9900 0 0 0 0 1 -360 360; 21 22 0.0209 0.097 0.0246 9900 0 0 0 0 1 -360 360; 22 23 0.0342 0.159 0.0404 9900 0 0 0 0 1 -360 360; 23 24 0.0135 0.0492 0.0498 9900 0 0 0 0 1 -360 360; 23 25 0.0156 0.08 0.0864 9900 0 0 0 0 1 -360 360;
103
26 25 0 0.0382 0 9900 0 0 0.96 0 1 -360 360; 25 27 0.0318 0.163 0.1764 9900 0 0 0 0 1 -360 360; 27 28 0.01913 0.0855 0.0216 9900 0 0 0 0 1 -360 360; 28 29 0.0237 0.0943 0.0238 9900 0 0 0 0 1 -360 360; 30 17 0 0.0388 0 9900 0 0 0.96 0 1 -360 360; 8 30 0.00431 0.0504 0.514 9900 0 0 0 0 1 -360 360; 26 30 0.00799 0.086 0.908 9900 0 0 0 0 1 -360 360; 17 31 0.0474 0.1563 0.0399 9900 0 0 0 0 1 -360 360; 29 31 0.0108 0.0331 0.0083 9900 0 0 0 0 1 -360 360; 23 32 0.0317 0.1153 0.1173 9900 0 0 0 0 1 -360 360; 31 32 0.0298 0.0985 0.0251 9900 0 0 0 0 1 -360 360; 27 32 0.0229 0.0755 0.01926 9900 0 0 0 0 1 -360 360; 15 33 0.038 0.1244 0.03194 9900 0 0 0 0 1 -360 360; 19 34 0.0752 0.247 0.0632 9900 0 0 0 0 1 -360 360; 35 36 0.00224 0.0102 0.00268 9900 0 0 0 0 1 -360 360; 35 37 0.011 0.0497 0.01318 9900 0 0 0 0 1 -360 360; 33 37 0.0415 0.142 0.0366 9900 0 0 0 0 1 -360 360; 34 36 0.00871 0.0268 0.00568 9900 0 0 0 0 1 -360 360; 34 37 0.00256 0.0094 0.00984 9900 0 0 0 0 1 -360 360; 38 37 0 0.0375 0 9900 0 0 0.935 0 1 -360 360; 37 39 0.0321 0.106 0.027 9900 0 0 0 0 1 -360 360; 37 40 0.0593 0.168 0.042 9900 0 0 0 0 1 -360 360; 30 38 0.00464 0.054 0.422 9900 0 0 0 0 1 -360 360; 39 40 0.0184 0.0605 0.01552 9900 0 0 0 0 1 -360 360; 40 41 0.0145 0.0487 0.01222 9900 0 0 0 0 1 -360 360; 40 42 0.0555 0.183 0.0466 9900 0 0 0 0 1 -360 360; 41 42 0.041 0.135 0.0344 9900 0 0 0 0 1 -360 360; 43 44 0.0608 0.2454 0.06068 9900 0 0 0 0 1 -360 360; 34 43 0.0413 0.1681 0.04226 9900 0 0 0 0 1 -360 360; 44 45 0.0224 0.0901 0.0224 9900 0 0 0 0 1 -360 360; 45 46 0.04 0.1356 0.0332 9900 0 0 0 0 1 -360 360; 46 47 0.038 0.127 0.0316 9900 0 0 0 0 1 -360 360; 46 48 0.0601 0.189 0.0472 9900 0 0 0 0 1 -360 360; 47 49 0.0191 0.0625 0.01604 9900 0 0 0 0 1 -360 360; 42 49 0.0715 0.323 0.086 9900 0 0 0 0 1 -360 360; 42 49 0.0715 0.323 0.086 9900 0 0 0 0 1 -360 360; 45 49 0.0684 0.186 0.0444 9900 0 0 0 0 1 -360 360; 48 49 0.0179 0.0505 0.01258 9900 0 0 0 0 1 -360 360; 49 50 0.0267 0.0752 0.01874 9900 0 0 0 0 1 -360 360; 49 51 0.0486 0.137 0.0342 9900 0 0 0 0 1 -360 360; 51 52 0.0203 0.0588 0.01396 9900 0 0 0 0 1 -360 360; 52 53 0.0405 0.1635 0.04058 9900 0 0 0 0 1 -360 360; 53 54 0.0263 0.122 0.031 9900 0 0 0 0 1 -360 360; 49 54 0.073 0.289 0.0738 9900 0 0 0 0 1 -360 360; 49 54 0.0869 0.291 0.073 9900 0 0 0 0 1 -360 360; 54 55 0.0169 0.0707 0.0202 9900 0 0 0 0 1 -360 360; 54 56 0.00275 0.00955 0.00732 9900 0 0 0 0 1 -360 360; 55 56 0.00488 0.0151 0.00374 9900 0 0 0 0 1 -360 360; 56 57 0.0343 0.0966 0.0242 9900 0 0 0 0 1 -360 360; 50 57 0.0474 0.134 0.0332 9900 0 0 0 0 1 -360 360; 56 58 0.0343 0.0966 0.0242 9900 0 0 0 0 1 -360 360; 51 58 0.0255 0.0719 0.01788 9900 0 0 0 0 1 -360 360; 54 59 0.0503 0.2293 0.0598 9900 0 0 0 0 1 -360 360; 56 59 0.0825 0.251 0.0569 9900 0 0 0 0 1 -360 360; 56 59 0.0803 0.239 0.0536 9900 0 0 0 0 1 -360 360; 55 59 0.04739 0.2158 0.05646 9900 0 0 0 0 1 -360 360; 59 60 0.0317 0.145 0.0376 9900 0 0 0 0 1 -360 360;
104
59 61 0.0328 0.15 0.0388 9900 0 0 0 0 1 -360 360; 60 61 0.00264 0.0135 0.01456 9900 0 0 0 0 1 -360 360; 60 62 0.0123 0.0561 0.01468 9900 0 0 0 0 1 -360 360; 61 62 0.00824 0.0376 0.0098 9900 0 0 0 0 1 -360 360; 63 59 0 0.0386 0 9900 0 0 0.96 0 1 -360 360; 63 64 0.00172 0.02 0.216 9900 0 0 0 0 1 -360 360; 64 61 0 0.0268 0 9900 0 0 0.985 0 1 -360 360; 38 65 0.00901 0.0986 1.046 9900 0 0 0 0 1 -360 360; 64 65 0.00269 0.0302 0.38 9900 0 0 0 0 1 -360 360; 49 66 0.018 0.0919 0.0248 9900 0 0 0 0 1 -360 360; 49 66 0.018 0.0919 0.0248 9900 0 0 0 0 1 -360 360; 62 66 0.0482 0.218 0.0578 9900 0 0 0 0 1 -360 360; 62 67 0.0258 0.117 0.031 9900 0 0 0 0 1 -360 360; 65 66 0 0.037 0 9900 0 0 0.935 0 1 -360 360; 66 67 0.0224 0.1015 0.02682 9900 0 0 0 0 1 -360 360; 65 68 0.00138 0.016 0.638 9900 0 0 0 0 1 -360 360; 47 69 0.0844 0.2778 0.07092 9900 0 0 0 0 1 -360 360; 49 69 0.0985 0.324 0.0828 9900 0 0 0 0 1 -360 360; 68 69 0 0.037 0 9900 0 0 0.935 0 1 -360 360; 69 70 0.03 0.127 0.122 9900 0 0 0 0 1 -360 360; 24 70 0.00221 0.4115 0.10198 9900 0 0 0 0 1 -360 360; 70 71 0.00882 0.0355 0.00878 9900 0 0 0 0 1 -360 360; 24 72 0.0488 0.196 0.0488 9900 0 0 0 0 1 -360 360; 71 72 0.0446 0.18 0.04444 9900 0 0 0 0 1 -360 360; 71 73 0.00866 0.0454 0.01178 9900 0 0 0 0 1 -360 360; 70 74 0.0401 0.1323 0.03368 9900 0 0 0 0 1 -360 360; 70 75 0.0428 0.141 0.036 9900 0 0 0 0 1 -360 360; 69 75 0.0405 0.122 0.124 9900 0 0 0 0 1 -360 360; 74 75 0.0123 0.0406 0.01034 9900 0 0 0 0 1 -360 360; 76 77 0.0444 0.148 0.0368 9900 0 0 0 0 1 -360 360; 69 77 0.0309 0.101 0.1038 9900 0 0 0 0 1 -360 360; 75 77 0.0601 0.1999 0.04978 9900 0 0 0 0 1 -360 360; 77 78 0.00376 0.0124 0.01264 9900 0 0 0 0 1 -360 360; 78 79 0.00546 0.0244 0.00648 9900 0 0 0 0 1 -360 360; 77 80 0.017 0.0485 0.0472 9900 0 0 0 0 1 -360 360; 77 80 0.0294 0.105 0.0228 9900 0 0 0 0 1 -360 360; 79 80 0.0156 0.0704 0.0187 9900 0 0 0 0 1 -360 360; 68 81 0.00175 0.0202 0.808 9900 0 0 0 0 1 -360 360; 81 80 0 0.037 0 9900 0 0 0.935 0 1 -360 360; 77 82 0.0298 0.0853 0.08174 9900 0 0 0 0 1 -360 360; 82 83 0.0112 0.03665 0.03796 9900 0 0 0 0 1 -360 360; 83 84 0.0625 0.132 0.0258 9900 0 0 0 0 1 -360 360; 83 85 0.043 0.148 0.0348 9900 0 0 0 0 1 -360 360; 84 85 0.0302 0.0641 0.01234 9900 0 0 0 0 1 -360 360; 85 86 0.035 0.123 0.0276 9900 0 0 0 0 1 -360 360; 86 87 0.02828 0.2074 0.0445 9900 0 0 0 0 1 -360 360; 85 88 0.02 0.102 0.0276 9900 0 0 0 0 1 -360 360; 85 89 0.0239 0.173 0.047 9900 0 0 0 0 1 -360 360; 88 89 0.0139 0.0712 0.01934 9900 0 0 0 0 1 -360 360; 89 90 0.0518 0.188 0.0528 9900 0 0 0 0 1 -360 360; 89 90 0.0238 0.0997 0.106 9900 0 0 0 0 1 -360 360; 90 91 0.0254 0.0836 0.0214 9900 0 0 0 0 1 -360 360; 89 92 0.0099 0.0505 0.0548 9900 0 0 0 0 1 -360 360; 89 92 0.0393 0.1581 0.0414 9900 0 0 0 0 1 -360 360; 91 92 0.0387 0.1272 0.03268 9900 0 0 0 0 1 -360 360; 92 93 0.0258 0.0848 0.0218 9900 0 0 0 0 1 -360 360; 92 94 0.0481 0.158 0.0406 9900 0 0 0 0 1 -360 360;
105
93 94 0.0223 0.0732 0.01876 9900 0 0 0 0 1 -360 360; 94 95 0.0132 0.0434 0.0111 9900 0 0 0 0 1 -360 360; 80 96 0.0356 0.182 0.0494 9900 0 0 0 0 1 -360 360; 82 96 0.0162 0.053 0.0544 9900 0 0 0 0 1 -360 360; 94 96 0.0269 0.0869 0.023 9900 0 0 0 0 1 -360 360; 80 97 0.0183 0.0934 0.0254 9900 0 0 0 0 1 -360 360; 80 98 0.0238 0.108 0.0286 9900 0 0 0 0 1 -360 360; 80 99 0.0454 0.206 0.0546 9900 0 0 0 0 1 -360 360; 92 100 0.0648 0.295 0.0472 9900 0 0 0 0 1 -360 360; 94 100 0.0178 0.058 0.0604 9900 0 0 0 0 1 -360 360; 95 96 0.0171 0.0547 0.01474 9900 0 0 0 0 1 -360 360; 96 97 0.0173 0.0885 0.024 9900 0 0 0 0 1 -360 360; 98 100 0.0397 0.179 0.0476 9900 0 0 0 0 1 -360 360; 99 100 0.018 0.0813 0.0216 9900 0 0 0 0 1 -360 360; 100 101 0.0277 0.1262 0.0328 9900 0 0 0 0 1 -360 360; 92 102 0.0123 0.0559 0.01464 9900 0 0 0 0 1 -360 360; 101 102 0.0246 0.112 0.0294 9900 0 0 0 0 1 -360 360; 100 103 0.016 0.0525 0.0536 9900 0 0 0 0 1 -360 360; 100 104 0.0451 0.204 0.0541 9900 0 0 0 0 1 -360 360; 103 104 0.0466 0.1584 0.0407 9900 0 0 0 0 1 -360 360; 103 105 0.0535 0.1625 0.0408 9900 0 0 0 0 1 -360 360; 100 106 0.0605 0.229 0.062 9900 0 0 0 0 1 -360 360; 104 105 0.00994 0.0378 0.00986 9900 0 0 0 0 1 -360 360; 105 106 0.014 0.0547 0.01434 9900 0 0 0 0 1 -360 360; 105 107 0.053 0.183 0.0472 9900 0 0 0 0 1 -360 360; 105 108 0.0261 0.0703 0.01844 9900 0 0 0 0 1 -360 360; 106 107 0.053 0.183 0.0472 9900 0 0 0 0 1 -360 360; 108 109 0.0105 0.0288 0.0076 9900 0 0 0 0 1 -360 360; 103 110 0.03906 0.1813 0.0461 9900 0 0 0 0 1 -360 360; 109 110 0.0278 0.0762 0.0202 9900 0 0 0 0 1 -360 360; 110 111 0.022 0.0755 0.02 9900 0 0 0 0 1 -360 360; 110 112 0.0247 0.064 0.062 9900 0 0 0 0 1 -360 360; 17 113 0.00913 0.0301 0.00768 9900 0 0 0 0 1 -360 360; 32 113 0.0615 0.203 0.0518 9900 0 0 0 0 1 -360 360; 32 114 0.0135 0.0612 0.01628 9900 0 0 0 0 1 -360 360; 27 115 0.0164 0.0741 0.01972 9900 0 0 0 0 1 -360 360; 114 115 0.0023 0.0104 0.00276 9900 0 0 0 0 1 -360 360; 68 116 0.00034 0.00405 0.164 9900 0 0 0 0 1 -360 360; 12 117 0.0329 0.14 0.0358 9900 0 0 0 0 1 -360 360; 75 118 0.0145 0.0481 0.01198 9900 0 0 0 0 1 -360 360; 76 118 0.0164 0.0544 0.01356 9900 0 0 0 0 1 -360 360; ];
%%----- OPF Data -----%% %% generator cost data % 1 startup shutdown n x1 y1 ... xn yn % 2 startup shutdown n c(n-1) ... c0 mpc.gencost = [ 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.0222222 20 0; 2 0 0 3 0.117647 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0;
106
2 0 0 3 0.01 40 0; 2 0 0 3 0.0454545 20 0; 2 0 0 3 0.0318471 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 1.42857 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.526316 20 0; 2 0 0 3 0.0490196 20 0; 2 0 0 3 0.208333 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.0645161 20 0; 2 0 0 3 0.0625 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.0255754 20 0; 2 0 0 3 0.0255102 20 0; 2 0 0 3 0.0193648 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.0209644 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 2.5 20 0; 2 0 0 3 0.0164745 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.0396825 20 0; 2 0 0 3 0.25 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.277778 20 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; 2 0 0 3 0.01 40 0; ];
107
APPENDIX C: MATLAB Code
C.1 Main Code for Load Flow Analysis Tool
%for repeat=1:1:100 clear all; clc; perm_num=1; perm_max=10000000; while perm_num <= perm_max for method = 1:2:1 clearvars -EXCEPT method perm_num perm_max %% Convergence Test % This file is used to test the convergence properties of several different % AC loadflow methodologies in a modified Sato and Arrillaga's method with % respect to the number of HVDC links in a system. %clear all; clc; close all;
%% Set up for Load flow %% casename = 'case4gs'; casedata = loadcase(casename); % load the casedata numbranch = size(casedata.branch,1); % how many branches linkdata = setlinkdata(casedata);% set HVDC link parameters convergence_times = []; % data matrix to store convergence times full_iterations = []; %datamatrix to store convergence interations AC_iterations = []; %datamatrix to store convergence interations orderings = makeorders(casedata); if strcmp(casename,'case4gs') || strcmp(casename,'case9') neworderings=[]; for i=1:1:500 neworderings = [orderings;neworderings]; end orderings = neworderings; end %perm_max = floor(length(orderings(:,1))*0.01); perm_max = 1; %perm_max = length(orderings(:,1)); order = orderings(perm_num,:); %order = numbranch:-1:1; %order of replacing links type = method; if type == 3 type = method+1; end; %1 = nr, 2=fd, 4 = gs
global ACtime_iso ACtime_sys etime failures = []; AC_time = []; DC_time = []; AC_time_iso =[]; AC_time_sys = []; AC_time_extra = [];
%% Run Modified Sato and Arrillaga's Method for #HVDC Links = 0...numbranch numbranch=length(order) for numlinks = 0:1:numbranch numlinks
108
success=1; total = 0; ac_t_total = 0; dc_t_total = 0; ACtime_sys = 0; ACtime_iso = 0; etime = 0; if numlinks > 0 [ACdata,DCdata]=buildDC(casedata,numlinks,order,linkdata); else ACdata = casedata; DCdata = casedata; end tol = 20; i = 0;
t_start = tic; reset = [ACdata.bus(:,3) ACdata.bus(:,4)]; store = [real(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180)) imag(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180))]; while tol > 10^-5 && success == 1 if numlinks > 0 dc_t_start = tic; [ACdata,DCdata] = runsimphvdcpf(ACdata,DCdata); dc_t_total = dc_t_total + toc(dc_t_start); end ac_t_start = tic; [ACdata,success,iterations] = runACpfv2(ACdata,DCdata,type); ac_t_total = ac_t_total + toc(ac_t_start); total = total + iterations; DCdata.bus(:,2) = ACdata.bus(:,8); DCdata.bus(:,3) = ACdata.bus(:,9); new = [real(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180)) imag(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180))]; tol = max(abs(store - new).^2); store = new; ACdata.bus(:,3)=reset(:,1); ACdata.bus(:,4)=reset(:,2); if success == 0 failures=[failures numlinks]; end i=i+1; end store convergence_times = [convergence_times toc(t_start)]; %store convergence
times AC_iterations = [AC_iterations total]; full_iterations = [full_iterations i]; %store convergence iterations AC_time = [AC_time ac_t_total]; DC_time = [DC_time dc_t_total]; AC_time_iso =[AC_time_iso ACtime_iso]; AC_time_sys =[AC_time_sys ACtime_sys]; AC_time_extra=[AC_time_extra etime]; end %% Delete Failed Trials xdata = 0:1:numbranch; if ~isempty(failures)
109
failures = sort(failures,2); for j = length(failures):-1:1 convergence_times(failures(j)+1) = []; AC_iterations(failures(j)+1)=[]; full_iterations(failures(j)+1)=[]; AC_time(failures(j)+1)=[]; DC_time(failures(j)+1)=[]; AC_time_iso(failures(j)+1)=[]; AC_time_sys(failures(j)+1)=[]; AC_time_extra(failures(j)+1)=[]; xdata(failures(j)+1)=[]; end end
%% Create Plots
figure(1) hold on plot(xdata, convergence_times,'r-',... xdata, AC_time,'b-',... xdata, DC_time,'g-',... xdata, convergence_times-AC_time-DC_time,'k-') if method ==1 title(strcat(casename,': Time Partition for Newton Raphson Method')) elseif method == 2 title(strcat(casename,': Time Partition for FDLF Method')) else title(strcat(casename,': Time Partition for Gauss Seidel Method')) end xlabel('Number of Links') ylabel('time (s)') axis([0 numbranch 0 (max(convergence_times)*1.2)]) legend('Total Time','AC Routine','DC Routine','Additional Computation') hold off
figure(2) hold on plot(xdata, AC_time,'b',... xdata, AC_time_iso,'r',... xdata, AC_time_sys,'g',... xdata, AC_time_extra,'k') if method ==1 title(strcat(casename,': AC Time Partition for Newton Raphson Method')) elseif method == 2 title(strcat(casename,': AC Time Partition for FDLF Method')) else title(strcat(casename,': AC Time Partition for Gauss Seidel Method')) end xlabel('Number of Links') ylabel('time (s)') axis([0 numbranch 0 (max(convergence_times)*1.2)]) legend('AC Total','Isolated Buses','System Buses','Extra') hold off
110
figure(3) hold on plot(xdata, full_iterations, 'r-') if method ==1 title(strcat(casename,': # Full Loadflow Iterations for Newton Raphson
Method')) elseif method == 2 title(strcat(casename,': # Full Loadflow Iterations for FDLF Method')) else title(strcat(casename,': # Full Loadflow Iterations for Gauss Seidel
Method')) end xlabel('Number of Links') ylabel('# of Iterations') axis([0 numbranch 0 (max(full_iterations)*1.2)]) hold off
figure(4) hold on plot(xdata, AC_iterations, 'r-') if method ==1 title(strcat(casename,': # AC Loadflow Iterations for Newton Raphson
Method')) elseif method == 2 title(strcat(casename,': # AC Loadflow Iterations for FDLF Method')) else title(strcat(casename,': # AC Loadflow Iterations for Gauss Seidel
Method')) end xlabel('Number of Links') ylabel('# of Iterations') axis([0 numbranch 0 (max(AC_iterations)*1.2)]) hold off
%}
%% Save if method ==1 filename = strcat(casename,'_NR_',int2str(perm_num)); elseif method == 2 filename = strcat(casename,'_FDLF_',int2str(perm_num)); else filename = strcat(casename,'_GS_',int2str(perm_num)); end save(filename) end perm_num=perm_num+1; end %end
111
C.2 Code to set HVDC Link Parameters
function linkdata = setlinkdata(casedata)
%bus format: % 1 busnum % 2 voltage % 3 angle % 4 Stotal % 5 Impedance % 6 flag for 0=gen-load
linkdata.bus = [casedata.bus(:,1), casedata.bus(:,8), casedata.bus(:,9)... zeros(size(casedata.bus(:,1)))];
%branch format: % 1 Rec_bus % 2 Inv_bus % 3 Rec_bus_P % 4 Rec_bus_Q % 5 Inv_bus_P % 6 Inv_bus_Q % 7 RLine
casedata=runpf(casedata); linkdata.branch = [casedata.branch(:,1), casedata.branch(:,2), ... casedata.branch(:,14), casedata.branch(:,15), casedata.branch(:,16),... casedata.branch(:,17), casedata.branch(:,3)/4];
for i=1:1:length(linkdata.branch(:,1)) %sort rec and inv buses if linkdata.branch(i,3) < 0 dummy = linkdata.branch(i,1); linkdata.branch(i,1)=linkdata.branch(i,2); linkdata.branch(i,2)=dummy; dummy = linkdata.branch(i,3); linkdata.branch(i,3)=linkdata.branch(i,5); linkdata.branch(i,5)=dummy; dummy = linkdata.branch(i,4); linkdata.branch(i,4)=linkdata.branch(i,6); linkdata.branch(i,6)=dummy; end if linkdata.branch(i,7) == 0 linkdata.branch(i,7) = 0.001; %% if AC line has R=0, change to
ficticious 0.01; linkdata.branch(i,5) = linkdata.branch(i,5)+0.2; %also add 0.2W to
simulate Ploss end end
%Create "impedance" for buses voltages = casedata.bus(:,8).*exp(sqrt(-1)*casedata.bus(:,9)*pi/180); powers = zeros(size(linkdata.bus(:,1))); flag = zeros(size(powers)); %{ for i=1:1:length(linkdata.branch(:,1))
112
powers(linkdata.branch(i,1)) = powers(linkdata.branch(i,1)) - ...
%subtract rectifier power (linkdata.branch(i,3)+sqrt(-1)*linkdata.branch(i,4)); powers(linkdata.branch(i,2)) = powers(linkdata.branch(i,2)) - ... %add
invertor power (linkdata.branch(i,5)+sqrt(-1)*linkdata.branch(i,6)); end %} powers = powers - (casedata.bus(:,3) + sqrt(-1)*casedata.bus(:,4)); for i = 1:1:length(casedata.gen(:,1)) powers(casedata.gen(i,1)) =
powers(casedata.gen(i,1))+(casedata.gen(i,2)+sqrt(-1)*casedata.gen(i,3)); end powers=powers/100; for iter = 1:1:length(powers) if powers(iter) == 0 powers(iter)=1; flag(iter)=1; end end impedance = (voltages.^2)./(powers) linkdata.bus = [linkdata.bus impedance flag];
%interface (xfmr, filter, etc) format: % 1 tapr % 2 tapi % 3 numtapr % 4 numtapi % 5 reg%min % 6 reg%max % 7 xp % 8 xs % 9 xt % 10 xc % 11 zf
dummy = ones(size(linkdata.branch(:,1))); linkdata.interface = [16*dummy, 16*dummy, 31*dummy, 31*dummy,... 85*dummy, 115*dummy, 0.077* dummy, 0.049*dummy,... 0.00225*dummy, 0.07275*dummy,... (0.000728+sqrt(-1)*0.4902)*dummy];
%converter control format: % 1 delay % 2 extinction % 3 mindelay % 4 minextinct % 5 Arec % 6 Ainv]
linkdata.control = [10*dummy, 10*dummy, 10*dummy, 10*dummy, 53.71*dummy,
53.71*dummy];
113
end
114
C.3 Code for AC Subroutine
function [ACdata,success,total] = runACpfv2(ACdata,DCdata,type) global ACtime_iso ACtime_sys etime ACtime_iso = ACtime_iso; ACtime_sys = ACtime_sys; etime = etime;
extratiming_start= tic;
AC = mpoption('PF_ALG', type); success=1; failure = []; total = 0; ybus = makeYbus(ACdata); [S,C] = graphconncomp(ybus,'Directed',false); % S is the number of disjoint % systems, C is what bus belongs to what % system numbuses = histc(C,unique(C)); %count of the #buses in each system
ACdata.branch = [ACdata.branch zeros(length(ACdata.branch(:,1)),4)]; if isfield(ACdata,'areas') ACdata=rmfield(ACdata,'areas'); end if isfield(ACdata,'gencost') ACdata=rmfield(ACdata,'gencost'); end
currentAC = ACdata; busnum = []; volmag =[]; ref =[]; flag = [];
%this block of code finds all isolated buses for j = length(C):-1:1 if numbuses(C(j)) == 1 busnum = [busnum; currentAC.bus(j,1)]; %{ if currentAC.bus(j,2) == 2 || currentAC.bus(j,2) == 3 volmag = [volmag; [currentAC.bus(j,1) length(busnum)]]; if currentAC.bus(j,2)==3 ref = [currentAC.bus(j,1) length(busnum)]; end end %} end end %%%% etime= etime+toc(extratiming_start);
%%%%%%% This block of code calculates the isolated bus voltages isostart=tic; if ~isempty(busnum)
115
% power = -currentAC.bus(:,3) - sqrt(-1)*currentAC.bus(:,4); % power(currentAC.gen(:,1)) = power(currentAC.gen(:,1)) + ... % currentAC.gen(:,2)+ sqrt(-1)*currentAC.gen(:,3); % power = -power/100;
%{ for i=1:1:length(DCdata.branch(:,1)) power(DCdata.branch(i,1)) = power(DCdata.branch(i,1)) - ... (DCdata.branch(i,3)+sqrt(-1)*DCdata.branch(i,4)); power(DCdata.branch(i,2)) = power(DCdata.branch(i,2)) - ... (DCdata.branch(i,5)+sqrt(-1)*DCdata.branch(i,6)); end %} %power = power/100 %} %DCdata.bus(busnum,4) %voltage = sqrt(power(busnum).*DCdata.bus(busnum,5)); power = DCdata.bus(busnum,4); power(DCdata.bus(busnum,6)==1)=-100; %voltage = sqrt(-DCdata.bus(busnum,4)/100.*DCdata.bus(busnum,5)); voltage = sqrt(-power/100.*DCdata.bus(busnum,5));
%{ if ~isempty(volmag) voltage(volmag(:,2)) = currentAC.bus(volmag(:,1),8);%keep PV and Ref
vol mags end if ~isempty(ref) voltage(ref(:,2)) = currentAC.bus(ref(:,1),9)*pi/180;%keep ref angle end %} ACdata.bus(busnum,8) = abs(voltage); ACdata.bus(busnum,9) = angle(voltage)*180/pi; total = total + 1; end ACtime_iso = ACtime_iso + toc(isostart);
sys_start = tic;
% This block of code calculates the voltages for the remaining buses for i = 1:1:S if numbuses(i)>1 for j = length(C):-1:1 if C(j) ~= i for k = length(currentAC.gen(:,1)):-1:1 if currentAC.gen(k,1) == j currentAC.gen(k,:) = []; end end for k = length(currentAC.branch(:,1)):-1:1 if currentAC.branch(k,1) == j || ... currentAC.branch(k,2) == j currentAC.branch(k,:)=[]; end end currentAC.bus(j,:)=[];
116
end end [updateAC,f,iterations] = runpf(currentAC, AC); failure = [failure f-1]; total = total + iterations; currentAC = ACdata; if ~isempty(updateAC.gen) for j = 1:1:length(updateAC.gen(:,1)) for k = 1:1:length(currentAC.gen(:,1)) if currentAC.gen(k,1) == updateAC.gen(j,1) currentAC.gen(k,:) = updateAC.gen(j,:); end end end end for j = 1:1:length(updateAC.bus(:,1)) for k = 1:1:length(currentAC.bus(:,1)) if currentAC.bus(k,1) == updateAC.bus(j,1) currentAC.bus(k,:) = updateAC.bus(j,:); end end end for j = 1:1:length(updateAC.branch(:,1)) for k = 1:1:length(currentAC.branch(:,1)) if currentAC.branch(k,1) == updateAC.branch(j,1) && ... currentAC.branch(k,2) == updateAC.branch(j,2) currentAC.branch(k,:) = updateAC.branch(j,:); end end end end end ACtime_sys = ACtime_sys + toc(sys_start);
extratiming_start=tic;
results = [currentAC.branch(:,1), currentAC.branch(:,2), ... currentAC.branch(:,14), currentAC.branch(:,15), ... currentAC.branch(:,16), currentAC.branch(:,17), ... abs((abs(currentAC.branch(:,14))-abs(currentAC.branch(:,16)))), ... abs((abs(currentAC.branch(:,15))-abs(currentAC.branch(:,17)))) ];
currentAC.results=results; printacpf(results); ACdata = currentAC; if sum(failure,2)< 0 success = 0; end
etime= etime+toc(extratiming_start);
end
117
C.4 Code for DC Subroutine
function [ACdata,DCdata] = runsimphvdcpf(ACdata,DCdata) %for simplicity, set variables to names:
busnum=DCdata.bus(:,1); voltage=DCdata.bus(:,2); angle=DCdata.bus(:,3); Stotal=DCdata.bus(:,4);
Rec_bus=DCdata.branch(:,1); Inv_bus=DCdata.branch(:,2); Rec_bus_P=abs(DCdata.branch(:,3)/100); Rec_bus_Q=DCdata.branch(:,4)/100; Inv_bus_P=abs(DCdata.branch(:,5)/100); Inv_bus_Q=DCdata.branch(:,6)/100; RLine=DCdata.branch(:,7);
tapr = DCdata.interface(:,1); tapi = DCdata.interface(:,2); numtapr = DCdata.interface(:,3); numtapi = DCdata.interface(:,4); regmin = DCdata.interface(:,5); regmax = DCdata.interface(:,6); xp = DCdata.interface(:,7); xs = DCdata.interface(:,8); xt = DCdata.interface(:,8); xc = DCdata.interface(:,10); zf = DCdata.interface(:,11);
delay = DCdata.control(:,1)*pi/180; extinction = DCdata.control(:,2)*pi/180; mindelay = DCdata.control(:,3)*pi/180; minextinct = DCdata.control(:,4)*pi/180; Arec = DCdata.control(:,5); Ainv= DCdata.control(:,6);
%Calculate current tap position
tr = (85+(regmax-regmin)./(numtapr-1).*(tapr-1))/100; ti = (85+(regmax-regmin)./(numtapi-1).*(tapi-1))/100;
%Set AC voltages (primary and secondary) vr = []; vi = []; for i = 1:1:length(Rec_bus) vr = [vr; voltage(Rec_bus(i)).*exp(sqrt(-1)*angle(Rec_bus(i))*pi/180)]; vi = [vi; voltage(Inv_bus(i)).*exp(sqrt(-1)*angle(Inv_bus(i))*pi/180)]; end
vr_sec = abs(vr.*tr); vi_sec = abs(vi.*ti);
% Calculate converter DC voltages and current
118
Id = sqrt((Rec_bus_P - Inv_bus_P)./RLine); Vd_inv = Inv_bus_P./Id; Vd_rec = Vd_inv + RLine.*Id;
%Calculate Power Transfer (Eq 14-16. Arrillaga)
urec = acos(2*pi*Vd_rec./(3*sqrt(2)*vr_sec)-cos(delay))-delay; uinv = acos(2*pi*Vd_inv./(3*sqrt(2)*vi_sec)-cos(extinction))-extinction;
tanrec = (2*urec+sin(2*delay)-sin(2*(delay+urec)))./... (cos(2*delay)-cos(2*(delay+urec))); taninv =-(2*uinv+sin(2*extinction)-sin(2*(extinction+uinv)))./... (cos(2*extinction)-cos(2*(extinction+uinv)));
Srec = Vd_rec.*Id + sqrt(-1)*Vd_rec.*Id.*tanrec; Sinv = Vd_inv.*Id + sqrt(-1)*Vd_inv.*Id.*taninv;
%[real(Srec) Rec_bus_P; real(Sinv) Inv_bus_P]
Srec(real(Srec) ~= Rec_bus_P) = Rec_bus_P(real(Srec) ~= Rec_bus_P); Sinv(real(Sinv) ~= Inv_bus_P) = Inv_bus_P(real(Sinv) ~= Inv_bus_P);
%Calculate new taps
tr = ceil((Vd_rec+3/pi*xc.*Id)./(3*sqrt(2)/pi.*cos(delay).*abs(vr)))*100; ti =
ceil((Vd_inv+3/pi*xc.*Id)./(3*sqrt(2)/pi.*cos(extinction).*abs(vi)))*100;
for n = 1:1:length(Rec_bus)
if tr(n) < regmin(n) tapr(n)=1; elseif tr(n) > regmax(n) tapr(n)=numtapr(n); else tapr(n)=(tr(n)-regmin(n)+1); end
if ti(n) < regmin(n) tapi(n)=1; elseif ti(n) > regmax(n) tapi(n)=numtapr(n); else tapi(n)=(ti(n)-regmin(n)+1); end end
%Update Svalues in column 4 of DCdata.bus Stotal = zeros(size(Stotal));
for n = 1:1:length(Rec_bus)
119
Stotal(Rec_bus(n)) = Stotal(Rec_bus(n)) - real(Srec(n))*100 -... sqrt(-1)*Rec_bus_Q(n)*100; Stotal(Inv_bus(n)) = Stotal(Inv_bus(n)) + real(Sinv(n))*100 -... sqrt(-1)*Inv_bus_Q(n)*100; end
DCdata.bus(:,4) = Stotal;
%Update DCdata taps
DCdata.interface(:,1) = tapr; DCdata.interface(:,2) = tapi;
%Update ACdata Svalues ACdata.bus(:,3)=ACdata.bus(:,3)-real(Stotal); ACdata.bus(:,4)=ACdata.bus(:,4)-imag(Stotal); ACdata.bus(:,3); ACdata.bus(:,4); %Print Data results = [Rec_bus Inv_bus real(Srec)*100 real(Sinv)*100 100*(real(Srec)-
real(Sinv))]; DCdata.results = results; printhvdcpf(results);
end
120
C.5 Main Code for Enhanced Load Flow Method
%for repeat=1:1:100 clear all; clc; perm_num=1; perm_max=10000000; while perm_num <= perm_max
clearvars -EXCEPT method perm_num perm_max %% Convergence Test % This file is used to test the convergence properties of several different % AC loadflow methodologies in a modified Sato and Arrillaga's method with % respect to the number of HVDC links in a system. %clear all; clc; close all;
%% Set up for Load flow %% casename = 'case14'; casedata = loadcase(casename); % load the casedata numbranch = size(casedata.branch,1); % how many branches linkdata = setlinkdata(casedata);% set HVDC link parameters convergence_times = []; % data matrix to store convergence times full_iterations = []; %datamatrix to store convergence interations AC_iterations = []; %datamatrix to store convergence interations orderings = makeorders(casedata); if strcmp(casename,'case4gs') || strcmp(casename,'case9') neworderings=[]; for i=1:1:500 neworderings = [orderings;neworderings]; end orderings = neworderings; end perm_max = 500; order = orderings(perm_num,:);
global ACtime_iso ACtime_sys etime failures = []; AC_time = []; DC_time = []; AC_time_iso =[]; AC_time_sys = []; AC_time_extra = [];
%% Run Modified Sato and Arrillaga's Method for #HVDC Links = 0...numbranch numbranch=length(order) for numlinks = 0:1:numbranch numlinks success=1; total = 0; ac_t_total = 0; dc_t_total = 0; ACtime_sys = 0; ACtime_iso = 0; etime = 0;
121
percentDC = numlinks/numbranch*100; if percentDC >= 90 type = 4; %% gs else type = 1; %% nr end
if numlinks > 0 [ACdata,DCdata]=buildDC(casedata,numlinks,order,linkdata); else ACdata = casedata; DCdata = casedata; end tol = 20; i = 0;
t_start = tic; reset = [ACdata.bus(:,3) ACdata.bus(:,4)]; store = [real(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180)) imag(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180))]; while tol > 10^-5 && success == 1 if numlinks > 0 dc_t_start = tic; [ACdata,DCdata] = runsimphvdcpf(ACdata,DCdata); dc_t_total = dc_t_total + toc(dc_t_start); end ac_t_start = tic; [ACdata,success,iterations] = runACpfv2(ACdata,DCdata,type); ac_t_total = ac_t_total + toc(ac_t_start); total = total + iterations; DCdata.bus(:,2) = ACdata.bus(:,8); DCdata.bus(:,3) = ACdata.bus(:,9); new = [real(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180)) imag(ACdata.bus(:,8).*exp(sqrt(-1)*ACdata.bus(:,9)*pi/180))]; tol = max(abs(store - new).^2); store = new; ACdata.bus(:,3)=reset(:,1); ACdata.bus(:,4)=reset(:,2); if success == 0 failures=[failures numlinks]; end i=i+1; end store convergence_times = [convergence_times toc(t_start)]; %store convergence
times AC_iterations = [AC_iterations total]; full_iterations = [full_iterations i]; %store convergence iterations AC_time = [AC_time ac_t_total]; DC_time = [DC_time dc_t_total]; AC_time_iso =[AC_time_iso ACtime_iso]; AC_time_sys =[AC_time_sys ACtime_sys]; AC_time_extra=[AC_time_extra etime]; end %% Delete Failed Trials
122
xdata = 0:1:numbranch; if ~isempty(failures) failures = sort(failures,2); for j = length(failures):-1:1 convergence_times(failures(j)+1) = []; AC_iterations(failures(j)+1)=[]; full_iterations(failures(j)+1)=[]; AC_time(failures(j)+1)=[]; DC_time(failures(j)+1)=[]; AC_time_iso(failures(j)+1)=[]; AC_time_sys(failures(j)+1)=[]; AC_time_extra(failures(j)+1)=[]; xdata(failures(j)+1)=[]; end end
%% Save filename = strcat(casename,'_ELF_',int2str(perm_num)); save(filename)
perm_num=perm_num+1; end %end