2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5 ... 11  След.
 
 Компьютерное моделирование импульсных схем
Сообщение25.10.2007, 21:28 
Аватара пользователя


05/02/06
387
Здравствуйте всем!
Может быть кто знаком с эффективными методами анализа переключающихся схем? Речь идет, в частности, об импульсных преобразователях напряжения. У традиционных симуляторов типа SPICE в данном случае проблемы со сходимостью вычислений. Наверное кое-что об этом написано в
Демирчан К.С., Бутырин П.А. Моделирование и машинный расчет электрических цепей. - М.: Высшая школа, 1988.
Гаврилов Л.П. Аналитический метод расчета электрических цепей с применением ЦВМ. - М.: Изд. МГУ, 1975.
только вот где их посмотеть...

 Профиль  
                  
 
 
Сообщение06.11.2007, 01:46 
Аватара пользователя


05/02/06
387
Со времени публикации первого сообщения удалось найти многое:
- описания проблем сходимости SPICE
- примеры анализа схем в MATLAB
- различные алгоритмы симуляции импульсных преобразователей
- три конкурирующие программы, которые требуют сравнения
Предисловие к теме и вводная статья со ссылками находятся здесь:
http://vgololobov.narod.ru/content/spic ... ation.html

 Профиль  
                  
 
 
Сообщение28.02.2008, 01:36 
Аватара пользователя


05/02/06
387
Всем интересующимся спешу сообщить, что есть альтернатива набирающему популярность LTSpice SwitcherCad
и уже популярному (в узких профессиональных кругах) PSIM - это новый NL5 non-ninear electronic circuit simulator
http://nl5.sidelinesoft.com/index.php
который судя по подписи разработал A. Smirnov

 Профиль  
                  
 
 
Сообщение28.02.2008, 07:48 
Аватара пользователя


28/02/08
67
Совершенно верно. Программу разработал Алексей Смирнов, то бишь я. Готов ответить на вопросы и принять к сведению пожелания потенциальных пользователей.
Спасибо.

 Профиль  
                  
 
 
Сообщение28.02.2008, 18:21 
Аватара пользователя


05/02/06
387
Здравствуйте, Алексей!
Спасибо Вам за от готовность отвечать на вопросы, ведь обратная связь от пользователей - очень полезная штука.
На сайте программы вкратце написано, что NL5 is piecewise-linear (PWL) simulator, where non-linear components are represented by very simple linear models. К сожалению не все пользователи знают что из-себя представляет кусочно-линейная модель скажем транзистора и какие у нее ограничения в режиме большого сигнала (переключения). Интересно также узнать какой метод интегрирования для численного решения дифференциальных (разностных) уравнений используется в NL5? Если модели кусочно-линейные логично предположить, что это метод трапеций как и в PSIM.
В связи с этим очевидно существует проблема точности вычислений, поэтому хотелось бы увидеть application note "как НЕ надо делать" иначе симуляция плохо себя ведет.
В свое время чтобы проверить perfomance различных симуляторов я с автором сайта http://vgololobov.narod.ru пытался сравнить их на основе схемы преобразователя Чука
http://www.ee.bgu.ac.il/~kushnero/belle ... verter.pdf
Для SPICE-based симуляторов это дело заканчивалось зависанием, для других алгоритмов по-разному. Можно попробовать сравнить преобразователь Чука в трех симуляторах NL5, PSIM и SwCAD.
P.S. С точки зрения интерфейса хотелось бы иметь возможность изменять вид элементов. Допустим захотелось тебе - сменил американскую спиральку резистора на европейский прямоугольник. Вообще, не зря же нас учили русскому ГОСТу и ЕСКД - красиво и удобно :D

 Профиль  
                  
 
 
Сообщение29.02.2008, 07:20 
Аватара пользователя


28/02/08
67
Добрый вечер,
Подробное описание принципа работы, методов, моделей и рекомендаций - это то, что я ленюсь сделать на протяжении многих лет (все пользователи обычно подходят или звонят), но сейчас это стало жизненной необходимостью, так что надеюсь через месяца 2 сделать. Пока могу ответить кратко:

- кусочно-линейная модель "идеального" диода - разрыв при V<Vbe, закоротка при V>=Vbe.

- транзистор имеет несколько моделей с разной степенью упрощения и функционированием (ключ, линейный, более сложный с двумя диодами - типа модели Эберса-Молла) . Диоды внутри транзистора - "идеальные" (см. выше). Модель FETа - отдельная история...

