Expand description
Real-valued DC network model and Newton-Raphson solver.
A DC network has no angle and no reactive power — only a voltage
magnitude and a real power/current balance at each node — so this is
deliberately not built on crate::types::Bus/crate::types::Line:
reusing those would drag in dead fields (voltage_ang, q_spec,
q_min/q_max) and make AC-only machinery (BusType::PV Q-limit
switching, the complex Y-bus) nonsensically reachable for a DC bus.
Used for CGMES HVDC subsystems: a DcBus per DCTopologicalNode, a
DcLine per resistive DC branch (DCLineSegment, a switch/breaker
stamped as a near-zero resistance, etc.). These networks are small (a
single HVDC link’s switchyard fixture tops out around a dozen nodes), so
solve_dc_network uses a plain dense Newton-Raphson solve with Gaussian
elimination rather than pulling in solver.rs’s sparse-LU machinery,
which exists to scale to real AC networks with thousands of buses.
Structs§
- DcBus
- DcLine
- A resistive two-terminal DC branch:
DCLineSegment,DCSeriesDevice, or a switch/breaker/disconnector stamped as a near-zero resistance. - DcSolve
Status
Enums§
- DcBus
Role - What fixes a DC bus’s voltage/current/power, mirroring the CGMES
pPccControl/ACDCConverter/DCGroundsemantics that produce each role.
Functions§
- injected_
currents - The net current injected into the network at each bus (
S[i]above), computed frombuses’ current (typically post-solve) voltages — the per-bus DC currentIdc, in the same units asDcLine::r/DcBus::voltagecombine to produce (kA, given resistance in Ω and voltage in kV). Used by CGMES conversion to translate a solved DC bus’s state back into a converter’s own AC-side power via its loss curve. - solve_
dc_ network - Solves a small resistive DC network for the unknown bus voltages, given each bus’s role (fixed voltage, fixed power, fixed current, or passive).