Qucs-S: руководство по видам моделирования, часть 1

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. О данной программе рассказывают мои предыдущие статьи. Для работы Qucs-S рекомендуется использовать также открытый движок моделирования Ngspice. Актуальным релизом Qucs-S на текущий момент является версия 2.1.0. В данной статье подробно рассматриваются виды моделирования, имеющиеся в Qucs-S. Начальное руководство по работе с программой можно найти здесь: https://habr.com/ru/articles/678526/

Расчёт рабочей точки (Operation point)

Расчёт рабочей точки по постоянному току позволяет рассчитать напряжение и ток в узлах и компонентах схемы в установившемся режиме при условии отсутствия входного сигнала переменного тока. Чтобы запустить расчёт рабочей точки, нужно в главном меню Qucs-S выбрать Simulation→ Calculate DC bias или нажать клавишу F8 на клавиатуре. Если схема собрана без ошибок, то рядом с узлами схемы программа покажет значение напряжения, а рядом с источниками — величину тока, протекающего через этот источник. В схему также можно включать вольтметры и амперметры.

Расчёт рабочей точки для биполярного транзистора, включённого по схеме с общим эмиттером

Расчёт рабочей точки для биполярного транзистора, включённого по схеме с общим эмиттером

На скриншоте показан пример моделирования рабочей точки простой схемки на биполярном транзисторе. В цепь коллектора и в цепь базы включены амперметры. Использована идеальная модель транзистора с коэффициентом передачи тока Bf=100. Из результатов моделирования видно, что ток коллектора примерно в Bf раз больше, чем ток базы.

Моделирование на постоянном токе (DC sweep)

Моделирование на постоянном токе (DC sweep) позволяет также рассчитать напряжение и ток в узлах и компонентах схемы в установившемся режиме при условии отсутствия входного сигнала переменного тока. Но при этом можно построить зависимость выходного сигнала от некоторого напряжения, тока или сопротивления. В числе возможных применений данного моделирования — построение вольт-амперных характеристик (ВАХ) полупроводниковых и электровакуумных приборов.

В качестве примера рассмотрим как промоделировать выходную ВАХ полевого транзистора. Как известно выходная ВАХ — это зависимость тока стока Ic транзистора от напряжения сток-исток Vси при постоянном напряжении смещении на затворе Vзи. Как правило в справочниках приводится семейство выходных ВАХ для различного напряжения на затворе. Чтобы провести моделирование, в Qucs-S собираем схему, содержащую транзистор, два источника, и виды моделирования.

Семейство выходных ВАХ полевого транзистора

Семейство выходных ВАХ полевого транзистора

Транзистор типа BSS123 возьмём из библиотеки. К стоку и затвору подключаем два источника постоянного напряжения V1 и V2, а в цепь стока ещё и амперметр (current probe), который будет измерять ток стока. На схеме размещаем три моделирования: DC analysis и два блока Parameter Sweep. Отдельного моделирования DC sweep в Qucs-S нет, поэтому используется комбинация из двух видов моделирования. Моделирование Parameter Sweep имеет первый параметр Sim, в котором нужно указать вид моделирования. В нашем случае указываем указываем DC1, как показано на схеме. В диалоге свойств моделирования его можно выбрать из списка. В качестве параметра для развёртки (Param) указываем имя источника. В нашем случае это V2, который включён в цепь стока. В отличие от старого Qucs здесь нужно указывать только имя источника или резистора, а не имя переменной. В свойствах Start и Stop следует указать дипазон, а в свойстве Points — число точек. В нашем случае напряжения на стоке изменяется от 0 до 15 В.

Второе моделирование Parameter Sweep нужно, чтобы получить семейство ВАХ. При этом во внутреннем цикле у нас изменяется напряжение сток-исток (источник V2), а во внешнем устанавливается напряжение на затворе (источник V1). Напряжение на затворе изменяется в пределах от 0 до 5 В. В семействе ВАХ будет 5 кривых (Points=4). После того, как параметры моделирования заданы, можно запускать моделирования, выбрав в главном меню Simulation→ Simulate. Затем размещаем на схеме декартовскую диаграмму, на которой строим переменную i (pr1), представлявщую ток через амперметр. В результате должно получиться семейство выходных ВАХ.

