Освоение моделирования электрических цепей в SPICE: практическое руководство для проектировщиков и студентов
При грамотном использовании компьютеры становятся незаменимыми союзниками в науке и инженерии. Одним из самых мощных применений является моделирование электрических цепей. Эти программы позволяют проектировщикам быстро оценивать идеи, сокращая время и затраты по сравнению с физическим прототипированием.
Для студентов, начинающих изучать электронику, моделирование даёт немедленный практический способ экспериментировать с поведением цепей без сборки железа. Реальное тестирование остаётся обязательным, но виртуальные эксперименты развивают интуицию и позволяют быструю итерацию.
В этом руководстве я буду вставлять скриншоты SPICE-симуляций для иллюстрации ключевых концепций. Изучая эти результаты, учащиеся могут понять динамику цепей, не увязая в сложной математике.
Моделирование цепей в SPICE
Для моделирования цепей на компьютере я использую SPICE (Simulation Program with Integrated Circuit Emphasis). SPICE интерпретирует текстовое описание цепи — нетлист — и выдаёт результаты детального математического анализа.
Заинтересованным в деталях том 5 справочника этой серии посвящён SPICE полностью. Здесь я сосредоточусь на основах и пройдусь по простым примерам.
Сначала SPICE должен быть установлен. Он бесплатен для многих ОС, я демонстрирую лёгкую версию 2G6 за её простоту.
Давайте проанализируем базовую цепь: батарея 10 В последовательно с резистором 5 Ω. Цель — проверить, что SPICE вычисляет ожидаемый ток по закону Ома (I = E/R).
SPICE — текстовая программа
SPICE не понимает графические схемы; ему нужно чисто текстовое описание. Каждой уникальной точке соединения присваивается номер узла. Общие точки получают один номер. SPICE также требует узел 0 как опорный (заземление).
В нашем примере всего два узла — 1 и 0:

Хотя диаграмма иллюстрирует нумерацию узлов, SPICE требует ту же информацию в виде простого текста.
Создание нетлистов SPICE в текстовом редакторе
Текстовый редактор — Notepad в Windows или Vim в Linux — даёт чистое окружение без форматирования для написания нетлистов. SPICE опирается на точный синтаксис этих файлов.
Начните с заголовка:

Опишите источник напряжения буквой «v», номерами узлов и значением DC:

Затем укажите резистор буквой «r» и его узлы:

Завершите нетлист директивой .end. Полный нетлист:

Запуск SPICE из командной строки
Сохранив файл (например, circuit1.cir), вызовите SPICE из терминала:
spice < circuit1.cir
В Linux командная строка перед нажатием Enter выглядит так:

SPICE печатает нетлист, напряжения узлов, токи источников и общую рассеиваемую мощность. Вывод для примера:

Обратите внимание: SPICE сообщает ток как отрицательное значение из-за внутренней знаковой условности. Мощность в научной нотации (2,00E+01 Вт).
Перенаправление вывода в текстовый файл
Чтобы подавить экранный вывод и сохранить результаты в файл, перенаправьте вывод SPICE:

Полученный файл output1.txt можно отредактировать в текстовом редакторе. Убрав лишние заголовки, оставляем чистые данные для анализа или вставки в документы:

Очищенный вывод в текстовом виде:
my first circuit v 1 0 dc 10 r 1 0 5 .end node voltage ( 1) 10.0000 voltage source currents name current v -2.000E+00 total power dissipation 2.00E+01 watts
Изменение значений компонентов
Чтобы изменить компонент, отредактируйте нетлист, сохраните и запустите SPICE снова. Например, утроим напряжение до 30 В:
second example circuit v 1 0 dc 30 r 1 0 5 .end node voltage ( 1) 30.0000 voltage source currents name current v -6.000E+00 total power dissipation 1.80E+02 watts
Ток вырос с 2 А до 6 А, мощность в 9 раз — с 20 Вт до 180 Вт — в согласии с законом Джоуля (P = E²/R).
Использование sweep и plot в SPICE
Для изучения цепи на диапазоне напряжений добавьте директиву .dc. Комментарии (строки, начинающиеся с «*») документируют нетлист:
third example circuit v 1 0 r 1 0 5 * директива ".dc" говорит SPICE просканировать напряжение источника "v" * от 0 до 100 вольт шагом 5 вольт. .dc v 0 100 5 .print dc v(1) i(v) .end
Команда .print выдаёт табличные данные для каждого шага:
v i(v) 0.000E+00 0.000E+00 5.000E+00 -1.000E+00 1.000E+01 -2.000E+00 1.500E+01 -3.000E+00 2.000E+01 -4.000E+00 2.500E+01 -5.000E+00 3.000E+01 -6.000E+00 3.500E+01 -7.000E+00 4.000E+01 -8.000E+00 4.500E+01 -9.000E+00 5.000E+01 -1.000E+01 5.500E+01 -1.100E+01 6.000E+01 -1.200E+01 6.500E+01 -1.300E+01 7.000E+01 -1.400E+01 7.500E+01 -1.500E+01 8.000E+01 -1.600E+01 8.500E+01 -1.700E+01 9.000E+01 -1.800E+01 9.500E+01 -1.900E+01 1.000E+02 -2.000E+01
Замена .print на .plot генерирует простой текстовый график:
Legend: + = v#branch ------------------------------------------------------------------------ sweep v#branch-2.00e+01 -1.00e+01 0.00e+00 ----------------------|------------------------|------------------------| 0.000e+00 0.000e+00 . . + 5.000e+00 -1.000e+00 . . + 1.000e+01 -2.000e+00 . . + 1.500e+01 -3.000e+00 . . + 2.000e+01 -4.000e+00 . . + 2.500e+01 -5.000e+00 . . + 3.000e+01 -6.000e+00 . . + 3.500e+01 -7.000e+00 . . + 4.000e+01 -8.000e+00 . . + 4.500e+01 -9.000e+00 . . + 5.000e+01 -1.000e+01 . + . 5.500e+01 -1.100e+01 . + . 6.000e+01 -1.200e+01 . + . 6.500e+01 -1.300e+01 . + . 7.000e+01 -1.400e+01 . + . 7.500e+01 -1.500e+01 . + . 8.000e+01 -1.600e+01 . + . 8.500e+01 -1.700e+01 . + . 9.000e+01 -1.800e+01 . + . 9.500e+01 -1.900e+01 . + . 1.000e+02 -2.000e+01 + . . ----------------------|------------------------|------------------------| sweep v#branch-2.00e+01 -1.00e+01 0.00e+00
Интерпретация вывода SPICE с внешними инструментами
Графические программы вроде Nutmeg читают текстовый вывод SPICE и строят визуальные графики. Типичный график Nutmeg показывает линейный рост напряжения на резисторе (v(1)) с возрастанием напряжения источника.

Каким бы ни был ваш навык работы с SPICE, понимание чисел в его отчётах обязательно. Я буду продолжать комментировать вывод в следующих примерах, чтобы раскрыть полный потенциал инструмента.
СВЯЗАННЫЕ РАБОЧИЕ ЛИСТЫ:
- Рабочий лист по базовой электричеству
- Рабочий лист по базовому DC
- Рабочий лист по базовому сетевому анализу
- Рабочий лист по базовому AC
- Рабочий лист по базовым полупроводникам
- Рабочий лист по базовым аналоговым схемам
- Рабочий лист по базовым цифровым схемам
Промышленные технологии
- Начало работы с SPICE: текстовый симулятор электронных схем
- Основы программирования в SPICE: практическое руководство
- Синтаксис нетлистов SPICE: именование компонентов, пассивные и активные элементы, определение источников
- Продвинутые схемы управления двигателями: защёлкивание, стоп и задержка времени
- Проектирование четырехразрядного 7-сегментного дисплея с одним двоичным энкодером
- Комплементарный аудиоусилитель на NPN/PNP транзисторах — прямое включение для средней мощности
- Понимание мощности в электрических цепях: измерение и значение
- Влияние сопротивления на резонанс в последовательно-параллельных LC-цепях
- Мастерство проектирования электрических цепей: руководство для начинающих
- Гидравлические цепи: типы, функции и применение