SPICE (Simulation Program with Integrated Circuit Emphasis) - алгоритм моделирования процессов, протекающих в электрических схемах, разработанный в конце 70-х годов в университете Беркли (Калифорния). NGSPICE является расширением оригинального Spice3f5 с открытым кодом.
Наиболее часто используются 5 видов анализа электронных схем:
-
OP: Замер значений напряжения/тока при устойчивом состоянии системы. Например замер потребляемой мощности системы при отсутствии входного сигнала
-
DC: анализ по постоянному току посредством изменения параметров источников постоянного напряжения и/или тока. Пример - снятие вольт-амперной характеристики диода
-
AC: анализ по переменному току посредством изменения частоты. Пример - анализ частотной характеристики RC фильтра
-
Transient: Анализ поведения системы во времени. Например подбор параметров схемы генератора электрических колебаний
-
Fourier: Разложение функции в ряд Фурье. Позволяет качественно оценить нелинейные искажения сигнала
Начнём с проверки законов Кирхгофа с помощью простого OP анализа.
На вход ngspice приходит схема в формате netlist. В данном материале для редактирования электрических схем используется gschem + gnetlist.
~$ gnetlist -g spice-sdb -o kirghof.net kirghof.sch
схема | netlist | ngspice.js
ngspice 1 -> source kirghof.net
ngspice 2 -> op
ngspice 3 -> show v1 v2 v3
ngspice 4 -> print i(v1) i(v2) i(v3)
Результат: i(v1) = -2.54545 | i(v2) = -1.18182 | i(v3) = -3.72727
Первый закон Кирхгофа: алгебраическая сумма токов, сходящихся в любом узле, равна нулю ( -2.54545 -1.18182 = -3.72727
)
Второй закон Кирхгофа: алгебраическая сумма падений напряжений на отдельных участках замкнутого контура, произвольно выделенного в сложной разветвленной цепи, равна алгебраической сумме ЭДС в этом контуре ( 2.54545*10 - 1.18182*30 = 40-50
)
Далее RC - цепочка.