Сейчас наш проект готовится к следующему релизу 0.0.19, который выйдет в ближайшие недели. Данная заметка содержит обзор наиболее ожидаемого за все
последние годы нововведения: поддержки моделирования схем Qucs в SPICE-совместимых стимуляторов.
Qucs использует ядро моделирования Qucsator, разработанное с нуля. Это ядро имеет много преимуществ (моделирование S-параметров, расширенный
постпроцесоор), но также имеет многочисленные баги, связанные с моделированием во временной области (Transient analysis). Эти баги в частности не позволяют моделировать в Qucs силовую электронику. Теперь в Qucs можно смоделировать, например такую схему:
Скачать пакеты для Linux и Windows с поддержкой Ngspice можно здесь:
http://ift.tt/1GQv2vZ
Буква «S» в номере релиза означает SPICE. По-видимому вместе с релизом 0.0.19 выйдет два набора пакетов: с индексом «S» и с обычной нумерацией, так как дальнейшая судьба spice4qucs неясна.
Документация для spice4qucs находится здесь: http://ift.tt/1GQv07e
Под катом будет кратко рассмотрено использование spice4qucs.
Предыстория
В течение примерно 10 месяцев я и Mike Brinson (London Metropolitan University) занимались разработкой подсистемы spice4qucs, которая позволяет моделировать схемы Qucs с использованием внешних консольных симуляторов Ngspice http://ift.tt/1GQv07e и Xyce xyce.sandia.gov. Наибольший интерес представляет Ngspice, который является лучшим open-source симулятором схем, но не имеет графического
интерфейса. С нашим набором патчей Qucs может служить интерфейсом для Ngspice.
Ход разработки можно отследить здесь:
Назначение spice4qucs
Spice4qucs представляет собой стройную систему костылей и подпорок набор
патчей, который позволяет подключать внешние SPICE-совместимые симуляторы к
Qucs. Исходный код находится в главном репозитории Qucs в ветке
rebase_spice4qucs: http://ift.tt/1IlDqVf Код
получился достаточно насыщенный костылями, так как использование нетлиста
отличного от SPICE в дефолтном симуляторе Qucs было изначально вредной идеей.
Это могло только породить костыли.
Итак, spice4qucs выполняет следующие функции:
- Преобразует схему Qucs в SPICE-netlist
- Запускает сторонний симулятор
- Преобразует вывод от симулятора в XML-формат данных Qucs
Примеры схем, которые могут быть смоделированы в SPICE находятся в каталоге
$QUCSDIR/share/qucs/doc/examples/ngspice Где $QUCSDIR — это корень установки
Qucs, например /usr или C:/Program Files/Qucs.
Установка
В дистрибутивы Linux данный пакет пока не входит, поэтому нужно всё откомпилировать вручную:
tar xvfz qucs-0.0.19-S1.tar.gz
cd qucs-0.0.19-S1
./configure --prefix=/path_to_install/
make -jчисло_процессоров
make install
Должен быть установлен Qt4 для разработчиков и GCC.
Рекомендуется использовать configure c ключом --prefix, чтобы не повредить системную установку Qucs, а поставить его куда-либо в отдельный каталог, напрмер в /opt. Вместо make install лучше использовать checkinstall, который соберёт пакет под ваш дистрибутив.
Установка для Windows проста. Нужно запустить инсталлятор, выбрать путь для установки и нажать Next->Next->Finish.
Также нужно установить Ngspice. В сборки он не входит и его нужно ставить отдельно. В Linux такой пакет уже есть и его можно установить при помощи пакетного менеджера, например:
apt-get install ngspice
Использование
Рассмотрим использование. Предполагается, что читатель уже раньше работал с Qucs и знает как моделировать в нём схемы. Наибольший интерес для практики представляет Ngspice. По использованию Xyce — читайте нашу документацию (ссылка до ката).
В качестве примера смоделируем колебательный контур. Посмотрим АЧХ в диапазоне частот от 1 до 10 Мгц (AC analysis) и отклик колебательного контура на синусоидальное воздействие частотой 7,5 МГц и амплитудой 0,6 В. (Transient analysis).
Сначала собираем следующую схему. Сохраняем схему как RCL.sch Эту схему можно промоделировать в Qucs, нажав Simulation->Simulate (F2) и убедиться, что всё работает.
Теперь смоделируем схему в Ngspice. Нажимаем Simulation->Simulate with Spice. Открывается диалоговое окно.
В раскрывающемся списке (1) можно выбрать симулятор. Выбираем Ngspice. Если симулятор установлен в нестандартном месте, то нужно задать путь к исполняемому файлу симулятора. Для этого следует нажать Settings и перейти в следующее диалоговое окно:
Этот шаг обязателен для Windows. Нужно указать в верхнем поле (Ngspice executable location) путь к файлу ngspice.exe. Для Linux как правило подходит путь по умолчанию. Теперь возвращаемся в предыдущий диалог и нажимаем Simulate. В диалоговом окне видим, что моделирование прошло успешно:
Также можно экспортировать схему в Spice-netlist, нажав копку Save Netlist. Вот так выглядит нетлист для нашей схемы:
* Qucs 0.0.19 /home/vvk/qucs/examples/ngspice/RCL.sch
V1 _net0 0 DC 0 SIN(0 0.6 7.5MEG 0 0) AC 0.6
VPr1 _net0 vIn DC 0 AC 0
L1 vIn _net1 10U
R1 0 vR 30
C1 _net1 vR 40P
.control
set filetype=ascii
AC LIN 1000 1MEG 10MEG
write RCL_ac.txt VPr1#branch v(vIn) v(vR)
destroy all
TRAN 4.97512e-09 1e-06 0
write RCL_tran.txt VPr1#branch v(vIn) v(vR)
destroy all
exit
.endc
.END
Нажимаем Exit, переходим на страницу просмотра и строим диаграмму. Размещаем декартовскую диаграмму. Открывается диалог свойств диаграммы.
В выпадающем списке (1) выбираем RCL, в выпадающем списке (2) выбираем Ngspice. Потом выбираем переменные, графики которых нужно построить (двойным щелчком мыши). Они переходят в список в правой части окна (показано стрелкой). Всё, моделирование завершено, получаем АЧХ (ток виртуального датчика тока — ac.i(pr1)) и осциллограммы напряжения (tran.v(vIn), tran.v(vR) ). Их нужно построить на разных графиках.
Обратите внимание, что имена узлов схемы имеют форму записи, принятую в SPICE. Префикс указывает тип моделирование (tran. или ac.) и симулятор (ngspice/).
Возможности
- Большинство комопонентов Qucs совместимо со SPICE. Поддерживаются подсхемы, библиотечные компоненты. О несовместимых компонентах во время моделирования выдаётся сообщение об ошибке: These components are SPICE-incompatible… Система уравнений (Equations) Qucs частично совместима со SPICE. Об ограничениях читать документацию.
- Добавлены виды моделирования совместимые со SPICE: .FOURIER, .NOISE и .DISTORTION Моделирование S-параметров не работает со spice4qucs.
- Spice4qucs позволяет моделировать схемы, недоступные дефолтному симулятору
Qucsator. Прежде всего это силовая электроника, ключевые схемы, схемы на полупроводниковых приборах, работающих с заходом в режим отсечки, и схемы с большим количеством компонентов. Например вот так можно смоделировать высококачественный усилитель звука на транзисторах: - Добавлено множество SPICE-совместимых компонентов и видов моделирования. Они расположены в группах: Spice components, Spice sections, и Spice simulations. Подробнее о них написано в документации. Все эти компоненты не будут работать с дефолтным симулятором Qucsator. Они реализуют задание параметров, начальных условий и команды построцессора в стиле Ngspice. Также добавлены модели полупроводниковых компонентов с полным описанием модели в формате SPICE. Это позволяет просто копировать модель из существующих библиотек, минуя конвертеры. Вот пример схемы с такой моделью:
- В библиотеки теперь разрешено включение SPICE-нетлиста. Он напрямую передаётся SPICE-совместимому симулятору, минуя конвертации. Пример такой библиотеки здесь: http://ift.tt/1gWK5PY
Дальнейшие перспективы
Дальнейшая судьба проекта spice4qucs неясна. Вместе с релизом 0.0.19 выйдет два комплекта пакетов — с поддержкой spice4qucs и без неё. Вопрос о включении данного набора патчей в upstream остаётся открытым.
В дальнейшем будут добавляться новые компоненты и виды моделирования, в частности цифроаналоговые модели. Можно будет назначать каждой схеме дефолтный симулятор: Ngpsice, Qucsator или Xyce и выполнять моделирование, используя системный диалог (F2).
Возможно осенью я начну параллельно разработку собственного открытого проекта, базирующегося на исходных кодах Qucs и spice4qucs и нацеленного на глубокую интеграцию со SPICE и моделирование аналоговой электроники. Дефолтный симулятор Qucsator будет выпилен и заменён на Ngspice и будет обеспечена совместимость с библиотекам SPICE, реализованы компоненты полностью совместимые со SPICE и т.п.
Мои предыдущие публикации по Qucs:
- Qucs — open-source САПР для моделирования электронных схем http://ift.tt/1gWK66c
- Новости проекта Qucs: подготовка к релизу 0.0.19 http://ift.tt/1gWK66e
- Мои методички по Qucs: http://ift.tt/1gWK66g (Начиная с л.р. №4 PDF+LaTeX, распространение запрещено! )
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий