Download as pdf or txt
Download as pdf or txt
You are on page 1of 134

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

DEVELOPMENT OF A LOAD FLOW ANALYSIS TOOL .............................................. 15


2.1

Overview ........................................................................................................................ 15

2.2

Sato and Arillagas Method............................................................................................ 15

2.2.1

DC Subroutine ........................................................................................................ 16

2.2.2

Full Load Flow Routine .......................................................................................... 20

2.3

Modifications to Sato and Arillagas Method ................................................................ 21

2.3.1

Simplified DC Load Flow Routine ......................................................................... 22

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 Stevensons 4-Bus System ....................................... 31

2.3.5

Ordering of HVDC Link Substitutions ................................................................... 35

CONVERGENCE ANALYSIS OF LOAD FLOW FOR DIFFERENT POWER SYSTEMS


38

3.1

Overview ........................................................................................................................ 38

3.2

Grainger and Stevensons 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

DEVELOPMENT OF AN ENHANCED LOAD FLOW SOLVER .................................... 64


4.1

Overview ........................................................................................................................ 64

4.2

Convergence of Modified Sato and Arillagas 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

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 Stevensons 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 Arillagas HVDC link model .......................................................................... 17
Figure 4. Flow chart of Sato and Arillagas DC subroutine ......................................................... 19
Figure 5. Flowchart of Sato and Arillagas 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 Arillagas Full Load Flow Method ................................................. 30
Figure 10. One-line diagram for Grainger and Stevensons 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 NewtonRaphson 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 Stevensons 4-Bus System ................................................. 31
Table 2. Bus Data for Grainger and Stevensons 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 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 todays 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 Arrillagas 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 Arrillagas method. Leveraging off the findings, the
development of a load flow solver which extends Sato and Arrillagas 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 Arrillagas 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:

=
=1 | | cos( + )

(1)

=
=1 | | sin( + )

