Хочу поделиться с вами информацией о NGSPICE — профессиональном движке эмулятора электрических цепей, интегрированным в кроссплатформенный программный пакет разработки электроники KiCAD с открытым исходным кодом.
Я думал, что работа с этим инструментом слишком сложна, и долго к нему не подступался. Оказалось, что всё намного проще, и за пару вечеров освоил симуляцию аналоговых схем. Если честно, в первый раз, когда получилось и система нарисовала графики АЧХ и осциллограммы, с губ непроизвольно сорвалось тихое «Вау...». Потому что это настоящий сундук с бриллиантами для тех, кто любит и изучает электронику.
Давайте покажу на простых примерах, как им пользоваться.
▍ Краткая историческая информация
SPICE (Simulation Program with Integrated Circuit Emphasis) проект был разработан в Electronics Research Laboratory в Калифорнийском университете в Беркли в семидесятых годах.
SPICE с момента своего появления функционировала как программное обеспечение с открытым исходным кодом, что сыграло ключевую роль в её повсеместном внедрении и популяризации. Благодаря этой особенности, SPICE утвердилась в качестве общепризнанного отраслевого стандарта для моделирования и симуляции электрических цепей.
▍ Возможности
Движок реализует различные элементы схем, такие как резисторы, конденсаторы, катушки индуктивности (одиночные и трансформаторы), линии передачи и растущее число полупроводниковых устройств, таких как диоды, биполярные транзисторы, МОП-транзисторы: с управляющим переходом, изолированным затвором. И многое другое.
Движок может производить несколько видов анализов цепей:
1. DC-анализ (рабочая точка и DC-развёртка) — Определяет постоянное напряжение в цепи, игнорируя временные зависимости. Используется для нахождения рабочей точки и для построения статических характеристик при изменении параметров. Тока, напряжения, температуры.
2. AC-анализ малого сигнала — Анализирует поведение схемы при подаче синусоидальных сигналов малой амплитуды. Сначала вычисляется рабочая точка, затем определяются линеаризованные модели для нелинейных устройств.
3. Переходный (транзиентный) анализ — Расширение DC-анализа во времени. Показывает, как сигналы в схеме изменяются со временем после получения DC-решения.
4. Анализ полюсов и нулей — Вычисляет полюсы и нули в передаточной функции малого сигнала. Используется для анализа устойчивости и характеристик передаточных функций схемы.
5. Анализ искажений малого сигнала — Вычисляет гармонические и интермодуляционные составляющие при малых входных сигналах. Определяет нелинейные искажения в схеме.
6. Анализ чувствительности — Определяет, насколько выходная величина чувствительна к изменениям параметров компонентов схемы. Работает путём малого возмущения каждого параметра и наблюдения за изменениями.
7. Анализ шума — Измеряет шум, генерируемый устройствами в схеме. Рассчитывает вклад в шум от каждого компонента и общий шум в заданном диапазоне частот.
8. Анализ периодического установившегося состояния — Экспериментальный анализ для ВЧ-схем, позволяющий предсказать основную частоту и амплитуды гармоник для осцилляторов, ГУН и подобных схем.
И ещё многое другое, в т. ч. с расчётом выделяемой мощности и изменения температуры.
▍ Интеграция в KiCAD
Симулятор интегрирован в программу разработки электроники и может использовать схемы, созданные в ней с небольшими доработками, о которых я расскажу.
Предполагается, что читатель знаком с программным пакетом и умеет создавать схемы. Если нет, советую хороший вводный курс на русском.
▍ Анализ по постоянному току
Давайте соберём простую схему, состоящую из однополярного источника питания и трёх резисторов.

Чтобы добавить «понятный» движку симулятора источник постоянного напряжения нужно выбрать инструмент «Добавить символы» (шорткат латинская «A», далее указаны именно латинские символы).

Если войти в свойства символа, для этого нужно выделить его и нажать «E», либо правым кликом выбрать «Свойства...» попадём вот в такое окно.

Поле «Значение» содержит значение напряжения источника в вольтах. Я выбрал один вольт, вы можете вписать любое другое значение.
Значки резисторов и конденсаторов можно использовать стандартные, кикадовские, симулятор их корректно обрабатывает. Свойство «Значение» используется движком как значения сопротивления для расчётов.
По умолчанию значение в цифровом виде трактуется как значение в омах. Приставка k означает килоомы, m — миллиомы, M — мегаомы. Обозначение 1000 и 1k равнозначное.
Обратите внимание, как я сделал подключение источника V1 и резисторов, через символы «GND» и «VCC», которые вызываются клавишей «P» в малых схемах можно соединять напрямую, а в больших для удобства источник питания можно разместить где-то в углу листа. Также обратите внимание, что минус источника V1 подключён не только к земле, но и к символу с именем «0», это специальная метка нулевого напряжения, позволяющая однозначно указать точку отсчёта потенциалов, этот символ доступен из группы Simulation_SPICE, через меню добавления символа «A».

Когда ваша схема готова, нажмите на кнопку с символическим экраном осциллографа, и откроется окно симулятора. Пока что оно пустое.

Нажмите на кнопку добавления вкладки (Ctrl+N) и выберите DC — DC sweep. Установите значения как на скриншоте, обязательно укажите источник V1, это наш источник постоянного напряжения из схемы.

