Меню

Ltspice генератор прямоугольных импульсов

Руководство по LTSpice (средний уровень)

LTSpice обладает рядом функций, которые могут быть использованы для тестирования ваших проектов, выходящего за рамки простых анализа переходных процессов и частотного анализа. Данная статья описывает несколько продвинутых функций LTSpice.

Изменение параметров: изменяющиеся значения компонентов с директивами SPICE

В первой статье об LTSpice одна из описанных функций показывала, как проходить через диапазон частот с помощью источника переменного напряжения. В некоторых случаях тестирования, однако, вы можете обнаружить, что вам необходима возможность быстро изменять не входной сигнал, а значение какого-либо компонента. Первая часть обзора покажет, как это сделать.

Одной из приятных особенностей LTSpice является то, что в ней содержится приличная библиотека моделей нескольких известных компонентов. Вы можете увидеть это, поместив на схему, например, NPN-транзистор, кликнув по нему правой кнопкой мыши и выбрав » Выбрать новый транзистор » ( Pick New Transistor ). Вы увидите список доступных для использования моделей. В этом примере мы будем использовать 2N3904:

После того, как вы поместили его на схему, вам необходимо построить схему усилителя с общим эмиттером как на скриншоте ниже:

На этом этапе мы можем запустить моделирование, чтобы увидеть, что схема работает без изменения значений компонентов во время моделирования. Возможно, вы обратили внимание, что мой источник напряжения установлен в режим синусоиды » SINE «. Кликните правой кнопкой мыши на источнике напряжения, нажмите » Дополнительно » ( Advanced ) и выберите функцию синус ( SINE ). Появившиеся поля достаточно просты для понимания, сейчас вам необходимо установить только напряжение смещения ( DC offset ), амплитуду ( Amplitude ) и частоту ( Freq ). Смещение 0 В, амплитуда 1 мВ, частота 1 кГц для синусоидального сигнала дадут что-то типа этого:

Возможно, вам покажется полезной возможность растянуть график, кликнув на горизонтальной оси и уменьшив правый предел по оси времени, или можно уменьшить время останова; 100 мс было больше, чем необходимо. Анализ пиковых напряжений с помощью курсоров (возможно, вам понадобится увеличить масштаб) показал, что мы получили усиление примерно -1,8 раз:

Теперь давайте пройдемся по нескольким значениям резистора R1 и увидим, как изменится выходной сигнал. Это делается с помощью функционала директив SPICE. В правой части панели инструментов есть кнопка с надписью » .op «. Нажмите на неё (либо на клавишу S ), после чего вы увидите диалоговое окно, как на рисунке ниже. Я уже заполнил его значениями, где R – это компонент, который будет меняться:

Директива .step будет выполнять анализ схемы для каждого значения компонента в списке и покажет нам полученные в результате графики на одном чертеже. Нажмите OK и поместите директиву на схему так же, как команду .tran или .ac . Пока мы не совсем готовы выполнить данное моделирование, так как LTSpice до сих пор не знает, к чему применить директиву .step , и если вы запустите моделирование сейчас, то, возможно, получите такие же результаты, что и раньше. Измените значение R1 с » 10k » на » «, чтобы назначить директиву. Вы можете сделать это до трех раз одновременно для одной схемы.

Продолжим. Запустите моделирование. На следующем рисунке изображены входной сигнал зеленым цветом и три значения выходного сигнала синим цветом. Если вы присвоите курсор к выходному сигналу и понажимаете на клавиши вверх/вниз, то сможете передвигаться между графиками и определять значения для каждого из них:

Из этого примера вы можете увидеть, что усиление нашего входного сигнала 10 мВ изменяется в диапазоне от менее чем -1,8 до -6.

Кусочно-линейная аппроксимация, импульсная и другие формы сигнала

Кусочно-линейная аппроксимация – это метод, с помощью которого вы создаете различные формы сигнала из прямых отрезков: вы задаете список напряжений в моменты времени в хронологическом порядке, чтобы создать форму сигнала, которую хотите использовать. Тем не менее, если вы нужен сигнал настоящей прямоугольной формы, лучшим выбором будет форма сигнала PULSE (только не используйте его для снятия частотных характеристик, он больше подходит для снятия временных характеристик). При использовании других форм сигнала, отличающихся от синусоиды SINE и качающейся частоты .ac, например, при использовании PULSE, вы можете столкнуться с проблемами с формой сигнала, если оставите пустыми поля времени фронта и спада ( Trise и Tfall ), для них подойдут небольшие значения. Ниже я установил директиву в значение PULSE(0 1 1ms 0.001m 0.001m 1ms 2ms) и пропустил сигнал через делитель напряжения:

Ограничения и подводные камни

Как и любое другое программное обеспечение, у LTSpice есть ограничения в возможностях, которые следует иметь в виду при его использовании. Хотя это и не определяющий недостаток при доступности большого количества вариантов SPICE моделирования, вот пара моментов, которые стоит иметь в виду:

  • в частности, модели операционных усилителей и транзисторов могут быть слишком чувствительны и работать не совсем так, как ожидалось. Их ограничения меняются в зависимости от конкретной модели и могут варьироваться от различий во входном шуме до проблем сходимости и времени моделирования (на старых машинах). Linear Technology много лет назад выпустила документацию, которая даст вам представление о возможных подводных камнях;
  • с некоторыми проектами будет лучше просто отойти от моделирования и собрать реальную схему. Точная настройка моделирования может позволить вам получить лучшее представление для наихудшего сценария, но, конечно, не всегда покажет вам, как всё будет вести себя на самом деле. Преимущество LTSpice в том, как быстро вы можете настроить моделирование и получить обзор общей производительности и других важных деталей. LTSpice поможет вам с помощью некоторых приятных функций (например, добавление таких деталей, как паразитные емкости и сопротивления для отдельных компонентов), но LTSpice не способен моделировать ситуации, которые происходят при моделировании в лабораторных условиях. Я считаю, что, если это возможно, то лучше сравнить результаты моделирования с поведением схемы при использовании настоящих инструментов, потому что на определенном этапе добавление дополнительных компонентов и источников в вашу модель схемы для учета разных факторов будет менее надежным, чем увидеть, как это работает на самом деле. Как всегда, выбор за вами.

Дополнительные источники

Кроме двух статей, есть еще много информации и возможностей, которые предоставляет LTSpice, включая определения подсхем и моделей компонентов, экспорт списков соединений, математические функции и многое другое. Полный раздел документации доступен под пунктом «Help Topics» в меню «Help». Кроме того, есть много интересных недокументированных возможностей, для которых вы можете найти обзоры на LTwiki (целый сайт с множеством информации, если вам недостаточно справки LTSpice).

Источник

LTSpice — бесплатная среда проектирования

Средства моделирования позволяют проверить работоспособность и испытать схему прежде, чем будут заказаны элементы. Среда LTSpice —мощный и бесплатный инструмент, выполняющий все основные функции распространенных САПР.

Создание проектов уже невозможно без использования САПР, которая позволяет сократить время разработки и снизить расходы на перепроектирование. В этой статье мы рассмотрим среду моделирования LTSpice от Linear Technology, которая распространяется бесплатно и содержит все основные инструменты для построения и анализа схем.

Конечно, LTSpice имеет гораздо более скромные возможности, чем, например, OrCAD. Однако ее функционал позволяет протестировать разрабатываемую схему. В основе вычислительного ядра программы лежит симулятор Spice с некоторыми улучшениями, главным образом в части моделирования импульсных преобразователей.

Описание

Редактор схем (см. рис. 1) имеет простой и удобный интерфейс. Встроенная библиотека содержит два набора элементов: основной и расширенный. Есть возможность выбора стандарта графических обозначений (европейский или американский). Следует отметить, что в библиотеке содержатся продукты не только Linear Technology, но и других производителей. При необходимости можно создавать собственные элементы и добавлять их в основной набор.

Как и во всех САПР, в LTSpice есть возможность поворота и зеркального отображения элементов, чтобы сделать схему наглядной. С помощью соответствующих виртуальных щупов симулятор позволяет отобразить напряжение или ток в заданной точке схемы, рассеиваемую мощность на выбранном элементе и другие параметры. Результаты моделирования выводятся в виде графика в отдельном окне. Для удобства анализа поведения схемы предусмотрена возможность одновременного построения нескольких графиков и выполнения основных математических операций над ними, например, нахождения среднеквадратичного значения, сложения двух графиков, преобразования Фурье и т.д.

Примеры

В качестве простейшего примера анализа поведения схемы в среде LTSpice возьмем генератор прямоугольных импульсов, схема которого приведена на рисунке 2. В данной схеме использован операционный усилитель 741 из библиотеки, однако можно создать собственный.

