Перейти к содержанию

Моделирование электроники. Общая тема


valvol

Рекомендуемые сообщения

39 минут назад, Passer_by сказал:

Спасибо. Но лично мне не очень нравятся коммерсанты.

 

Так Simulink, вроде тоже коммерческий.

ИМХО не стоит занимать столь принципиальную позицию. Зачастую даже демо-версии программ позволяют решать достаточно сложные задачи. Например, многие компоненты PSIM сами по себе являются весьма сложными узлами, требующие для своего воссоздания больших затрат в менее специализированных симуляторах (предназначенных для решения широкого круга задач).
NGSPice, хороший симулятор, обладающий рядом полезных особенностей и поэтому безусловно заслуживающий персональной темы. В противном случае не понятно, почему в теме Моделирование электроники. Общая тема  предлагается обсуждать только  NGSPice .

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 26
  • Создана
  • Последний ответ

Топ авторов темы

2 минуты назад, valvol сказал:

В противном случае не понятно, почему в теме Моделирование электроники. Общая тема  предлагается обсуждать только  NGSPice

Ни в коем случае. Пока обсуждаем все.

Просто в настоящий момент лично я сосредоточен исключительно на NGSpice.

И буду делиться достижениями, если они будут... Хотя бы исходя из требований GPL3.

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

Ссылка на комментарий
Поделиться на другие сайты

В 02.06.2018 в 18:29, Passer_by сказал:

Рассмотрим текст модели.

.SUBCKT NAND2 IN1 IN2 VCC VSS OUT
B1 1 VSS V = V(IN1,VSS) > V(VCC,VSS)/2 && V(IN2,VSS) > V(VCC,VSS)/2 ? 0 : V(VCC,VSS)
R1 1 OUT 100
C1 OUT VSS 100p
.ENDS NAND2

Переводим это дело на русский язык:

1-я строка гласит:

.SUBCKT NAND2 IN1 IN2 VCC VSS OUT

подсхема с именем NAND2 имеет выводы IN1, IN2, VCC, VSS, OUT.

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

IN1 - вход 1,

IN2 - вход 2,

VCC - положительное питание,

VSS - отрицательное питание,

OUT - выход нашего элемента 2И-НЕ.

Начиная со второй строки следует описание внутренностей подсхемы NAND2.

2-я строка:

B1 1 VSS V = V(IN1,VSS) > V(VCC,VSS)/2 && V(IN2,VSS) > V(VCC,VSS)/2 ? 0 : V(VCC,VSS)

переводится следующим образом:

между выводами 1 и VSS включен нелинейный источник напряжения B1, который принимает значение 0,

если напряжение между выводами IN1 и VSS больше, чем напряжение между выводами VCC и VSS, деленное на 2

и напряжение между выводами IN2 и VSS так же больше, чем напряжение между выводами VCC и VSS, деленное на 2;

иначе напряжение на источнике B1 становится равным напряжению между выводами VCC и VSS.

В итоге имеем функцию 2И-НЕ.

Но если включить в схему источник B1 просто так, то тут же получим при анализе переходных процессов проблемы со сходимостью (convergence).

И это заслуженно. Ибо наш элемент 2И-НЕ переключается мгновенно. А это, по-любому, меньше наименьшего временного шага моделирования.

И компоненты, подключенные к выходу такого источника, не смогут отреагировать на подобный переход.

Отсюда 3-я строка:

R1 1 OUT 100

которая говорит о том, что между внутренним выводом 1 подсхемы и внешним выводом OUT включен резистор, величиной в 100 Ом.

Логическим продолжением будет 4-я строка:

C1 OUT VSS 100p

которую желающие пусть переведут сами. Типа - домашнее задание...

Ну и 5-я строка:

.ENDS NAND2

говорит о том, что описание подсхемы завершено.

В принципе, все, что написано русским языком, можно нарисовать на бумажке для ясности.

В книге В. Володина это описано более подробно, с примерами.

Но следует учесть, что язык там несколько иной, более "правильный" - чистый PSpice.

Кто хочет, может составит "настоящую" PSpice модель того же логического элемента, что и у меня.

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

Постараюсь это сделать завтра...

Изменено пользователем Passer_by
  • Я с тобой! 1
Ссылка на комментарий
Поделиться на другие сайты

23 часа назад, Passer_by сказал:

Постараюсь это сделать завтра...

Продолжаем разговор...

Создаем новый проект в KiCad-е. Подключаем нужные библиотеки.

Механизм этого безобразия хорошо описан в документах на KiCad на могучем и прекрасном русском языке.

Надо просто проявить настойчивость и скачать ее с сайта KiCad-а. Поэтому останавливаться на этом не будем.

А зайдем в редактор компонентов и создадим новый компонент с 5-ю выводами. И назовем его весьма банально - SN74LVC1G00DBV.

Потому что корпус к нему - sot23-5.  DS на микросхему легко гуглится по названию.

У меня получилось следующее.

1384478195_.thumb.jpg.e32645795316fd2b98e77a530c8284c1.jpg

Теперь подключаем нашу модель. Для этого нажимаем Компонент->Поля и получаем следующую картину:

которая у меня не загружается, поэтому продолжу завтра...

 

 

  • Я с тобой! 1
Ссылка на комментарий
Поделиться на другие сайты

KiCad нынче действительно удивляет!

Лет 10 назад я его щупал и остался с мнением, что это Абакомовские sPlan + Sprint Layout в одном флаконе и с кривым/непонятным интерфейсом.

 

10 часов назад, Passer_by сказал:

которая у меня не загружается, поэтому продолжу завтра...

 

Чего сказала система?

Ссылка на комментарий
Поделиться на другие сайты

11 час назад, Datagor сказал:

Чего сказала система?

Система сказала, что мне разрешено грузить только 500 кбайт. А картинка моя весит 116 кбайт, что вкупе с предыдущей дает объем, таки, менее 500 кбайт.

Вот и картинка, собственно:

Fields.thumb.jpg.d2e446d9cfed01cc8ed91838ca4fe883.jpg

В первый момент времени полей, касающихся PSpice, просто не будет.

Исправим этот недостаток, нажав на кнопку "Редактировать Spice модель".

Получим следующую картинку.

SpiceWin.thumb.jpg.3621755207e9e26da0c10b1f998ca2f8.jpg

Жмем вкладку "Модель", если она не активирована ранее.

И на этой вкладке с помощью кнопки "Выбрать файл" открываем диалоговое окно выбора файла, с помощью которого указываем путь к файлу модели.

Из всех возможных типов моделей выбираем тип "Подсхема", если система сама его не выбрала.

Поле "Модель" обязательно заполняем именем нашей модели. Дело в том, что в файле типа .lib модель может быть не одна.

В этом случае в ниспадающем списке поля "Модель" появится несколько названий моделей. В окне появится текст нашей модели, как на картинке.

Смотрим на него и убеждаемся, что это именно то, что мы написали в нашем текстовом редакторе и сохранили в файл с расширением .lib.

Обратим внимание на "чекер" "Изменить последовательность выводов" и вспомним, что последовательность выводов корпуса,

который у нас и на изображении УГО компонента, не совпадает с последовательностью выводов модели.

У корпуса и УГО выводы расположены в следующей последовательности:

1 - A, 2 - B, 3 - VSS, 4- Y, 5 - VCC.

А у модели выводы расположены несколько иначе:

1 -  IN1, 2 - IN2, 3 - VCC,  4 - VSS, 5 - OUT

Учтем, что A - это IN1, B - IN2, VSS - VSS, Y - OUT и VCC - это VCC, получим нужную последовательность выводов корпуса относительно модели:

1, 2, 5, 3, 4.

Установим "чекер" "Изменить последовательность выводов" и занесем в соответствующее поле нашу измененную последовательность.

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

Spice поля нужно сделать невидимыми, если система этого не сделала самостоятельно, иначе эти поля впоследствии появятся на схеме.

По желанию, можно включить видимость отдельных полей.

Я еще всем полям меняю высоту шрифта на 2,5 мм и выставляю всем полям курсив. Вы законно спросите - "А нафига?"

А я Вам с достоинством отвечу: - "Для красоты и соблюдения ГОСТ-а ради".

После этого на форме с полями нажимаем кнопку ОК.

И наблюдаем все надписи прямо на УГО компонента, как на моей картинке из предыдущего поста.

Я еще стаскиваю все невидимые надписи (они серого цвета) в одну кучу, чтобы с одной стороны сильно не мешались,

а с другой стороны, чтобы все они были в поле зрения.

После всех титанических трудов, описанных выше, наша Spice модель связана с УГО компонента и с его корпусом, который в KiCad-е называется

"посадочным местом".

По мне - "посадочное место" - это, таки (_!_), а не корпус. Но как перевели, так пусть и будет...

Получилось много букв. На сегодня, пожалуй, все.

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

  • Я с тобой! 1
Ссылка на комментарий
Поделиться на другие сайты

22 часа назад, Passer_by сказал:

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

Завтра наступило.

Открываем редактор схем в KiCad-е.

И рисуем RS триггер из наших многострадальных 2И-НЕ. Добавляем два источника сигнала и источник питания.

Кто хочет, может добавить еще и нагрузочные резисторы.

У меня получилось примерно следующее:

RSTrigModel.thumb.jpg.ca167e55df97b0e50e045a12812890be.jpg

Заходим в меню "Инструменты", выбираем в нем раздел "Симулятор". И получим окно симулятора, которое я Вам сегодня не покажу, ибо

картинка не грузится. Значит, продолжим завтра, поскольку уменьшать объем картинки нежелательно. Пропадет информативность.

 

 

 

  • Я с тобой! 1
Ссылка на комментарий
Поделиться на другие сайты

19 часов назад, Passer_by сказал:

Пропадет информативность.

Но не надолго...

Итак, окно симулятора, выглядит приблизительно вот так:

KiCadSim.thumb.jpg.7849fc9d06dd6fd8f37bde43b3e9a7bb.jpg

То, что изображено на картинке - это результат моделирования. В начале будут серые поля.

По той причине, что не выбран тип анализа и не заданы его параметры.

