Skip to content

Add PowerModelsDistribution.jl support for unbalanced distribution networks #14

Open

Description

@samtalki

Context

PowerModelsDiff currently supports single-phase balanced transmission networks via PowerModels.jl. PowerModelsDistribution.jl (PMD) is listed in Project.toml (v0.16.0) but is not used anywhere in the codebase.

This issue scopes the effort to extend PowerModelsDiff to unbalanced multi-phase distribution networks.

Key Barriers

  • Data format differences: PMD uses its own ENGINEERING/MATHEMATICAL data models with per-phase vectors and matrix impedances, rather than PowerModels' scalar bus/branch format
  • Per-phase matrices: Sensitivity matrices become block-structured (3×3 per element pair for three-phase). Incidence matrix A, admittance/susceptance data, and the Laplacian all need multi-phase generalizations
  • Expanded KKT system: The OPF KKT system grows significantly with per-phase variables, constraints, and cross-phase coupling (mutual impedances)
  • Topology: Distribution networks are typically radial, which may allow specialized (more efficient) sensitivity computations vs. the general meshed-network approach

Milestones

  1. Data parsing: DistributionNetwork type(s) that wrap PMD data into the PowerModelsDiff type hierarchy, handling phase indexing, multi-phase admittance matrices, and transformer models
  2. Unbalanced power flow sensitivities: Per-phase voltage and current sensitivities, either by extending DCPowerFlowState / ACPowerFlowState or creating distribution-specific variants
  3. Distribution OPF sensitivities: KKT-based implicit differentiation for the multi-phase OPF formulation, reusing the caching patterns from DCSensitivityCache / ACSensitivityCache

Activity

  1. samtalki commented on Feb 28, 2026

    @samtalki
    MemberAuthor

    Related to issue #6

  2. samtalki commented on Mar 4, 2026

    @samtalki
    MemberAuthor

    Status update (March 2026)

    PMD is listed in Project.toml (v0.16.0), so the dependency is ready to go, but there's no PMD-related code in the source tree yet.

    This is a substantial feature with some interesting design challenges:

    • Multi-phase data parsing (PMD's ENGINEERING/MATHEMATICAL models with per-phase vectors and matrix impedances)
    • Block-structured sensitivity matrices (3×3 per element pair for three-phase)
    • Expanded KKT systems with per-phase variables and cross-phase coupling
    • Distribution networks are typically radial, which could enable more efficient sensitivity computations

    The three milestones outlined in the issue (data parsing → unbalanced PF sensitivities → distribution OPF sensitivities) provide a good incremental path. The existing IDMapping infrastructure and type hierarchy give a starting point for the data translation layer.

  3. samtalki commented on Aug 11, 2026

    @samtalki
    MemberAuthor

    status update: powerio-dist should make this straightforward. https://crates.io/crates/powerio-dist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions