SS.Electronics 1.2.0
Legacy device formulas plus tokenized nonlinear diode/NPN/NMOS netlists, damped-Newton DC network bias, bias-linearized multi-node transfer, backward-Euler nonlinear transient histories and bounded scale sweeps
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
Dependencies: SS.CircuitAnalysis ^1.2.0, SS.LinearAlgebra ^1.7.0
Public API
export record AnalogFrequencySweep(public double[] frequencies, public double[] realGain, public double[] imaginaryGain, public double[] magnitude, public double[] phase)Parameters: frequencies: double[], realGain: double[], imaginaryGain: double[], magnitude: double[], phase: double[]
Electronics.BiasSolution
export record BiasSolution(public string[] nodeNames, public double[] nodeVoltages, public string[] deviceNames, public double[] deviceCurrents, public string[] deviceRegions, public double[] unknownValues, public double residual, public int iterations, public bool converged, public string diagnostic)Parameters: nodeNames: string[], nodeVoltages: double[], deviceNames: string[], deviceCurrents: double[], deviceRegions: string[], unknownValues: double[], residual: double, iterations: int, converged: bool, diagnostic: string
Electronics.bjtFixedBias
export function bjtFixedBias(double supplyVoltage, double baseVoltage, double baseResistance, double collectorResistance, double beta, double baseEmitterVoltage, double saturationVoltage)->TransistorPointParameters: supplyVoltage: double, baseVoltage: double, baseResistance: double, collectorResistance: double, beta: double, baseEmitterVoltage: double, saturationVoltage: double
Electronics.commonEmitterGain
export function commonEmitterGain(double collectorResistance, double emitterResistance, double transistorTransconductance)->doubleParameters: collectorResistance: double, emitterResistance: double, transistorTransconductance: double
export function commonSourceFrequencySweep(double transconductance, double outputResistance, double loadResistance, double totalCapacitance, double[] frequencies)->AnalogFrequencySweepParameters: transconductance: double, outputResistance: double, loadResistance: double, totalCapacitance: double, frequencies: double[]
Electronics.currentSourceDevice
export function currentSourceDevice(string name, string positiveNode, string negativeNode, double current)->ElectronicDeviceParameters: name: string, positiveNode: string, negativeNode: string, current: double
export record DiodeBiasSweep(public double[] voltages, public double[] currents, public int convergedCount, public double maximumResidual)Parameters: voltages: double[], currents: double[], convergedCount: int, maximumResidual: double
Electronics.diodeCurrent
export function diodeCurrent(double voltage, double saturationCurrent, double idealityFactor, double thermalVoltage)->doubleParameters: voltage: double, saturationCurrent: double, idealityFactor: double, thermalVoltage: double
Electronics.diodeDevice
export function diodeDevice(string name, string anode, string cathode, double saturationCurrent, double idealityFactor, double thermalVoltage, double junctionCapacitance)->ElectronicDeviceParameters: name: string, anode: string, cathode: string, saturationCurrent: double, idealityFactor: double, thermalVoltage: double, junctionCapacitance: double
export function diodeOperatingPointSweep(double[] supplies, double resistance, double saturationCurrent, double idealityFactor, double thermalVoltage, double tolerance, int maximumIterations)->DiodeBiasSweepParameters: supplies: double[], resistance: double, saturationCurrent: double, idealityFactor: double, thermalVoltage: double, tolerance: double, maximumIterations: int
Electronics.DiodePoint
export record DiodePoint(public double voltage, public double current, public int iterations, public bool converged, public string diagnostic)Parameters: voltage: double, current: double, iterations: int, converged: bool, diagnostic: string
export function diodeResistorOperatingPoint(double supplyVoltage, double resistance, double saturationCurrent, double idealityFactor, double thermalVoltage, double tolerance, int maximumIterations)->DiodePointParameters: supplyVoltage: double, resistance: double, saturationCurrent: double, idealityFactor: double, thermalVoltage: double, tolerance: double, maximumIterations: int
export record ElectronicDevice(public string name, public string kind, public string terminalA, public string terminalB, public string terminalC, public double parameter1, public double parameter2, public double parameter3, public double parameter4, public double parameter5)Parameters: name: string, kind: string, terminalA: string, terminalB: string, terminalC: string, parameter1: double, parameter2: double, parameter3: double, parameter4: double, parameter5: double
Electronics.electronicNetwork
export function electronicNetwork(string[] nodes, ElectronicDevice[] devices, string provenance)->ElectronicNetworkParameters: nodes: string[], devices: ElectronicDevice[], provenance: string
export record ElectronicNetwork(public string[] nodes, public ElectronicDevice[] devices, public string provenance)Parameters: nodes: string[], devices: ElectronicDevice[], provenance: string
export record ElectronicTransient(public double[] times, public double[] nodeVoltages, public int nodeCount, public double[] residuals, public int committedSamples, public bool converged, public string diagnostic)Parameters: times: double[], nodeVoltages: double[], nodeCount: int, residuals: double[], committedSamples: int, converged: bool, diagnostic: string
export record FilterResponse(public double magnitude, public double phase, public double cutoffFrequency)Parameters: magnitude: double, phase: double, cutoffFrequency: double
Electronics.highPassRc
export function highPassRc(double resistance, double capacitance, double frequency)->FilterResponseParameters: resistance: double, capacitance: double, frequency: double
Electronics.invertingOpAmpGain
export function invertingOpAmpGain(double inputResistance, double feedbackResistance)->doubleParameters: inputResistance: double, feedbackResistance: double
Electronics.lowPassRc
export function lowPassRc(double resistance, double capacitance, double frequency)->FilterResponseParameters: resistance: double, capacitance: double, frequency: double
Electronics.MosfetPoint
export record MosfetPoint(public double drainCurrent, public double transconductance, public string region)Parameters: drainCurrent: double, transconductance: double, region: string
Electronics.mosfetSquareLaw
export function mosfetSquareLaw(double gateSourceVoltage, double drainSourceVoltage, double thresholdVoltage, double transconductanceParameter)->MosfetPointParameters: gateSourceVoltage: double, drainSourceVoltage: double, thresholdVoltage: double, transconductanceParameter: double
Electronics.nmosDevice
export function nmosDevice(string name, string drain, string gate, string source, double thresholdVoltage, double transconductanceParameter, double channelLengthModulation, double gateSourceCapacitance, double drainSourceCapacitance)->ElectronicDeviceParameters: name: string, drain: string, gate: string, source: string, thresholdVoltage: double, transconductanceParameter: double, channelLengthModulation: double, gateSourceCapacitance: double, drainSourceCapacitance: double
export function nonInvertingOpAmpGain(double groundResistance, double feedbackResistance)->doubleParameters: groundResistance: double, feedbackResistance: double
Electronics.npnDevice
export function npnDevice(string name, string collector, string base, string emitter, double saturationCurrent, double forwardBeta, double thermalVoltage, double saturationVoltage, double baseEmitterCapacitance)->ElectronicDeviceParameters: name: string, collector: string, base: string, emitter: string, saturationCurrent: double, forwardBeta: double, thermalVoltage: double, saturationVoltage: double, baseEmitterCapacitance: double
Electronics.operatingPoint
export function operatingPoint(ElectronicNetwork network, double tolerance, int maximumIterations)->BiasSolutionParameters: network: ElectronicNetwork, tolerance: double, maximumIterations: int
Electronics.parseDeviceNetlist
export function parseDeviceNetlist(string[] nodes, string[] names, string[] kinds, string[] terminalA, string[] terminalB, string[] terminalC, double[] parameter1, double[] parameter2, double[] parameter3, double[] parameter4, double[] parameter5, string provenance)->ElectronicNetworkParameters: nodes: string[], names: string[], kinds: string[], terminalA: string[], terminalB: string[], terminalC: string[], parameter1: double[], parameter2: double[], parameter3: double[], parameter4: double[], parameter5: double[], provenance: string
Electronics.resistorDevice
export function resistorDevice(string name, string positiveNode, string negativeNode, double resistance)->ElectronicDeviceParameters: name: string, positiveNode: string, negativeNode: string, resistance: double
export function simulateNonlinearTransient(ElectronicNetwork network, BiasSolution initialBias, string drivenVoltageSource, double[] sourceValues, double step, double tolerance, int maximumIterations)->ElectronicTransientParameters: network: ElectronicNetwork, initialBias: BiasSolution, drivenVoltageSource: string, sourceValues: double[], step: double, tolerance: double, maximumIterations: int
Electronics.smallSignal
export function smallSignal(ElectronicNetwork network, BiasSolution bias, string inputVoltageSource, string outputNode, double[] frequencies, double amplitude)->SmallSignalSweepParameters: network: ElectronicNetwork, bias: BiasSolution, inputVoltageSource: string, outputNode: string, frequencies: double[], amplitude: double
export function smallSignalNetworkTransfer(ElectronicNetwork network, BiasSolution bias, string inputVoltageSource, string outputNode, double[] frequencies, double amplitude)->SmallSignalSweepParameters: network: ElectronicNetwork, bias: BiasSolution, inputVoltageSource: string, outputNode: string, frequencies: double[], amplitude: double
export record SmallSignalPoint(public double frequency, public double outputReal, public double outputImaginary, public double magnitude, public double phase, public double residual)Parameters: frequency: double, outputReal: double, outputImaginary: double, magnitude: double, phase: double, residual: double
export record SmallSignalSweep(public SmallSignalPoint[] points, public string inputSource, public string outputNode, public bool solved, public string diagnostic)Parameters: points: SmallSignalPoint[], inputSource: string, outputNode: string, solved: bool, diagnostic: string
export function solveNonlinearDcNetwork(ElectronicNetwork network, double tolerance, int maximumIterations)->BiasSolutionParameters: network: ElectronicNetwork, tolerance: double, maximumIterations: int
Electronics.transient
export function transient(ElectronicNetwork network, BiasSolution initialBias, string drivenVoltageSource, double[] sourceValues, double step, double tolerance, int maximumIterations)->ElectronicTransientParameters: network: ElectronicNetwork, initialBias: BiasSolution, drivenVoltageSource: string, sourceValues: double[], step: double, tolerance: double, maximumIterations: int
export record TransistorPoint(public double collectorCurrent, public double baseCurrent, public double collectorVoltage, public bool active, public string diagnostic)Parameters: collectorCurrent: double, baseCurrent: double, collectorVoltage: double, active: bool, diagnostic: string
Electronics.voltageSourceDevice
export function voltageSourceDevice(string name, string positiveNode, string negativeNode, double voltage)->ElectronicDeviceParameters: name: string, positiveNode: string, negativeNode: string, voltage: double
Documentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.