Моделирование переходного процесса (Transient analysis)

Моделирование переходного процесса применяется, чтобы получить виртуальную осциллограмму какого-либо напряжения или тока. Данный вид моделирования называется Transient Simulation. Рассмотрим небольшой пример. Собираем схему усилителя на одном биполярном транзисторе и построим осциллограммы напряжения на входе и на выходе. Должна получиться схема, показанная на скриншоте.

Усилительный каскад на биполярном транзисторе

Усилительный каскад на биполярном транзисторе

Транзистор типа 2N2222 можно найти в библиотеке компонентов (вкладка Library слева окна), введя его имя в строке поиска над древовидным списком библиотек. Усилитель питается от источника V1 напряжением 12В, ко входу подключен источник переменного напряжения амплитудой 100 мВ и частотой 2кГц. К выходу подключена нагрузка через разделительный конденсатор. Чтобы построить осциллограммы напряжения на входе и на выходе, соответствующие узлы на схеме нужно пометить. Для этого используем кнопку Wire Label на панели инструментов. На схеме размещаем моделирование «Transient simulation». По двойному щелчку на данном компоненте открывается диалог свойств моделирования, показанный на следующем скриншоте.

Настройки моделирования переходного процесса

Настройки моделирования переходного процесса

В данном окне можно задать начальное (Start) и конечное (Stop) время, а также количество точек расчёта. В нашем случае длительность моделирования 4 мс, рассчитать требуется 200 точек, шаг расчёта около 20 мкс. Запускаем моделирование, которое должно пройти без ошибок, а затем размещаем на схему декартовскую диаграмму (Cartesian), на которой строим сигналы v (in) и v (out). Видим, что усилитель усиливает входной сигнал.

Моделирование переходного процесса с начальными условиями

Начальные условия для моделирования переходного процесса обычно рассчитываются автоматически. Перед началом расчёта SPICE симулятор проводит моделирование рабочей точки (initial DC) по постоянному току и из его результатов подставляет начальные условия. Но иногда начальные условия нужно задавать вручную, например если в схеме имеются заряженные конденсаторы. Чтобы задать начальное напряжение на конденсаторах, нужно вписать значение в параметр «V», в диалоге свойств конденсатора как показано на скриншоте. Аналогичным способом для катушек индуктивности можно задать ток.

Задание начального напряжения на конденсаторе

Задание начального напряжения на конденсаторе

В диалоге свойств моделирования переходного процесса следует установить параметр «inittialDC=no». По умолчанию там стоит yes.

Настройки моделирования переходного процесса

Настройки моделирования переходного процесса

В качестве примера рассмотрим схему, в которой моделируется разряд конденсатора. Начальное напряжение на конденсаторе задано 10В, а автоматический расчёт начальных условий отключен. В результате на узле v (cap) получаем экпоненциальную форму напряжения. Постоянная времени RC цепи в данном случае 1 мс.

Моделирование процесса разряда конденсатора

Моделирование процесса разряда конденсатора

Моделирование на переменном токе (АС analysis)

Моделирование на переменном токе позволяет исследовать АЧХ и ФЧХ различных электронных схем. В качестве примера добавим моделирование частотных характеристик в схему усилителя на одном транзисторе из предыдущего раздела. Модифицируем схему так, как показано на скриншоте.

Схема с добавленным моделирование на переменном токе

Схема с добавленным моделирование на переменном токе

На схеме размещаем компонент «AC simulation». В свойствах данного типа моделирования можно указать начальную (Start) и конечную (Stop) частоты, а также тип развёртки. Доступна линейная и логарифмическая развёртка. Для логарифмической развёртки можно задать чисто точек моделирования на декаду. Остальные типы не поддерживаются Ngspice, и требуются для совместимости с движком Qucsator. Диалоговое окно свойств моделирования показано на скриншоте. В нашем случае проведём моделирование в диапазоне частот от 10Гц до 100кГц с логарифмической развёрткой.

Настройки моделирования на переменном токе

Настройки моделирования на переменном токе

Далее запускаем моделирование и строим график зависимости коэффициента усиления (переменная K) от частоты. Получается результат, показанный на скриншоте.

