Skip to content

Support intra-horizon topology changes #228

Description

@m-bossart

Today a component is either in the model for the entire horizon or absent
entirely. There is no way to represent a line going out of service midway
through the day.

Current state

  • Availability is a build-time boolean (get_available_componentsIS.get_available).
  • NetworkModel.network_matrix is a single matrix for the whole horizon.
  • DCP ohm law uses a constant b for every t; PTDF uses one column per branch for every t.
  • PSY outage attributes (PlannedOutage, FixedForcedOutage) exist but POM never reads them.

Note that driving a BranchRatingTimeSeriesParameter to zero does not emulate an
outage — impedance is unchanged, so the line still carries flow in the PTDF/ohm law.

Proposed approach (exogenous, known outage schedule)

  • Resolve PSY outage attributes into a per-timestep availability mask.
  • DCP: skip the NetworkFlowConstraint row and the branch's ActivePowerBalance
    contribution on outaged steps.
  • PTDF: reuse the MODF machinery from the security-constrained path. modf_matrix[arc, spec]
    already returns a full injection→flow row against the same injection variables, and
    VirtualMODF shares the VirtualPTDF factorization, so states are Woodbury updates
    rather than new PTDF builds.

Known gaps

  • MODF expressions are currently built only for monitored arcs; base-case coverage needs
    every rated branch × state. Each (arc, state) is a serialized KLU solve — needs benchmarking.
  • The outaged branch itself needs its flow zeroed and rating constraint dropped.
  • Islanding: MODF handles it at the matrix level (is_islanding, bus_island_labels), but
    the power balance does not — subnetworks is one partition applied to all t. Affects DCP equally.
  • Outage registration currently skips silently on failure and falls back to the unmodified
    PTDF row. Acceptable for SC monitoring; on this path it would silently solve the intact
    network and must become a hard error.
  • Dual/LMP path not yet traced for single-matrix assumptions.

Out of scope

Endogenous topology (optimal transmission switching) — needs branch binaries and a
disjunctive ohm law, and is structurally incompatible with PTDF.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions