CoupledTwoPorts

class pmrf.models.composite.nodal.CoupledTwoPorts(coupled: list[Model], coupling: Any, method: str = 'coefficients', *, name: str | None = None, metadata: Any = None)

Bases: Model

(experimental) Wraps N 2-port models (e.g., Inductors) and couples them via a given K-matrix.

Returns a 2N-port model where Model 1 occupies ports (0, 1), Model 2 occupies ports (2, 3), and so on.

Parameters:
  • coupled (list[Model]) – The sequence of 2-port models to couple.

  • coupling (Any) – The coupling definition between the elements. Meaning depends on method. For fixed coupling, pass Python collections and numpy arrays. For variable coupling, pass parameters from pmrf.parameters.

  • method (str, default='coefficients') – The meaning of coupling. Options are (‘coefficients’, ‘matrix’). For ‘coefficients’, must be a list of tuples (model_i, model_j, k_factor). For ‘matrix’, must be an NxN coupling matrix which is symmetric, has 1.0 on the diagonals, and is positive semi-definite.

  • Reference

  • ---------

  • each (Uses Modified Nodal Analysis (MNA). Extracts the branch impedance (\(Z_b\)) for)

  • component

  • Z_{jj}}$ (creates a mutually coupled branch matrix $Z_{ij} = k_{ij} sqrt{Z_{ii})

:param : :param and translates it to a \(2N \times 2N\) nodal admittance matrix using an incidence matrix (\(A\)): :param $$ Y_{nodal} = A Z_b^{-1} A^T $$:

coupled: list[Model]

The sequence of 2-port series models to couple.

coupling: Any

The coupling definition (list of tuples or array-like matrix).

property coupling_matrix: Array

Evaluates the coupling definition based on the method and returns the NxN coupling matrix.

Returns:

The full, symmetric NxN coupling matrix.

Return type:

jnp.ndarray

method: str = 'coefficients'

The method used to interpret the coupling definition.