- почти все компоненты имеют "кусочно-линейную" модель, задаваемую в виде текстовой таблицы типа R(V), C(V), L(I), K(V), в которой задается несколько точек характеристики, с линейной интерполяцией между ними

- любая схема является линейной на промежутке времени, пока ни один элемент не выходит за пределы своего текущего "линейного" кусочка характеристики. Линейная схема интегрируется методом трапеций. Шаг интегрирования постоянный, и выбирается пользователем (хотя в некоторый ситуациях программа может сама уменьшить шаг). Некоторые могут считать это недостатком, но лично я предпочитаю иметь полный контроль и понимание того, что и как делает программа в любой момент времени. Тем более, что прикинуть необходимый максимальный шаг для небольших схем не так уж и сложно, а при нулевом времени симуляции можно прогнать схему с другим шагом и удостовериться, что результат не изменился. Наличие проблем с выбором шага чаще всего является показателем, что со схемой что-то не так, или пользователь просто не понимает, что он симулирует. А это плохо... Ну и пока никто не жаловался (хотя что толку :))

- выбор картинки резистора и "земли" - в планах давно, но с очень низким приоритетом. Когда-нибудь будет...

- А сравнить какую-нибудь интересную схему на разных симуляторах было бы очень интересно! К сожалению, я сам не пользуюсь ничем другим, да и времени нет, а мои друзья пытались сравнить пару реальных switching power supplies, но не смогли запустить их ни на чем другом, кроме NL. На том и закончилось. При подобном сравнении очень важно понимать, что в NL компоненты максимально упрощены и "идеализированы", и практически невозможно сделать идентичные схемы в NL и другой программе, кроме простых пассивный схем. Так что сравнение надо делать очень аккуратно. Но тут, как говорится, Вам и карты в руки...

Спасибо,
Алексей.

 Профиль  
                  
 
 
Сообщение29.02.2008, 18:53 
Аватара пользователя


05/02/06
387
Алексей, вот такой вопрос: можно ли в NL5 померить коэффициент нелинейных искажений (THD), ведь если речь идет об импульсных источниках, его легко можно пересчитать в коэффициент мощности. Как это сделать правильно - другой вопрос, в некоторых случаях (зависит от стандарта страны) не обойтись без преобразования Фурье.

 Профиль  
                  
 
 
Сообщение29.02.2008, 20:10 
Аватара пользователя


28/02/08
67
Если достаточно знать гармоники сигнала, а вычисления искажений делать вручную, то можно сделать FFT транзиента (Transient/Tools/FFT).
Можно вставить прямо в схему небольшой кусочек из 5...10 компонентов который будет вычислять гармоники на лету (multiplier, интегратором и sample-hold), и делать необходимые вычисления прямо в схеме с выводом на график.
Можно сделать транзиент и сохранить графики в csv, а потом обрабатывать чем-нибудь другим.
В любом случае все делается через транзиент...

 Профиль  
                  
 
 
Сообщение01.03.2008, 23:03 
Аватара пользователя


05/02/06
387
Алексей, а в каком виде NL5 хранит полученные данные для графиков и какими программами их можно потом обрабатывать? Допустим проблема PSIM - это то, что при большой точности и/или времени симуляции файл данных получается огромного размера (легко может быть быть больше 500Мб). Это неудобно, поскольку шаг в PSIM тоже фиксированный и допустим если пользователь задал слишком большой шаг, PSIM автоматически его уменьшает. Размер файла данных таким образом увеличивается и неоходимо сокращать время симуляции, что не всегда можно. Как работает в этом случае NL5? Вы пишите
Цитата:
...при нулевом времени симуляции можно прогнать схему с другим шагом и удостовериться, что результат не изменился

Что такое "нулевое" время симуляции?

 Профиль  
                  
 
 
Сообщение02.03.2008, 01:56 
Аватара пользователя


28/02/08
67
Ну, не буквально "нулевое", просто чаще всего для схем с небольшим количеством элементов время симуляции очень маленькое: секунды, десяток секунд. Конечно, бывает когда запускают расчет на ночь: обычно это источники питания с внутренней частотой десятки мегагерц, а интересует реакция на очень медленные внешние воздействия.

Насчет хранения данный. Здесь у NL есть куча возможностей, так что можно выбрать режим, который устраивает больше всего.

