Qucs‑S является программой с открытым исходным кодом для моделирования электронных схем. Qucs‑S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. Для работы Qucs рекомендуется использовать также открытый движок моделирования Ngspice. Первый релиз Qucs, на котором основан Qucs‑S, состоялся в 2003 году. В декабре этого года программе исполняется 20 лет. Актуальным релизом Qucs‑S на текущий момент является версия 2.1.0. Далее будет рассказано о функциях, добавленных в релизах, вышедших в этом году.

Тюнер элементов

Тюнер был добавлен в версии 2.1.0. Данный режим симуляции позволяет производить подстройку компонентов при помощи ползунков в специальном окне и сразу видеть результат на графиках. Тюнер в ряде случаев может быть удобнее, чем параметрический анализ. Чтобы запустить тюнер следует выбрать в главном меню Simulation→Tune или нажать кнопку на панели инструментов. Предварительно в схеме должны быть заданы симуляции. Если ни того, ни другого нет, то будет выдано предупреждение. Открывается пустое диалоговое окно. Затем требуется выбрать компоненты, которые нужно подстроить, щёлкнув по ним мышью. Можно также добавлять в диалог и свойства компонентов. Теперь в диалоговом окне появятся ползунки. Можно двигать их мышью и на графиках смотреть результат. Данный процесс иллюстрирует анимированный GIF. Схема представляет собой полосовой фильтр на любительский КВ диапазон 7 МГц.

Подстройка конденсаторов ДПФ при помощи тюнера
Подстройка конденсаторов ДПФ при помощи тюнера

Быстрое переключение движков моделирования

Особенностью Qucs‑S является то, что этот симулятор позволяет выбирать между несколькими движками моделирования. Движком по умолчанию начиная с версии 0.0.23 предлагается Ngspice, который лучше всего подходит для моделирования любых электронных схем. Всего в Qucs‑S доступно три движка моделирования:

Наибольший интерес из них представляет Qucsator, который был движком по умолчанию в старом Qucs. Он содержит расширенный набор компонентов для анализа СВЧ устройств, таких как модели волноводов и микрополосковых линий. Реализовать данные компоненты в SPICE проблематично. Но Qucsator имел проблемы с моделированием во временной области особенно при импульсных сигналов и не совместим со SPICE по синтаксису нетлиста, поэтому в Qucs‑S я от него отказался и перешёл на Ngspice по умолчанию. Но оказалось, что полностью списывать Qucsator в утиль пока рано.

К сожалению, разработчик, который сейчас занимается Qucsator, не развивает этот уникальный симулятор и не собирает бинарные пакеты. Для Linux придётся собирать Qucsator из исходников. От Qt он не зависит. Для Windows можно добыть Qucsator из версии Qucs-0.0.19. Если нужна последняя версия 0.0.20, то опять же придётся собирать из исходников.

В настоящее время имеются планы вернуть Qucsator в состав Qucs‑S в качестве особого движка моделирования для анализа ВЧ схем. Подробнее можно прочитать здесь: https://github.com/ra3xdh/qucsator_rf/issues/1

В Qucs‑S начиная с версии 2.0.0 можно переключаться между движками моделирования на ходу без перезагрузки программы. Для этого рядом с кнопкой запуска симуляции на панели инструментов добавлен выпадающий список, из которого можно выбрать симулятор. При этом компоненты на левой панели будут автоматически перезагружены, и остаются только совместимые с выбранный движком. Несовместимые компоненты также помечаются в самой схеме. Процесс иллюстрирует анимированный GIF:

Быстрое переключение между движками моделирования
Быстрое переключение между движками моделирования

Цифровое моделирование при помощи IcarusVerilog

Начиная с версии 1.1.0 Qucs‑S поддерживает два режима цифрового моделирования:

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

  • Моделирование чисто цифровой схемы при помощи IcarusVerilog https://sourceforge.net/projects/iverilog/ При этом аналоговые компоненты в схеме не допускаются.

Пример моделирования генератора на логических элементах с делителем частоты в аналоговом режиме показан на скриншоте.

Моделирование цифровых компонентов в аналоговом режиме
Моделирование цифровых компонентов в аналоговом режиме

Пример цифрового моделирования схемы с демультиплексором с движком Icarus Verilog показан ниже. Icarus Verilog должен быть установлен в системе и доступен через $PATH. Цифровое моделирование запускается автоматически, если на схему добавлен компонент Digital simulation.

Цифровое моделирование при помощи Icarus Verilog
Цифровое моделирование при помощи Icarus Verilog

Поддержка моделей Verilog-A при помощи компилятора OpenVAF

Verilog‑A — это язык описания аналоговых моделей. При этом возможно добавить в симулятор собственные модели компонентов без перекомпиляции всего симулятора. Чтобы использовать модели Verilog‑A нужна специальная программа‑компилятор, которая формирует двоичный подгужаемый модуль. Старый Qucs использовал для поддержки моделей Verilog‑A компилятор ADMS. В 2022 году был разработан новый компилятор OpenVAF https://openvaf.semimod.de/ , который совместим с Ngspice. Поддержка OpenVAF добавлена в Qucs‑S начиная с версии 1.0.1. Процедура добавления моделей Verilog‑A точно такая же, как и для старого Qucs. Путь к компилятору должен быть указана в настройках программы в диалоге File→Application Settings на вкладке Locations. Описание можно найти в данной презентации https://www.mos‑ak.org/venice_2014/publications/T_4_Brinson_MOS‑AK_Venice_2014.pdf На скриншоте можно видеть пример компонента, заданного в виде модели Verilog‑A:

Моделирование туннельного диода при помощи Ngspice и OpenVAF
Моделирование туннельного диода при помощи Ngspice и OpenVAF

Расширена библиотека компонентов

В недавних релизах добавлено много новых библиотек компонентов, в том числе с тиристорами и оптопарами. Добавлена библиотека BJT Extended с дополнительными моделями транзисторов. На скриншоте можно видеть пример моделирования тиристорного регулятора мощности с компонентами из новой библиотеки.

Модель симисторного регулятора мощности
Модель симисторного регулятора мощности

В релизе 0.0.24 добавлена библиотека Crystal, которая содержит модель кварцевого резонатора, которая специально адаптирована для моделирования радиолюбительских кварцевых фильтров. На скриншоте пример моделирования QER фильтра для КВ трансивера.

QER кварцевый фильтр
QER кварцевый фильтр

Новые системные компоненты

Добавлены новые системные компоненты. Наибольший интерес представляют катушки и конденсаторы с добротностью (INDQ и CAPQ), а также файловый компонент для файлов s2p. На скриншоте пример параметрического анализа зависимости коэффициента усиления реверсивного усилителя на 8 МГц от добротности катушки в резонансном контуре. Подобная схема используется для построения трактов ПЧ в радиолюбительских трансиверах.

Моделирование усилителя ПЧ с учётом добротности контура
Моделирование усилителя ПЧ с учётом добротности контура

Векторные иконки

В релизе 2.1.0 переделаны все иконки. Растровые иконки 22×22 больше не используются. Теперь для панелей инструментов используются вектроные SVG иконки, а иконки для компонентов генерируются автоматически. Данное новшество улучшает внешний вид программы на HiDPI мониторах. Примеры можно видеть на всех скриншотах в данной статье.

Инженерная нотация на диаграммах

Числа на всех диаграммах теперь можно переключить в инженерную нотацию (будет отображаться 1k вместо 1e3 или 2.1u вместо 2.1e-6). Данный настройки доступны в диалоге свойств диаграммы (выпадающий список Number notation).

Задание инженерной нотации чисел на диаграмме
Задание инженерной нотации чисел на диаграмме

Ресурсы по Qucs-S:

Предыдущие статьи по Qucs-S:

Комментарии (17)


  1. AlexAV1000
    05.12.2023 16:23
    +2

    Как оно, по сравнению с бесплатным теперь MicroCap?


    1. vv_kuznetsov Автор
      05.12.2023 16:23
      +7

      Бесплатный MicroCAP не просто так стал бесплатным. SpectrumSoft обанкротился, и программа стала abandonware. По этой причине из официального источника MicroCAP не скачать, так как у SpectrumSoft просрочен домен. MicroCAP к тому же только под Windows. В отличие от MicroCAP Qucs-S живое и кроссплатформенное. Моделирования S-параметров в MC нет и не будет, так как проект более не поддерживается. Моделирования МПЛ нет. Использовать в MicroCAP например модели от Google SkywaterPDK проблематично.


  1. aax
    05.12.2023 16:23

    Классно, что Qucs-S развивается. Еще в этой версии адекватно поддерживаются HiDPI дисплеи(что норма для разработчика РЭА).

    Из замеченных проблем: ngspice выше 36-й чаще всего не работает со spice моделями компонентов предоставляемых их разработчиками - симуляция завершается сообщением от ngspice "Note: No compatibility mode selected!"(в KiCAD 7-й версии для этого появилась дополнительная настройка для использования библиотек Pspice/LTspice).

    Из пожеланий: в свойствах графиков по умолчанию установить "инженерный режим". Люди имеющие дело с разработкой РЭА, на которых программа Qucs-S и ориентирована, в отличии например от чистых математиков, применяют расчеты с размерностями физических величин.

    Еще очень не хватает редактора символов для создания компонетов со сторонними билиотеками - использование голого компонента SpiceLibComp с выводами промаркированными внутренними обозначениями Net-листа spice-моделей от разработчиков компонетов, и/или всего нескольких типовых вариантов графического обозначения компонета в реальной работе малоприменимо, а делать дополнительную иерархическую подсхему, чтобы решить проблему адекватности условного графического обозначения компонентов со стронними spice-моделями - тот еще костыль.


    1. vv_kuznetsov Автор
      05.12.2023 16:23

      симуляция завершается сообщением от ngspice "Note: No compatibility mode selected!"

      Само по себе это сообщение не является ошибкой. Оно только извещает, что режим совместимости не выставлен. Определить, что данному компоненту требуется режим совместимости Ngspice не может. Проблема со схемой в чём-то ещё. Если используется самосборный Ngspice, то он может быть неправильно собран. Просьба написать багрепорт со схемой, которая работает в Ngspice-36 и не работает в Ngspice-37.

      Режим совместимости можно выставить при помощи spiceinit https://github.com/ra3xdh/qucs_s/issues/25

      в свойствах графиков по умолчанию установить "инженерный режим"

      Да, рассматриваю, чтобы переключить на engineering notation по дефолту со следующего релиза.

      Еще очень не хватает редактора символов для создания компонетов со сторонними билиотеками

      Этот функционал не доделан, хотя планы на расширение есть https://github.com/ra3xdh/qucs_s/issues/147 Сейчас рекомендуется вместо SpiceLibComp использовать SpiceFile и оборачивать его в подсхему. Для подсхемы редактор УГО вызывается по F9


      1. aax
        05.12.2023 16:23

        1). В до конца недели напишу багрепорт со схемой, которая работает в Ngspice-36 и не работает в Ngspice-40.

        2). "Compatibility mode Pspice/LTspice" для моделей от разработчиков элементной базы, в KiCAD 7-й версии задается, до симуляции, в параметрах моделирования KiCAD, а не детектируется внутри Ngspice.


      1. aax
        05.12.2023 16:23

        С редактором подсхемы все понятно, но для создания элемента костыльно, ибо есть так сказать обычные библиотечные элементы Qucs-S, а есть подсхемы. С точки зрения работы с программой это заметно разное, подсхему нужно добавлять в директорию проекта, а библиотечный компонент просто добавляется в библиотеку.


        1. vv_kuznetsov Автор
          05.12.2023 16:23
          +1

          Про то, как сделать свои библиотеки, скоро напишу статью. Может быть прояснит некоторые вопросы.


          1. aax
            05.12.2023 16:23
            +1

            Багрепорт отправил письмом на мейл с домашней странички программы, посмотрите. Первый раз мог попасть в спам.

            UPD: паранойя Гугла отклонила письмо с архивом(This message was blocked because its content presents a potential 552-5.7.0 security issue). По хорошему для багрепортов от не имющих гитхаб-аккунта нужна более надежная почта.


            1. vv_kuznetsov Автор
              05.12.2023 16:23

              Багрепорт отправил письмом на мейл

              Информация в чём было дело: использовался самосборный Ngspice и при сборке не была включена поддержка XSPICE расширений. Поэтому модели не работали. При сборке Ngspice вручную нужно задавать опцию --enable-xspice для configure

              для багрепортов от не имющих гитхаб-аккунта нужна более надежная почта

              Где бы такую найти. По-моему сейчас все бесплатные почтовые сервисы режут нестандартные вложения.


              1. aax
                05.12.2023 16:23

                Из российских бесплатных почтовых сервисов излишней паранойи пока не замечал за Рамблером.


  1. RV3EFE
    05.12.2023 16:23
    +1

    Вот это вообще классно. Тюнинга такого не хватало. Всё более становится похоже на ads!


    1. vv_kuznetsov Автор
      05.12.2023 16:23
      +1

      С ADS я раньше никогда не работал и особо не интересовался как он выглядит. Сейчас нашёл скриншоты и понял откуда разработчики оригинального Qucs взяли концепцию интерфейса.


  1. checkpoint
    05.12.2023 16:23
    +2

    Большое спасибо за Qucs-S. Радует, что в репозитории FreeBSD (в packages) всегда доступна самая свежая версия.


  1. quaer
    05.12.2023 16:23

    У вас есть оптимизация номиналов для получения указанных параметров схемы? Если нет, планируете ли делать? Алгоритмы интересуют :)


    1. vv_kuznetsov Автор
      05.12.2023 16:23

      Ngspice поддерживает ASCO https://asco.sourceforge.net/ , при помощи которого реализуется оптимизация. Со стороны Qucs-S нужно добавить оптимизацию в графический интерфейс. Пока интерфейс для связки Ngspice+ASCO не реализована. В будущем планирую сделать, но не могу сказать когда точно. Сейчас сделать оптимизацию можно только экспортировав нетлист и запустив ASCO из командной строки. Для Qucsator оптимизация должна работать, для этого имеется специальный вид моделирования.


      1. quaer
        05.12.2023 16:23

        А можете коротко рассказать, что может и каким образом ему скармливаются данные? Вот скажем есть схема фильтра, надо подогнать АЧХ, которая съехала из-за GBW ОУ или паразитиков. Или надо подогнать схему согласования импедансов имея s-параметры источника и нагрузки в заданном диапазоне.


        1. vv_kuznetsov Автор
          05.12.2023 16:23

          С ASCO надо самому разбираться. Пока использовать его не было необходимости. Знаю, что для него нужно сформировать нетлист особого вида, где указываются входные и выходные параметры для оптимизации. Далее оно выдаёт результат. Как работает алгоритм не могу точно сказать.