Симулятор электронных схем Qucs-S снова жив
Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux, Windows и FreeBSD), написан на С++ с использованием набора библиотек Qt и разрабатывается полностью в частном порядке (в отличие, например от KiCAD, который имеет спонсора в лице CERN). В феврале этого года проект восстал из мёртвых и вышел релиз 0.0.23. Главным новшеством версии 0.0.23 было то, что программа теперь портирована на Qt5, чем обеспечена собираемость на современных дистрибутивах Linux. Актуальным релизом на текущий момент является 0.0.24 https://github.com/ra3xdh/qucs_s/releases/tag/0.0.24, в котором добавлено несколько новых видов моделирования. Далее будут рассмотрены основные возможности программы и показано как в Qucs-S смоделировать схему.

История разработки
Qucs-S является форком проекта Qucs, который начали разрабатывать немцы Stefan Jahn и Michael Margraf в 2003 году. В настоящее время материнский проект практически неактивен и последний релиз был в 2017 году. Изначально Qucs поставлялся со своим собственным движком моделирования, нацеленным более на анализ ВЧ схем в частотной области. Этот движок имел серьёзные проблемы со сходимостью при моделировании во временной области и был несовместим со SPICE, что не позволяло напрямую применять модели электронных компонентов, распространяемые производителями.
В 2014 году я начал разработку набора патчей, который бы позволял подключать к Qucs в качестве движка открытый Ngspice. В итоге эта разработка привела к созданию форка Qucs-S (Qucs with SPICE). В 2017-2020 годах вышло три релиза Qucs-S, последние из которых были корректирующими, проект был скорее мёртв. В этом году я провёл ритуал некромантии, портировал Qucs-S на Qt5, и тем самым возвратил программу к жизни.
Про основы работы в Qucs и про Qucs-S рассказывают мои предыдущие статьи:
- Qucs — open-source САПР для моделирования электронных схем https://habr.com/ru/post/248005/
- Новый кандидат в релизы САПР Qucs-0.0.19S-RC6 https://habr.com/ru/post/302006/
Поддерживаемые движки моделирования
В настоящее время Qucs-S поддерживает четыре движка моделирования:
- Ngspice Это рекомендованный симулятор. Он совместим с большинством моделей, которые можно найти на разнообразных ресурсах. Сейчас проектом руководит Holger Vogt из университета Дуйсбург-Эссен.
- XYCE Это симулятор разработанный с нуля Сандийскими национальными лабораториями. Имеется возможность моделирования гармонического баланса (HB) и S-параметров.
- SpiceOpus
- Qucsator Это изначальный движок, применявшийся в Qucs. Имеет возможность моделированя S-параметров, но нестабилен во временной области.
Qucs-S поддерживает все виды моделирования реализованные в применяемом SPICE-движке, а именно моделирования во временной и частотной области, шумовой анализ, анализ нелинейных искажений, Фурье-анализ, моделирования гармонического баланса.
Установка
Для Linux имеются репозитории для Debian/Ubuntu, Fedora и OpenSUSE. Имеются также пакеты для Arch, которые можно установить через AUR, и порт для FreeBSD. Для нестандартных случаев можно собрать Qucs-S из исходников или воспользоваться AppImage. Поддержку своего дистрибутива Linux можно проверить здесь. Бинарные пакеты собираются автоматически при помощи OpenSUSE Build Service.
Сам Qucs-S не предоставляет движка моделирования. Рекомендуется использовать Ngspice, который для Debian/Ubuntu устанавливается по зависимостям, а в прочих случаях его нужно установить вручную.
Для Windows следует скачать zip-архив с portable версией Qucs-S со страницы релиза. Далее нужно распаковать архив и запустить файл qucs-s.exe из поддиректории bin. Ngspice следует скачать с официального сайта и установать в C:\Spice64, иначе не будут работать модели XSPICE. При первом запуске следует указать путь к файлу ngspice_con.exe в настройках программы. Последние версии Ngspice для Windows теперь поставляют два исполняемых файла ngspice.exe и ngspice_con.exe Для правильной работы Qucs-S нужен ngspice_con.exe, который может писать логи в консоль. Обычный ngspice.exe запускает графическое окно, и все текстовые сообщения остаются внутри этого окна.
Основы работы с программой
При первом запуске Qucs-S сообщит, что нужно выбрать движок моделирования и откроет диалоговое окно, показанное на скриншоте. В последствии настройки можно поменять в меню Simulation->Select default simulator. Под Linux Ngspice обычно расположен в /usr/bin/ngspice, а под Windows устанавливается по умолчанию в C:/Spice64/bin/ngspice_con.exe

