Найти в Дзене

Народный BLDC. Proteus или «чистый спайс»?

Я "подсел" на Proteus, когда увлекся микроконтроллерами (МК). В частности, 8-битной линейкой Atmega (в народе - Arduino). Если надо смоделировать простую схему + софт на этом МК - просто сказка! Практически 100% достоверность в реальности. А вот когда нужно продумать нюансы: все токи, предельные напряжения, временные задержки - "садишься на измену". Постоянное "тыкание мышкой" в переключатели, изменение номиналов резисторов и генераторов, вставка и удаление новых цепей, "отлов" переходных процессов в осциллографе... Один параметр улучшил, другой "поплыл", про третий совсем забыл. Меня это больше не "штырит". Как же сделать все и сразу? И, желательно, без больших трудозатрат. Еще я употребляю Multisim, на который я "подсел" еще в универе. Он лучше Proteus для моделирования аналоговых схем, особенно импульсных БП и радиотрактов. Вот что обидно - его UI толком не изменился за 18+ лет с момента получения мной диплома. Опять таки - быстро "накидать" мышкой схему из библиотеки элементов
Оглавление
Народный BLDC. Идея
Нейронные эксперименты28 апреля 2025

Я "подсел" на Proteus, когда увлекся микроконтроллерами (МК).

В частности, 8-битной линейкой Atmega (в народе - Arduino). Если надо смоделировать простую схему + софт на этом МК - просто сказка! Практически 100% достоверность в реальности.

А вот когда нужно продумать нюансы: все токи, предельные напряжения, временные задержки - "садишься на измену". Постоянное "тыкание мышкой" в переключатели, изменение номиналов резисторов и генераторов, вставка и удаление новых цепей, "отлов" переходных процессов в осциллографе...

Один параметр улучшил, другой "поплыл", про третий совсем забыл. Меня это больше не "штырит".

Как же сделать все и сразу? И, желательно, без больших трудозатрат.

Нам нужен "черный ящик"

Еще я употребляю Multisim, на который я "подсел" еще в универе. Он лучше Proteus для моделирования аналоговых схем, особенно импульсных БП и радиотрактов. Вот что обидно - его UI толком не изменился за 18+ лет с момента получения мной диплома.

Опять таки - быстро "накидать" мышкой схему из библиотеки элементов и сразу посмотреть ее работу очень удобно. Далее "полный Proteus".

Схему нужно оформить как функцию, как "черный ящик", чтобы можно было менять параметры самой схемы (ее структуру), а так же входные и выходные сигналы (в т.ч. питание). Написать необходимые условия работы, после чего система меняя параметры, сгенерирует оптимальный вариант схемы.

Я сначала решил сделать математическую модель. Для конденсаторов, резисторов и источников напряжения это сделать легко. Для транзисторов и, тем более, микросхем - кошмар. Задумался...

Вспомнил лекции по САПР, которые я успешно прогуливал в универе: в памяти всплыл SPICE. Это симулятор электронных схем. В студенческие годы мы использовали еще DOS'овскую версию.

А что есть сегодня? Желательно что-нибудь open-source и(или) бесплатное.

Оказалось, такая система существует.

Ngspice

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

Схема моделируется посредством создания текстового файла схемы (netlist) и описание параметров. Ngspice выдает графики и текстовые файлы с таблицами напряжений в различных узлах схемы с временными метками.

Имеется обширная библиотека популярных элементов (в т.ч. и микросхем). Работает и под Windows и под Linux. То, что надо!

Текст на входе - текст на выходе

Ничего не напоминает?

Все верно! HTML и его серверную и браузерную обработку. Конечно Perl, PHP и JS я "употреблять" не решился, а вот идею с манипуляциями с текстом добавил в свой "коктейль".

В качестве "текстового процессора" выбрал Python. Самое главное - в его арсенале есть множество библиотек, которые используют аналитики и дата-сайентисты (ну те, которые обучают нейросети). Для наших целей это отличный "ингредиент"!

К тому же его можно использовать в Colab.

Для тех кто "не в теме": Colab - это сайт, на котором можно запускать программы на питоне (скрипты), используя обычный CPU, GPU и даже TPU. Обучить небольшую нейросеть или запустить нейросеть чуть побольше, проанализировать табличные данные и вывести графики.
Запустить со смартфона и, даже, откорректировать текст вручную (немного повозившись).
Бесплатно (правда с ограничениями).
Для работы с ним нужна гуглопочта.

PySpice

Немного изучив смежные темы я нашел PySpice - это "обертка" над Ngspice и еще тремя симуляторами. Поиграв немного с ним, я уперся в проблемы при использовании библиотек электронных компонентов. А вот с чистым Ngspice проблем почти не было.

Для меня так даже лучше - больше контроля над входными и выходными данными, проще отладка. Сгенерированные схемы можно легко проверить на своем ноутбуке.

Возможно, в будущем для получения Full Power я еще вернусь к теме Shared Library. Но пока только "чистый SPICE".

SPICE

Вот так выглядит упрощенная схема для тестирования компаратора на ОУ.

LM358 как компаратор
LM358 как компаратор

Ниже - ее текстовое spice представление.

SPICE netlist для анализа компаратора на ОУ
SPICE netlist для анализа компаратора на ОУ

А так мы подаем "аварийный импульс".

Анализ переходных процессов в ngspice
Анализ переходных процессов в ngspice

После получения параметров схемы, дополнительно рассчитываются "виртуальные" переменные, которые используются для анализа характеристик схемы и упрощают процесс принятия решений.

Выходная таблица с различными комбинациями параметров схемы
Выходная таблица с различными комбинациями параметров схемы

Если хотите, чтобы "торкнуло" основательно, то используйте Черный Ящик.

Про большой китайский сайт я ничего не знаю, интернетом пользоваться не умею и, кроме импортозамещения, ничем не занимаюсь.