CoupledTwoPorts

class pmrf.models.composite.nodal.CoupledTwoPorts(coupled: list[Model], k_matrix: Array | ndarray | bool | number | bool | int | float | complex, *, z0: complex = 50 + 0j, 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 series models to couple.

  • k_matrix (ArrayLike) – The NxN coupling coefficient matrix. Must be symmetric, have 1.0 on the diagonals, and be 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 $$:

classmethod from_couplings(models: list[Model], couplings: list[tuple[int, int, float]], **kwargs) Self

Builds of model of coupled two-ports from a list of couplings coefficients between them.

Parameters: - models: The models to be coupled. - defined_couplings: A list of tuples (model_i, model_j, k_factor).

coupled: list[Model]

The sequence of 2-port series models to couple.

k_matrix: Array | ndarray | bool | number | bool | int | float | complex

The NxN coupling coefficient matrix (k).