Во-первых, если посмотрите Transient/Settings/Data sampling step, есть три варианта хранения данных:
1. Same as calculation step (save all data): запоминать ВСЕ точки. Требуется максимальная память, все вычисления по данным (среднее, RMS, и т.д.) имеют максимальную точность;
2. Less than or equal to XXX: запоминать с шагом XXX, большим чем шаг расчета, НО также обязательно запоминать "особенные" точки: максимумы и минимумы любого графика, точки переключения ключей, диодов, фронты источников, и т.д. Требуется намного меньше память, вычисления с достаточной точноcтью. Самое главное, что не теряются экстремальные точки, и нет aliasing.
3. Equal to XXX: запоминать с фиксированным шагом, большим чем шаг расчета. Наименьшая память, но могут быть потеряны важные данные.

Во-вторых, все данные хранятся только в оперативной памяти, файлов не диске не создается. К сожалению, если памяти не хватает, шибко умная Windows начинает сама сбрасывать все на диск, и тогда конец концерта... Чтобы этого не произошло, в Edit/Preferences/Transient/Memory задается макс. память для одного графика. Когда график занимает всю отведенную ему память, начало память стирается (в теперешней версии это 1024 точки = 16 kb), и новые данные сохраняются в освобожденную память: FIFO. При этом программа выводит warning о том, что часть графика потеряна.

Чтобы обрабатывать другими программами, надо сделать Export графиков в csv формат, с фиксированным шагом (с линейной интерполяцией данных). Также NL может сохранять графики в бинарном формате (nlt и nlf файлы) для хранения данных и обмена между схемами (copy/paste), но это формат non-public (пока).

Также можно импортировать данный из csv в NL: можно делать по ним FFT, или использовать в качестве reference графиков для симуляции. Или даже просто посмотреть и распечатать: по сравнению с тем же Excel-ом, в NL намного проще менять масштабы и двигать графики мышкой и mouse-wheel-ом (если, конечно, знать все возможности).

Спасибо,
Алексей.

 Профиль  
                  
 
 
Сообщение02.03.2008, 17:05 
Аватара пользователя


05/02/06
387
Не знаю как часто это требуется, но в PSIM есть интерфейс ввода-вывода в MATLAB Simulink. Из-за описанных проблем с хранением данных на диске этот интерфейс PSIM работает с задержками, которые склонны испортить все удовольствие. Поскольку в NL5 все данные хранятся только в оперативной памяти доступ к ним гораздо быстрее, что очень эффективно для связи с внешними математическими программами. Имеются ли такие планы на будущее?
Мне на самом деле кажется более важным реализация блока обработки сигнала, программируемого пользователем. Это необходимо гораздо чаще, поскольку моделей IC for switched converter не так много даже в SPICE, а современные источники питания все чаще управляются с помощью микроконтроллера или DSP. Подобный блок реализован в PSIM на основе компилятора Си фирмы http://www.softintegration.com
Стоит подчеркнуть, что тактовая частота выполнения команд в C-script блоке - это скорость их выполнения в компьютере, хотелось бы, все таки, иметь большее сходство с реальностью. Поясню - часто необходимо оценить успеет микроконтроллер (DSP) выполнить какую-то часть программы за ограниченное время или нет, при условии, что известна его тактовая частота. Другое неудобство в C-script блоке - это необходимость программно отлавливать каждое прерывание.
Наверное блок программируемый пользователем можно сделать в NL5 как на основе внешней математической программы так и на основе встроенного Си.
Перед этим стоит отметить, что все сигналы в PSIM разделены на две большие группы - аналоговые и цифровые (управляющие), этому конечно же есть оправдания, но для того чтобы сделать переход между этими сигналами требуются буфера, их количество в определенной схеме может быть очень большим, что крайне неудобно.

 Профиль  
                  
 
 
Сообщение03.03.2008, 21:50 
Аватара пользователя


28/02/08
67
Да, это может быть весьма полезная штука. После релиза поищу заинтересованных пользователей, чтобы понять как это лучше (и правильнее) сделать.

Насчет нелинейных искажений, пришла в голову мысль: у меня есть расчет частотных характеристик методом 'Sweep AC source", когда в нелинейной схеме задается sin источник, запускается транзиент и вычисляется 1 гармоника сигналов в схеме. Затем частота источника изменяется я в заданном диапазоне, и так получается ЛАХ не линеаризованной схемы, а реальной. Мне ничего не стоит (вроде бы) вычислять не только первую, но и любые другие гармоники, генерируемые в схеме, и рисовать графики. Например, будет график амплитуды первой гармоники, и график третей гармоники. А там уж можно и вычислить сразу что надо. Интересно, имеет ли это смысл, и делает ли кто-нибуть так? Моих коллег интересует в основном устойчивость, а не искажения, им этого не надо...

