Mathematically a network N is described by N = (Bac , Lac , Bdc , Ldc , C). Here Bac and
Lac are sets that contain the buses and connections of the AC part of the network
respectively. We model the AC part of the network in Section 4.2.1. Bdc and Ldc are sets
that contain the buses and connections of the DC part of the network respectively. We
model the DC part of the network in Section 4.2.2. Lastly AC and DC are connected via
converters in the set C. The converters are modelled in Section 4.2.3.
20 20
k k k k
21 21
injection defined differently as we will see later). We split the real and imaginary parts
to express the net power injection in real numbers:
pk = pg − pl k ∈ Bac (12)
k k
qk = q − q g l
k ∈ Bac (13)
k k
Whether voltage or powers are known for a bus depends on its type. We discussed the
bus types in Section 2.1.10: There is one mathematically necessary slack-bus; generator
connected buses are PV-buses; the rest of the buses are are PQ-buses. For all buses
the load plk is specified. PQ-buses have no generator connected so sg = 0, while for
other buses sgk is unknown. The voltage vk is unknown for PQ-buses, while only the
k
voltage magnitude |v|k is known for PV-buses and the entire voltage is known for the
slack-bus. Table 1 shows an overview of this. Each connection k, j ∈ Lac has several
Table 1: Known and Unknown information for different bus types in Bac
We now define the load flow equations for AC networks. In Section 2.1.10 we showed
how to derive the load flow equations. Now must incorporate charging susceptance ηkj
and transformer tap ratios τkj in the the load flow equations (Eqs. 10 and 11). We
include them in the model by replacing Eq. 11 with:
ykj + 0.5jηkj ykj
kj = vk vk k, j ∈ Lac (14)
τ 2 − vk v j
τ
s∗ ∗ ∗
kj kj
Note that this adjustment of Eq. 11 does not complicate the load flow equations. ykj ,
ηkj and τkj are all specified, so we simply swapped out a constant value in Eq. 11 with
another constant value in Eq. 14 that encompasses additional information. To prevent
22 22
cluttering in the coming equations we also define a few new real constants based on the
connection characteristics:
gkj gkj bkj + 0.5ηkj bkj
γ0 γkj = β0 = βkj = (15)
kj = 2 kj
τkj τkj kj
τ 2 τkj
23 23
By expressing Eqs. 10 and 14 in real numbers and substituting for defined constants in
Eq. 15 we get the load flow equations in real numbers:
X
pk = pkj k ∈ Bac ∪ Cac (16)
k,j∈ Lac
An alternative way is to write voltages is in polar notation (v = |v| δ). By expressing Eq.
14 using real numbers in polar form and substuting for defined constants in Eq. 15 we
get:
0
pkj = γkj |v|2k− γkj |v|k |v|j cos(δk − δj ) − βkj |v|k |v|j sin(δk − δj ) k, j ∈ Lac (20)
0
qkj = − βkj |v|2k− γkj |v|k |v|j sin(δk − δj ) + βkj |v|k |v|j cos(δk − δj ) k, j ∈ Lac (21)
Eqs. 16 to 19 are the AC load flow equations. However, it is also possible to replace
Eqs. 17 and 19 with Eqs. 20 and 21 to get the load flow equations in polar coordinates.
Lastly we define safety constraints for AC. AC has two types of safety constraints.
The voltage safety constraints say that the voltage m agnitude at each bus |v |k is limited
by a predefined lower bound |v|k and upper bound |v|k . In real numbers this becomes:
q
|v|k ≤ ek2 + fk2 ≤ |v|k k ∈ Bac ∪ Cac (22)
For PV-buses we know |v| and therefore |v|k = |v|k . The second safety constraint says
that each connection has a maximum rating |s|kj which limits the magnitude of the
apparent power it can transmit. In real numbers this becomes:
q
2 + q 2 ≤ |s|
pkj k, j ∈ Lac (23)
kj kj
24 24
equations we define here also hold for those buses. We define the equations in this section
while already taking these new buses into account. Each bus k ∈ Bdc has an unknown
voltage ek and a known power injection pk (there are no different DC bus types). Each
connection k, j ∈ Ldc has a known conductance gkj
25 25
We give the load flow equations for the DC network. The load flow for DC is more
straightforward than AC because it has no shunt admittance, transformers or imaginary
aspect. We can therefore simply drop the imaginary components of Eqs. 10 and 11. The
only ’complication’ is that MATACDC models a a bipolar system. This means there are
two conducting ’wires’ within each connection. This is easy to model by adding a factor
2 to Eq. 11 (for an explanation, we refer to [32]). If we drop the imaginary component
from Eqs. 10 and 11 and we add the factor 2 then we get the following DC load flow
equations:
X
pk = pkj k ∈ Bdc ∪ Cdc (24)
k,j∈ Ldc
Lastly we define safety constraints for DC. DC has the two safety constraints similar to
AC. The voltage safety constraints say that the voltage ek at each bus is limited by a
predefined lower bound ek and upper bound ek :
The second safety constraint says that each connection has a maximum rating pkj which
limits the amount of power it can transmit:
Each converter station is connected on one side to an AC bus and on the other side
to a DC bus or another converter station. This is illustrated on the left side of Fig. 12.
On the AC side of the converter are two components (transformer and phase reactor)
that can be modelled by a single admittance. There are no such components on the
DC side of the converter. We want the converter model to tie in well with our AC and
DC network models. We therefore model each converter using only two buses and two
connections. The set C contains all converter stations in the network. For each converter c
∈ C, we introduce AC bus cac and DC bus cdc . We refer to this buses using the term
converter buses. We let set Cac contain the converter AC buses while the set Cdc contains
the converter DC buses. The active power injections pcac and pcdc of these buses are
26 26
unknown and represent the power that is being converted. Converted power leaves the
AC network via pcac and enters the DC network via pcdc and vice versa. By making these
27 27
power injections unknown we allow the converter to optimize its power throughput in the
optimization model. The voltages of all converter buses are unknown as well. The two
connections that originally went to the converter now go to the two converter buses. We
add thse connections to the sets Lac and Ldc . Before we add them, we first modify the
AC side connection to incorporate the admittance of the AC side components. The added
buses and connections are illustrated on the right side of Fig. 12. On the AC side, each
converter c was connected to an AC bus that we denote cnb (nb stands for ’neighbour’
here). We will refer to this bus at a later point. This bus is also shown in Fig. 12. By
modelling a converter in the form of buses and connections it is automatically included in
the load flow equations and safety constraints of both the AC and DC network models.
To represent the conversion we must give a relation between the injected currents
of the AC bus pcac and the DC bus pcdc of each converter c. In this conversion process,
power is lost. The loss is a quadratic function of the injected converter current magnitude:
loss = Qc |i|2cac + Lc |i|cac + Cc . Here |i|cac is the injected current magnitude of bus cac
and Qc , Lc and Cc are the quadratic, linear and constant coefficients respectively. These
Note that if the power flows through the converter from AC to DC, then pcac is negative
(it consumes power on the AC side) while the power that comes out of the DC side pcdc is
positive (it generates power on the DC side). According to Eq. 28 the ’generated’ power
28 28
is the ’consumed’ power minus the losses (it also works when converting from DC to
AC). For Eq. 28 we need to define the injected converter current magnitude |i|cac . Note
that because of the single connection of cac , it is equal to |icac ,cnb | (connection illustrated
29 29
right side of Fig. 12 and equality holds due to Kirchoff ’s current law Eq. 7). We define
this current in terms of voltage and admittance using Ohm’s Law (Eq. 6) and express it
in real numbers:
The converter also has a safety constraint that imposes an upper bound |i|cac on the
converter current magnitude:
Note that we explicitly do not include the converter buses in the summation. This is
because converters in truth do not generate or consume power. Converter loss is already
implicitly included in the equation (due to converter loss another bus must generate more
power or consume less power).
Minimization of losses is common in the literature, but most often the generator
power outputs are optimized. In the experiments we do not want the generator power
optimization to interfere with the effect of the converter optimization. It might sound
compelling to keep the generator powers fixed, but this is also not desirable. Any power
saved would then only reduce the power output of the slack-bus generator (which might
be far from the network location where the losses were improved). To solve this we only
allow generator active powers to decrease when optimizing. This way any saved power
can be beneficially distributed among the generators, without allowing a generator to
take on the work of another. It also removes the special status of the slack-bus in the
problem (which is good, because the slack-bus has no special physical properties and is
only a mathematical necessity).
0≤p ≤p
g g
k ∈ Bac (32)
k k
30 30
For PQ-buses pgk = 0 because they have no generation.
31 31
Putting the network equations Eqs. 12, 13, 16 to 19 and 22 to 30 together with
objective Eq. 31 and constraint Eq. 32 gives the following mathematical model for the
loss problem. We refer to this model using the Floss symbol:
minimize:
X X
pk + pk (33a)
k∈ Bac k∈ Bdc
q
2 ≤ |s|
p2kj + qkj k, j ∈ Lac (33j)
kj
X
pk = pkj k ∈ Bdc ∪ Cdc (33k)
k,j∈ Ldc
32 32
|i|cac ≤ |i|cac c∈C (33q)
Floss (a) is the objective to minimize losses. Floss (b,c) defines the power injections for AC
buses. Floss (d) gives the generation maximum. Floss (e-h) gives the load flow equations
for AC. Floss (i,j) are safety constraints that impose bounds on the AC voltage and AC
33 33
power transmission. Floss (k,l) gives the load flow equations for DC. Floss (m,n) are safety
constraints that impose bounds on the DC voltage and DC power transmission. Floss (o)
defines the converter current magnitude. Floss (p) represents the conversion process with
losses. Floss (q) is a safety constraint for the converter current.
The goal of the shortage problem is to find out to which extent optimized converter
set point control can help mitigate problems as a result of a connection failure. In the
shortage problem we assume that HVDC control is quick enough to leave negligible time
between a connection failure and the application of the optimized converter set points.
Therefore we may ignore any transition period between the original and the new set
points. Since this is such a small time frame, we do not optimize AC elements (because
AC control would need more time to react to the failure). This again supports the goal
of isolating the set point influence. It however also causes problems: If a connection
fails, then the connection capacity might reduce such that an AC bus can’t receive its
demanded power within all the safety constraints. An ideal simulation can then determine
the exact impact of this: Does it cause a power outage? Does another connection transmit
more than it can handle and fail as well? Or does that connection transmit more, but
without major issues? The exact impact is complex and depends on many factors. This
level of detail is unfortunately not possible to capture with any load flow model. This
is because AC load flow models function on the assumption of power balance, which
might not be possible. Furthermore it would require modelling of effects within a cycle
of the sinusoidal AC. Load flow models don’t do this (load flow models provide average
flows over an AC cycle). We therefore take a different approach: We make it possible for
buses not receive all demanded power. The non-delivered power of a bus is its shortage.
Shortage strongly relates to a power outage. A bus with shortage would have power
outages at its load(s). The shortage also shows the quantity of power that can’t be safely
transmitted to the bus. This gives an indication of the severity of a connection failure: If
optimized converter control can decrease shortage, then less power has to be transmitted
unsafely or the outages at the loads are less severe. We introduce ak to represent the
fraction of the load that gets its power delivered for bus k. Since ak represents a fraction
we require:
0 ≤ ak ≤ 1 k ∈ Bac (34)
The shortage at a bus k is therefore plk · (1 − ak ). Minimizing the total shortage of the
network becomes:
X l
p · (1 − ak ) (35)
k∈ Bac k
34 34
We explicitly do not include shortage for converter buses (because converters have no
power demand). Shortage also influences the power injection of a bus. This means
Floss (b, c) must be modified to:
pk = pg − ak pl k ∈ Bac (36)
k k
g
qk = q − ak q l
k ∈ Bac (37)
k k
Less power is delivered in case of shortage. To keep power balance, we again allow
generators to decrease their active power output. This means we reuse Floss (d) (exactly
as in the loss problem).
The model for the shortage problem is mostly the same as Floss . We change the
objective to Eq. 35 so we minimize shortage. Also we replace Floss (b,c) with Eqs. 34,
36 and 37 to allow for shortage at the buses. We refer to this model using the Fshortage
symbol:
minimize:
X l
p · (1 − ak ) (38a)
k
k∈ Bac
The shortage problem also has a very similar search space. It merely adds the shortage
variables:
Shortage creates additional variables for the optimization problem, since we must deter-
mine shortage at each bus. To keep a good comparison between normal and optimized
control, we need to add an optimization step for normal control. With normal control,
we keep the converter set points fixed and only optimize the shortages and generators.
With optimized control we also include the converter set points in the optimization.
5 Algorithms
35 35
The algorithms in this section optimize instances of either the loss problem with mathe-
matical model Floss or the shortage problem with mathematical model Fshortage . Many of
our optimization strategies consist of two steps: First global search, then local search. The
global search aims to find or approximate a good solution by searching a wide
36 36
area of the search space. The local search takes this as a starting solution and searches
the neighbourhood to improve it to a local optimum. This procedure is visualized in
Fig. 13. We consider various global search algorithms: LP McCormick (Section 5.3),
Network Global Local Return
input search search solution
5.1 IPOPT
IPOPT is a local search NLP solver. It is an open source optimization tool written in
C++. The workings of IPOPT are described in [34], where the authors summarize it
as ’a primal-dual interior-point algorithm with a filter line-search method for nonlinear
programming’. Defining a model for this solver is easy, since it can handle any closed
form function as objective or constraint. The models for IPOPT are exactly the same as
Floss and Fshortage . We reduce the optimization precision of IPOPT to 10−4 (instead
of the standard 10−7 ), which reduces the run time without having much impact on the
solution. To optimize we simply build the model and run IPOPT. IPOPT then iteratively
improves the solution. If it is already close to a local optimum, then it will need less
iterations to reach this optimum, reducing its run time. When finished, IPOPT returns
the best solution it can find. This solution is not guaranteed to be feasible or optimal.
To define the gradient descent model for the loss problem we include equality con-
straints Floss (b-c,e-h,k-l,o,p) in the objective function. Also for PV-buses Floss (i) is an
equality constraint that we include. We do not include any inequality constraints. We
run the gradient descent algorithm until it reaches a local minimum or until it exceeds an
37 37
inequality constraint. If either happens, the algorithm stops and returns its best solution.
The parameters of the algorithm are the step size and the penalty term c. We picked the
step size to be 10−6 and the penalty term to be 10 when testing. A common technique
is to decrease the step size during the algorithm. Unfortunately gradient descent did
not perform well regardless of the parameters. We therefore did not experiment with
decreasing step sizes.
No
Network optimize New sol. Yes Violate Yes return
input one step better? inequality? solution
No
We use a LP model as a global search strategy. A LP model may only contain linear
constraints. Unfortunately in the loss problem the constraints Floss (f,h-j,l,o,p) are all
nonlinear. Any LP model is therefore a linear approximation of the problem. In [24] the
McCormick envelop is described as a linear approximation to the load flow equations (it
also examines stronger approximations which are not linear, but suitable for semidefinite
programming). We describe the McCormick Envelop in Section 5.3.1. The McCormick
envelop is applied in Section 5.3.2 to linearize the load flow equations and converter
current Floss (f,h,i,l,o). However, the McCormick envelop does not linearize the maximum
power transmission or converter losses. We linearize the maximum power transmission
Floss (j) using piecewise linearization in Section 5.3.3. We linearize the converter loss
equation Floss (p) in Section 5.3.4 using a least squares approximation. The choices
for piecewise linearization and least squares are motivated in their respective sections.
Finally we summarize the complete LP model in Section 5.3.5.
The McCormick envelop can be used to linearize bilinear terms by creating linear bounds
around the solution space of this term. These linear bounds together are called the
envelop. For every bilinear term xy we need to have upper and lower bounds on x and
y to make the envelop. The bounds of the envelop can be derived using elementary
algebraic operations. Let xy be the bilinear term where:
x ≤x ≤x and y≤y≤y
38 38
We assume the values of x, x, y and y are known. We can create the first linear bound
of the envelop as follows:
(x − x)(y − y) ≥ 0
xy − xy − xy + xy ≥ 0
xy ≥ xy + xy − xy
(x − x)(y − y) ≥ 0 −→ xy ≥ xy + xy − xy
(x − x)(y − y) ≥ 0 −→ xy ≤ xy + xy − xy
(x − x)(y − y) ≥ 0 −→ xy ≤ xy + xy − xy
These four bounds are the McCormick envelop around xy. A visual representation of
the envelop for a given value of xy is depicted in Fig. 15 (Although in our problem this
bilinear term is a variable as we will see in the next section). The grey area is the feasible
region of x and y given the envelop.
xy
y
xy ≤ xy + xy − xy
x x
x
xy ≥ xy + xy − xy
xy ≥ xy + xy − xy
xy ≤ xy + xy − xy
39 39
The constraints of Floss contain many bilinear terms for which a McCormick envelop
can be created. To create the envelops we need lower and upper bounds for the two
voltage related variables e and f . For a DC bus the bounds are already given in equation
40 40
Floss (m). For an AC bus the bounds can be derived from equation Floss (i):
q
|v| ≤ ek2 + fk2 ≤ |v|k
k
2
e2 2
k + fk ≤ |v|k2
ek2 ≤ |v|k
− |v|k ≤ ek ≤ |v|k k ∈ Bac ∪ Cac (39)
The bounds allow us to create a McCormick envelop for any bilinear terms that consist of
variables e and f . We introduce new variables to represent the bilinear terms: Ekj = ek ej ,
Fkj = fk fj and Hkj = ek fj . We denote and define the McCormick envelops for both AC
and DC as:
The bounds of M(Ekj = ek ej ) and M(Fkj = fk fj ) are derived similarly, but also include
these constraints for the symmetry of multiplication:
And they also include these non-negativity constraints for all bilinear terms that represent
a square term:
Ekk ≥ 0 Fkk ≥ 0
By substituting the newly introduced variables we linearize the load flow equations for
both AC and DC in the network Floss (f,h,l):
0
pkj = γkj (Ekk + Fkk ) − γkj (Ekj + Fkj ) + βkj (Hkj − Hjk )
41 41
0
qkj = − βkj (Ekk + Fkk ) + βkj (Ekj + Fkj ) + γkj (Hkj − Hjk )
k, j ∈ Lac (43)
k, j ∈ Lac (44)
k, j ∈ Ldc (45)
42 42
Using substitution the same way we can almost linearize the voltage safety constraints
Floss (i) and converter current Floss (o). We just need to square on both sides after the
substitution.
2
|v|2k≤ Ekk + Fkk ≤ |v| k k ∈ Bac ∪ Cac (46)
|i| 2
cac = b2cac ,cnb + gc2ac ,cnb (Ecac ,cac − 2Ec ,cnb + Ecnb ,cnb
ac
Since we now linearized the squared converter current, we must also square Floss (q) for
it to remain linear.
2
|i| 2
cac ≤ |i| cac c∈C (48)
feasible region
p
0
s
The figure also shows how piecewise linearization permits a slight deviation from the
actual maximum power transmission. More linear bounds make the permitted deviation
43 43
smaller, but are additional constraints for the LP solver to compute. This is a trade-off.
In Fig. 17 we zoom in on Fig. 16 to calculate the maximum deviation. We add tangent
44 44
points t and t0 for two linear bounds, point d where the deviation is at its maximum and
point o for the origin. The maximum deviation is the distance between d and the circle,
which is the difference between between od and ot, where ot = s. We take the number of
linear bounds as n to derive the maximum deviation as follows:
q
t0
t p
o
s
2π
tot0 =
n
1 π
tod = tot0 =
2 n
ot
maximum deviation = od − ot = − ot
cos( tod)
−1 π
s ·cos
= − 1
n
One might wonder if we could have applied piecewise linearization in place of the Mc-
Cormick envelop. One could use an integer linear program, in which integer variables
decide which linear bound should hold. Fig. 15 might suggest a piecewise linear approxi-
mation of the function is possible. Unfortunately this not so straightforward. Note that
Fig. 15 depicts the envelop for an example value of xy. In our problem however, this
bilinear term is a variable (For example in Hkj = ek fk , all three terms are variables).
45 45
This makes it such that the feasible space has 3 dimensions instead of 2. The piecewise
approximation would have to be performed by iterating over 2 dimensions instead of
1. This would lead to a large amount of linear bounds and integer variables, which
discouraged us from applying this technique.
46 46
5.3.4 Converter loss linearization
In Section 5.3.2 we linearized the squared converter current |i|2cac (even though this term
contains a square, it is linearly defined in the McCormick LP). In the converter loss
equation Floss (p) this leaves Lc |i|cac as the only non-linear term. When we plot the
loss as a function of the squared current (Fig. 18), then we can reason that piecewise
linearization is less practical here. Any linear bound tangent to the loss function would
give an upper bound on the converter loss. However, upper bounds are not useful because
low losses are probably more optimal. Therefore applying piecewise linearization to
this function is not possible for a LP. We can turn to an integer linear program at this
point, but since the loss function looks quite linear, we choose to approximate it with a
single line instead. We apply the least squares method for the approximation within he
bounds 0 and |i|cac . With the least squared method we minimize the average squared
distance of the actual loss and the approximated loss. The complete derivation is shown
in Appendix B.1. The approximation of the only non-linear term Lc |i|cac becomes:
Fig. 18 depicts the approximate loss visually. Given the example loss coefficients in the
test networks we determined that the approximation never deviates more than 3%.
loss
|i|
loss
approximate loss
|i|2
47 47
5.3.5 McCormick LP model
To summarize this section we give the entire LP model. This is similar to the Floss model,
where we remove Floss (f,h-j,l,o-q) and replace them with Eqs. 39 to 50:
minimize:
X X
pk + pk (51a)
k∈ Bac k∈ Bdc
0
pkj = γkj (Ekk + Fkk ) − γkj (Ekj + Fkj ) + βkj (Hkj − Hjk ) k, j ∈ Lac (51f )
X
qk = qkj k ∈ Bac ∪ Cac (51g)
k,j∈ Lac
0
qkj = − βkj (Ekk + Fkk ) + βkj (Ekj + Fkj ) + γkj (Hkj − Hjk ) k, j ∈ Lac (51h)
2
|v|2 ≤ Ekk + Fkk ≤ |v| k k ∈ Bac ∪ Cac (51i)
k
q
P 2 + q2 ≤ |s|
pkj kj kj k, j ∈ Lac (51j)
X
pk = pkj k ∈ Bdc ∪ Cdc (51k)
k,j∈ Ldc
48 48
!
2 15Lc 2 3Lc | i|cac
pcdc = − pcac − Qc |i|cac + |i|cac + + Cc c∈C (51p)
16 i| |cac 16
2
|i| 2
cac ≤ |i| cac c∈C (51q)
49 49
with the following search space:
≈ |v|slack (γ 0 kj |v|k − γkj |v|j ) − βkj |v|2 slack (δk − δj ) k, j ∈ Lac (52)
0
qkj = − βkj |v|2k− γkj |v|k |v|j sin(δk − δj ) + βkj |v|k |v|j cos(δk − δj )
≈ |v|slack (− β 0 kj (|v|k + βkj |v|j ) − γkj |v|2 slack (δk − δj ) k, j ∈ Lac (53)
Because we are using the polar notation for the AC load flow, we must update the AC
voltage safety constraint Floss (i) to:
50 50
|v|k ≤ |v|k ≤ |v|k k ∈ Bac ∪ Cac (54) We
linearize the DC load flow equations Floss (l) in a similar way to AC. This is experi-
mental since the approach was only applied to AC in the original work. For a DC network
we assume ek ≈ eslack , where eslack is the DC side voltage of the DC-slack operated
51 51
converter. We can justify this assumption due to the properties of HVDC. The high
voltage and low resistance (i.e. high conductance) of HVDC mean that ek and gkj are
both high. Because of the large factors a small voltage difference causes a large power
transfer. This makes the voltages approximately equal. We apply these assumptions DC
load flow equations Floss (l):
For this to be linear we have to assume that the voltage of the DC-slack operated
converter is equal to the average between its lower and upper bound.
The Koster Lemkens approximation unfortunately does not calculate current magnitudes.
This means we omit equations Floss (o,q) in the Koster-Lemkens model and we approximate
the converter losses with a constant. To determine this constant we again use the least
squares approach described in Section 5.3.4, for which the calculation is performed in
Appendix B.2. This gives the following approximation of the quadratic and linear loss
terms of a converter c ∈ C:
1 2 1
Qc |i|2cac + Lc |i|cac ≈ 3 Qc |i| cac + 2 Lc |i|cac
1 2 1
pcdc = − pcac − ( Qc |i|cac + Lc |i|cac + Cc ) c∈C (56)
3 2
Given the example loss coefficients in the test networks we determined that the
approximation can never deviate more than 21% from the original loss in the problem
model Floss . Since the losses often make up only a small part of the transferred power,
this seemingly large deviation may still be quite acceptable.
52 52
To summarize the Koster-Lemkens model we give the entire LP model. This is similar to
the Floss model, where we remove Floss (f,h-j,l,o-q) and replace them with Eqs. 49 and 52
to 56:
53 53
minimize:
X X
pk + pk (57a)
k∈ Bac k∈ Bdc
pkj = |v|slack (γ 0 kj |v|k − γkj |v|j ) − βkj |v|2 slack (δk − δj ) k, j ∈ Lac (57f )
X
qk = qkj k ∈ Bac ∪ Cac (57g)
k,j∈ Lac
qkj = |v|slack (− β 0 kj (|v|k + βkj |v|j ) − γkj |v|2 slack (δk − δj ) k, j ∈ Lac (57h)
X
pk = pkj k ∈ Bdc ∪ Cdc (57k)
k,j∈ Ldc
54 54
The shortage problem has no additional non-linear constraints, so it requires no further
techniques for its LP model. We can apply the same modifications to the loss model as
we did in Section 4.4.
55 55
We create this hybrid model because it applies each LP model to the network side
it works best for. We expect the Koster-Lemkens model to be better for AC than DC:
It was not created for DC networks in the original work and its application there is
experimental. On the other hand, we expect the McCormick envelop to be better for DC
than AC: We reason that the quality of a McCormick envelop around a bilinear term
depends on the tightness of the bounds on its two variables. The variable bounds for an
AC envelop are − |v| and |v|, while for a DC envelop they are e and e. The space between the
DC bounds is more narrow and therefore we expect the envelop to be tighter.
Modelling the hybrid LP is very straightforward. It takes the DC equations from the
McCormick LP model and the AC equations from the Koster-Lemkens LP model. The
converter equations must come from the Koster-Lemkens LP model (since the converter
current depends on the AC network). This means we have no equations for the converter
current in the hybrid LP model.
Before discussing the different operators we first mention two common tools that
operators use. The first tool is the normal distribution, which some operators use to
sample values. We denote a normal distribution with mean x and standard deviation y
as: Norm(x, y). The second tool is a procedure to compensate power. It was created
because many operators change either power generation or power consumption of network
elements. A recurring difficulty of such power modifications is the active power balance.
Any power change in the network requires a second power change to keep the balance.
56 56
For instance, if we want to reduce the power output of one generator, then we have to
increase the power output of another generator to compensate it. In load flow solvers
such as MATACDC the slack-bus generator automatically compensates. However, always
compensating with the slack-bus generator is undesirable while optimizing, since it can
be beneficial to keep this power fixed when we create new solutions (if it is already at the
optimal value for instance). We took this into account when designing the operators: If
we change an active power value, then we also select a random generator to compensate
for that change. With this mechanism we remove the special status of slack-bus and treat
it equal to other generator connected buses (it is therefore quite a logical tool). A very
similar effect occurs in DC networks with the converters. If one converter changes its
active power set point, then another converter in its DC network has to compensate to
keep the balance. A load flow solver automatically uses the DC-slack operated converter
for this (as was explained in Section 2.2.2), but this is again not desirable (for the
same reason as the slack-bus). To also put the converters on equal footing we use
the same random compensation mechanism for them. Whenever we use this random
compensation we write something like: ’We compensate the power at a randomly selected
generator/converter’.
What set points we must represent for a converter depends on its operation type.
We choose the following stable operation types for the converters of each DC network:
One random converter operates in DC-slack mode, while all other converters operate in
constant power mode. In Section 2.2.2 we explained this setup to be stable. These two
converter types have set points for active power, reactive power and DC voltage. We
group these variables under the name set point variables.
57 57
GA Solution = { set point variables, generator variables, shortage variables }
cold set point variables A GA (or MA) has only has a cold start if specifically men-
tioned (otherwise it has a warm start). The cold start approach does not assume
useful set points in the input network. The set points variables are generated by
sampling from normal distribution based on the network.
• All active power set points are sampled from Norm(0, Avg({plk | k ∈ Bac })).
The standard deviation of this distribution is the average of the active power
demands at AC buses.
• Similarly all reactive power set points are sampled from Norm(0, Avg({q lk |
k ∈ Bac })). The standard deviation of this distribution is the average of the
reactive power demands at AC buses.
• DC voltage set points take on a random value between their minimum and
maximum (see safety constraint Floss (m)).
By sampling the power set points based on the network, we make sure that the
randomly generated values likely have a correct order of magnitude.
warm set point variables A GA (or MA) has a warm start, unless mentioned other-
wise. The warm start approach creates set points close to the set points of the
input network (it assumes the input network has decent set point values).
• An active power set point is sampled by Norm(x, x) where x is that set point
value of the input network. For instance: if a converter in the input network
has an active power set point of 50, then each starting solution samples that
set point from Norm(50, 50).
• A reactive power set point is sampled by Norm(x, x) where x is that set point
value of the input network. This is similar to the active power set point.
• DC voltage set points take on a random value between their minimum and
maximum (see safety constraint Floss (m)).
58 58
This approach ensures that every value is close to the input network, but still
proportionally random.
59 59
generator variables The generator variables always start at their maximum allowed
by Floss (d) (generator variables can still vary in the staring population, because
when generating the shortage variables, the generators might compensate for the
difference in power consumption).
shortage variables The shortage variables have a 50% chance to be 1 and are otherwise
sampled uniformly between 0 and 1. We generate 1 half the time because many
buses typically remain unaffected by a connection failure. By having lots of 1’s in
the starting population the algorithm can quickly find these unaffected buses with
the crossover operator in Section 5.6.5. Shortage changes power consumption. We
compensate the power at a randomly selected generator.
5.6.3 Evaluation
To determine the quality of a solution, each solution is evaluated with a score called
the fitness. To determine the fitness of a solution, we run MATACDC based on the
variables of the solution. MATACDC provides us with the remaining variables in the
search space. In some cases MATACDC does not converge, which means it can’t find
the other variables. The fitness of a solution consists of three criteria listed in order of
importance:
1. Convergence: If MATACDC did not converge, then it couldn’t find values of the
remaining variables. This only tends to happen if a solution is far from feasible.
Any solution that converges is better than a solution that does not converge.
2. Constraints: MATACDC does not enforce safety constraints (Floss (d,i,j,m,n,q)).
Therefore the fitness gets a penalty if safety constraints are violated. Between
solutions that both converge, the one with the least number of constraint violations
is considered best. This does not yet count the magnitude of each constraint
violation. We do this because the different safety constraints have different units
and are therefore not comparable in magnitude. If the number of violations is equal,
then we compare the magnitude of violations. This way the GA removes safety
violations from the population, without creating new violations in the process.
3. Ob jective: Between solutions with similar convergence and no constraint violations,
the one with the smallest objective value is best.
Using this setup makes sure that the population quickly converges to a (predominantly)
feasible search space. Only after this it optimizes towards a good objective value.
5.6.4 Selection
Selection determines which solutions survive in the population and it determines which
solutions become parent solutions. The population is first sorted from best to worst
fitness. In case of equal fitness, the oldest solution gets a better sorting spot. Then the
population is cropped to the population size by removing the worst sorted solutions. We
select the parents via tournament selection with size two. This means we make random
60 60
pairings of all solutions in the population. The best sorted solution of each pair becomes
a parent solution. This way half of the solutions are selected to become parents.
5.6.5 Crossover
Crossover takes two selected parent solutions and and generates two child solutions based
on these. The children created are opposites. If the first child inherits a property from
the first parent, then the second child inherits that property from the second parent. We
only describe the procedure to create one child, since the other follows logically. We
describe crossover of the set point variables, generator variables and shortage variables
separately.
set point variables For the converter set points we implemented two types of crossover.
• With uniform crossover Each set point variable is randomly copied from
the first or the second parent. The power in a DC network can change this
way. For each DC network we compensate the power at a randomly selected
converter.
• With grid crossover The set point variables of each DC network are randomly
copied from the first or the second parent. This means the set points of each
DC network remain together. The power in each DC network remains the
same this way, so no need to compensate for power.
Grid crossover is inspired by the idea that the converters in the same network
must cooperate to be successful. Performing crossover this way increases the
probability that a child inherits cooperating converter set points from its parent.
However, if there is only a single DC network, then grid crossover would not mix
the parents. We therefore choose grid crossover and uniform crossover with the
following probability ratio:
Here n is the total number of DC networks and c is the total number of converters.
If there is only 1 DC-network, then the left side of the ratio becomes 0 and uniform
crossover is selected. If there are only point to point connections, then the right
side becomes 0 and grid crossover is selected. If there is only a single point to point
connection, then the ratio would be 0 : 0 and we select uniform crossover as default.
generator variables The GA performs uniform crossover on the generator active power
variables. Each generator variable is randomly copied from the first or the second
parent. The total power generation can change this way. We compensate the power
at a randomly selected generator.
61 61
shortage variables The GA performs uniform crossover on the shortage variables. Each
shortage variable is randomly copied from the first or the second parent. The total
62 62
power consumption can change this way. We compensate the power at a randomly
selected generator.
5.6.6 Mutation
Mutation takes a selected parent solution and alters it slightly to create a child solution.
The mutation operator has two parameters: probability and amplitude. The probability
determines how many values are changed while the amplitude determines how much they
change. We experimentally decided to make both parameters equal to 0.1. We describe
crossover of the set point variables, generator variables and shortage variables separately.
set point variables To mutate set point variables we use same normal distributions
as we used to create the starting population in Section 5.6.2. We mutate each set
point value with a probability equal to the mutation probability. If we mutate a
set point, then its new value becomes: Norm(x, x · amplitude). Where x is its old
value.
generator variables We mutate each generator variable with a probability equal to the
mutation probability. If we mutate a generator variable, then we give it a random
value between its current value and its maximum. Power generation changes this
way. We compensate the power at a randomly selected generator. With this
mutation procedure we make sure that generators don’t exceed their maximum
generation bound (Floss (d)).
shortage variables We mutate each shortage variable with a probability equal to the
mutation probability. If we mutate, a shortage variable has a 50% change to
increase, in which case it becomes a random value between its current value and 1.
Otherwise it decreases and becomes a random value between it current value and 0.
This way each shortage variable stays between 0 and 1 (Fshortage (d))
6 Computational results
In this section we describe how we set up the various experiments and analyse their
results. We start by describing the test network design in Section 6.1 and the different
optimization methods we experimented with in Section 6.2. Before we run the experiments
we give some technical information about the software we use in Section 6.3. Then in
63 63