PoleResidue

class pmrf.models.surrogates.rational.PoleResidue(poles: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, residues: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, d: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, *, name: str | None = None, metadata: Any = None, domain: str = 's', z0: Any = 50.0)

Bases: AbstractSingleDomain

(experimental) A general N-port model defined by a pole-residue expansion: H(s) = D + sum( R_i / (s - p_i) )

Parameters:
  • poles (Param) – The poles of the system. Shape: (num_poles,)

  • residues (Param) – The residues of the system. Shape: (num_poles,) for scalars, or (num_poles, N, N) for port matrices.

  • d (Param) – Optional direct feedthrough matrix (constant term D). Shape: () or (N, N).

primary_matrix(freq: Frequency) Array

Retrieve the primary matrix and apply impedance renormalization if necessary.

Parameters:
  • freq (Frequency) – The frequency grid.

  • **kwargs – Additional arguments, specifically z0 for S-parameter renormalization.

Returns:

The domain matrix, renormalized to the requested z0 if applicable.

Return type:

jax.numpy.ndarray

d: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

Optional direct feedthrough matrix

poles: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

The poles of the system

residues: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None

The residues of the system