sycan.components.basic.voltage_source

Independent voltage source (SPICE V).

Supports DC, AC-phasor, and waveform modes: "sine", "pulse", "exp".

Functions

waveform_laplace(source, s)

Laplace transform of an independent source's transient waveform.

waveform_time(source, t)

Time-domain expression of an independent source's waveform.

Classes

VoltageSource(name, n_plus, n_minus, value)

Ideal voltage source enforcing V(n_plus) - V(n_minus) = value.

sycan.components.basic.voltage_source.waveform_laplace(source, s)[source]

Laplace transform of an independent source’s transient waveform.

source is a VoltageSource or CurrentSource. A source without a waveform is treated as its DC value switched on at t = 0 (a step), i.e. value / s.

Parameters:

s (Expr)

Return type:

Expr

sycan.components.basic.voltage_source.waveform_time(source, t)[source]

Time-domain expression of an independent source’s waveform.

Delayed pulse / exponential segments are expressed with Heaviside. A source without a waveform returns its DC value — valid for t > 0, matching the step convention waveform_laplace() uses for plain DC sources.

Parameters:

t (Expr)

Return type:

Expr

class sycan.components.basic.voltage_source.VoltageSource(name, n_plus, n_minus, value, ac_value=None, *, include_noise=None, waveform=None, amplitude=None, frequency=None, phase=0, v1=None, v2=None, td=None, pw=None, td1=None, tau1=None, td2=None, tau2=None)[source]

Bases: Component

Ideal voltage source enforcing V(n_plus) - V(n_minus) = value.

Its auxiliary current I(name) is defined from n_plus to n_minus through the source, matching SPICE’s convention.

ac_value is the small-signal phasor used in AC analysis. If None, AC analysis reuses the DC value. Ideal sources are noiseless; include_noise is accepted for interface uniformity.

Waveforms — set waveform to model time-varying sources:

  • "sine"amplitude * sin(2π·frequency·t + phase).

  • "pulse" — rectangular pulse with v1, v2, td (delay), pw (pulse width). DC is v1.

  • "exp" — exponential pulse with v1, v2, td1 (rise delay), tau1 (rise time constant), and optional td2 / tau2 (fall). DC is v1.

Parameters:
  • name (str)

  • n_plus (str)

  • n_minus (str)

  • value (Expr)

  • ac_value (Expr | None)

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

  • waveform (str | None)

  • amplitude (Expr | None)

  • frequency (Expr | None)

  • phase (Expr | None)

  • v1 (Expr | None)

  • v2 (Expr | None)

  • td (Expr | None)

  • pw (Expr | None)

  • td1 (Expr | None)

  • tau1 (Expr | None)

  • td2 (Expr | None)

  • tau2 (Expr | None)

name: str
n_plus: str
n_minus: str
value: Expr
ac_value: Expr | None = None
include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None
waveform: str | None = None
amplitude: Expr | None = None
frequency: Expr | None = None
phase: Expr | None = 0
v1: Expr | None = None
v2: Expr | None = None
td: Expr | None = None
pw: Expr | None = None
td1: Expr | None = None
tau1: Expr | None = None
td2: Expr | None = None
tau2: Expr | None = None
ports: ClassVar[tuple[str, ...]] = ('n_plus', 'n_minus')
has_aux: ClassVar[bool] = True
SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({})
stamp(ctx)[source]
Parameters:

ctx (StampContext)

Return type:

None