Skip to content

Datacenter Location Planning

Research Question

Which buses on a feeder are best suited for datacenter placement, how does location affect controllability, and how to find the best locations in a zonal system if multiple datacenters need to be built?

Overview

Datacenter placement significantly affects voltage regulation. A datacenter at a bus with high voltage sensitivity will cause larger voltage swings but may also be more responsive to batch-size control. This analysis sweeps candidate bus locations to find optimal placements.

The sweep mode auto-selects based on the config:

  • 1 DC site, no zones (e.g., IEEE 13): 1-D sweep with per-bus tap optimization and 4-case comparison (baseline ± tap, OFO ± tap).
  • 2+ DC sites, no zones (e.g., IEEE 34): 2-D sweep over all unordered bus pairs with OFO control, producing heatmap visualizations.
  • N DC sites with zones (e.g., IEEE 123): Zone-constrained 3-phase sweep for scalability.

Zone-Constrained 3-Phase Sweep

For systems with many DC sites and large candidate bus sets, an exhaustive sweep is computationally infeasible. For example, IEEE 123 has 4 DC sites with 5, 15, 29, and 7 candidate buses per zone — a full Cartesian product would require 5 × 15 × 29 × 7 = 15,225 full-resolution simulations, each taking ~30 seconds, totaling ~127 hours.

The 3-phase approach reduces this to ~400 simulations (~1–2 hours):

  • Phase 1 (Screening): Sweep each zone independently while holding other zones at default buses. Uses a coarser time step (--dt-screening) for speed. Ranks candidates per zone and keeps the top-K.
  • Phase 2 (Combination): Run the Cartesian product of top-K candidates (K^N combinations). Uses a 60-second stress test with constant peak PV and full DC capacity to quickly rank combinations under worst-case conditions.
  • Phase 3 (Refinement, optional): Starting from the Phase 2 winner, iteratively re-sweep each zone at full resolution until no zone improves. Plots mark previous best (diamond) and new best (star) for each iteration.

Scripts

Script Purpose
sweep_dc_locations.py Automated DC location sweep (1-D, 2-D, or zone-constrained)

Usage

IEEE 13-Bus: 1-D Sweep

python examples/offline/sweep_dc_locations.py \
    --system ieee13

IEEE 34-Bus: 2-D Heatmap

python examples/offline/sweep_dc_locations.py \
    --system ieee34

IEEE 123-Bus: Zone-Constrained 3-Phase Sweep

# Phase 1 + Phase 2 only (fast screening)
python examples/offline/sweep_dc_locations.py \
    --system ieee123 \
    --dt-screening 60 --top-k 4

# With Phase 3 refinement (full resolution re-sweep)
python examples/offline/sweep_dc_locations.py \
    --system ieee123 \
    --dt-screening 60 --top-k 4 --refine

Key Results

Outputs follow a consistent naming convention:

File Description
Phase_1_screening_results_{system}.png Per-zone screening bar charts
Phase_2_combination_results_{system}.png Combination ranking bar charts
Phase_3_refinement_results_{system}_iter{N}.png Per-iteration refinement (with previous/new best markers)
Phase_3_refinement_results_{system}_iter{N}_{zone}.csv Detailed per-zone results per iteration
sweep_dc_locations_final_results_{system}.csv Best bus combination found

Configuration

Key config fields:

  • dc_sites: DC site templates (bus, base_kw_per_phase, models, seed)
  • zones: Per-zone candidate bus lists (required for zone-constrained mode)
  • initial_taps: Starting regulator positions
  • exclude_buses: Buses to exclude from candidates and voltage metrics
  • pv_systems, time_varying_loads: External disturbances (included in stress test)

See Building Simulators and examples/offline/systems.py for configuration details.