Current work
Daniel Bienstock
Columbia University

Summary of the approach so far• We have developed a number of techniques for modifying a data set in arealistic manner, e.g. following weather physics• The changes are not easily unrolled, i.e. it is not easy to recover theoriginal data set, especially when changes are iterated• We are not focusing, yet, on adversarial approaches though there is some
low-hanging fruit• When the node-breaker data sets become available we will apply the techniques to them.

The Marseille sous realtor data set• We have been working with this data set since early May.
• 403 buses ( 63 isolated ), 115 generators at 80 buses• 484 active branches, 9 without limit• total active load: 3939
Additionally, 21 negative loads adding to 2658 MW.
“Net” load: 1281 MW.
• Total available (active) generation: 2385 MW.

The Marseille sous realtor data set• We have been working with this data set since early May.
• 403 buses ( 63 isolated ), 115 generators at 80 buses• 484 active branches, 9 without limit• total active load: 3968
Additionally, 21 negative loads adding to 2658 MW.
“Net” load: 1281 MW.
• Total available (active) generation: 2385 MW.
• Positive reactive loads: 998 MW.
• Negative reactive loads (71): 320 MW.

Generators and negative loads• Red, orange, yellow = generators in declining order of max output.
Red = at least .5 times largest generator
Yellow = less than .1 times largest generator• White = generators at zero output• Green = negative loads

Actual active loads• Dark to light ordered by declining magnitude.
Blue = between .1 and .3 times largest load.
• One very big loadOPF Solution (cost = total generation)• White: 200 MW and up (max ≈ 243)
• Yellow: between 170 and 200 MW• Orange(s): between 20 and 170 MW, Red: between 10 and 20 MW• The top twenty losses account for about half of all losses

(From prior meeting): flow decomposition
1. Number of generator-load paths
2. Average length of a pathP

fp |p|p
3. Average f lux = numberof paths• the sum is over all paths in the decomposition• for a path p, fp is its flow and |p| is its length (number of arcs)
Pfp |p|p
4. Average f lux per MW = sum of activepower loads

P

5. Average rf lux =p fp (sum of resistances along p)

number of pathsP

6. Average rf lux per MW =p fp (sum of resistances along p)

sum of active power loads

statistic value
no. of paths 327.00
ave length 5.47
ave flux 0.60
ave flux/MW

5.42

ave rflux/MW

0.03

statisticvalue

no. of paths
ave length
ave flux

327.005.47
0.60ave flux/MW

5.42

ave rflux/MW

0.03

9241pegase
no. of paths 8973.00
ave length
4.60
ave flux
1.30
ave flux/MW

3.74

ave rflux/MW

0.08

A Basic methodology for modifying cases, from previous meeting (same slide)
1. First, select a random, connected set of buses. Starting from a random bus, we run stochastic
breadth-first search. This is standard breadth-first search where a new node is labeled with a given
probability (which is part of the input) rather than always added to the search queue. Additionally,
we sometimes cap the process when a given number N of buses has been reached.
2. We simulate a temperature increase in the selected zone. This is modeled as a uniform randomrise in temperature in a given range.
3. Buses within the zone see a load increase linearly proportional to percentage temperature increase,plus a small random positive change.
4. The lines connecting buses within the selected zone are exposed to this increase. Lines connecting
buses from inside to outside the zone are partly exposed. The impact of external temperature+ wind cooling is modeled as an increase in conductor temperature (proportional to externaltemperature change) + random correction.
Using the model in e.g. Bockarjova and Andersson, for any two line temperatures T and T + ∆T
we model change in line resistance asR(T + ∆T ) − R(T ) ≈ 0.0039 ∆T R(T ).
We do not use a comprehensive model for wind cooling or solar heating. However, based on theexperiments in Lindberg, we modelline limit = nominal value × (1 − slowly growing function of percentage temperature increase)
In the above formula, we used the logarithm (base 10) of the percentage increase, times a random
value between 0 and 1.
• We run both an interior-point local solver (either IPOPT within Matpower or Matpower’s MIPSsolver) and a conic relaxation solved using Gurobi.

