pub enum DcApproximation {
IgnoreR,
IgnoreG,
}Expand description
Which terms the DC susceptance keeps.
Both variants are powsybl-open-loadflow’s DcApproximationType
(dc/equations/AbstractClosedBranchDcFlowEquationTerm.computePower); no
other reference tool offers the choice, and every one of them uses what is
spelled IgnoreR here.
Variants§
IgnoreR
b = 1/x. The textbook DC approximation, and what MATPOWER’s
makeBdc, pandapower’s rundcpp and lightsim2grid all compute.
Discards resistance entirely, which is the assumption the whole DC
model rests on anyway.
IgnoreG
b = x/(r² + x²), i.e. −Im(y_series): the true series susceptance,
with resistance retained in the denominator where it belongs.
Strictly the better linearization of the two — it is the exact
coefficient of sin δ in the AC flow equation, whereas 1/x is that
coefficient only in the limit r → 0. The gap is negligible on
transmission (r/x ≈ 0.1 gives a 1% difference) and material on
distribution feeders, where r/x can exceed 1. It is not the default
only because every tool worth comparing against uses 1/x, and a
default that silently disagrees with all of them would make every
cross-check look like a bug.
Trait Implementations§
Source§impl Clone for DcApproximation
impl Clone for DcApproximation
impl Copy for DcApproximation
Source§impl Debug for DcApproximation
impl Debug for DcApproximation
Source§impl Default for DcApproximation
impl Default for DcApproximation
impl Eq for DcApproximation
Source§impl PartialEq for DcApproximation
impl PartialEq for DcApproximation
impl StructuralPartialEq for DcApproximation
Auto Trait Implementations§
impl Freeze for DcApproximation
impl RefUnwindSafe for DcApproximation
impl Send for DcApproximation
impl Sync for DcApproximation
impl Unpin for DcApproximation
impl UnsafeUnpin for DcApproximation
impl UnwindSafe for DcApproximation
Blanket Implementations§
impl<T> Boilerplate for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more