Чтобы сделать это, необходимо надавить "Симуляция" -> "Настройки". Получим окно:

SimAdj.thumb.jpg.d903cad5040b0ed676230f55a0c134a6.jpg

В нем выберем вкладку "Переходной процесс". И заполним поля.

Их назначение более чем очевидно. Нажимаем ОК и возвращаемся к нашим серым полям.

Чтобы сделать их такими, как на верхней картинке, нажимаем "Симуляция" -> "Запустить симуляцию", или зеленую стрелку вправо,

кому неохота лазить по меню. Теперь получилось черное поле. Чтобы вывести нужные трассы, надо придавить "Симуляция" -> "Добавить сигналы".

Получится следующий результат:

Signals.thumb.jpg.026da4b937810de51c65f32afd0ea7ef.jpg

Если Вы не ленились и добавили метки цепям на схеме, то названия в этом окне будут осмысленными, такими, как у меня.

Я добавил диаграммы следующих сигналов: V(Q), V(~S) и V(~R).

Выход триггера Q - красного цвета, вход установки ~S - зеленый, а вход сброса R- синий.

Как видно из диаграмм, модель работает вполне адекватно. По крайней мере с точки зрения формальной логики.

Если воспользоваться методикой, предложенной В. Володиным в его книге, то можно на основе .cir файла получить модель RS триггера.

Порядок действий для KiCad-а точно такой же, как и в предложенной методике.

Если кто захочет развивать свои навыки в сторону Spice моделирования, то с книгой будет значительно легче.

Что касается моделирования в KiCad-е, то я вкратце изложил один из путей.

Не освещенными остались некоторые вопросы, которые являются фичей KiCad-а.

Они касаются подстройки компонентов и схемных маркеров. Но эти материалы есть на видео ни ТыТрубе.

При желании можно найти и посмотреть. Правда, это видео на тарабарском языке.

Если у кого есть вопросы - можно задавать.

 

 

Изменено пользователем Passer_by
  • Я с тобой! 1
Ссылка на комментарий
Поделиться на другие сайты

Вижу процесс потихоньку двигается.:cool:

А я, на досуге, решил повозиться с PSIM. Симулятор отличный, однако не бесплатный. К сожалению, домашний бюджет не позволяет приобрести его в личное пользование. Есть конечно демо-версия, но она имеет кучу ограничений. В частности, не позволяет моделировать многие примеры, идущие с симулятором - срабатывает ограничение на максимальное количество компонентов.

 

А примеры интересные. Решил создать библиотеку функциональных блоков, подобную PSIM, под LTspice.

Пришлось конечно повозиться, не всё пошло сразу, однако в конце концов заработало.

Вот так выглядит результат моделирования 3-х фазного инвертора, ведомого сетью.
ltspice_psim.png


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

 

  • Я с тобой! 2
Ссылка на комментарий
Поделиться на другие сайты

В 14.06.2018 в 23:24, valvol сказал:

Вижу процесс потихоньку двигается.

Совсем чуть-чуть...

Не так давно закончил работу с микро системой на кристалле. PIC16F1716 - называется.

Отличается наличием периферии для построения преобразователей. Это помимо легкоусвояемого микроконтроллерного ядра.

Там без предварительного моделирования - никуда. В статьях по применению рекомендуют Simulink.

Ваш подход, на мой взгляд, более правильный, но более затратный, в смысле времени.

Идея вполне разумная - дооснастить  известный бесплатный симулятор своими блоками под известные нужды.

Возвращаясь к PIC-у. Там внутри много всего аналогового. Девайс питается от литий-ионной батарейки.

А для работы оконечного устройства надо около15 Вольт. Решение проблемы представлено на картинке.

Chopper.thumb.png.081afb5e21f7c53ea33813d02be1267a.png

Компоненты DD1 и DD2 моделируют узел COG микроконтроллера, а V2 и V3 - это его же узел PWM.

V4 - один из внутренних ЦАП-ов микроконтроллера, опирающихся на его же источник образцового напряжения.

DA1 - быстродействующий микроконтроллерный компаратор.

Результаты моделирования (общий план):

DiagrFar.thumb.png.10c2c5f0739436259ac9068219f67a1c.png

Как видно из приведенной диаграммы, установившийся режим наступает через 1,5 мс после старта.

Далее следует увеличенная картинка для установившегося режима.

DiagrNear.thumb.png.c204a6ae43a4f14d5ae6c0f8a3aa5714.png

Следует отметить, что системе удалось смоделировать свободные колебания при поцикловом истощении дросселя L1.

Выводы:

1. Микро система на кристалле PIC16F1716 вполне способна заменить кучу всякой электроники.

2. KiCad в состоянии моделировать импульсные системы с приемлемой точностью. Потом все равно придется доработать паяльником...

3. Самое главное. Все это дело - даром и к тому же кросс платформенно.

 

Ссылка на комментарий
Поделиться на другие сайты

22 минуты назад, Passer_by сказал:

 Микро система на кристалле PIC16F1716 вполне способна заменить кучу всякой электроники.

Возможно заинтересуют также аналоговые ШИМ контроллеры с цифровым управлением.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...