Кстати, а с чего это обсуждение электронных симуляторов на сайте мехмата? Вроде не к месту...

 Профиль  
                  
 
 
Сообщение04.03.2008, 00:38 
Аватара пользователя


05/02/06
387
Цитата:
Интересно, имеет ли это смысл, и делает ли кто-нибуть так?

Поскольку AC sweep в PSIM делается медленно, можно предположить, что гармоники он считает именно так. :D
Цитата:
Кстати, а с чего это обсуждение электронных симуляторов на сайте мехмата? Вроде не к месту...

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

А вот здесь хочется поподробнее. Понятно, что модель первого уровня - просто идеальный ключ, следующий уровень это что, просто источник тока управляемый напряжением без единой емкости и выходного сопротивления определяемого напряжением Эрли?
Если почитать help к SwCad там более или менее написаны причины по которым была выбрана модель MOSFET by Hendrik Jan Zwerver и остальные 14 моделей разного уровня. Меня в частности интересует какая из этих моделей наиболее точно описыват управление MOSFET-ом по напряжению Vbg подложка-затвор, когда исток НЕ соединен с подложкой, так называемый diodeless нормально-закрытый JFET управляемый по изолированному затвору.
Кстати по поводу емкостей - практически в каждом switching converter нужно посчитать ток выходного буфера для прокачки мощного MOSFET. В большинстве случаев это делается приближенно на основе графика в datasheet. Важную роль в точном расчете играет эффект Миллера, влияние которого легко можно учесть, если сигнал не загоняет усилитель в нелинейность. Для транзистора в нелинейном режиме (ключ) такой расчет некорректен и надо бы модель транзистора в которой учитывается по крайней мере входная и проходная емкость, которые тоже нелинейны.
Цитата:
любая схема является линейной на промежутке времени, пока ни один элемент не выходит за пределы своего текущего "линейного" кусочка характеристики

Если все реактивные элементы идеальны, то при подключении конденсатора к источнику напряжения будет выброс тока в бесконечность и о линейности речи быть не может. Практически тоже самое при подключении индуктивности к источнику тока. Как переживает такой spike NL5? Это тем более важно потому что непрерывный ток в индуктивности очень хорошо сжигает силовые транзисторы.

 Профиль  
                  
 
 
Сообщение04.03.2008, 03:01 
Аватара пользователя


28/02/08
67
Модели FETов в NL бесконечно простые, я бы сказал, -1 уровня. Даже "моделями" стыдно назвать: ключ, управляемый напряжением, затем линейный (с полосой пропускания) источник тока, управляемый напряжением, и последняя, "FET", в общем тот же источник плюс Rdson. Никаких емкостей и прочих приближений к реальности. Все добавляется снаружи по мере необходимости и с учетом требуемой точности. Например, народ ставит нелинейные емкости и подгоняет их под реально измеренные транзисторы. Такую модель с навешенными компонентами можно засунуть в SubCircuit с изображением транзистора.
В общем, "сделай сам" и поделись с товарищем. А модели я не усложняю, чтобы себе жизнь облегчить :D , и потому что практически каждый большой ученый считает что только его модель правильная. Вот пусть и делают из рассыпухи...

Переживание бесконечных пиков тока и напряжения при наличии идеальных ключей и диодов - очень больной вопрос. Не смысле, что я не умею их считать, а просто есть два способа как это делать. Например, замыкаем два конденсатора с разным напряжением. В старой DOS-овской NL я находил новое напряжение на конденсаторах, как если бы заряд перераспределился за нулевое время. При этом бесконечный ток не показывался вообще, что, конечно, неправильно. Зато графики все гладенькие, а что ток бесконечный - сам виноват...
Сейчас этот процесс делается за минимально допустимый (ненулевой) шаг расчета, так что будет выброс тока с в общем-то неопределенной амплитудой, так как шаг может быть разным. Это некрасиво, но более правильно. Фактически можно сказать, что C и L в момент таких переключений не идеальные, а имеют активное сопротивление h/C и L/h, что и порождает большие импульсы тока и напряжения.

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

 Профиль  
                  
 
 
Сообщение04.03.2008, 18:08 
Аватара пользователя