После того как выбран симулятор, открывается окно редактора схемы. Теперь можно смоделировать какую-нибудь схему. Для примера соберём инвертирующий усилитель Нортона на операционном усилителе NE5532. Редактирование схемы в Qucs интуитивно понятно и те, кто работал с другими электрическими САПР, легко разберутся с редактором. Следует отметить несколько особенностей. Виды моделирования и диаграммы также являются компонентами и размещаются на схеме. Они находятся в группах Simulations и Diagrams и выбираются из панели компонентов в правой части окна, откуда их можно перетаскивать на поле схемы. Операционный усилитель является библиотечным компонентом и его следует взять со вкладки Libraries в правой части окна. Собираем схему и размещаем на ней виды моделирования. Требуется смоделировать переходный процесс (Transisent analysis) и АЧХ схемы (AC analysis) Должно получиться как показано на скриншоте. Вход и выход схемы нужно пометить при помощи Insert->Wire label.

Уравнение также является особым компонентом и вставляется через меню Insert→Equation или кнопкой на панели инструментов. Способ задания уравнений в Qucs-S отличается от того, что было в Qucs. Теперь в первом параметре нужно выбрать из списка к какому виду моделирования относится уравнение, так как для напряжений и токов используется нотация SPICE. Например v(out) это напряжение на узле out Диалоговое окно, открываемое при двойном клике по уравнению, показано на скриншоте. Данное уравнения рассчитывает коэффициент усиления схемы в децибелах.

После того, как схема собрана, выбираем в главном меню Simulation->Simulate или нажимаем на клавиатуре F2 и запускаем моделирование. Появляется окно в котором сообщается, что Ngspice промоделировал схему без ошибок.

Ознакомившись с отчётом симулятора, нажимаем Exit и переходим на страницу просмотра, где можно разместить диаграммы. Диаграммы также можно разместить и прямо на схеме как это сделано на КДПВ. Сигналы, которые нужно вывести на диаграмму можно выбрать в диалоговом окне свойств диаграммы. На следующих двух скриншотах показан диалог свойств диаграммы и окно просмотра с АЧХ и осциллограммами сигналов на входе и на выходе. Видно, что усилитель усиливает сигнал.


На диаграммах можно размещать маркеры, которые действуют аналогично курсорам на цифровом осциллографе. Начиная с версии Qucs-S 0.0.24 теперь можно задавать точную позицию маркера по оси X в диалоговом окне свойств. Например можно установить маркер точно на частоте 1 кГц на графике АЧХ.

Новые виды моделирования в Qucs-S
Ngspice начиная с версии 37, которая вышла в мае этого года, поддерживает моделирование S-параметров. В Qucs-S начиная с версии 0.0.24 также можно промоделировать S-параметры при помощи Ngspice и больше не требуется устанавливать и использовать для этой цели Qucsator. Пример схемы широкополосного усилителя высокой частоты для КВ трансивера показан на скриншоте.

До версии Qucs-S 0.0.24 требовалось прибегать к написанию скрипта постпроцессора Ngspice, чтобы выполнить анализ спектра (FFT). Начиная с версии 0.0.24 в приложении реализован специальный вид моделирования: анализ спектра (Spectrum ananlysis – FFT). Пример моделирования спектра на выходе диодного кольцевого смесителя показан на скриншоте. Параметрами данного моделирования являются полоса частот (BW), шаг по частоте (dF) и тип оконной функции.

