DatasheetLine

class pmrf.models.components.lines.empirical.DatasheetLine(length: Any, zn: Any = 50.0, vf: Any = 1.0, k1: Any = 0.0, k2: Any = 0.0, loss_coeffs_normalized: bool = False, *, name: str | None = None, metadata: Any = None)

Bases: AbstractImmittanceLine

Line defined by nominal impedance, velocity factor, and loss coefficients.

Mathematical Formulation

With normalized coefficients \(k_{1,norm}\) and \(k_{2,norm}\),

\[\alpha_c = k_{1,norm} \cdot \frac{\ln(10)}{20} \cdot \sqrt{\omega}\]
\[\alpha_d = k_{2,norm} \cdot \frac{\ln(10)}{20} \cdot \omega\]

and the per-unit-length parameters are

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

Example

import pmrf as prf
from pmrf.models import DatasheetLine

cable = DatasheetLine(
    zn=50.0,
    vf=0.69,  # Velocity factor (e.g., solid PTFE)
    k1=0.2,   # Skin effect loss factor
    k2=0.01,  # Dielectric loss factor
    length=1.0
)

freq = prf.Frequency(start=0.1, stop=10, npoints=201, unit='ghz')
s = cable.s(freq)
Parameters:
  • zn (Param, default=50.0) – Nominal characteristic impedance.

  • vf (Param, default=1.0) – Velocity factor (ratio of propagation speed to the speed of light).

  • k1 (Param, default=0.0) – Skin effect loss factor.

  • k2 (Param, default=0.0) – Dielectric loss factor.

  • loss_coeffs_normalized (bool, default=False) – If true, use k1 and k2 directly. Otherwise, normalize them to the 100 MHz reference convention.

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

k1: Param = 0.0

Skin effect loss factor

k2: Param = 0.0

Dielectric loss factor

loss_coeffs_normalized: bool = False

Loss coefficients normalization flag

vf: Param = 1.0

Velocity factor

zn: Param = 50.0

Nominal characteristic impedance