Типичные подводные камни SPICE и как их избежать
«Мусор на входе — мусор на выходе». —Аноним
SPICE — надёжный движок симуляции, но у него есть несколько идиосинкразий, способных сбить с толку даже опытных пользователей. В этой статье мы сосредоточимся на тонких правилах формата файла и топологии схемы, которые SPICE требует соблюдать, а не на багах, дающих неверные результаты. Многие из этих особенностей были специфичны для SPICE 2g6, но могут проявляться и в новых релизах.
Правильное начало файла
Каждый нетлист SPICE должен начинаться с не-компонентной строки — обычно заголовка, комментария или пустой строки. Если первой строкой идёт карта компонента, SPICE остановится с сообщением «serious error», часто ошибочно атрибутируя проблему соединениям узлов. Простой перевод строки или комментарий достаточно для удовлетворения парсера.
Чистый конец файла
Последняя карта .end должна быть записана без символа конца строки. После ввода .end курсор должен остановиться сразу после «d» и не нажимайте [Enter]. Иначе SPICE выдаст ошибку «missing .end card», которая не влияет на симуляцию, но засоряет вывод.
Обязательный узел 0
Узел 0 — это эталонная земля для всех операторов напряжения. Любой валидный нетлист должен содержать узел 0; иначе SPICE не может разрешить шкалу напряжений. Например, DC-анализ выводит напряжения относительно узла 0:
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
Здесь узел 1 — 15 В выше земли, узел 2 — 0.6522 В выше земли.
Не оставляйте цепи разомкнутыми
Разомкнутые цепи — особенно разомкнутые источники напряжения — ломают способность SPICE найти путь тока. При подключении источника напряжения ко входу зависимого источника (например, модели операционного усилителя) вставьте резистор большого сопротивления (часто называемый rbogus), чтобы обеспечить минимальную нагрузку и держать симуляцию работоспособной.
Избегайте «неживых» контуров напряжения/индуктивностей
При DC-анализе SPICE считает индуктивности короткими замыканиями, а конденсаторы — разомкнутыми цепями. Следовательно, непрерывные контуры из индуктивностей или источников напряжения, а также последовательные конденсаторы без DC-пути вызывают сбой решателя. Типичные проблемные паттерны:
netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m
netlist v1 1 0 dc 12 l1 1 0 150m
netlist c1 5 6 33u c2 6 7 47u
Лечение: вставьте шунтирующий резистор малого сопротивления для индуктивностей и резистор большого сопротивления для конденсаторов. Например:
original netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m
fixed netlist rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m
Резисторы rbogus — по сути короткие замыкания (1 пОм), обеспечивающие, чтобы контур индуктивностей больше не выглядел для решателя как идеальное короткое замыкание. Для конденсаторов:
original netlist c1 5 6 33u c2 6 7 47u
fixed netlist c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12
Шунт 9 ТОм сохраняет DC-путь, не влияя на AC-поведение.
Измерение тока в SPICE
Вольтметрические зонды просты — достаточно указать два узла. Токовые зонды требуют ссылки на источник напряжения. Если в схеме нет такого источника, вставьте нулевой «фиктивный» источник для привязки измерения:
c1 4 7 22u vbogus 6 4 dc 0 .print ac i(vbogus)
AC-анализ всё равно применяется, поэтому нулевой источник не меняет симуляцию.
Заметьте, что SPICE назначает полярность тока opposite к обычному направлению для DC источника. В простой последовательной цепи:
example v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1) .end
SPICE сообщает –1 мА, потому что ток, вытекающий из отрицательного терминала v1, считается отрицательным. Переориентация нулевого источника может заставить положительное чтение, если нужно.
Советы по Фурье-анализу
При запуске Фурье-анализа (частотной области) всегда печатайте или строите целевую форму волны; иначе SPICE паузирует и прерывается после показа «initial transient solution». Для импульсных источников, генерирующих прямоугольные волны, задавайте реалистичные фронты нарастания и спада. Идеальная прямоугольная волна (мгновенные фронты) ошибочно вносит чётные гармоники в Фурье-преобразование SPICE.
Промышленные технологии
- Построение Real-Time Google-Style Autocomplete: архитектура, дизайн и лучшие практики
- Начало работы с SPICE: текстовый симулятор электронных схем
- Эволюция SPICE: от CANCER к современной симуляции схем
- Работа с интерфейсом командной строки в SPICE
- Синтаксис нетлистов SPICE: именование компонентов, пассивные и активные элементы, определение источников
- Детерминизм и отказоустойчивость: ключевые принципы проектирования промышленных сетей управления
- Полное руководство по моделированию полупроводниковых приборов в SPICE
- Разбор особенностей JFET: распространенные подводные камни и как их преодолеть
- Распространенные особенности IGFET и способы их смягчения
- Освоение моделирования электрических цепей в SPICE: практическое руководство для проектировщиков и студентов