Заключение
Симулятор Qucs-S восстал из мёртвых и теперь будет развиваться. В планах у меня синхронизировать релизы с новыми функциями, появляющимися в Ngspice. Например в Ngspice-38 разработчики планируют добавить поддержку цифровых компонентов, совместимых по синтаксису нетлиста и списка цепей с LTSpice. Как только они будут доступны в Ngspice, я добавлю их поддержку в Qucs-S. Также в следующем релизе планируются некоторые улучшения пользовательского интерфейса.
Помощь в разработке приветствуется. В профиле проекта на Гитхабе можно ознакомиться с багтрекером и планами дальнейшей разработки программы. Если планируете какое-то глобальное улучшение, то рекомендуется предварительно написать и изложить, что вы собираетесь делать. Также проекту можно помочь финансово через страницу на Boosty и тем самым тоже приблизить следующий релиз.
Ресурсы по Qucs-S
- Сайт проекта
- Сайт Ngspice
- Репозиторий исходных кодов
- Актуальный релиз
- Страница на Boosty, где можно поддержать проект финансово
- Видео-туториал на английском языке от Kasper Nielsen: https://www.youtube.com/watch?v=90RaVy38DB8
- Видео-туториал на русском языке от канала Deztronica: https://www.youtube.com/watch?v=2HyK5TZ3c2k
Быстрый старт в аналоговом моделировании¶
Qucs (произносится: kju:ks) — симулятор цепей с графическим пользовательским интерфейсом. Он способен выполнять различные виды моделирования (например, на постоянном токе, S-параметров и т.д.). Этот документ дает краткое описание того, как пользоваться Qucs.
При первом запуске Qucs создает папку ”.qucs” в Вашей домашней папке. Каждый файл сохраняется в этой папке или в одной из ее подпапок. После загрузки Qucs показывается главное окно, которое выглядит примерно как на рис.1. С правой стороны расположена рабочая область (6), в которой содержатся схемы, документы показа данных и т.д.. С помощью вкладок (5) над этой областью можно быстро переключиться на любой документ, открытый в данный момент. С левой стороны главного окна Qucs находится еще одна область (1), содержание которой зависит от состояния вкладок, расположенных над ней: “Проекты” (2), “Содержание” (3) и “Компоненты” (4). После запуска Qucs активируется вкладка “Проекты” (2). Так как Вы запустили программу в первый раз, эта область пустая, поскольку у Вас еще нет ни одного проекта. Нажмите кнопку “Создать” прямо над областью (1) и откроется диалоговое окно. Введите имя для Вашего первого проекта, например, “firstProject” и нажмите кнопку “Создать”. Qucs создает папку проекта в папке ~/.qucs, для этого примера “firstProject_prj”. Каждый файл, принадлежащий этому новому проекту, будет сохранен в этой папке. Новый проект немедленно открывается (это можно прочитать в заголовке окна) и вкладки переключаются на “Содержание” (3), где показывается содержание открытого в данный момент проекта. У Вас еще нет ни одного документа, поэтому нажмите кнопку сохранения на панели инструментов (или используйте главное меню: Файл->Сохранить) чтобы сохранить документ без названия, который заполняет рабочую область (6). После этого появится диалоговое окно для ввода имени нового документа. Введите “firstSchematic” и нажмите кнопку “Сохранить”.