(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], NewtonRaphson [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 12pulse 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 Arillagas 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 Carrs 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 Arillagas 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 Arrillagas 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
Arrillagas 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
Arrillagas 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 Arillagas 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 Arrillagas 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 Arrillagas 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 Arillagas 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 Arillagas 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 Arillagas 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 Arillagas 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 Arillagas 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 Arillagas 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:

32

cos

(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 Arillagas HVDC link model

Combining equations (5-7) the equation for the operating current can be found to be:

32
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
where

(9a)
(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:

where

= + tan

(10)

= + tan

(11)

tan = ()

2 +sin 2 sin 2{ + }
cos 2 cos 2{ + }

(2)

= cos1 { (32) cos }

(12)
(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 Arillagas method. Figure 4 shows a flow chart representation of the DC
subroutine.

19

Figure 4. Flow chart of Sato and Arillagas DC subroutine

20
2.2.2 Full Load Flow Routine
The full load flow routine depicted in Sato and Arillagas 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 Arillagas methodology.

21

Figure 5. Flowchart of Sato and Arillagas full load flow routine

2.3 Modifications to Sato and Arillagas Method


A few modifications are now proposed to Sato and Arillagas 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 NewtonRaphson 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 Arillagas 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 Arillagas 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 MATPOWERs 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:

= (

+ ,

32
cos()| |

) 100

(20)

) 100

(21)

= (

+ ,

32
cos()| |

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 Arillagas 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 ith 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 Arillagas 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 Arillagas method used in this thesis.

30

Figure 9. Modified Sato and Arillagas Full Load Flow Method

31
2.3.4 Example Case: Grainger and Stevensons 4-Bus System
Several different power systems are available in MATPOWERs database. The simplest of
the power systems is a 4-Bus system used in Power Systems 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 Stevensons 4-bus system

Table 1. Line Data for Grainger and Stevensons 4-Bus System


From
bus
1
1
2
3

To
bus
2
3
4
4

G (per
unit)
3.815
5.170
5.170
3.024

B (per
unit)
-19.08
-25.85
-25.85
-15.12

Shunt Total Charging


(Mvar)
10.25
7.750
7.750
12.75

Shunt Y/2
(per unit)
0.05125
0.03875
0.03875
0.06375

Table 2. Bus Data for Grainger and Stevensons 4-Bus System

Bus
1
2
3
4

Generated
P (MW)
0
0
318

Generated
Q (Mvar)
0
0
-

Load P
(MW)
50
170
200
80

Load
Q
(Mvar)
30.99
105.35
123.94
49.58

V
(per unit)
1 + 0j
1 + 0j
1 + 0j
1 + 0j

Bus
Type
Slack
PQ
PQ
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 MATPOWERs
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
1
2
3
4

Generated
P (MW)
186.81
0
0
318

Generated
Q (Mvar)
114.5
0
0
181.43

Load P
(MW)
50
170
200
80

Load Q
(Mvar)
30.99
105.35
123.94
49.58

V
magnitude
(per unit)
1
0.982
0.969
1.02

V
phase
(deg)
0
-0.976
-1.872
1.523

Table 4. Calculated Line Flows from Load Flow Solution of 4-Bus System
From Bus
1
1
2
2
3
3
4
4

To Bus
2
3
1
4
1
4
2
3

P (MW)
38.69
98
-38
-132
-97
-103
133
104.75

Q (Mvar)
22.3
61.21
-31.24
-74.11
-63.57
-60.37
74.92
56.93

Bus
Type
Slack
PQ
PQ
PV

33
Table 5. Equivalent Impedances of 4-Bus System

Bus
1
2
3
4

Equivalent Impedance (per


unit)
0.5325 - 0.3241j
-0.4013 + 0.2680j
-0.3248 + 0.2319j
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
Initial Tap Position
Number of Taps
Minimum Regulation (%)
Maximum Regulation (%)
Delay/Extinction (degrees)
Minimum Delay/Extinction
(degrees)
Amplification Factor (p.u)
Commutation Reactance, Xc, (p.u)

Inverter
(values)
16
31
85
115
10

Rectifier
(values)
16
31
85
115
10

10
53.71
0.07275

10
53.71
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

# of HVDC Links
1
2
3
4

Voltage Magnitude at Bus # (p.u)


1
2
3
4

Voltage Angle at Bus # (degrees)


1
2
3
4

1
0.982
0.969
1.02

0
-0.976
-1.872
1.523

1
0.982
0.969
1.02

1
0.982
0.969
1.02

1
0.982
0.969
1.02

0
-0.976
-1.872
1.523

0
-0.976
-1.872
1.523

0
-0.976
-1.872
1.523

35
Table 8. Calculated Converter Powers and Line Flows for Systems with HVDC Links

1 HVDC Link

Converter Powers (MW)


2 HVDC Links
3 HVDC Link

Rectifier
Bus
4
4
1
1

Inverter
Bus
3
2
3
2

Rectifier
104.74
-

Inverter
102.91
-

Rectifier
104.74
133.25
-

From Bus
1
2
1
3
2
4

To Bus
2
1
3
1
4
2

P(MW)
38.69
-38.46
98.11
-97.08
-131.53
133.25

Q(Mvar)
22.29
-31.23
61.21
-63.56
-74.113
74.91

P(MW)
38.69
-38.46
98.11
-97.08
-

4 HVDC Link

Inverter Rectifier Inverter Rectifier Inverter


102.91 104.74
102.91 104.74
102.91
131.53 133.25
131.53 133.25
131.53
98.117
97.086 98.117
97.086
38.691
38.465
AC Line Flows
Q(Mvar) P(MW) Q(Mvar) P(MW) Q(Mvar)
22.29
38.69
22.29
-31.23
-38.46
-31.23
61.21
-63.56
-

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 subsystems, 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 MATLABs
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, MATLABs graphminspantree function returns only one solution determined
by Prims 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 MATPOWERs database. As mentioned
in the previous chapter, Grainger and Stevensons 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 14Bus 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 MATPOWERs
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 Stevensons 4-Bus System


Grainger and Stevensons 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 NewtonRaphson 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 NewtonRaphson method. For Grainger and Stevensons 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 NewtonRaphson 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 NewtonRaphson 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
Arillagas 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 NewtonRaphson 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 Arillagas 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 5 th
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 NewtonRaphson 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 NewtonRaphson 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 NewtonRaphson 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 NewtonRaphson 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 Arillagas 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 Stevensons 4-bus system yields 25%). The size of the bar determines
how many times the certain methodology had faster full load flow convergence.

Frequency of Faster Convergence Time of Load Flow


2500
Newton Raphson
Gauss Seidel

Number of Orderings

2000

1500

1000

500

10

20

30 40 50 60 70
%DC Transmission

80

90 100

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.

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 Arillagas 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
Number
Gauss Newton- Enhanced
of Links %DC Seidel Raphson Load Flow
0
0
103
2
2
1
5
93
2
2
2
10
110
2
2
3
15
115
2
2
4
20
122
2
2
5
25
136
2
2
6
30
152
2
2
7
35
166
2
2
8
40
134
3
3
9
45
70
3
3
10
50
70
3
3
11
55
45
3
3
12
60
33
3
3
13
65
30
3
3
14
70
32
4
4
15
75
17
4
4
16
80
17
4
4
17
85
12
4
4
18
90
9
4
9
19
95
8
3
8
20
100
1
1
1

Full Convergence Time (s)


Gauss NewtonEnhanced
Seidel Raphson
Load Flow
0.0273
0.0080
0.0082
0.0258
0.0083
0.0081
0.0288
0.0071
0.0071
0.0294
0.0074
0.0072
0.0310
0.0074
0.0073
0.0339
0.0075
0.0071
0.0370
0.0071
0.0072
0.0398
0.0072
0.0073
0.0323
0.0075
0.0074
0.0195
0.0076
0.0076
0.0185
0.0076
0.0078
0.0144
0.0076
0.0077
0.0121
0.0077
0.0079
0.0115
0.0078
0.0080
0.0180
0.0140
0.0147
0.0156
0.0142
0.0142
0.0159
0.0142
0.0141
0.0150
0.0141
0.0147
0.0147
0.0144
0.0144
0.0140
0.0139
0.0143
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 NewtonRaphson 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 MATPOWERs 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. MATPOWERs 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 Number
From
To
Bus
Bus
6
10
9
10
10
20
10
17
10
21
10
22

Bus 10 Power = 165 + 2j MVA


From Bus
Injection
To Bus Injection
P
Q
P
Q
(MW)
(Mvar)
(MW) (Mvar)
38.75
-1
-38.75 11.48
67.81
-13.79 -67.81 20.09
-9.12
2.02
9.21
-1.81
-22.3
7.38
22.48
-6.87
-15.34
-26.08 15.66
26.82
-11.68
-16.88 12.02
17.6

Bus 10 Power = 5.8 + 170j MVA


From Bus
Injection
To Bus Injection
P
Q
P
Q
(MW) (Mvar) (MW) (Mvar)
0.25
32.16
-0.25
-24.6
0.43
47.59
-0.43
-43.04
3.64
-13.37
-3.25
14.27
1.31
-18.85
-1.07
19.48
-4.68
-43.06
5.94
46
-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 Arillagas 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 Stevensons 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 Arillagas
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 MATLABs 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 nonconvergence of the load flow method. However, this was not looked into much detail as for an Nbus 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 nonconvergence, 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 newtons 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 Arillagas 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 +

(A2).

By eliminating Ix from equations (A1) and (A2), the operating voltage Vx can be found by
following the following equation:

(2 ) + cos() = 0

(A3)

The following relation holds between the current and power settings:
=

Substituting equation (A4) into (A3):

(A4)

88
3

2 (2 ) + cos() ( )( ) = 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 Stevensons 4-Bus System
%% MATPOWER Case Format : Version 2
mpc.version = '2';
%%----- Power Flow Data
%% system MVA base
mpc.baseMVA = 100;
%% bus data
%
bus_i
Vmin
mpc.bus = [
1
3
2
1
3
1
4
2
];

type
50
170
200
80

Pd
30.99
105.35
123.94
49.58

-----%%

Qd

Gs

Bs

area

0
0
0
0

0
0
0
0

1
1
1
1

1
1
1
1

0
0
0
0

%% generator data
%
bus Pg Qg Qmax
Qmin
Vg mBase
Qc1min Qc1max Qc2min Qc2max ramp_agc
mpc.gen = [
4
318 0
100 -100
1.02
100 1
0
0
0
0;
1
0
0
100 -100
1
100 1
0
0
0
0;
];
%% branch data
%
fbus
tbus
r
x
status angmin angmax
mpc.branch = [
1
2
0.01008 0.0504
1
3
0.00744 0.0372
2
4
0.00744 0.0372
3
4
0.01272 0.0636
];

rateA

0.1025
0.0775
0.0775
0.1275

250
250
250
250

Vm

Va

baseKV

230
230
230
230

1
1
1
1

1.1
1.1
1.1
1.1

zone

Vmax

0.9;
0.9;
0.9;
0.9;

status Pmax
Pmin
ramp_10 ramp_30 ramp_q

Pc1 Pc2
apf

318 0

rateB

rateC

ratio

250
250
250
250

0
0
0
0

1
1
1
1

250
250
250
250

0
0
0
0

angle

-360
-360
-360
-360

360;
360;
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
Vmin
mpc.bus = [
1
3
2
2
3
2
4
1
5
1
6
1
7
1
8
1
9
1
];

type
0
0
0
0
90
0
100
0
125

0
0
0
0
30
0
35
0
50

-----%%

Pd

Qd

Gs

Bs

area

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1

0
0
0
0
0
0
0
0
0

%% generator data
%
bus Pg Qg Qmax
Qmin
Qc1min Qc1max Qc2min Qc2max
mpc.gen = [
1
0
0
300 -300
1
0
0
0;
2
163 0
300 -300
1
0
0
0;
3
85 0
300 -300
1
0
0
0;
];
%% branch data
%
fbus
tbus
r
x
status angmin angmax
mpc.branch = [
1
4
0
0.0576 0
4
5
0.017
0.092
5
6
0.039
0.17
3
6
0
0.0586 0
6
7
0.0119 0.1008
7
8
0.0085 0.072
8
2
0
0.0625 0
8
9
0.032
0.161
9
4
0.01
0.085
];
%%----- OPF Data -----%%
%% area data
%
area
refbus
mpc.areas = [

345
345
345
345
345
345
345
345
345

Vg mBase
ramp_agc

Vm

Va

baseKV

1
1
1
1
1
1
1
1
1

1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1

0.9;
0.9;
0.9;
0.9;
0.9;
0.9;
0.9;
0.9;
0.9;

zone

Vmax

status Pmax
Pmin
ramp_10 ramp_30 ramp_q

Pc1 Pc2
apf

100 1

250 10

100 1

300 10

100 1

270 10

rateA

rateB

rateC

0
250
150
0
150
250
0
250
250

1
0
0
1
0
0
1
0
0

250 250
0.158
0.358
300 300
0.209
0.149
250 250
0.306
0.176

250
250
150
300
150
250
250
250
250

0
250
150
0
150
250
0
250
250

ratio

-360
0
1
0
1
-360
0
1
0
1
-360
0
1
0
1

angle

360;
-360
-360
360;
-360
-360
360;
-360
-360

360;
360;
360;
360;
360;
360;

92
1

5;

];
%% generator cost data
%
1
startup shutdown
n
%
2
startup shutdown
n
mpc.gencost = [
2
1500
0
3
0.11
2
2000
0
3
0.085
2
3000
0
3
0.1225
];

x1 y1
c(n-1)
5
150;
1.2 600;
1
335;

... xn
... c0

yn

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
Vmin
mpc.bus = [
1
3
2
2
3
2
4
1
5
1
6
2
7
1
8
2
9
1
10 1
11 1
12 1
13 1
14 1
];

-----%%

type

Pd

0
0
21.7
94.2
47.8
7.6 1.6
11.2
0
0
0
0
29.5
9
5.8
3.5 1.8
6.1 1.6
13.5
14.9

0
0
12.7
19 0
-3.9
0
0
7.5 0
0
0
0
0
16.6
0
0
0
0
0
0
5.8 0
5
0

%% generator data
%
bus Pg Qg Qmax
Qc1min Qc1max Qc2min
mpc.gen = [
1
232.4
-16.9
0
0
0
0
0
0;
2
40 42.4
50
0
0
0
0;
3
0
23.4
40
0
0
0
0;
6
0
12.2
24
0
0
0
0;
8
0
17.4
24
0
0
0
0;
];

Qd

Gs

Bs

area

Vm

1
0
0
0
1
0
1
1
0
1
1
1
0
0

1.06
0
0
1
1.06
0.94;
0
1
1.045
-4.98
0
1
1.06
0.94;
1
1.01
-12.72 0
1
1.06
0.94;
0
1
1.019
-10.33 0
1
1.06
0.94;
1.02
-8.78
0
1
1.06
0.94;
1
1.07
-14.22 0
1
1.06
0.94;
1.062
-13.37 0
1
1.06
0.94;
1.09
-13.36 0
1
1.06
0.94;
19 1
1.056
-14.94 0
1
1.06
0.94;
1.051
-15.1
0
1
1.06
0.94;
1.057
-14.79 0
1
1.06
0.94;
1.055
-15.07 0
1
1.06
0.94;
1
1.05
-15.16 0
1
1.06
0.94;
1
1.036
-16.04 0
1
1.06
0.94;

Qmin
Qc2max

Vg mBase
ramp_agc

10

1.06

Va

baseKV

zone

Vmax

status Pmax
Pmin
ramp_10 ramp_30 ramp_q

100 1

332.4

Pc1 Pc2
apf

-40 1.045

100 1

140 0

1.01

100 1

100 0

-6

1.07

100 1

100 0

-6

1.09

100 1

100 0

%% branch data
%
fbus
tbus
r
x
status angmin angmax
mpc.branch = [
1
2
0.01938 0.05917
1
5
0.05403 0.22304
2
3
0.04699 0.19797
2
4
0.05811 0.17632
2
5
0.05695 0.17388
3
4
0.06701 0.17103

rateA

0.0528
0.0492
0.0438
0.034
0.0346
0.0128

rateB

9900
9900
9900
9900
9900
9900

0
0
0
0
0
0

rateC

ratio

angle

0
0
0
0
0
0

0
0
0
0
0
0

-360
-360
-360
-360
-360
-360

0
0
0
0
0
0

1
1
1
1
1
1

360;
360;
360;
360;
360;
360;

94
4
4
4
5
6
6
6
7
7
9
9
10
12
13

5
7
9
6
11
12
13
8
9
10
14
11
13
14

0.01335 0.04211
0
0.20912 0
0
0.55618 0
0
0.25202 0
0.09498 0.1989
0.12291 0.25581
0.06615 0.13027
0
0.17615 0
0
0.11001 0
0.03181 0.0845
0.12711 0.27038
0.08205 0.19207
0.22092 0.19988
0.17093 0.34802

0
9900
9900
0
9900
0
9900
0
0
9900
0
9900
0
9900
9900
0
9900
0
0
9900
0
9900
0
9900
0
9900
0
9900

0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0.978
0.969
0.932
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

];
%%----- OPF Data -----%%
%% generator cost data
%
1
startup shutdown
n
%
2
startup shutdown
n
mpc.gencost = [
2
0
0
3
0.0430293
2
0
0
3
0.25
20
2
0
0
3
0.01
40
2
0
0
3
0.01
40
2
0
0
3
0.01
40
];

x1 y1
c(n-1)
20
0;
0;
0;
0;

0;

... xn
... c0

yn

0
0
0
0
0
0
0
1
1
0
0
0
0
0

1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;

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
Vmin
mpc.bus = [
1
3
2
2
3
1
4
1
5
1
6
1
7
1
8
1
9
1
10 1
11 1
12 1
13 2
14 1
15 1
16 1
17 1
18 1
19 1
20 1
21 1
22 2
23 2
24 1
25 1
26 1
27 2
28 1
29 1
30 1
];

-----%%

type

Pd

Qd

Gs

0
0
21.7
2.4 1.2
7.6 1.6
0
0
0
0
22.8
30 30
0
0
5.8 2
0
0
11.2
0
0
6.2 1.6
8.2 2.5
3.5 1.8
9
5.8
3.2 0.9
9.5 3.4
2.2 0.7
17.5
0
0
3.2 1.6
8.7 6.7
0
0
3.5 2.3
0
0
0
0
2.4 0.9
10.6

0
0
1
12.7
0
0
0
1
0
0
1
0
0.19
0
0
1
10.9
0
0
0
1
0
0
1
0
0
3
0
0
1
7.5 0
0
0
0
2
0
0
2
0
0
2
0
0
2
0
0
2
0
0
2
0
0
2
0
0
2
11.2
0
0
0
3
0
0
2
0
0.04
0
0
3
0
0
3
0
0
3
0
0
1
0
0
3
1.9 0
0

%% generator data
%
bus Pg Qg Qmax
Qmin
Qc1min Qc1max Qc2min Qc2max
mpc.gen = [
1
23.54
0
150 -20 1
0
0
0;
2
60.97
0
60 -20 1
0
0
0;
22 21.59
0
62.5
-15
0
0
0
0;

Bs

area

1
0
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
3
1
1
1
1
1
3

0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
3
0
0
1
0
0
0
0
0
1

135
1
135
135
0
135
1
135
135
135
135
0
135
135
135
135
135
135
135
135
1
135
135
0
135
135
135
135
135
0

Vm

Va

baseKV

zone

Vmax

1
0
1
1
135
1
0
1
1
1
1
135
1
1
1
1
1
1
1
1
0
1
1
135
1
1
1
1
1
135

1.05
0.95;
135 1
1.1 0.95;
1.05
0.95;
1.05
0.95;
1
1.05
0.95;
1.05
0.95;
135 1
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1
1.05
0.95;
1.1 0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.05
0.95;
135 1
1.05
0.95;
1.1 0.95;
1.1 0.95;
1
1.05
0.95;
1.05
0.95;
1.05
0.95;
1.1 0.95;
1.05
0.95;
1.05
0.95;
1
1.05
0.95;

Vg mBase
ramp_agc

status Pmax
Pmin
ramp_10 ramp_30 ramp_q

Pc1 Pc2
apf

100 1

80

100 1

80

50

100 1

96

0
0
0
];

27
0
23
0
13
0

26.91
0
0;
19.2
0;
37 0
0;

48.7

40

44.7

-15 1

100 1

OPF Data

-10 1

100 1

30

-15 1

100 1

40

%% branch data
%
fbus
tbus
r
x
b
rateA
status angmin angmax
mpc.branch = [
1
2
0.02
0.06
0.03
130
1
3
0.05
0.19
0.02
130
2
4
0.06
0.17
0.02
65
3
4
0.01
0.04
0
130 130
2
5
0.05
0.2 0.02
130 130
2
6
0.06
0.18
0.02
65
4
6
0.01
0.04
0
90 90
5
7
0.05
0.12
0.01
70
6
7
0.03
0.08
0.01
130
6
8
0.01
0.04
0
32 32
6
9
0
0.21
0
65 65 65
6
10 0
0.56
0
32 32 32
9
11 0
0.21
0
65 65 65
9
10 0
0.11
0
65 65 65
4
12 0
0.26
0
65 65 65
12 13 0
0.14
0
65 65 65
12 14 0.12
0.26
0
32 32
12 15 0.07
0.13
0
32 32
12 16 0.09
0.2 0
32 32 32
14 15 0.22
0.2 0
16 16 16
16 17 0.08
0.19
0
16 16
15 18 0.11
0.22
0
16 16
18 19 0.06
0.13
0
16 16
19 20 0.03
0.07
0
32 32
10 20 0.09
0.21
0
32 32
10 17 0.03
0.08
0
32 32
10 21 0.03
0.07
0
32 32
10 22 0.07
0.15
0
32 32
21 22 0.01
0.02
0
32 32
15 23 0.1 0.2 0
16 16 16 0
22 24 0.12
0.18
0
16 16
23 24 0.13
0.27
0
16 16
24 25 0.19
0.33
0
16 16
25 26 0.25
0.38
0
16 16
25 27 0.11
0.21
0
16 16
28 27 0
0.4 0
65 65 65 0
27 29 0.22
0.42
0
16 16
27 30 0.32
0.6 0
16 16 16
29 30 0.24
0.45
0
16 16
8
28 0.06
0.2 0.02
32 32
6
28 0.02
0.06
0.01
32
];
%%-----

55

-----%%

rateB

rateC

130
130
65
130
130
65
90
70
130
32
0
0
0
0
0
0
32
32
0
0
16
16
16
32
32
32
32
32
32
0
16
16
16
16
16
0
16
0
16
32
32

0
0
1
-360
360;
0
0
1
-360
360;
0
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
0
1
-360
360;
0
1
-360
360;
0
0
1
-360
360;
0
0
1
-360
360;
0
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
0
1
-360
360;
0
1
-360
360;
1
-360
360;
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
1
-360
360;
-360
360;
0
1
-360
360;
1
-360
360;
0
1
-360
360;
0
1
-360
360;
0
0
1
-360
360;

130
130
65
0
0
65
0
70
130
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
32

ratio

angle

97
%% area data
%
area
refbus
mpc.areas = [
1
8;
2
23;
3
26;
];
%% generator cost data
%
1
startup shutdown
%
2
startup shutdown
mpc.gencost = [
2
0
0
3
0.02
2
0
0
3
0.0175
2
0
0
3
0.0625
2
0
0
3
0.00834
2
0
0
3
0.025
2
0
0
3
0.025
];

n
n

x1 y1
c(n-1)

2
0;
1.75
1
0;
3.25
3
0;
3
0;

0;
0;

... xn
... c0

yn

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
Vmin
mpc.bus = [
1
2
2
1
3
1
4
2
5
1
6
2
7
1
8
2
9
1
10 2
11 1
12 2
13 1
14 1
15 2
16 1
17 1
18 2
19 2
20 1
21 1
22 1
23 1
24 2
25 2
26 2
27 2
28 1
29 1
30 1
31 2
32 2
33 1
34 2
35 1
36 2
37 1
38 1
39 1
40 2
41 1
42 2
43 1

type
51
20
39
39
0
52
19
28
0
0
70
47
34
14
90
25
11
60
45
18
14
10
7
13
0
0
71
17
24
0
43
59
23
59
33
31
0
0
27
66
37
96
18

27
9
10
12
0
22
2
0
0
0
23
10
16
1
30
10
3
34
25
3
8
5
3
0
0
0
13
7
4
0
27
23
9
26
9
17
0
0
11
23
10
23
7

-----%%

Pd

Qd

Gs

Bs

area

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
-40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
14
0
0
-25
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

0.955
0.971
0.968
0.998
1.002
0.99
0.989
1.015
1.043
1.05
0.985
0.99
0.968
0.984
0.97
0.984
0.995
0.973
0.963
0.958
0.959
0.97
1
21
0.992
1.05
1.015
0.968
0.962
0.963
0.968
0.967
0.964
0.972
0.986
0.981
0.98
0.992
0.962
0.97
0.97
0.967
0.985
0.978

Vm
10.67
11.22
11.56
15.28
15.73
13 138
12.56
20.77
28.02
35.61
12.72
12.2
11.35
11.5
11.23
11.91
13.74
11.53
11.05
11.93
13.52
16.08
138 1
20.89
27.93
29.71
15.35
13.62
12.63
18.79
12.75
14.8
10.63
11.3
10.87
10.87
11.77
16.91
8.41
7.35
6.92
8.53
11.28

Va

baseKV

zone

Vmax

138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
1
1.06
0.94;
138 1
1.06
0.94;
345 1
1.06
0.94;
345 1
1.06
0.94;
345 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
345 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
345 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
345 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;
138 1
1.06
0.94;

99
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

1
1
2
1
1
2
1
1
1
1
2
2
2
1
1
2
1
2
2
1
1
2
2
1
1
3
2
1
2
2
2
1
2
2
1
1
2
1
1
1
1
2
1
2
1
2
2
2
2
1
1
1
1
1
1
2
2

16
53
28
34
20
87
17
17
18
23
113
63
84
12
12
277
78
0
77
0
0
0
39
28
0
0
66
0
12
6
68
47
68
61
71
39
130
0
54
20
11
24
21
0
48
0
163
10
65
12
30
42
38
15
34
42
37

8
22
10
0
11
30
4
8
5
11
32
22
18
3
3
113
3
0
14
0
0
0
18
7
0
0
20
0
0
0
27
11
36
28
26
32
26
0
27
10
7
15
10
0
10
0
42
0
10
7
16
31
15
9
8
0
18

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

10
10
10
0
15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
0
0
0
0
20
0
0
20
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

0.985
0.987
1.005
1.017
1.021
1.025
1.001
0.967
0.957
0.946
0.955
0.952
0.954
0.971
0.959
0.985
0.993
0.995
0.998
0.969
0.984
1.005
1.05
1.02
1.003
1.035
0.984
0.987
0.98
0.991
0.958
0.967
0.943
1.006
1.003
1.009
1.04
0.997
0.989
0.985
0.98
0.985
0.987
1.015
0.987
1.005
0.985
0.98
0.993
0.987
0.991
0.981
0.993
1.011
1.024
1.01
1.017

13.82
15.67
18.49
20.73
19.93
20.94
18.9
16.28
15.32
14.35
15.26
14.97
15.16
16.36
15.51
19.37
23.15
24.04
23.43
22.75
24.52
27.65
27.48
24.84
27.55
30 138
22.58
22.15
20.98
21.94
21.64
22.91
21.77
26.72
26.42
26.72
28.96
28.1
27.24
28.42
30.95
32.51
31.14
31.4
35.64
39.69
33.29
33.31
33.8
30.79
28.64
27.67
27.51
27.88
27.4
27.04
28.03

138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
345
345
345
138
138
345
1
138
138
138
138
138
138
138
138
138
138
138
345
138
138
138
138
138
161
138
138
138
138
138
138
138
138
138
138
138
138
138

1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;
1
1.06
0.94;

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118

1
1
2
2
2
1
2
1
1
2
2
2
2
1
1
2
1
1

22
5
23
38
31
43
50
2
8
39
0
68
6
8
22
184
20
33

15
3
16
25
26
16
12
1
3
30
0
13
0
3
7
0
8
15

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
20
0
6
0
0
6
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

0.993
0.991
1.001
0.971
0.965
0.962
0.952
0.967
0.967
0.973
0.98
0.975
0.993
0.96
0.96
1.005
0.974
0.949

29.61
32.3
24.44
21.69
20.57
20.32
17.53
19.38
18.93
18.09
19.74
14.99
13.74
14.46
14.46
27.12
10.67
21.92

138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06
1.06

0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;
0.94;

];
%% generator data
%
bus Pg Qg Qmax
Qmin
Vg mBase
Qc1min Qc1max Qc2min Qc2max ramp_agc
mpc.gen = [
1
0
0
15 -5 0.955
100 1
100
0
0
0;
4
0
0
300 -300
0.998
100 1
0
0
0
0;
6
0
0
50 -13 0.99
100 1
100
0
0
0;
8
0
0
300 -300
1.015
100 1
0
0
0
0;
10 450 0
200 -147
1.05
100 1
0
0
0
0;
12 85 0
120 -35 0.99
100 1
185
0
0
0;
15 0
0
30 -10 0.97
100 1
100
0
0
0;
18 0
0
50 -16 0.973
100 1
100
0
0
0;
19 0
0
24 -8 0.962
100 1
100
0
0
0;
24 0
0
300 -300
0.992
100 1
0
0
0
0;
25 220 0
140 -47 1.05
100 1
320
0
0
0;
26 314 0
1000
-1000
1.015
100
0
0
0
0
0;
27 0
0
300 -300
0.968
100 1
0
0
0
0;
31 7
0
300 -300
0.967
100 1
0
0
0
0;
32 0
0
42 -14 0.963
100 1
100
0
0
0;
34 0
0
24 -8 0.984
100 1
100
0
0
0;

status Pmax
Pmin
ramp_10 ramp_30 ramp_q

Pc1 Pc2
apf

100 0

100 0

550 0

100 0

414 0

100 0

107 0

101

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

36
0
40
0
42
0
46
0
49
0
54
0
55
0
56
0
59
0
61
0
62
0
65
0
66
0
69
0
70
0
72
0
73
0
74
0
76
0
77
0
80
0
85
0
87
0
89
0
90
0
91
0
92
0
99
0

0
0
0;
0
0
0
0;
0
0
0
0;
19 0
0
0;
204 0
0;
48 0
0
0;
0
0
0;
0
0
0;
155 0
0;
160 0
0
0;
0
0
0;
391 0
0;
392 0
0;
516.4
0
0
0
0
0;
0
0
0
0;
0
0
0
0;
0
0
0;
0
0
0;
0
0
0;
477 0
0
0;
0
0
0;
4
0
0
0
607 0
0
0;
0
0
0
0;
0
0
0
0;
0
0
0;
0
0
0
0;

24

-8

0.98

100 1

100 0

300 -300

0.97

100 1

100 0

300 -300

0.985

100 1

100 0

100 -100

1.005

100 1

119 0

148 0

210 -85 1.025


300 -300

100 1

0.955

304 0

100 1

23

-8

0.952

100 1

100 0

15

-8

0.954

100 1

100 0

180 -60 0.985

100 1

255 0

260 0

300 -100
20

0.995

100 1

-20 0.998

100 1

100 0

200 -67 1.005

100 1

491 0

200 -67 1.05

100 1

492 0

0
0
32

1.035

100 1

805.2

100 1

100 0

300 -300
0;
-10 0.984

100 -100

0.98

100 1

100 0

100 -100

0.991

100 1

100 0

-6

0.958

100 1

100 0

23

-8

0.943

100 1

100 0

70

-20 1.006

100 1

100 0

577 0

1000
-100
1.015
100 1
104 0
0;
300 -210
1.005
100 1
707 0
0

300 -300

0.985

100 1

100 0

100 -100

0.98

100 1

100 0

100 0

280 -165
23

-8

-3

100 -100

1.04
0.985

0.99

100 1
100 1

100 1
1.01

100 0

100 0

100 1

102

0
0
0
0
0
0
0
0
0
0
];

100
0
103
0
104
0
105
0
107
0
110
0
111
0
112
0
113
0
116
0

252
0;
40
0;
0
0;
0
0;
0
0
0
0;
36
0
0
0
0
0
0
0

155 -50 1.017

100 1

352 0

40

-15 1.01

100 1

140 0

23

-8

0.971

100 1

100 0

23

-8

0.965

100 1

100 0

0
0;
0

200 -200

100 0

0
0
0
0
0
0;
0
0

1000
-100
0.98
100 1
136 0
0;
1000
-100
0.975
100 1
100 0
0;
200 -100
0.993
100 1
100 0
0

1000
0;

23

-8

0.952
0.973

-1000

%% branch data
%
fbus
tbus
r
x
status angmin angmax
mpc.branch = [
1
2
0.0303 0.0999
1
3
0.0129 0.0424
4
5
0.00176 0.00798
3
5
0.0241 0.108
5
6
0.0119 0.054
6
7
0.00459 0.0208
8
9
0.00244 0.0305
8
5
0
0.0267 0
9
10 0.00258 0.0322
4
11 0.0209 0.0688
5
11 0.0203 0.0682
11 12 0.00595 0.0196
2
12 0.0187 0.0616
3
12 0.0484 0.16
7
12 0.00862 0.034
11 13 0.02225 0.0731
12 14 0.0215 0.0707
13 15 0.0744 0.2444
14 15 0.0595 0.195
12 16 0.0212 0.0834
15 17 0.0132 0.0437
16 17 0.0454 0.1801
17 18 0.0123 0.0505
18 19 0.01119 0.0493
19 20 0.0252 0.117
15 19 0.012
0.0394
20 21 0.0183 0.0849
21 22 0.0209 0.097
22 23 0.0342 0.159
23 24 0.0135 0.0492
23 25 0.0156 0.08

100 1

100 1

100 0

1.005

100 1

100 0

rateA

rateB

rateC

ratio

0.0254
0.01082
0.0021
0.0284
0.01426
0.0055
1.162
9900
1.23
0.01748
0.01738
0.00502
0.01572
0.0406
0.00874
0.01876
0.01816
0.06268
0.0502
0.0214
0.0444
0.0466
0.01298
0.01142
0.0298
0.0101
0.0216
0.0246
0.0404
0.0498
0.0864

9900
9900
9900
9900
9900
9900
9900
0
0
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.985
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

angle

1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;

103
26
25
27
28
30
8
26
17
29
23
31
27
15
19
35
35
33
34
34
38
37
37
30
39
40
40
41
43
34
44
45
46
46
47
42
42
45
48
49
49
51
52
53
49
49
54
54
55
56
50
56
51
54
56
56
55
59

25
27
28
29
17
30
30
31
31
32
32
32
33
34
36
37
37
36
37
37
39
40
38
40
41
42
42
44
43
45
46
47
48
49
49
49
49
49
50
51
52
53
54
54
54
55
56
56
57
57
58
58
59
59
59
59
60

0
0.0382 0
0.0318 0.163
0.01913 0.0855
0.0237 0.0943
0
0.0388 0
0.00431 0.0504
0.00799 0.086
0.0474 0.1563
0.0108 0.0331
0.0317 0.1153
0.0298 0.0985
0.0229 0.0755
0.038
0.1244
0.0752 0.247
0.00224 0.0102
0.011
0.0497
0.0415 0.142
0.00871 0.0268
0.00256 0.0094
0
0.0375 0
0.0321 0.106
0.0593 0.168
0.00464 0.054
0.0184 0.0605
0.0145 0.0487
0.0555 0.183
0.041
0.135
0.0608 0.2454
0.0413 0.1681
0.0224 0.0901
0.04
0.1356
0.038
0.127
0.0601 0.189
0.0191 0.0625
0.0715 0.323
0.0715 0.323
0.0684 0.186
0.0179 0.0505
0.0267 0.0752
0.0486 0.137
0.0203 0.0588
0.0405 0.1635
0.0263 0.122
0.073
0.289
0.0869 0.291
0.0169 0.0707
0.00275 0.00955
0.00488 0.0151
0.0343 0.0966
0.0474 0.134
0.0343 0.0966
0.0255 0.0719
0.0503 0.2293
0.0825 0.251
0.0803 0.239
0.04739 0.2158
0.0317 0.145

9900
0.1764
0.0216
0.0238
9900
0.514
0.908
0.0399
0.0083
0.1173
0.0251
0.01926
0.03194
0.0632
0.00268
0.01318
0.0366
0.00568
0.00984
9900
0.027
0.042
0.422
0.01552
0.01222
0.0466
0.0344
0.06068
0.04226
0.0224
0.0332
0.0316
0.0472
0.01604
0.086
0.086
0.0444
0.01258
0.01874
0.0342
0.01396
0.04058
0.031
0.0738
0.073
0.0202
0.00732
0.00374
0.0242
0.0332
0.0242
0.01788
0.0598
0.0569
0.0536
0.05646
0.0376

0
0
9900
9900
9900
0
0
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
0
0
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900

0.96
0
0
0
0
0
0
0.96
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.935
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;

104
59
60
60
61
63
63
64
38
64
49
49
62
62
65
66
65
47
49
68
69
24
70
24
71
71
70
70
69
74
76
69
75
77
78
77
77
79
68
81
77
82
83
83
84
85
86
85
85
88
89
89
90
89
89
91
92
92

61
61
62
62
59
64
61
65
65
66
66
66
67
66
67
68
69
69
69
70
70
71
72
72
73
74
75
75
75
77
77
77
78
79
80
80
80
81
80
82
83
84
85
85
86
87
88
89
89
90
90
91
92
92
92
93
94

0.0328 0.15
0.00264 0.0135
0.0123 0.0561
0.00824 0.0376
0
0.0386 0
0.00172 0.02
0
0.0268 0
0.00901 0.0986
0.00269 0.0302
0.018
0.0919
0.018
0.0919
0.0482 0.218
0.0258 0.117
0
0.037
0
0.0224 0.1015
0.00138 0.016
0.0844 0.2778
0.0985 0.324
0
0.037
0
0.03
0.127
0.00221 0.4115
0.00882 0.0355
0.0488 0.196
0.0446 0.18
0.00866 0.0454
0.0401 0.1323
0.0428 0.141
0.0405 0.122
0.0123 0.0406
0.0444 0.148
0.0309 0.101
0.0601 0.1999
0.00376 0.0124
0.00546 0.0244
0.017
0.0485
0.0294 0.105
0.0156 0.0704
0.00175 0.0202
0
0.037
0
0.0298 0.0853
0.0112 0.03665
0.0625 0.132
0.043
0.148
0.0302 0.0641
0.035
0.123
0.02828 0.2074
0.02
0.102
0.0239 0.173
0.0139 0.0712
0.0518 0.188
0.0238 0.0997
0.0254 0.0836
0.0099 0.0505
0.0393 0.1581
0.0387 0.1272
0.0258 0.0848
0.0481 0.158

0.0388
0.01456
0.01468
0.0098
9900
0.216
9900
1.046
0.38
0.0248
0.0248
0.0578
0.031
9900
0.02682
0.638
0.07092
0.0828
9900
0.122
0.10198
0.00878
0.0488
0.04444
0.01178
0.03368
0.036
0.124
0.01034
0.0368
0.1038
0.04978
0.01264
0.00648
0.0472
0.0228
0.0187
0.808
9900
0.08174
0.03796
0.0258
0.0348
0.01234
0.0276
0.0445
0.0276
0.047
0.01934
0.0528
0.106
0.0214
0.0548
0.0414
0.03268
0.0218
0.0406

9900
9900
9900
9900
0
0
9900
0
0
9900
9900
9900
9900
9900
9900
0
0
9900
9900
9900
9900
0
0
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
0
0
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900

0
0
0
0
0
0
0
0
0.96
0
0
0.985
0
0
0
0
0
0
0
0
0
0
0
0
0.935
0
0
0
0
0
0
0
0
0.935
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.935
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;
1
-360
360;

105
93
94
80
82
94
80
80
80
92
94
95
96
98
99
100
92
101
100
100
103
103
100
104
105
105
105
106
108
103
109
110
110
17
32
32
27
114
68
12
75
76

94
95
96
96
96
97
98
99
100
100
96
97
100
100
101
102
102
103
104
104
105
106
105
106
107
108
107
109
110
110
111
112
113
113
114
115
115
116
117
118
118

0.0223
0.0132
0.0356
0.0162
0.0269
0.0183
0.0238
0.0454
0.0648
0.0178
0.0171
0.0173
0.0397
0.018
0.0277
0.0123
0.0246
0.016
0.0451
0.0466
0.0535
0.0605
0.00994
0.014
0.053
0.0261
0.053
0.0105
0.03906
0.0278
0.022
0.0247
0.00913
0.0615
0.0135
0.0164
0.0023
0.00034
0.0329
0.0145
0.0164

0.0732
0.0434
0.182
0.053
0.0869
0.0934
0.108
0.206
0.295
0.058
0.0547
0.0885
0.179
0.0813
0.1262
0.0559
0.112
0.0525
0.204
0.1584
0.1625
0.229
0.0378
0.0547
0.183
0.0703
0.183
0.0288
0.1813
0.0762
0.0755
0.064
0.0301
0.203
0.0612
0.0741
0.0104
0.00405
0.14
0.0481
0.0544

0.01876
0.0111
0.0494
0.0544
0.023
0.0254
0.0286
0.0546
0.0472
0.0604
0.01474
0.024
0.0476
0.0216
0.0328
0.01464
0.0294
0.0536
0.0541
0.0407
0.0408
0.062
0.00986
0.01434
0.0472
0.01844
0.0472
0.0076
0.0461
0.0202
0.02
0.062
0.00768
0.0518
0.01628
0.01972
0.00276
0.164
0.0358
0.01198
0.01356

9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900
9900

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

];
%%----- OPF Data -----%%
%% generator cost data
%
1
startup shutdown
n
%
2
startup shutdown
n
mpc.gencost = [
2
0
0
3
0.01
40
2
0
0
3
0.01
40
2
0
0
3
0.01
40
2
0
0
3
0.01
40
2
0
0
3
0.0222222
2
0
0
3
0.117647
2
0
0
3
0.01
40
2
0
0
3
0.01
40
2
0
0
3
0.01
40

x1 y1
c(n-1)
0;
0;
0;
0;
20
20
0;
0;
0;

0;
0;

... xn
... c0

yn

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360
-360

360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;
360;

106
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
];

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3

0.01
40
0.0454545
0.0318471
0.01
40
1.42857 20
0.01
40
0.01
40
0.01
40
0.01
40
0.01
40
0.526316
0.0490196
0.208333
0.01
40
0.01
40
0.0645161
0.0625 20
0.01
40
0.0255754
0.0255102
0.0193648
0.01
40
0.01
40
0.01
40
0.01
40
0.01
40
0.01
40
0.0209644
0.01
40
2.5 20 0;
0.0164745
0.01
40
0.01
40
0.01
40
0.01
40
0.0396825
0.25
20
0.01
40
0.01
40
0.01
40
0.01
40
0.277778
0.01
40
0.01
40
0.01
40

0;
20
20
0;
0;
0;
0;
0;
0;
0;
20
20
20
0;
0;
20
0;
0;
20
20
20
0;
0;
0;
0;
0;
0;
20
0;
20
0;
0;
0;
0;
20
0;
0;
0;
0;
0;
20
0;
0;
0;

0;
0;

0;
0;
0;
0;
0;
0;
0;

0;
0;

0;

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

You might also like