На рисунке 3 показаны осциллограммы для трех точек: на обоих входах и выходе ОУ. Как и следовало ожидать из технических характеристик ОУ 741, выходной сигнал на 20% меньше напряжения питания. Скорость нарастания моделированного выходного сигнала составляет 0,2 В/мкс, что также согласуется с фактическими характеристиками усилителя. Напряжение на неинвертирующем входе (точка b) имеет прямоугольную форму с амплитудой, равной половине величины выходного сигнала.

Рис. 2. Электрическая схема генератора прямоугольных импульсов

Рассмотрим другой пример (см. рис. 4). Работа генератора полностью определяется номиналом резистора R2 в контуре обратной связи. Верхняя осциллограмма на рисунке 5 получена при величине R2 больше критического значения (около 17 кОм). Выходной сигнал имеет синусоидальную форму с экспоненциально затухающей амплитудой. Если сопротивление R2 меньше критического, амплитуда выходного сигнала схемы экспоненциально возрастает до максимальной величины выходного напряжения ОУ.

Рис. 3. Параметры сигнала на инвертирующем (а), неинвертирующем входе (b) и выходе усилителя (out)

Инструменты моделирования позволяют получить и другие характеристики схемы, например, зависимость какого-либо параметра от внешних условий или величины другого параметра. На рисунке 6 виден фазовый сдвиг между напряжениями в точке b и на выходе схемы.

Рис. 4. Электрическая схема генератора

Другие возможности

Кроме анализа переходных процессов LTSpice позволяет провести все остальные основные типы анализа: по постоянному и переменному току, параметрический, частотный анализ и т.д. Частотная характеристика контура ОС в схеме из рисунка 4 показана на рисунке 7. Средняя кривая показывает поведение схемы в случае, когда сопротивление R2 равно критическому значению.

Рис. 6. Зависимость выходного напряжения от напряжения в точке b

Мы рассмотрели работу простых схем, однако среда LTSpice позволяет моделировать работу сколь угодно сложных устройств, все зависит от мощности компьютера. Результаты компьютерного моделирования очень близки к результатам реальных испытаний. Однако не следует забывать об ограничениях, связанных с виртуальным тестированием. Работа реальной схемы может отличаться в силу множества факторов, которые сложно или невозможно предусмотреть при моделировании. К таким факторам относятся электромагнитные и высокочастотные помехи, шумы элементов схемы, разброс параметров и т.д.

1. Spanner G. Simulation Beats Trial and Error//Elektor №9, 2010.

Источник

Записки программиста

Симуляция электрических цепей в LTspice

В предыдущих статьях нам уже доводилось использовать симуляторы электрических цепей. Например, в посте Паяем генератор Клаппа с частотой 11 МГц использовались симуляторы CircuitJS и Qucs, а в заметке Продвинутые аналоговые фильтры: теория и практика был использован симулятор, встроенный в KiCad. Теперь же мы познакомимся с симулятором под названием LTspice.

Но зачем?

LTspice — это бесплатный симулятор, созданный и поддерживаемый компанией Linear Technology, которая сейчас принадлежит Analog Devices. Доступны пакеты для Windows и MacOS. Под Linux симулятор может быть запущен в Wine. LTspice пользуется большой популярностью среди любителей электроники. Программа проста в использовании, дает правдоподобные результаты, распространяется бесплатно и появилась на свет раньше других, в 1999 году. Для сравнения, первый релиз Qucs датирован 2003-им годом, CircuitJS развивается с 2015-го, а в KiCad симулятор появился лишь в версии 5.0, в 2018-ом году.

Научиться пользоваться LTspice в любом случае будет неплохой идеей. Рано или поздно вам попадутся схемы для LTspice, которые потребуется как-то открыть. При обсуждении проблемы со схемой, которая работает не так, как вам хочется, в чат или на форум лучше скинуть схему в LTspice, чтобы ее было проще открыть другим людям. Наконец, если вы хотите от симулятора чего-то необычного, шансы решить проблему при помощи LTspice возрастают за счет большого сообщества пользователей.

Давайте же попробуем решить с помощью LTspice несколько типичных задач. При этом я намерен как можно меньше писать про то, куда и в каком порядке нужно кликать. Во-первых, читать такое не очень интересно, а во-вторых, интерфейс у LTspice довольно прост. Заинтересованным читателям предлагается изучить его самостоятельно.

