PhysicalLine

class pmrf.models.components.lines.empirical.PhysicalLine(length: Any, zn: Any = 50.0, ep_r: Any = 1.0, A: Any = 0.0, f_A: Any = 1.0, tand: Any = 0.0, *, name: str | None = None, metadata: Any = None)

Bases: AbstractImmittanceLine

Line defined by nominal impedance, permittivity, and loss coefficients.

Mathematical Formulation

The frequency-dependent attenuation components are computed as:

\[\alpha_c = A \cdot \sqrt{\frac{f}{f_A}} \cdot \frac{\ln(10)}{20}\]
\[\alpha_d = \frac{\pi f \sqrt{\varepsilon_r}}{c} \cdot \tan\delta\]

The per-unit-length parameters are

\[R = 2 z_n \alpha_c\]
\[L = \frac{z_n \sqrt{\varepsilon_r}}{c}\]
\[G = \frac{2 \alpha_d}{z_n}\]
\[C = \frac{\sqrt{\varepsilon_r}}{z_n c}\]

Example

import pmrf as prf
from pmrf.models import PhysicalLine

line = PhysicalLine(
    zn=50.0,
    length=1.0,
    ep_r=2.2,
    A=0.01,
    f_A=1.0,
    tand=0.001
)

freq = prf.Frequency(start=1, stop=10, npoints=101, unit='ghz')
s = line.s(freq)
Parameters:
  • zn (Param, default=50.0) – Nominal characteristic impedance defining the L/C ratio.

  • ep_r (Param, default=1.0) – Relative permittivity.

  • A (Param, default=0.0) – Conductor loss in dB/m/sqrt(Hz).

  • f_A (Param, default=1.0) – Frequency scaling reference for attenuation in Hz.

  • tand (Param, default=0.0) – Dielectric loss tangent.

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

A: Param = 0.0

Conductor loss in dB/m/sqrt(Hz)

ep_r: Param = 1.0

Relative permittivity

f_A: Param = 1.0

Frequency scaling reference

tand: Param = 0.0

Dielectric loss tangent

zn: Param = 50.0

Nominal characteristic impedance