График АЧХ усилителя

График АЧХ усилителя

Моделирование S-параметров

Данный вид моделирования применяется главным образом для анализа высокочастотных схем. Более подробно моделирование S-параметров рассмотрено в моих предыдущих статьях, и поэтому здесь мы повторяться не будем. Только кратко упомянем, что для анализа ВЧ схем может применяться два движка моделирования.

  • Ngspice начиная с версии 37 поддерживает моделирование S-параметров. При помощи данного симулятора можно промоделировать схемы содержащие пассивные и активные компоненты. Моделирование S-параметров в Ngspice имеет некоторые ограничения. Так, отсутствуют модели микрополосковых линий (МПЛ) и поддерживается только двухпортовое моделирование. Подробнее о моделировании S-параметров при помощи Ngspice см. здесь: https://habr.com/ru/articles/735508/

  • Qucsator поддерживает моделирование МПЛ, волноводов и прочих цепей с распределёнными параметрами, но имеет очень плохую производительность и проблемы со сходимостью при моделировании во временной области. Сторонние SPICE-модели нужно конвертировать, так как Qucsator имеет другой формат списка цепей. Для моделирования схем общего назначения использовать Qucsator не рекомендуется. Для Linux Qucsator нужно компилировать из исходников https://github.com/qucs/qucsator, а для Windows можно взять из установочного пакета для Qucs версии 0.0.19.

Начиная с версии 2.0.0 Qucs-S поддерживает быстрое переключение движка моделирование через выпадающий список на панели инструментов. Перезапуск программы больше не требуется. Пути к симуляторам нужно сконфигурировать через меню Simulation→ Simulator settings. На скриншотах ниже приведены примеры моделирования в Ngspice и Qucsator.

Моделирование S-параметров для широкополосного усилителя высокой частоты. Движок моделирование Ngspice

Моделирование S-параметров для широкополосного усилителя высокой частоты. Движок моделирование Ngspice

Моделирование усилителя высокой частоты с микрополосковыми линиями (МПЛ). Движок моделирования Qucsator

Моделирование усилителя высокой частоты с микрополосковыми линиями (МПЛ). Движок моделирования Qucsator

Спектральный анализ (FFT)

Спектральный анализ позволяет промоделировать частотный состав сигналов. При этом выполняется быстрое преобразование Фурье и вычисляется непрерывный спектр. Симулятор действует аналогично анализатору спектра. Одно из применений спектрального анализа — оценка интермодуляционных искажений в усилителях. Соответствующую теорию можно прочитать здесь: https://eax.me/amplifier-measurements/ Для таких измерений на вход усилителя подаётся двухтональный сигнал и анализируется спектр выходного сигнала.

В качестве примера промоделируем интермодуляционный спектр усилителя широкополосного усилителя высокой частоты для КВ диапазона. Такая схема часто используется в радиолюбительских трансиверах. В Qucs-S собираем схему, показанную на скриншоте.

Моделирование спектра на выходе усилителя высокой частоты

Моделирование спектра на выходе усилителя высокой частоты

Транзистор 2N5109 берём из библиотеки компонентов. Трансформатор называется «Mutual inductance» и находится в группе с прочими пассивными компонентами. Данный компонент позволяет задать индуктивность первичной L1 и вторичной L2 обмоток, а также коэффициент связи K. На вход усилителя подключается два источника V4 и V2, которые имитируют двухтональный сигнал частотой 8 МГц с разносом частот 100 кГц. На схеме также размещаем вид моделирования «Spectrum analysis» и уравнение, которое переводит спектр в децибелы. Уравнение нужно привязать к виду моделирования FFT в первом параметре (Simulation).

На схеме размещено две диаграммы. Моделирование спектра в нашем случае осуществляется в полосе частот от 0 до 30 МГц. Поэтому на спектральной диаграмме нужно выделить участок вблизи частоты 8 МГц. Для этого построен верхний график, для которого применена ручная установка границ по осям. Видим, что спектр выходного напряжения v (out) состоит из множества интермодуляционных составляющих. По бокам от пиков полезного сигнала на частоте 8МГц и 8.1МГц можно видеть интермодуляционные продукты третьего порядка с частотами 7.9 МГц и 8.2 МГц. Определив амплитуду данных составляющих при помощи маркеров на графике, можно измерить параметр IP3, называемый точкой пересечения третьего порядка и важный для анализа динамического диапазона усилителей.