Примечание: Описанное ниже можно сделать и в KiCad. Однако в KiCad 5.1.6, который на момент написания статьи являлся последней версией, интерфейс, касающийся симуляции, нуждался в сильной доработке. К тому же, в KiCad все еще отсутствовало много важных функций, то же построение спектра сигнала.

Симуляция генераторов

Вообще, на идею для поста меня навел один из читателей блога, Сергей Толстенко. Сергей прислал письмо с результатами симуляции в LTspice генератора из поста Генератор Клаппа на основе кварцевого резонатора. Получилось очень похоже на то, что показал осциллограф. Давайте попробуем повторить этот эксперимент.

Открываем LTspice и вбиваем в него схему генератора:

Как вбить схему, я предлагаю вам выяснить самостоятельно. Отдельно остановлюсь лишь на кварцевом резонаторе, обозначенном на схеме, как C4. Я долго не мог найти кварцевые резонаторы среди доступных компонентов. Оказалось, что искать нужно по слову «xtal». В свойствах компонента указываем следующие параметры:

Забавно, что компонент считается конденсатором, ну да ладно. Использованные здесь параметры соответствуют кварцевому резонатору на 5 МГц. Откуда я их взял? Оказывается, что LTspice симулирует кварцевые резонаторы, как эквивалентную электрическую схему из последовательной цепочки Rs-Ls-Cs и параллельного конденсатора Cp. Связь их номиналов с частотой кварца определяется известным формулам, поэтому кварц на требуемую частоту несложно сгенерировать. Делал я это, разумеется, не руками, а с помощью небольшого скрипта на Python:

import sys
from math import pi , sqrt

if len ( sys . argv ) 2 :
print ( «Usage: » + sys . argv [ 0 ] + » frequency[hz]» )
sys . exit ( 1 )

Q = 7000 # no less than 5000
Cp = 4 / 1000 / 1000 / 1000 / 1000 # max — 10 pF
Cs = Cp/ 100 # Cs >> Cp
freq = int ( sys . argv [ 1 ] )

# series resonant frequency
# Fs = 1/(2*pi*sqrt(Ls*Cs))
Ls = pow ( 1 / ( 2 *pi*freq ) , 2 ) /Cs
# parallel resonant frequency
Fp = 1 / ( 2 *pi*sqrt ( ( Ls*Cs*Cp ) / ( Cs+Cp ) ) )
Rs = ( 2 *pi*freq*Ls ) /Q

print ( «Cp = <:.4f>pF» . format ( Cp* 1000 * 1000 * 1000 * 1000 ) )
print ( «Cs = <:.4f>pF» . format ( Cs* 1000 * 1000 * 1000 * 1000 ) )
print ( «Ls = <:.4f>mH» . format ( Ls* 1000 ) )
print ( «Rs = <:.4f>Ohm» . format ( Rs ) )
print ( «Fp = <:.4f>» . format ( Fp ) )

Cp часто указывается в даташитах на кварцы, и обычно не превосходит 10 пФ. Единственное требование к Cs заключается в том, что он должен быть во много раз меньше Cp. Далее, из требуемой частоты последовательного резонанса и Cs вычисляем Ls. Rs вычисляется из Ls, частоты, а также добротности Q. Про добротность мы знаем, что у кварцевых резонаторов она очень большая, никак не меньше 5000, а вообще может достигать нескольких миллионов. Частота параллельного резонанса выводится просто для информации. В кварцевых резонаторах частоты последовательного и параллельного резонанса всегда очень близки.

Итак, если мы хотим кварц на 5 МГц, то говорим:

… и вот они параметры, которые я использовал на предыдущем скриншоте.

Дополнение: Более реалистичное значение добротности для современных кварцев составляет порядка 100 000. Подробности см здесь и здесь.

Запустим симуляцию, нажав на иконку бегущего человечка. Появится новое окно, на котором пока ничего нет. Дождитесь, пока симуляция завершится. Процесс отображается в главном окне программы. В главном окне кликните на провод, идущий к базе транзистора Q1. Курсор мыши при этом будет напоминать щуп осциллографа. Это означает, что вы хотите увидеть, как меняется напряжение в этой точке. Если же вас интересует ток, зажмите Shift или Control. Курсор мыши при этом меняется на токовые клещи. Нас интересует напряжение.

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