Рис. 1 — Главное окно Qucs
Теперь нам нужно сделать простое моделирование на постоянном токе, то есть мы хотим проанализировать схему на рис. 1. Выберите вкладку “Компоненты” ( (4) на рис. 1). Там Вы увидите выпадающий список, в котором можно выбрать группу компонентов и, ниже, компоненты выбранной группы. Выберите “дискретные компоненты” и нажмите на первый символ: “Резистор”. Перемещая курсор мыши в рабочую область (6), Вы переносите рисунок обозначения резистора. Нажатие правой кнопки мыши вращает обозначение, нажатие левой кнопки мыши помещает компонент на схему. Повторите этот процесс для всех компонентов, показанных на рис. 1. Источник напряжения может быть найден в классе компонентов “источники”, обозначение заземления может быть взято из класса “дискретные компоненты” или с панели инструментов, требуемое моделирование определяется с помощью больших блоков моделирования, находящихся в классе компонентов “виды моделирования”. Чтобы изменить параметры второго резистора, сделайте двойное нажатие левой кнопки мыши на нем. Откроется диалоговое окно, где можно изменить сопротивление. Введите “100 Ohm” в поле редактирования справа и нажмите Enter.
Чтобы соединить компоненты, нажмите кнопку с проводником на панели инструментов (или воспользуйтесь главным меню: Вставка->Проводник). Переместите курсор на незанятый вывод (помеченный маленьким красным кружком). Нажатие кнопки мыши на нем начинает проводник. Теперь передвиньте курсор к конечной точке и снова нажите кнопку мыши. Теперь компоненты соединены. Если Вы хотите изменить направление изгиба проводника, нажмите правую кнопку мыши, прежде чем делать конечную точку. Вы можете также закончить проводник, не нажимая ни на свободный вывод, ни на проводник: просто сделайте двойное нажатие левой кнопки мыши.
Наконец, очень важно пометить узел, в котором Вы хотите, чтобы Qucs рассчитал напряжение. Нажмите на панели инструментов кнопку для метки проводника (или воспользуйтесь меню: Вставка->Метка проводника). Теперь нажмите кнопку мыши на выбранном проводнике. Откроется диалоговое окно и можно ввести имя узла. Напишите “divide” и нажмите кнопку “Ok”. Теперь схема должна выглядеть как на рис. 1.
Для запуска моделирования нажмите кнопку моделирования на панели инструментов (или используйте меню: Моделирование->Моделировать). Откроется окно и покажет продвижение процесса. После успешного завершения моделирования открывается документ показа данных. Обычно все это происходит так быстро, что Вы увидите лишь быстрое мелькание. Теперь Вам нужно поместить диаграмму, чтобы увидеть результаты моделирования. Слева находится класс компонентов “диаграммы”, который выбирается автоматически. Нажмите на “Табличная”, перейдите в рабочую область и поместите ее, нажав левую кнопку мыши. Открывается диалоговое окно, где можно выбрать, что следует показать в новой диаграмме. В левой области видно имя узла, которое Вы задали: “divide”. Сделайте двойное нажатие кнопки мыши на нем, и оно будет перенесено в правую область. Выйдите из диалога нажатием кнопки “Ok”. Теперь виден результат моделирования: 0.666667 вольт. Замечательно, похлопайте себя по плечу!
© Copyright 2014, Qucs Team (2014).
Qucs
Симулятор схем с удобным графическим интерфейсом, позволяющий конструировать и рассчитывать производительность электронных цепей и контуров различного уровня сложности.

Приложение Qucs (или Quite Universal Circuit Simulator) основано на открытом исходном коде и, подобно аналогичным редакторам, обладает всеми необходимыми для модификации схем средствами. Для удобства имеется поддержка «горячих клавиш» и выпадающие меню. При работе со сложными схемами предлагается использование подсхем, позволяющих отделить часть основной схемы в виде блоков. Кроме того, программное обеспечение имеет собственный текстовый редактор, приложения для расчета фильтров и согласованных цепей, калькуляторы линий и синтеза аттенюаторов. Присутствует возможность оформления чертежа путем добавления рамки и штампа. К схемам можно подключать пользовательские уравнения, причем в формулах могут быть использованы все доступные функции данного софта или их сочетания.
Qucs имеет обширную базу современных компонентов, разбитых на группы: дискретные (резисторы, конденсаторы и т.д.), нелинейные (в основном транзисторы и диоды), цифровые (базовые цифровые устройства и логические вентили) и некоторые другие (источники, измерители, линии передачи данных). Особыми группами представлены виды моделирования, рисунки и диаграммы. Каждый элемент имеет собственное диалоговое окно свойств, которое может быть подвергнуто редактированию. Если в библиотеке нет необходимого компонента, то его можно добавить туда при наличии SPICE-модели.