Нажмите на кнопку с иконкой «Плей» и симуляция запустится. Если всё прошло корректно, вы получите пустое поле. Справа есть панель, в которой можно поставить галочки графиков.

Если у вас графики тока выглядят ниспадающими, при росте напряжения ток уменьшается, переверните резисторы в схеме (шорткат «R»), подобная рекомендация относится и к симулятору CircuitJS.
Обратите внимание, можно выводить графики мощности.
▍ Снимем ВАХ модели кремниевого диода
Ну тут всё просто, учтите то, что нужно ставить галочку напротив графика тока. Ось со значениями тока расположена непривычно — справа.


▍ Частотный анализ, снимаем амплитудно частотную характеристику
Давайте для примера нарисуем схему простейшей частотозависимой электрической цепи — делителя содержащего сопротивление и ёмкость. Такой узел называют фильтром верхних частот.
Добавьте символы резистора, конденсатора, источник сигнала VSIN и соедините проводниками.

У источника синусоидального сигнала VSIN есть свойство Sim.Params, содержащее строку с настройками: dc=0 ampl=1 f=1k ac=1, они расшифровываются так:
dc=0: постоянная составляющая напряжения равна нулю
ampl=1: амплитуда синусоидального сигнала равна 1 В
f=1k: частота сигнала 1 кГц
ac=1: амплитуда сигнала для AC‑анализа равна 1 В
Так как одни и те же источники сигнала могут служить для разных типов анализа, то сделано разделение настроек. Обратите внимание, что при частотном анализе не учитывается установка частоты (в нашем случае 1 килогерц) так как она изменяется динамически в указанном в настройках анализа диапазоне.
Для большего удобства работы можно снабдить узел схемы меткой «L». Установите её в интересующую вас точку и задайте имя. В моём примере Output. Чуть позже вы поймёте, для чего она пригодится.
Запускаем симуляцию, выбираем «AC — анализ малых сигналов». Рекомендуемые настройки: Количество точек на декаду 10-20, начальная частота 10 Гц, конечная — 24 000 Гц.
Запускаем симуляцию и отмечаем справа галочку Output и появится график.

Рядом находятся две галочки маркеров, я активировал один маркер и установил его на частоту среза, -3 dB.
Задание: поменяйте резистор и конденсатор местами и посмотрите, как изменится АЧХ. У вас получится фильтр нижних частот. Попробуйте переделать его так, чтобы частота среза оказалась около 22 килогерц.
Ещё пример. Приведена схема из параллельного колебательного контура, с резонансной частотой около 2 килогерц и резистора.


▍ Анализ переходных процессов
Этот тип анализа чем-то напоминает работу с реальным цифровым осциллографом, подключаемым к схеме.

Для примера соберём и протестируем схему предусилителя, работу которого я описывал в предыдущей статье. (Там я допустил ошибку, выбрав входной конденсатор слишком большой ёмкости. Мне подсказали уменьшить входную ёмкость, для того чтобы ограничить полосу усиливаемых частот снизу и укоротить время необходимое для зарядки конденсатора и выхода схемы на рабочий режим. Ещё я немного упростил схему, отказавшись от RC цепочки в эмиттерной цепи первого транзистора).
Давайте соберём схему и просимулируем её работу. Я использовал стандартный NPN транзистор из группы символов Simulation_SPICE, который оснащён «усреднённой» моделью кремниевого биполярного транзистора.
В качестве источника сигнала будет связка из знакомого VSIN и источника шумового напряжения VTRNOISE, который имитирует естественный шумовой сигнал.
Расшифровка строки параметров, rms=0.1m dt=5000n ac=0 ph=0:
rms=0.1m — Среднеквадратичное значение амплитуды шума составляет 0.1 милливольт.
dt=5000n — Временной шаг обновления шумового сигнала равен 5000 наносекунд (5 микросекунд). Внимание, не делайте его слишком коротким, если моделируете схемотехнику звуковых частот, потому что малые значения шага сильно нагружают CPU.
ac=0 — Амплитуда шума при AC-анализе равна нулю.
ph=0 — Начальная фаза шумового сигнала, равна нулю.
Также не забудьте про источник постоянного питания с напряжением 3,6 вольт.

Запускаем окно симулятора и создаём TRAN-анализ с параметрами симуляции, как на скриншоте. Обратите внимание, что начало симуляции выбрано 20 миллисекунд, а конец 22 миллисекунды. Зачем так? Дело в том, что движок произведёт расчёты от нулевой отметки, но на график попадёт отрезок в 2 миллисекунды. Первые двадцать не попадут на график. Это полезно, если вам требуется сдвинуть и ограничить «временное окно».

Проверим АЧХ схемы предусилителя, для этого создадим вкладку «AC — анализ малых сигналов». И запустим симуляцию.

Как видно из графика, частота среза снизу — 100 герц, что подходит для записи голоса.
▍ Анализ рабочей точки
Этот тип анализа не имеет настроек, но у него есть полезное свойство, после запуска в схеме на каждом проводнике появляются отметки, обозначающие ток и напряжение.

Как видно, схема неплохо сбалансирована, рабочая точка первого транзистора находится посередине диапазона от нуля до плюса питающего напряжения.
Надеюсь, вам было интересно, и этот вводный туториал пригодится в изучении электроники и пригодится для экспериментов.
© 2025 ООО «МТ ФИНАНС»