Удерживая левую кнопку мыши, можно измерить интервал между двумя пиками, а также частоту. Как можно видеть по скриншоту, частота оказалась очень близка к 5 МГц, как и ожидалось. Размах сигнала при этом составляет 1.2 В, что очень близко к 1.6 В, которые ранее нам показал осциллограф. Можно заметить, что сигнал заметно искажен по сравнению с идеальной синусоидой. Точь-в-точь как на осциллографе!

Кроме того, видим, что на базе транзистора имеется постоянная составляющая напряжения. Именно из-за нее в прошлый раз сигнал с генератора мы снимали через конденсатор на 100 пФ.

Также LTspice может показать спектр сигнала:

Картинку можно построить, нажав правой кнопкой мыши по предыдущему графику и выбрав View → FFT. В появившимся диалоге я использовал галочку Use current zoom extent, а также выбрал оконную функцию Hamming. Видим не только, что генератор выдает сигнал с частотой 5 МГц, но также и все гармоники.

Симуляция фильтров

В качестве еще одной задачи рассмотрим симуляцию фильтров. Воспользуемся скриптом filtergen.py из заметки Продвинутые аналоговые фильтры: теория и практика и сгенерируем полосно-пропускающий фильтр Баттерворта 3-го порядка на радиолюбительский диапазон 40 метров, то есть, интервал частот 7.0-7.2 МГц:

$ ./filtergen.py -f1 6900000 -f2 7300000 -p 3 -t band-pass

Band-pass narrow-band filter:

C1 = 7.96 nF, in parallel with 63.19 nH
C3 = 7.96 nF, in parallel with 63.19 nH
L2 = 39.79 uH, in series with 12.64 pF

Поскольку фильтр узкополосный, я решил подстраховаться, и указал полосу пошире. В противном случае аттенюация в интересующем интервале частот может оказаться слишком большой.

Вобьем фильтр в LTspice аналогично тому, как раньше мы это делали в KiCad:

Запускаем симуляцию, щупом жмем на выходе фильтра, и в результате видим как АЧХ, так и ФЧХ фильтра:

Оба графика сдвинуты на 6 dB вниз, точно так же, как это было в KiCad. Это ожидаемое поведение, и оно ранее объяснялось в заметке Продвинутые аналоговые фильтры: теория и практика. Можно считать, что -6 dB — это на самом деле 0 dB. Заинтересованным читателям предлагается приблизить АЧХ в LTspice и проверить, что фильтр действительно пропускает те частоты, какие мы хотели.

Дополнение: Забыл сказать, что при помощи LTspice можно оценить входной или выходной импеданс цепи. Это ни что иное, как отношение напряжения к току, при условии, что ток и напряжение находятся в фазе. А зная импеданс, несложно посчитать КСВ. В качестве домашнего задания предлагаю вам определить входной и выходной импеданс фильтра в зависимости от частоты. В качестве упражнения со звездочкой ответьте на вопрос, какой выходной импеданс имеет генератор.

Заключение

LTspice оказался довольно прост в использовании. Освоить его можно буквально за час, а любые непонятные моменты решаются при помощи поисковых систем. Некоторые особенности интерфейса требуют привыкания. Например, довольно неочевидно, что для поворота компонента нужно начать его перемещать и в режиме перемещения нажать Control+R. Но в остальном программа очень приятная.

Если вам хочется узнать больше об LTspice, могу порекомендовать плейлист LTspice tutorial на YouTube-канале FesZ Electronics. Из видео вы узнаете, что в LTspice можно анализировать работу цепи при разной температуре компонентов, импортировать и экспортировать .wav файлы, выполнять моделирование методом Монте-Карло, симулировать шум, и многое другое. Больше всего мне понравилось видео о том, как проверить модель компонента на соответствие даташиту. Примите во внимание, что автор используют версию программы для Windows, и ее интерфейс немного отличается от версии для MacOS.

Fun fact! Версия LTspice для Windows может быть запущена под MacOS в CrossOver. Чтобы Windows-шрифты выглядели на Retina-дисплее более приятно, нужно найти раздел Wine Configuration и во вкладке Graphics увеличить Screen resolution. Я нахожу значение 120 dpi достаточно комфортным для глаз.

Файлы всех приведенных выше схем для LTspice вы найдете в этом архиве. А пользуетесь ли вы LTspice или, быть может, предпочитаете какой-то другой симулятор?

Источник

Adblock
detector
Рис. 7. Частотная характеристика контура ОС