Руководство по LTSpice (средний уровень)
LTSpice обладает рядом функций, которые могут быть использованы для тестирования ваших проектов, выходящего за рамки простых анализа переходных процессов и частотного анализа. Данная статья описывает несколько продвинутых функций LTSpice.
Изменение параметров: изменяющиеся значения компонентов с директивами SPICE
В первой статье об LTSpice одна из описанных функций показывала, как проходить через диапазон частот с помощью источника переменного напряжения. В некоторых случаях тестирования, однако, вы можете обнаружить, что вам необходима возможность быстро изменять не входной сигнал, а значение какого-либо компонента. Первая часть обзора покажет, как это сделать.
Одной из приятных особенностей LTSpice является то, что в ней содержится приличная библиотека моделей нескольких известных компонентов. Вы можете увидеть это, поместив на схему, например, NPN-транзистор, кликнув по нему правой кнопкой мыши и выбрав "Выбрать новый транзистор" (Pick New Transistor). Вы увидите список доступных для использования моделей. В этом примере мы будем использовать 2N3904:
![скриншот](/uploads/media/articles/0001/01/945478e0beae5e978600c29b502d6788dd4538dc.png)
После того, как вы поместили его на схему, вам необходимо построить схему усилителя с общим эмиттером как на скриншоте ниже:
![скриншот](/uploads/media/articles/0001/01/631a5ed82ed3b594cabb6de7468be1b5386f4227.png)
На этом этапе мы можем запустить моделирование, чтобы увидеть, что схема работает без изменения значений компонентов во время моделирования. Возможно, вы обратили внимание, что мой источник напряжения установлен в режим синусоиды "SINE". Кликните правой кнопкой мыши на источнике напряжения, нажмите "Дополнительно" (Advanced) и выберите функцию синус (SINE). Появившиеся поля достаточно просты для понимания, сейчас вам необходимо установить только напряжение смещения (DC offset), амплитуду (Amplitude) и частоту (Freq). Смещение 0 В, амплитуда 1 мВ, частота 1 кГц для синусоидального сигнала дадут что-то типа этого:
![скриншот](/uploads/media/articles/0001/01/ed691e66730b8b5cebca2fb928126b414d87f3d7.png)
Возможно, вам покажется полезной возможность растянуть график, кликнув на горизонтальной оси и уменьшив правый предел по оси времени, или можно уменьшить время останова; 100 мс было больше, чем необходимо. Анализ пиковых напряжений с помощью курсоров (возможно, вам понадобится увеличить масштаб) показал, что мы получили усиление примерно -1,8 раз:
![скриншот](/uploads/media/articles/0001/01/d1b7b3b7311232f60369441e62af5605f4055960.png)
Теперь давайте пройдемся по нескольким значениям резистора R1 и увидим, как изменится выходной сигнал. Это делается с помощью функционала директив SPICE. В правой части панели инструментов есть кнопка с надписью ".op". Нажмите на неё (либо на клавишу S), после чего вы увидите диалоговое окно, как на рисунке ниже. Я уже заполнил его значениями, где R – это компонент, который будет меняться:
![скриншот](/uploads/media/articles/0001/01/95bcb1a5c4a9acbe655c5f61974d06ab47457d8f.png)
Директива .step
будет выполнять анализ схемы для каждого значения компонента в списке и покажет нам полученные в результате графики на одном чертеже. Нажмите OK и поместите директиву на схему так же, как команду .tran
или .ac
. Пока мы не совсем готовы выполнить данное моделирование, так как LTSpice до сих пор не знает, к чему применить директиву .step
, и если вы запустите моделирование сейчас, то, возможно, получите такие же результаты, что и раньше. Измените значение R1 с "10k" на "{R}", чтобы назначить директиву. Вы можете сделать это до трех раз одновременно для одной схемы.
Продолжим. Запустите моделирование. На следующем рисунке изображены входной сигнал зеленым цветом и три значения выходного сигнала синим цветом. Если вы присвоите курсор к выходному сигналу и понажимаете на клавиши вверх/вниз, то сможете передвигаться между графиками и определять значения для каждого из них:
![скриншот](/uploads/media/articles/0001/01/a57623bbae3a7167938b3d20e405cde36ad09e53.png)
Из этого примера вы можете увидеть, что усиление нашего входного сигнала 10 мВ изменяется в диапазоне от менее чем -1,8 до -6.
Кусочно-линейная аппроксимация, импульсная и другие формы сигнала
Кусочно-линейная аппроксимация – это метод, с помощью которого вы создаете различные формы сигнала из прямых отрезков: вы задаете список напряжений в моменты времени в хронологическом порядке, чтобы создать форму сигнала, которую хотите использовать. Тем не менее, если вы нужен сигнал настоящей прямоугольной формы, лучшим выбором будет форма сигнала PULSE (только не используйте его для снятия частотных характеристик, он больше подходит для снятия временных характеристик). При использовании других форм сигнала, отличающихся от синусоиды SINE и качающейся частоты .ac, например, при использовании PULSE, вы можете столкнуться с проблемами с формой сигнала, если оставите пустыми поля времени фронта и спада (Trise и Tfall), для них подойдут небольшие значения. Ниже я установил директиву в значение PULSE(0 1 1ms 0.001m 0.001m 1ms 2ms)
и пропустил сигнал через делитель напряжения:
![скриншот](/uploads/media/articles/0001/01/0623ee038cdf72455eb2c1b023eeb20b8c95e9e9.png)
![скриншот](/uploads/media/articles/0001/01/ce4bddfdacce3fd40201f569e80df23269ec9cc3.png)
Ограничения и подводные камни
Как и любое другое программное обеспечение, у LTSpice есть ограничения в возможностях, которые следует иметь в виду при его использовании. Хотя это и не определяющий недостаток при доступности большого количества вариантов SPICE моделирования, вот пара моментов, которые стоит иметь в виду:
- в частности, модели операционных усилителей и транзисторов могут быть слишком чувствительны и работать не совсем так, как ожидалось. Их ограничения меняются в зависимости от конкретной модели и могут варьироваться от различий во входном шуме до проблем сходимости и времени моделирования (на старых машинах). Linear Technology много лет назад выпустила документацию, которая даст вам представление о возможных подводных камнях;
- с некоторыми проектами будет лучше просто отойти от моделирования и собрать реальную схему. Точная настройка моделирования может позволить вам получить лучшее представление для наихудшего сценария, но, конечно, не всегда покажет вам, как всё будет вести себя на самом деле. Преимущество LTSpice в том, как быстро вы можете настроить моделирование и получить обзор общей производительности и других важных деталей. LTSpice поможет вам с помощью некоторых приятных функций (например, добавление таких деталей, как паразитные емкости и сопротивления для отдельных компонентов), но LTSpice не способен моделировать ситуации, которые происходят при моделировании в лабораторных условиях. Я считаю, что, если это возможно, то лучше сравнить результаты моделирования с поведением схемы при использовании настоящих инструментов, потому что на определенном этапе добавление дополнительных компонентов и источников в вашу модель схемы для учета разных факторов будет менее надежным, чем увидеть, как это работает на самом деле. Как всегда, выбор за вами.
Дополнительные источники
Кроме двух статей, есть еще много информации и возможностей, которые предоставляет LTSpice, включая определения подсхем и моделей компонентов, экспорт списков соединений, математические функции и многое другое. Полный раздел документации доступен под пунктом "Help Topics" в меню "Help". Кроме того, есть много интересных недокументированных возможностей, для которых вы можете найти обзоры на LTwiki (целый сайт с множеством информации, если вам недостаточно справки LTSpice).