Рассмотрим параметры вида моделирования Spectrum Analysis. Диалоговое окно свойств моделирования показано на скриншоте.

Настройки спектрального анализа

Настройки спектрального анализа

Параметр BW позволяет установить полосу частот. В нашем случае до 30 МГц. Параметр dF это шаг частоты. Чем меньше шаг, тем выше точность моделирования. Но при малом шаге расчёт спектра существенно замедляется. В нашем случае шаг dF равен 1 кГц. Параметр Window позволяет установить вид оконной функции. В большинстве случаев следует оставить значение по умолчанию. Для Гауссовой оконной функции можно задать порядок (Order). В остальных случаях этот параметр не имеет эффекта

Чтобы рассчитать спектр, Ńgspice сначала выполняет моделирование переходного процесса. Затем при помощи преобразования Фурье сигнал переводится из частотной области во временную область. Переходный процесс при включении схемы может накладываться на спектр сигнала и искажать результаты. Поэтому бывает полезным сдвинуть начало моделирования, чтобы рассчитать спектр выходного сигнала для установившегося режима схема. Для этого служит параметр Tstart, которые следует подобрать. В нашем случае переходный процесс короткий и можно установить Tstart=0, что ускоряет моделирование, которое довольно медленное.

Фурье-анализ (Fourier)

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

В качестве примера промоделируем спектр гармонических искажений для усилителя на одном транзисторе. Модифицируем схему, как показано на скриншоте. Следует добавить компонент «Fourier simulation» и увеличить амплитуду синусоидального источника на входе до 500 мВ, чтобы искажения сигнала были лучше видны.

Моделирование спектра гармоник на выходе усилителя на одном транзистора при помощи Фурье-анализа

Моделирование спектра гармоник на выходе усилителя на одном транзистора при помощи Фурье-анализа

В результате моделирования получается дискретный спектр гармоник выходного сигнала. Для этого на график следует вывести переменную magnitude (v (out)). Чтобы график был более наглядным, в свойствах следует установить тип линии (Style) как «arrows», то есть стрелки параллельно вертикальной оси. На графике видим, что наиболее значительную амплитуду имеет вторая гармоника. Диалоговое окно свойств диаграммы со спектром показано на скриншоте.

Настройки спектральной диаграммы

Настройки спектральной диаграммы

Рассмотрим параметры Фурье-анализа. Данное моделирование на работает само по себе, а присоединяется к моделированию переходного процесса. Поэтому первым параметром Sim нужно вписать имя компонента моделирования переходного процесса. В нашем случае это TR1. Второй параметр numfreq это число гармоник в расчёте. В нашем случае там вписано число 10, то есть следует рассчитать амплитуду первых 10 гармоник. Параметр F0 это частота первой гармоники. В нашем случае она равна частоте источника V2, то есть 1 кГц. Параметр Vars это список сигналов, для которых рассчитывается спектр гармоник. Сигналы здесь записываются через пробел. В нашем случае мы рассчитываем спектр для сигналов v (out) и v (in), то есть напряжений в узлах схемы in и out.

Диалоговое окно свойств моделирования показано на скриншоте.

Настройки моделирования для Фурье-анализа

Настройки моделирования для Фурье-анализа

Для сравнения можно промоделировать спектр гармонических искажений для данной схемы при помощи преобразования Фурье FFT. Модифицированная схема с результатом моделирования показана на скриншоте. Спектр рассчитан в полосе частот 10 кГц с шагом 10Гц.

Сравнение результатов Фурье-анализа и FFT

Сравнение результатов Фурье-анализа и FFT

Заключение

В статье были рассмотрены не все виды моделирования, доступные в Qucs-S. Про параметрический анализ, нуль-полюсное моделирование, скриптовое моделирование и некоторые общие вопросы будет рассказано в следующей статье, иначе будет превышен объём. В заключении приведён список ресурсов по Qucs-S.

© Habrahabr.ru