sycan.components.blocks.integrator

Continuous-time integrator block.

Implements H(s) = k / (s + leak) — ideal pure integrator when leak = 0, lossy / leaky integrator otherwise. The latter is useful when an exact pure integrator would make the DC operating point indeterminate (the ideal integrator has an infinite DC gain, so this block leaves its output floating in DC mode).

The auxiliary stamping is identical to a frequency-dependent VCVS controlled by the differential input.

Classes

Integrator(name, in_p, in_m, out_p, out_m, ...)

class sycan.components.blocks.integrator.Integrator(name: 'str', in_p: 'str', in_m: 'str', out_p: 'str', out_m: 'str', k: 'cas.Expr' = 1, leak: 'cas.Expr' = 0, var: 'cas.Symbol' = <factory>, *, include_noise: 'NoiseSpec' = None)[source]

Bases: Component

Parameters:
  • name (str)

  • in_p (str)

  • in_m (str)

  • out_p (str)

  • out_m (str)

  • k (Expr)

  • leak (Expr)

  • var (Symbol)

  • include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])

name: str
in_p: str
in_m: str
out_p: str
out_m: str
k: Expr = 1
leak: Expr = 0
var: Symbol
include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None
ports: ClassVar[tuple[str, ...]] = ('in_p', 'in_m', 'out_p', 'out_m')
has_aux: ClassVar[bool] = True
SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({})
aux_count(mode)[source]

Number of auxiliary branch currents the component needs in mode.

Parameters:

mode (str)

Return type:

int

stamp(ctx)[source]
Parameters:

ctx (StampContext)

Return type:

None