PhysicalLine

class pmrf.models.components.lines.PhysicalLine(length: Any = 1.0, zn: Any = 50.0, epr: Any = 1.0, A: Any = 0.0, fA: Any = 1.0, tand: Any = 0.0, *, name: str | None = None, z0: complex = 50 + 0j)

Bases: RLGCLine

Transmission line defined by nominal characteristic impedance, relative permittivity, conductor attenuation, and dielectric loss tangent.

Mathematical Formulation

The frequency-dependent attenuation components are computed as:

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

Which yield the per-unit-length parameters:

\[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.core import PhysicalLine

line = PhysicalLine(
    zn=50.0,
    length=1.0,
    epr=2.2,
    A=0.01,
    fA=1.0,
    tand=0.001
)

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

  • epr (Parameter, default=1.0) – Relative permittivity.

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

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

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

rlgc(freq: Frequency) tuple[Array, Array, Array, Array]

Calculates the frequency-dependent RLGC parameters.

Parameters:

freq (Frequency) – The frequency axis.

Returns:

The R, L, G, and C parameter vectors.

Return type:

tuple

A: Parameter = 0.0
epr: Parameter = 1.0
fA: Parameter = 1.0
tand: Parameter = 0.0
zn: Parameter = 50.0