После запуска симуляции Qucs многократно пересчитывает созданную электрическую цепь. Длительность процесса моделирования зависит от мощности компьютера и сложности цепи. Предлагаются следующие виды моделирований (программа позволяет их комбинировать): на постоянном токе, переходного процесса, на переменном токе, S-параметров. Для исследования цифровых схем есть цифровое моделирование, а для того чтобы показать, как изменяются параметры цепи в результате изменения характеристик одного или нескольких элементов, предусмотрена функция «развертки параметров». Также имеется возможность выбирать вид полученных после симуляции данных, а именно табличную или декартовскую диаграммы, трехмерную или Смита, полярную или круговую. Диаграммы имеют свои собственные настраиваемые характеристики, которые зависят от применяемых видов моделирования. Для определения значений функций в определенные моменты времени в программе предусмотрен механизм маркеров.
Внешний вид главного окна ПО зависит от используемой операционной системы, однако отличия не существенны. Для каждого проекта программа создает множество отдельных файлов со схемами, данными и графиками, причем по умолчанию все они сохраняются в корневой папке симулятора. В программу встроен файловый конвертер, а окончательные или промежуточные результаты могут быть распечатаны на принтере. Программа поддерживает экспорт файлов на языке Verilog-A в код C++, имеется прямая связь с подцепями VHDL и символами Verilog-HDL. Последние версии софта используют интерфейс GNU Octave.
Авторами данного софта является команда программистов Qucs team. Данная САПР успешно применяется как отдельными пользователями (радиолюбителями, инженерами-схемотехниками, конструкторами электронных устройств), так и целыми учебными заведениями и организациями. Команда разработчиков софта предлагает всем желающим связаться с ними, дабы поддержать данный проект.
Хотя Qucs по возможностям и качеству ничем не уступает коммерческим аналогам, программа абсолютно бесплатная. Программа постоянно развивается, а благодаря открытому коду Qucs предоставляет опытным пользователям возможность полностью переделать ее под собственные нужды.
Софт имеет удобный справочный раздел, помогающий быстро освоиться и начать работу, а на сайте проекта содержатся дополнительные статьи, информационные документы и примеры.

Qucs поддерживает более двух десятков языков, в том числе и русский. Процесс русификации проходил при участии авторов данного софта.
Программное обеспечение работает на всех общеупотребительных платформах: Mac OS, Linux и Windows. Для операционной системы Windows поддерживаются версии XP, Vista, 7 и 8.
Распространение программы: бесплатная
compizomania

Qucs (Quite Universal Circuit Simulator) — универсальный симулятор электронных цепей, предназначенный для моделирования электронных цепей. Позволяет моделировать электронную аппаратуру в режиме малого и большого сигнала, а также шумовые характеристики. Цифровая аппаратура моделируется с использованием VHDL и/или Verilog.
Qucs включает в себя большую постоянно пополняемую библиотеку моделей электронных компонентов, поддерживает подцепи SPICE. Выгодно отличается от других симуляторов, таких как gEDA или PSpice, простотой работы оператора и интуитивно понятным пользовательским интерфейсом.

Графический интерфейс программы позволяет создавать схемы моделирования с поддержкой различных типов диаграмм.
Моделирование по постоянному току;
Моделирование по переменному току;
Гармонический баланс;
Цифровое моделирование;
Моделирование переходных процессов;
Моделирование S-параметров;
Развёртка по параметру;
Оптимизация.
QUCS предоставляет большое количество моделей транзисторов, включая FBH-HBT, HICUM L0 v1.12, HICUM L0 v1.2, HICUM L2 v2.1, HICUM L2 v2.22, HICUM L2 v2.23, MESFET (Curtice, Statz, TOM-1 and TOM-2), SGP (SPICE Gummel-Poon), MOSFET, JFET and EPFL-EKV MOSFET v2.6.
Установка Qucs в Ubuntu 14.10/14.04/12.04 и производные
Откройте терминал (Ctrl+Alt+T), скопируйте и выполните следующие команды:
sudo add-apt-repository -y ppa:qucs/qucs
sudo apt-get update
sudo apt-get install qucs
По окончании установки вы найдёте Qucs в программах Образование или поиском в меню.