AbstractImmittanceLine

class pmrf.models.components.lines.base.AbstractImmittanceLine(length: Any, *, name: str | None = None, metadata: Any = None)

Bases: AbstractUniformLine

Abstract base class for a transmission line defined by its per-unit-length series impedance and shunt admittance.

Derived classes must implement immittance to define how those behave over frequency. \(R\), \(L\), \(G\) and \(C\) remain available as derived views on ImmittanceResult.

Mathematical Formulation

The characteristic impedance (\(Z_c\)) and complex propagation constant (\(\gamma\)) are derived as:

\[Z_c = \sqrt{\frac{Z}{Y}}\]
\[\gamma = \sqrt{ZY}\]

where \(Z = R + j\omega L\) and \(Y = G + j\omega C\). The total complex electrical length is \(\gamma L\).

A line with no static loss has \(Z = Y = 0\) at \(\omega = 0\), where neither root is defined. Both are continued there:

\[\gamma(0) = 0, \qquad Z_c(0) = Z_c(\omega_{min})\]
with \(\omega_{min}\) the lowest non-zero frequency on the axis, matching how ImmittanceResult continues \(L\) and \(C\). A line whose \(R\) and \(G\) are both non-zero at DC keeps its genuine \(Z_c(0) = \sqrt{R/G}\); one with \(R > 0\) and \(G = 0\) has a genuinely infinite \(Z_c(0)\), and takes the same finite continuation rather than propagating an infinity into \(S\).

Parameters:

length (Param) – Physical length of the line in meters.

abstractmethod immittance(freq: Frequency) ImmittanceResult

Calculates the frequency-dependent per-unit-length immittance.

Parameters:

freq (Frequency) – The frequency axis.

Returns:

The series impedance and shunt admittance vectors.

Return type:

ImmittanceResult

zc_and_gammaL(frequency: Frequency) tuple[Array, Array]

Calculates characteristic impedance (\(Z_c\)) and complex electrical length (\(\gamma L\)).

Parameters:

frequency (Frequency) – The frequency axis.

Returns:

Array of characteristic impedance (\(Z_c\)) and complex electrical length (\(\gamma L\)).

Return type:

tuple[jnp.ndarray, jnp.ndarray]

length: Param

Physical length of the line