05/02/06
387
Идея конструктора моделей - она хорошая и универсальная, только вот пока пользователь построит правильную модель конкуренты переманят его к себе. Нет, проповедями заниматься не надо, просто есть опасность что такой симулятор будет "вещь в себе". Это, конечно, дело менеджера, а не инженера - продвигать продукт на рынок, но чтобы продаться нужно изучить все достоинства и недостатки соперника.
Код:
LTspice Core Simulator
• Rewrite Berkeley SPICE 3F4/5 for machines with faster CPU’s than RAM
- Reduced address calculation and function calling overhead
- Improved timestep control and numerical methods
- Enhanced integration methods and convergence improvements
- Alternate solver/SPARSE matrix package 1000x more accurate.
- Circuit size limited by computer memory
• Added/Enhanced semiconductor models
- Diode recombination current
- JFET impact ionization current
- BJT quasi-saturation
- VBIC
- Binned BSIM3v3.2.4
- BSIM4.4.0
- VDMOS(a new vertical double diffused MOSFET for power MOS)
- EKV 2.6
- BSIMSOI3.2
• Advanced Analog Behavioral Modeling Technology
- Traditional ABM, specialized behavioral devices, HDL, co-simulation
• Leadership in the SPICE community
- Subcircuit port current monitoring
- Unlimited output file size, i.e., >> 2GB

Код:
LTspice's Special Enhancements for SMPS Simulation
• Automatic Steady State Detection and Efficiency Computation
• VDMOS MOSFET Model
• Node Reduction
• Mixed-Mode Simulator with intrinsic SMPS controller functions
• Nonlinear magnetics with gapped magnetic circuit solver

Это была философская часть диалектического личного взгляда на законы материализьма.:D

Теперь о бесконечных выбросах тока (напряжения) - при работе с идеальными элементами используются законы сохранения энергии. Я почти уверен, что симулятора схем на этом принципе не существует, поскольку все хотят считать переходные процессы во времени. Энергетический подход в физике - это известная Лагранжева механика:
http://ru.wikipedia.org/wiki/%D0%9B%D0% ... 0%BA%D0%B0
очень удобная для расчетов переведенная, кстати, на язык электрических цепей и основанная на принципе наименьшего действия
http://ru.wikipedia.org/wiki/%D0%9F%D1% ... 0%B8%D1%8F
Последовательное сопротивление h/C или L/h описывает реальность лучше, чем нулевое, хотя и медленнее. Еще один недостаток - это accumulated error при работе с очень большими числами. Очевидно есть стандартные решения такой проблемы, допустим символьные вычисления в виде дробей, как это можно сделать в MATLAB. Желательно, конечно, найти более деликатный подход к бесконечным выбросам, допустим на основе $\tau=RC$. Хороший обзор традиционных методов можно найти в книге
А.А. Новиков, М.А. Амелина "Математическое моделирование в электронике"
http://rs29.rapidshare.com/files/261370/MME.rar
Вот парочка последних статей так или иначе посвященных spike problem:
Dalibor Biolek, Josef Dobes "Computer Simulation of Continuous-Time and Switched Circuits: Limitations of SPICE-Family Programs and Pending Issues"
http://www.vabo.cz/stranky/biolek/veda/ ... IO07_1.pdf
Tomas Lukl, Jaroslav Vrana and Jiri Misurec "SCISIP – Program for Switched Circuit Analysis in MATLAB"
http://www.bmas-conf.org/2006/3.1_paper.pdf
По поводу набора примитивов для конструктора - ими в свое время занимался Bernard Tellegen, тот самый, который изобрел гиратор.
http://en.wikipedia.org/wiki/Bernard_Tellegen
Несколько позже были изобретены "аномальные" элементы:
Нуллатор – это двухполюсник, который «обращает» в ноль протекающий через него ток и приложенное к нему напряжение.
Норатор – это двухполюсник, у которого ток и напряжение принимают любые, не связанные между собой значения.
Нуллатор и норатор нельзя описать с помощью законов Ома, но цепи, их содержащие подчиняются законам Кирхгофа.
Нуллор – это четырехполюсник, у которого входные ток и напряжение равны нулю, а выходные ток и напряжение принимают любые, не связанные между собой значения.
подробнее об этом и об экспериментальных "символьных" симуляторах смотрим здесь
С. А. Курганов, В. В. Филаретов "Схемно-алгебраическое моделирование и расчет линейных электрических цепей"
http://window.edu.ru/window_catalog/fil ... 4/1330.pdf
П.Н. Ганский, А.Т. Раимова "Методы анализа и расчета электронных схем"
http://window.edu.ru/window_catalog/fil ... tod155.pdf

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 161 ]  На страницу 1, 2, 3, 4, 5 ... 11  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group