Как установить qucs на ubuntu

Обновлено: 06.07.2024

Хотел бы рассказать об опыте использования Linux'a в целом и Ubuntu в частности в учебном процессе технического вуза — Ивановская государственная текстильная академия для студентов направления подготовки — «Моделирование и исследование в организационно-технических системах».

Прежде чем начать, хотелось бы высказать слова благодарности всем работникам отдела, обеспечивающего работу сети академии и отдельно Косинову Ю.А. за поддержку и помощь. Перед началом также хотелось бы сказать что по каждому пункту можно написать десятки листов текста с подробными объяснениями причин, настройками, но это выходит далеко за рамки обзорной статьи.

Почему собственно Ubuntu?

Дистрибутив выбирался на основании ряда критерий. Одним из самых главных факторов являлось дружелюбие и распространенность дистрибутива (с Fedora был не очень удачный опыт циклических зависимостей rpm, но это было в ранних версиях 1 или 2). Большое количество программного обеспечения и простота его установки тоже сыграли немаловажную роль. Далее в этой статье пойдет в основном обзор этого самого программного обеспечения.

С гуманитариями проще

Опыт использования открытых систем в целом и Ubuntu в частности показывает, что проще пересадить «гуманитария» чем «технаря» (а с выходом 1С нативно работающей в linux'e еще проще). И в первое место в списке причин подобного казалось бы парадокса заключается в CAD- системах, именно CAD, поскольку с CAM/CAE дела обстоят лучше.

Что же такого у нас технарю надо?

Специальность с информационными технологиями связано косвенно — они не самоцель, а средство (хотя в новом образовательном стандарте их роль и расширена). Основные же задачи можно описать так: считать, чертить, писать. При этом под «чертить» подразумевается еще и моделирование. Исходя из этих трех задач и выбиралось прикладное программное обеспечение.

Посчитать

Традиционно в ВУЗ'ах используют Matlab/MatCad/Maple и т.д. В общем — у кого какие лицензии есть, то и используют. У нас есть лицензия на Matlab+Simulink+SimMechanics и традиционно именно его у нас и используют. В каких-то случаях — на «посчитать» используют какой нибудь язык программирования. С языками, понятное дело, в Ubuntu'e все хорошо, и на этом останавливаться не будем, сказав лишь что используем Python, PyQT/PyGTK, Numpy, matplotlib, Eclipse+Pydev… одним словом, все что с Python'ом связано (хотя для OpenCv используем C++, может Python для него не умеем готовить? — медленно получается).
А вот о альтернативе/дополнении к Matlab+Simulink+SimMechanics сказать отдельно стоит. Конечно мы можем установить версию для Linux'a (и скорее всего так и сделаем, чтобы не перегружаться по необходимости), но кое чего нам в Matlab'e все же не хватает, например, не куплен модуль symbolic. Поэтому для замены мы используем следующий комплект (в дополнении к Python и Numpy) — Scilab+Scios, Maxima, и весьма редко Octave. Maxima на мой взгляд на две головы лучше чем пакет symbolic в Matlab'e, поэтому её используем наиболее часто. Scilab/Octave способны заменить Matlab, а вот Scios в качестве замены Simulink достаточно страшен. Хотя стоит отметить что для программы за 0 р. 0 коп. он более чем приличен. А SimMechanics спросите вы? Замены пока нет, что в общем то логично, поскольку он решает весьма специфичные задачи.

Почертить и не только

Как уже было сказано CAD — основная причина сложности перехода. Традиционно во всем мире используют Autocad… дьявола, мы — нет. Дело тут не только в лицензии и деньгах (хотя и в них в первую очередь). Тот кто начинал чертить 2D/3D в Компасе — тот никогда на автокад не вернется, не сломав себе голову. Но кроме Компаса нами еще используется SolidWorks+CosmosWorks+FloWorks — это один крупный программный комплекс, способных покрыть большинство задач проектирования и моделирования. Сразу понятно, что про достойную открытую альтернативу можно забыть, просто посмотрев на цену за установку SolidWorks'a. Поскольку лицензия есть, производились попытки установки Компас 3D LT и SolidWorks'a под Wine. Компас установился и заработал сразу, SolidWorks — установиться отказался, поэтому начались поиски альтернативных решений. К сожалению эксперименты проводились больше года назад, и, например, зайдя при подготовке к написанию данного обзора на сайт Wine, я обнаружил что SolidWorks 2009 имеет золотой статус, а значит следует снова попробовать.
При выборе или обзоре CAD системы под Linux в большинстве случаев следует сперва увидеть результаты работы программы и лишь после этого посмотреть на интерфейс, если таковой конечно вообще имеется. Короткий список того, что посмотрели используем или планируем использовать:

Blender [1]— замечательнейшая вещь (тем более что можно писать модули на Python). В качестве замены 3DsMax он подходит идеально. Хочется также отметить что студенты создали на его игровом движке пару игр, а вот в качестве CAD — использовать его очень и очень сложно (рис.1).

Рис. 1 Blender
Qcad[2](и его клон — LibreCad (рис. 2)) — очень похож на Autocad, поэтому, как уже было сказано выше, не рассматривался в качестве основного инструмента для создания чертежей. Справедливости ради хочется отметить что не рассматривали DraftSightCad по той же самой причине.

Рис. 2 LibreCad
OpenCasCade [3]— в одном из журналов LinuxFormat'a описывалась эта очень мощная библиотека и построенные на его основе системы. С использованием OpenCasCade можно построить собственную CAD систему, но для нас эта задача неподъемная и бессмысленная. Лучше примкнуть к очень перспективному на мой взгляд проекту FreeCad [4](рис.3) построенному на основе OpenCasCade (Python внутри, и снова радуемся что выбрали правильный язык).

Рис. 3 FreeCad
BRL-CAD [5] — создание 3D моделей в терминале? Узнав об этом студенты испытывают шок, как такое может быть в 21-м веке? Однако у системы есть только один большой недостаток. И как ни странно это невозможность штатными средствами нанести размеры. А вот текстовое описание моделей имеет ряд преимуществ, таких например как скорости создания моделей, возможность использования системы контроля ревизий для создания резервных копий, совместной работы (рис.4).

Рис. 4 BRL-CAD
OpenScad [6]— очень похож на BRL-CAD идеологией, только поменьше попроще и поудобнее. Вся сила так-же в тексте. (рис. 5)

Рис. 5 OpenScad


Для расчетов можно использовать мощный дистрибутив CAE-Linux [7], теперь основывающийся на Ubuntu, просто загрузил и считай. Или использовать отдельно программное обеспечение, такое как например Salome [8] (рис.6) (являющееся наверное самой крупной и мощной составляющей CAE-Linux и использующий в качестве ядра уже известный OpenCasCade).

Рис. 6 Salome и CaeLinux (Ubuntu)

Электроника и микропроцессорная техника

Для обучения студентов основам микроконтроллеров нами были изготовлены всем известные отладочные платы Arduino. Для Ubuntu из коробки есть IDE для разработки и загрузки приложений, а также среда для разработки схем. Для разработки дополнительных модулей мы используем KiCad [9] (рис.7). В KiCad'e конечно есть слегка непривычные моменты для перебежчика из PiCad'a и не хватает всех возможностей Altium'a, но это отличная программа, мало чем уступающая аналогам. Для моделирования схем, хотя нам редко приходится это делать, используем Qucs [10] (рис. 8).

Рис. 7 KiCad

Рис. 8 Qucs

Пишите сударь

Вот с подготовкой текстов и отчетов проблем нет. Из коробки доступны OpenOffice/LibreOffice, которые ничем не уступают продукту фирмы Microsoft. Даже больше того в плане удобства автоматизации (автоматическая простановка нумерации рисунков, таблиц, формул) OpenOffice/LibreOffice значительно превосходят вышеупомянутый продукт. Нельзя также забывать и о LaTex'e, на который мы пытаемся постепенно мигрировать.

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


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 в программах Образование или поиском в меню.


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

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

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

Установка

Linux

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


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


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-движков, то несовместимые с ним компоненты и библиотеки не показываются. Диалог установки симулятора по умолчанию выглядит так:


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

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

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


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

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


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

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


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

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


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


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

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


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

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


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

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

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


Заключение

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

В настоящее время существует не так уж и много open-source САПР. Тем не менее, среди САПР для электроники (EDA) есть весьма достойные продукты. Этот пост будет посвящён моделировщику электронных схем с открытым исходным кодом Qucs. Qucs написан на С++ с использованием фреймворка Qt4. Qucs является кроссплатформенным и выпущен для ОС Linux, Windows и MacOS.

Разработку данной САПР начали в 2004 году немцы Michael Margraf и Stefan Jahn (в настоящее время не активны). Сейчас Qucs разрабатывается интернациональной командой, в которую вхожу и я. Руководителями проекта являются Frans Schreuder и Guilherme Torri. Под катом будет рассказано о ключевых возможностях нашего моделировщика схем, его преимуществах и недостатках по сравнению с аналогами.

Главное окно программы показано на скриншоте. Там смоделирован резонансный усилитель на полевом транзисторе и получены осциллограммы напряжения на входе и выходе и также АЧХ.


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

Формат схемного файла Qucs основан на XML и к нему поставляется документация. Поэтому схема Qucs может быть легко сгенерирована сторонними программами. Это позволяет создавать ПО для синтеза схем, которое является расширением Qucs. Проприетарное ПО как правило использует бинарные форматы.

Перечислим основные компоненты, имеющиеся в Qucs:

  1. Пассивные RCL-компоненты
  2. Диоды
  3. Биполярные транзисторы
  4. Полевые транзисторы (JFET, MOSFET, MESFET и СВЧ-транзисторы)
  5. Идеальные ОУ
  6. Коаксиальные и микрополосковые линии
  7. Библиотечные компоненты: транзисторы, диоды и микросхемы
  8. Файловые компоненты: подсхемы, spice-подсхемы, компоненты Verilog

Библиотека компонентов использует собственный формат, основанный на XML. Но можно импортировать существующие библиотеки компонентов, основанные на Spice (приводятся в даташитах на электронные компоненты).

  1. Моделирование рабочей точки на постоянном токе
  2. Моделирование в частотной области на переменном токе
  3. Моделирование переходного процесса во временной области
  4. Моделирование S-параметров
  5. Параметрический анализ

Результаты моделирования можно экспортировать в Octave/Matlab и выполнить там постобработку данных.

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

На скриншотах показан пример моделирования S-параметров широкополосного усилителя высокой частоты.



Итак, отличительной особенностью Qucs является возможность анализа комплексных частотных характеристик (КЧХ), построение графиков на комплексной плоскости и диаграмм Смита, анализ комплексных сопротивлений и S-параметров. Эти возможности отсутствуют в проприетарных системах MicroCAP и MultiSim, и здесь Qucs даже превосходит коммерческое ПО и позволяет получить недостижимые для симуляторов электронных схем, основанных на Spice результаты.

Недостатком Qucs является малое количество библиотечных компонентов. Но этот недостаток не является препятствием к использованию, так как Qucs совместим с форматом Spice в котором приводятся модели электронных компонентов в даташитах. Также моделировщик работает медленнее, чем аналогичные Spice-совместимые моделировщики (например MicroCAP (проприетарный) или Ngspice (open-source)).

В настоящее время мы работаем над возможностью предоставления пользователю выбора движка для моделирования схемы. Можно будет использовать встроенный движок Qucs, Ngspice (spice-совместимый консольный моделировщик, похожий на PSpice) или Xyce (моделировщик с поддержкой параллельных вычислений через OpenMPI )

Теперь рассмотрим перечень нововведений в недавнем релизе Qucs 0.0.18 перспективных направлений в разработке Qucs:

  1. Улучшена совместимость с Verilog
  2. Продолжается портирование интерфейса на Qt4
  3. Реализован список недавних открытых документов в главном меню.
  4. Реализован экспорт графиков, схем в растровые и векторные форматы: PNG, JPEG, PDF, EPS, SVG, PDF+LaTeX. Эта функция полезна при подготовке статей и отчётов, содержащих результаты моделирования
  5. Возможность открытия документа схемы из будущей версии программы.
  6. Исправлены баги, связанные с зависанием моделировщика при определённых условиях.
  7. Ведётся разработка системы синтеза активных фильтров для Qucs (ожидается в версии 0.0.19)
  8. Ведётся разработка сопряжения с прочими open-source движками для моделирования электронных схем (Ngspice, Xyce, Gnucap). В последующих версиях будет добавлена возможность выбора движка для моделирования схемы.

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

Читайте также: