All streams
Search
Write a publication
Pull to refresh
127
12.2
Вадим Кузнецов @vv_kuznetsov

User

Send message

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

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

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

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

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

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

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

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

симуляция завершается сообщением от 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

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

Этим микросхемам EEPROM уже сто лет в обед. По ним всё 1000 раз жёвано-пережёвано. Имеются даже готовые библиотеки под любой МК. В чём был смысл делать про это статью в 2023 году?

К этому примеру идёт пользовательская библиотека, которая находится в том же каталоге. Нужно указать пути к библиотечным компонентам, и всё откроется правильно.

Также мануалы по Qucs не подходят для Qucs-S. Правильный туториал здесь: https://ra3xdh.github.io/pdf/qucs_s_tutorial.pdf Или см. мою предыдущую статью на Хабре.

Какие именно примеры не работают? Недавно все примеры были перепроверены и обновлены. Там они рассортированы по каталогам. То, что находится в подкаталоге ngspice, работает с Ngspice. Остальное для других движков. Также, чтобы работало моделирование S-параметров требуется Ngspice >= 37.

Старый Qucs сейчас скорее мёртв. Последняя версия вышла в 2017 году, потом разработчик взялся за глубокий рефакторинг проекта, и в итоге всё заглохло. Оно до сих пор на Qt4, который EOL в 2015 году.

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

Про QucsStudio я знаю, но это проект с закрытыми исходниками. Один из основателей Qucs Michael Margraf по непонятной причине ушёл из проекта и начал пилить QucsStudio, закрыв исходники, что нарушает лицензию GPL, которая запрещает создавать производные продукты с закрытыми исходниками. В плане поддержки СВЧ компонентов кое-что ушло вперёд. Минус QucsStudio, то что оно только под Windows, хотя всё написано с применением кроссплатформенных тулкитов (Qt) и собирается MinGW. По непонятным причинам версия под Linux не выпускается. QucsStudio использует симулятор Qucsator, к которому не подходят SPICE модели без конвертации. Также там до сих пор Qt4. Ещё паковать KiCAD (версии 2008 года) и Octave (версии 3.6) в бинарный пакет QucsStudio по-моему спорная идея. Цифры в версии 4.3.1 здесь означают только то, что они отказались от нумерации версий 0.0.x раньше, чем Qucs-S.

Полевые транзисторы там КП307. BF245 и J310 тоже будут работать.

Если, увеличивать Rf до 4.7 кОм, то коэффициент усиления на симуляции увеличивается примерно до 15-20. В своё время пробовал проделывать это с данной схемой на макете и при большом усилении получил возбуд.

Из документации Ngspice? И также в самой симуляции частота задаётся в герцах, а не рад/с.

Выше я уже ответил на этот вопрос. Чья-либо культура тут ни при чём. Автоматическую простановку единиц измерения реализовать возможно только через какие-либо костыли, так как движок моделирования эту информацию не предоставляет. Если требуется, то оси можно подписать вручную. В статье я не стал проставлять подписи по осям и оставил всё как есть намеренно.

А как тогда различается круговая частота и обычная?

Круговая частота в моделировании Ngspice не используется. Штатными средствами её задать нельзя. Её можно сделать только через пользовательский скрипт, если подменить переменную по оси X и пересобрать вектор. И распознать в таком случае автоматически нельзя. Для фазы, вычисляемой через функцию cph() Ngspice в датасете ставит тип notype.

Вы разве не видите "Degrees", "Hz"

Я же написал, что кроме того, что приписана единица измерения. Сам синтаксис V(OUT) и т.п. такой же как и везде в SPICE.

Формула приведена в книге без вывода, тем не менее работает. Но расчёт верен только в некоторых пределах отношения Rf/Re. У меня получилось следующее на частоте 10 МГц.

Rf = 470 Ом Re = 15 Ом Ky=5.55
Rf = 470 Ом Re = 2.2 Ом Ky = 10.3
Rf = 470 Ом Re = 22 Ом Ky = 4.4

Верхний предел коэффициента усиления около 10, после схема начинает работать неустойчиво, если уменьшать Re. На симуляторе этого не видно, но на реальной схеме может иметь место. В симуляции также не учитываются свойства трансформатора, так как он на самом деле выполнен на ферритовом сердечнике. Также имеется зависимость коэффициента усиления от тока коллектора.

Движок не знает что параметром является частота?

В датасете, который отдаёт симулятор, имеется только указание, что это frequency, voltage или time без единиц измерения. Ось Х на графиках Qucs-S подписана и из дефолтной подписи понятно, что это такое (frequency или time). 15 лет уже эта система существует. Можно как-то автоматически распознавать тип переменных и подставлять единицу измерения через костыли, но я не вижу в таком смысла. График, готовый к публикации в статьях и отчётах таким образом получить всё равно не выйдет и придётся подписывать оси вручную.

И вот пример графика из Micro-Cap.

Вижу точно такой же синтаксис у переменных, как и у Ngspice. Стандартный для SPICE v() i() и т.п., только приписана единица измерения для частоты. dB() -- это здесь функция, а не единица измерения. Инженерную нотацию по осям, чтобы получить 100K вместо 1e5 в Qucs-S поставить можно.

почему-то там все кондеры С2, кроме выходного

Там имеется в виду, что эти конденсаторы имеют одинаковый номинал. Далее в книге имеется таблица с рекомендуемыми номиналами для компонентов на схеме.

Information

Rating
575-th
Location
Калуга, Калужская обл., Россия
Registered
Activity