Новый кандидат в релизы САПР Qucs-0.0.19S-RC6

4db83b0ffb894726173680d6e3206469.png

Qucs — это кроссплатформенный (Linux, Windows, MacOS-X) симулятор электронных схем с открытым кодом. О нём рассказывают мои предыдущие статьи на Хабре:

  • Qucs — open-source САПР для моделирования электронных схем habrahabr.ru/post/248005
  • Новости проекта Qucs: подготовка к релизу 0.0.19 habrahabr.ru/post/259193
  • Новости проекта Qucs: доступен кандидат в релизы с поддержкой моделирования схем в SPICE habrahabr.ru/post/263555

В настоящее время готовятся к релизу параллельно две версии Qucs:

  • Qucs — сборки с обычным набором функций. Используется только движок моделирования Qucsator
  • QucsS — сборка с возможностью использования SPICE (поддерживаеются движки Ngspice, XYCE, SpiceOpus) как движка моделирования по умолчанию. Данные сборки содержат букву «S» после номера версии. Для инженеров наибольший интерес представляет Ngspice

Пока очередной релиз Qucs вновь отложен на неопределённый срок, вышел кандидат в релизы Qucs-0.0.19S-RC6 с поддержкой SPICE. Этот релиз-кандидат значительно отличается от всех предыдущих. Скачать пакеты для двух платформ (Windows и Linux) можно здесь: github.com/ra3xdh/qucs/releases/tag/0.0.19S-rc6

Под катом будет рассказано о нововведения в данном релиз-кандидате.

Установка

Linux

Процедура установки для Linux не изменилась. Нужно собирать пакет из исходников. Требуются компиляторы и Qt4 для разработчиков. Нужно собрать отдельно Qucs и движок моделирования Qucsator:

tar xvfz qucs-0.0.19S-rc6.tar.gz
cd qucs-0.0.19S-rc6
cd qucs
./configure
make
make install
cd ../qucs-core 
./configure
make
make install

При этом всё поставится в /usr/local, и если туда уже установлена предыдущая версия Qucs, то она перезапишется. Чтобы установить QucsS в другой каталог, нужно изменить команду configure:

./configure --prefix=/some_qucs_location/

Если требуется только SPICE, то можно собрать только интерфейс Qucs:

tar xvfz qucs-0.0.19S-rc6.tar.gz
cd qucs-0.0.19S-rc6/qucs
./configure --prefix=/some-qucs-location/
make
make install

Ngspice следует установить при помощи пакетного менеджера. Он есть во всех современных дистрибутивах.

При первом запуске QucsS попросит указать симулятор по умолчанию.

Windows

Для Windows следует скачать бинарный инсталлятор. Совместно с QucsS рекомендуется использовать специальную сборку Ngspice, которую также можно скачать со страницы релиза. Сборка Ngspice, скачанная с официального сайта проект работать будет, но не позволяет писать логи, т.к. имеет неотключаемый GUI.

Обзор новых функций Qucs-0.0.19S-RC6

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

Установка симулятора по умолчанию

Изменилась процедура запуска моделирования при помощи SPICE-симулятора. Теперь можно назначить симулятор по умолчанию, который будет запускаться каждый раз, когда пользователь вызывает моделирование (например нажав F2). Использовать специальный пункт меню Simulate with SPICE теперь не нужно. Если выбран один из SPICE-движков, то для работы программы теперь не требуется движок Qucsator и полная установка.

Симулятор по умолчанию можно назначить либо при первом запуске программы, либо потом выбрав в главном меню Simulation→Select default simulator. Если выбран один из SPICE-движков, то несовместимые с ним компоненты и библиотеки не показываются. Диалог установки симулятора по умолчанию выглядит так:

864a318e2b6b40248bd927ffd2191f3b.png

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

Расчёт рабочей точки при помощи Ngspice

Реализован расчёт рабочей точки по постоянному току (по нажатию F8) для SPICE-движков. Теперь если симулятором по умолчанию назначен Ngspice, то он и будет рассчитывать рабочую точку. Результаты расчёта выглядят так:

af13cfbd6b2249c4a966dd85ed6ad82d.png

Новый набор аналоговых блоков XPSPICE

Компоненты XSPICE вынесены в специальную библиотеку Xanalogue. XSPICE позволяет использовать компоненты, моделирующие схему на уровне блоков. Новая библиотека содержит модели усилителей, сумматоров, перемножителей, делителей, интеграторов, ограничителей и т.п. Вот как они выглядят:

85b52d7b929c48a6a87a3d432ebeb174.png

SPICE-директивы .MODEL и .INCLUDE

В дополнении к имеющему набору SPICE-совместимых полупроводниковых компонентов добавлена возможность размещения на схеме директив .MODEL и .INCLUDE, что позволяет использовать в схеме немодифицированные библиотеки полупроводниковых компонентов. Директива .MODEL позволяет сослаться не библиотеку, а директива .MODEL — построчно скопировать SPICE-модель и внедрить её в схему. Схема смесителя на полевых транзисторах иллюстрирует использование этой директивы.

2e057447252c4613a2ce5705a111aa1a.png

Модели трансформаторов и сердечников

Добавлены компоненты, позволяющие моделировать трансформаторы и катушки с ферромагнитным сердечником. Имеется библиотека Transformers, содержащая трансформаторы и библиотека Cores с моделями сердечников (в основном стальные сердечники). Данный функционал доступен только через Ngspice. На рисунке показана схема лампового УНЧ (на лампе 6П6С), которая иллюстрирует использование новых библиотечных моделей трансформаторов и SPICE-моделей.

af48b4be76f34050876802301c402662.png

Создавать свои трансформаторы можно применяя комбинацию компонентов Icouple (обмотка) и Core (сердечник). Идеальные трансформаторы можно создать, используя компонент «K coupling»

a4729269701e406fa773132fc933cb21.png

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

Добавлены два компонента «SPICE generic device» и «XSPICE generic device». Они позволяют создавать новый нестандартный компонент, зная только число выводов и букву, которая ему назначена в SPICE. Это полезно если компонент уже добавлен в движок, а графический интерфейс запаздывает. Особенно это касается симулятора XYCE, где новые компоненты добавляются в каждом релизе. На прилагаемой схеме как нестандартный компонент объявлен обычный полевой транзистор. Модель полевого транзистора подключается при помощи директивы .MODEL.

89680ef6570446e48bdabd01ff504c74.png

Поддержка моделей XSPICE CodeModel

Добавлена поддержка языка описания моделей аналоговых компонентов XSPICE CodeModel (известен с 1991 года). Он позволяет создавать новые модели и подключать их к движку моделирования Ngspice без перекомпиляции. Подробнее о синтаксисе CodeModel моделей можно прочитать в мануале Ngspice и XSPICE. Подключить модель CodeModel можно используя комбинацию компонентов «XSPICE generic device» (УГО компонента) и «XSPICE CodeModel» (исходный текст модели). На схеме можно видеть пример использования таких моделей:

eaa6aca0fafa4f87b0e51f5504cc0084.png

Модель CodeModel состоит из пары файлов cfunc.mod (реализация модели) и ifspec.ifs (описание интерфейса). Вот так выглядит исходный текст (файл cfunc.mod) CodeModel модели усилителя:

void cm_gain(ARGS)  
    Mif_Complex_t ac_gain;

    if(ANALYSIS != MIF_AC) {
        OUTPUT(out) = PARAM(out_offset) + PARAM(gain) * 
                         ( INPUT(in) + PARAM(in_offset));
        PARTIAL(out,in) = PARAM(gain);
    } else {
        ac_gain.real = PARAM(gain);
        ac_gain.imag= 0.0;
        AC_GAIN(out,in) = ac_gain;
    }
}

Подключение немодифицированных библиотек со SPICE-моделями

Добавлен специальный компонент «SPICE Library device», который позволяет использовать SPICE-библиотеки без их модификации и слоёв совместимости. Можно использовать один из имеющихся шаблонов символов для компонента. Пока доступны только шаблоны для ОУ с 3 или 5 выводами. Достаточно указать путь к библиотеке, название компонента, шаблон символа и при необходимости параметры компонента. Схем иллюстрирует как можно таким образом подключить ОУ. Планируется автоматизировать данный процесс. В будущем SPICE библиотеки будут отображаться в менеджере библиотек вместе с нативными библиотеками Qucs, и компоненты из них будут доступны для вставки в схему. Также планируется добавить редактор библиотек и символов по аналогии с PCAD Library Executive.

ff3c27d82fc3475d80988e770faa51a3.png

Заключение

Как именно будет дальше развиваться проект QucsS — неизвестно. В настоящее время Qucs и QucsS достаточно сильно разошлись. Я рассматриваю различные варианты. Возможно Qucs и QucsS в этом году объединятся. Но не исключено и выделение QucsS в самостоятельный проект с другим названием уже в этом году.

© Habrahabr.ru