StateSpace

class pmrf.models.surrogates.rational.StateSpace(a: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = _JitWrapper(fn='NoneType', filter_warning=False, donate_first=False, donate_rest=False), b: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = None, c: 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 continuous-time state-space matrices: H(s) = C * (sI - A)^-1 * B + D

Parameters:
  • a (Param) – State matrix (A). Shape: (state_dim, state_dim)

  • b (Param) – Input matrix (B). Shape: (state_dim, N)

  • c (Param) – Output matrix (C). Shape: (N, state_dim)

  • d (Param) – Feedthrough matrix (D). Shape: (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

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

Input matrix (B)

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

Output matrix (C)

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

Feedthrough matrix (D)