Papers
Topics
Authors
Recent
Search
2000 character limit reached

PowerModelsRestoration.jl Framework

Updated 25 February 2026
  • PowerModelsRestoration.jl is an open‐source Julia framework that models, solves, and benchmarks power system restoration problems using advanced mixed-integer and nonlinear formulations.
  • It features a layered architecture with dedicated modules for data parsing, formulation of restoration problems (RIP, ROP, MRSP), and seamless solver integration via JuMP’s MathOptInterface.
  • The framework supports both exact and heuristic algorithms, enabling rapid prototyping and high-quality repair sequencing for large-scale transmission and distribution networks.

PowerModelsRestoration.jl is an open-source Julia software framework dedicated to modeling, solving, and benchmarking power system restoration optimization problems. Designed as an extension of PowerModels.jl and integrating JuMP.jl, PowerModelsRestoration.jl provides mixed-integer and nonlinear formulations for a comprehensive array of restoration-planning problems, supports both exact and heuristic algorithms, and enables systematic exploration of optimal and near-optimal restoration sequences for large-scale transmission and distribution networks (Rhodes et al., 2022, Rhodes et al., 2020).

1. Architecture and Module Organization

PowerModelsRestoration.jl is structured around a multi-layered architecture that interfaces seamlessly with the Julia and JuMP modeling ecosystem:

  • Data Layer: Parses input data in MATPOWER, JSON, or PEST formats, encodes status and “damage” annotations on buses, branches, generators, loads, and shunts.
  • Modeling Layer: Implements abstract formulations for the Restoration Implementation Problem (RIP), Restoration Ordering Problem (ROP), and Minimum Restoration Set Problem (MRSP). Offers optional integration with a variety of power flow models, such as AC (ACPPowerModel), DC (DCPPowerModel), and second-order cone (SOCWRPowerModel).
  • Solver Layer: Leverages JuMP’s MathOptInterface to support open-source (CBC, GLPK, Ipopt, Juniper) and commercial (Gurobi, CPLEX, KNITRO, Xpress) solvers.
  • Submodules:
    • RIP: Model construction and solution for multi-period OPF on a fixed restoration plan.
    • ROP: Mixed-integer programming formulation for joint repair sequencing and OPF.
    • Heuristics: Implements UTIL (capacity-based greedy), RAD (randomized decomposition), and RRR (recursive restoration refinement) solvers for repair prioritization.
    • Utils: I/O, scenario generation, postprocessing (including corrections for Brace’s paradox), and plotting routines.

This extensible structure allows rapid prototyping and comparative evaluation of new restoration algorithms or convex/nonconvex relaxations (Rhodes et al., 2022, Rhodes et al., 2020).

2. Mathematical Formulation of Restoration Models

The core mathematical models in PowerModelsRestoration.jl formalize power system restoration as constrained optimization, building on the following canonical problems:

2.1 Restoration Ordering Problem (ROP)

Let L,B,G,D,T\mathcal{L}, \mathcal{B}, \mathcal{G}, \mathcal{D}, \mathcal{T} denote the sets of lines, buses, generators, demands, and restoration periods, respectively. Binary variables uc,nu_{c,n} represent energized status of component cc at time nn, and zc,nz_{c,n} indicate if a damaged component is restored by period nn. The objective is total load delivered: max()nT  dDpd,ndΔt\max_{(\cdot)} \quad \sum_{n \in \mathcal{T}}\;\sum_{d \in \mathcal{D}} p^d_{d,n} \Delta t Key constraints include:

  • Power balance (AC or DC)
  • Physical branch flow (linear or nonlinear)
  • Voltage and thermal limits
  • Capacity limits for generators and loads
  • Per-period restoration budget: c(uc,nuc,n1)R\sum_c (u_{c,n} - u_{c,n-1}) \le R
  • Sequencing and end-state conditions: uc,N=1u_{c,N} = 1 for all cc (Rhodes et al., 2022, Rhodes et al., 2020).

2.2 Restoration Implementation Problem (RIP)

Given a fixed restoration sequence, optimizes OPF over the periods; variables and constraints mirror ROP except for treating the restoration sequence as data.

2.3 Minimum Restoration Set Problem (MRSP)

A single-period, cardinality minimization: min c(number of repairs)\min \ \sum_c \text{(number of repairs)} subject to full network re-energization and delivery of the load (Rhodes et al., 2020).

3. Heuristics and Algorithmic Workflows

Several algorithmic approaches are implemented, targeting the intractability of large mixed-integer nonlinear or quadratic restoration models:

3.1 Recursive Restoration Refinement (RRR)

RRR constructs a binary “refinement tree” by recursively solving 2-period ROPs to split the repair set:

1
2
3
4
5
6
7
8
9
10
11
12
function RRR(network N, damaged set L̄)
  if |L̄| ≤ 1
    return [L̄]
  S₁, S₂ = solve_ROP(N, L̄, periods=2)
  if ROP_failed or S₁ empty
    full_order = UTIL(N, L̄)
    S₁ = first ⌈|L̄|/2⌉ lines of full_order
    S₂ = remaining lines
  R₁ = RRR(N, S₁)
  R₂ = RRR(N, S₂)
  return concat(R₁, R₂)
end
Empirically, RRR achieves restoration plans within 1% of optimal at up to 1,000× speedup relative to full ROP solution for cases up to 500 buses and 700 damaged components (Rhodes et al., 2022).

3.2 UTIL and RAD Heuristics

  • UTIL: Greedy, capacity-based prioritization; computationally trivial but often sacrifices restoration quality.
  • RAD: Adaptive, randomized decomposition to partition the major restoration problem into tractable subproblems.

Workflows commonly chain these heuristics with exact or approximate OPF checks, and may use MRSP preprocessing to eliminate non-essential repairs, yielding substantial speedups (Rhodes et al., 2022, Rhodes et al., 2020).

4. API, Usage Patterns, and Code Examples

The Julia API exposes modeling and solver functionality via type-safe interfaces:

Module Key Function(s) Description
PowerModelsRestoration.RIP build_rip_model, solve_rip Construct/solve multi-period OPF
PowerModelsRestoration.ROP build_rop_model, solve_rop Formulate/solve restoration MIP
Heuristics util_heuristic, rad_heuristic, rrr_heuristic Fast generation of repair plans
Data/Utils parse_file, scenario generators, plotting Data acquisition and visualization

An example workflow involves: loading the network, defining the damaged set, generating repair orderings via RRR, evaluating the associated RIP, and visualizing outputs. Warm-starting ROP subproblems and iterative batching yield computational acceleration, particularly for large networks (Rhodes et al., 2022, Rhodes et al., 2020).

5. Performance, Benchmarks, and Validation

PowerModelsRestoration.jl reproduces established restoration benchmarks and provides new scalability results:

  • Exact ROP: Achieves provable optimality on cases ≤60 buses with ≤30% damage, but fails to converge within practical time on cases ≥240 buses.
  • UTIL: Sub-second runtime, but only delivers 60–80% of maximum energy.
  • RAD: Completes in minutes to hours, produces results within 2–3% of optimal.
  • RRR: 10–500× faster than exact ROP on realistic transmission models, attains ≤1% deviation from optimal restoration (Rhodes et al., 2022).
  • Case Study Insight: For 500-bus, 147-damage lines, UTIL solves in ~0.01 s (low quality), RRR in ~30 s (high quality), RAD in ~2 h, while explicit ROP times out at 10 h.
  • The DC approximation is highly tractable and accurate for radial or single-substation networks; SOC relaxations offer a favorable trade-off between runtime and physic fidelity, while full AC MINLPs remain intractable for large-scale cases (Rhodes et al., 2020).

6. Integration, Extensibility, and Practical Considerations

PowerModelsRestoration.jl is designed for composability within the Julia ecosystem:

  • Power flow models: Swappable; changing the OPF formulation switches between linear, convex, and nonlinear relaxations.
  • Interoperability: Uses PowerModels.jl network dictionaries, MathOptInterface-compliant solvers, and Julia plotting utilities.
  • Scenario Generation: Compatible with Monte Carlo, stochastic programming, and reliability toolkits.
  • Best Practices:
    • Always warm-start ROP/RRR with UTIL output.
    • Tighten MIP gaps as needed; use solver parallelism for large cases.
    • Precompile models and only update damage scenarios for repeated runs to maximize JIT/hot start efficiency.
    • Built-in postprocessing to address non-monotonic “Brace’s paradox” in cumulative restoration.

Possible extensions include supporting unbalanced or three-phase models (via PowerModelsDistribution.jl), incorporating AC feasibility post-checks, adding explicit crew-logistic constraints, and integrating advanced heuristics or metaheuristics (Rhodes et al., 2022, Rhodes et al., 2020).

7. Research Impact and Future Directions

PowerModelsRestoration.jl enables new research across restoration optimization, algorithmic benchmarking, and grid resilience studies. It has provided the foundation for the development and release of the Recursive Restoration Refinement algorithm, which has materially reduced the quality-runtime tradeoff in large-scale restoration problems. The platform’s decoupling of restoration sequencing from power flow fidelity allows for rigorous exploration and validation of new theoretical advances, such as stochastic, robust, or metaheuristic restoration planning and hybrid relaxations for self-healing power systems.

By systematically exposing comparative workflows, supporting transparent benchmarks, and encouraging extensions to new physical and logistical domains, PowerModelsRestoration.jl has established itself as a critical research enabler for next-generation power system resilience studies (Rhodes et al., 2022, Rhodes et al., 2020).

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to PowerModelsRestoration.jl.