Additional methodologies• (Simple) Random search around a given case. Small changes allowed
in: loads, max generation. Very small changes allowed in: line limits, orin impedances (maintaining r/x ratios, locally and statistically).
• (Simple) Evolution from base case to a critical case. Example: consider
many cases that move the base load profile to another load profile in small
increments, keeping everything else constant.
• Not so simple. Gradient search. Compute local maximum for active
power losses. “Local” in the above sense (load-wise or impedance-wise)• Less simple Derivative-free optimization. (Not yet implemented)

Test 1
• Temperature range: [60, 80] increased in random connected set with up to 50 buses• 1000 random trials• Sample trial shown. White: average temperature over 70, green: 60 or more

• Load increase by about 7.5%. In this case relaxation proves infeasibility.

Test 2 “test966”• Temperature range: [50, 60] increased in random connected set with up to 30 buses• 1000 random trials• Sample trial shown. Green = average temperature close to 60, blue, more than 55• Small increase in loads but IPOPT fails to converge. Why?

test966, continued• 65 branches affected, resistance increases in range [11, 15]%, line limit
decreases less than 3%• Overall total active load increased by less than 1.7% however some activeloads increased by 25% (but only 20 buses affected).
Average active load increase = 17%.

test966, continued• 65 branches affected, resistance increases in range [11, 15]%, line limit
decreases less than 3%• Overall total active load increased by less than 1.7% however some activeloads increased by 25% (but only 20 buses affected).
Average active load increase = 17%.
Random search• Increase the capacity of the ten least-used generators by a random multiple
in range [1, 2]• Randomly change active loads by ±2%.
• 30 trials fail to produce a convergent IPOPT instance – but relaxation
always feasible∗.

test966, continued• 65 branches affected, resistance increases in range [11, 15]%, line limit
decreases less than 3%• Overall total active load increased by less than 1.7% however some activeloads increased by 25% (but only 20 buses affected).
Average active load increase = 17%.
Another random search• Increase the (active power) capacity of the ten biggest generators by a random multiple in range [1, 2] – percent reactive power capacity change
ten times larger.
• Randomly change active loads in the range [−20, 0]%.
• Again, 30 trials fail to produce a convergent IPOPT instance – but relaxation always feasible∗.

What is going on with test966?

• Experiment: use Marseille sous data with test966 branch
data.
Outcome: IPOPT converges!
• Experiment: use Marseille sous data with test966 loads.
Outcome: IPOPT failure. IPOPT converges to a point with“local infeasibility – problem may be infeasible.”
Conic relaxation easily converges.

What is going on with test966?

• Experiment: evolve Marseille sous loads to test966 loads, in small increments (using Marseille sous data otherwise).
• At the point where the case becomes infeasible IPOPT does not converge,random search allowing loads to change ±2%.
• Randomly expand (by a wide margin) the capacity of the ten largest
generators: roughly 50% of the cases are feasible.
• Randomly expand (by a wide margin) the capacity of the ten generatorswith smallest output: roughly 100% of the cases are feasible.
(recall that in test966 we have changed the loads near the zero-output generators)Power flow comparison: base case, nearly infeasible case, added generation caseNot adversarial case generation, but ... back to start:
generators and negative loads• Red, orange, yellow = generators in declining order of max output.
• White = generators at zero output• Green = negative loads

Actual loads• Dark to light ordered by declining magnitude.
Blue = between .1 and .3 times largest load.
• One very big load

Adversarial exercise• Increase the capacity of the generators in the zero-output set.
• Change the cost function: make those generators cheaper than the rest.
• Outcome: very large duality gaps (30, 40%)
• The increases and changes need not be massive.
• Why? The conic relaxation seems to do a very poor job at capturing
the power flow physics from the “bottom” to the “top” of the picture,especially losses.
• Other such games are possible.

A simple example• Increase loads randomly in the range [10, 20]%
• Total active load increase ≈ 50%• Increase generation capacity by ≈ 44% (less if count negative loads) –concentrate this on top 10 least popular generators.
• Duality gap: ≈ 8%

One more method: for next time
• The techniques that we have discussed tend to move a system toward amore stressed state• When taken to an extreme, this process can produce infeasible cases• How to recover feasibility in an economically meaningful way?
• Last time: move some generation closer to loads, in an economically meaningful way (along power flow paths)• Apply this technique to explore feasible cases with big duality gaps

Thu.May.31.180245.2018@blacknwhite