Форум » Моделирование устройств силовой электроники » Реализация модели Джайлса-Атертона в Microcap 9 » Ответить

Реализация модели Джайлса-Атертона в Microcap 9

Finarfin: К сожалению не могу достать оригинальную статью авторов, но во всех публикациях (для определенности возьмем эту) по теме модель имеет пять параметров, в то время как в microcap их только 4. Обычно во всех статьях: 1) Ms - намагниченность насыщения 2) a - масштабный коэффициент (растягивание-сжатие вдоль оси абсцисс) Ms и a - параметры безгистерезисной кривой 3) k - коэффициент безвозвратной деформации (pinning) стенок, определяет площадь петли гистерезиса (при k=0 гистерезиса нет) 4) alpha - характеризует взаимодействие (coupling, interaction) между доменами 5) c - отношение дифференциальной проницаемости кривой начального намагничивания в начале координат к дифференциальной проницаемости при рассмотрении только безгистерезисной составляющей (в других источниках - коэффициент обратимости перемещаний стенок доменов) Всего пять коэффициентов, подбираемых алгоритмом оптимизации до наилучшего соответствия экспериментальным точкам (пример реализации) В Microcap же видим только Ms, a, с и k. Но где же alpha??? Она полагается равной какому-то постоянному значению? Каково оно? Боюсь что это существенно снижает точность моделирования. По хорошему даже параметр k полагается переменным и переходят от пяти параметров к семи-восьми.

Ответов - 216, стр: 1 2 3 4 5 6 7 8 9 10 11 All

locik: продолжение предыдущего поста. величина Н разная в магнитопроводе и в зазоре.то есть при вычислении используется именно длинна магнитопровода минус величина зазора.то есть реальная длинна именно феррита.зазор представлен простым резистором величина его зависит от длинны зазора. если что то не ясно напишите подробнее что именно не ясно потому что описать словами всю модель тяжеловато.

locik: вообще появилась мысль использовать в магкоре тоже источник эдс но пока это только мысли. главное не ясна причина генерации и не ясно как перемещать ветви Bup и Bdn.такое ощущение что у меня именно в этом ошибка.с запоминающими ячейками тоже не ясно.в них записывается какая то чепуха.

qaki: to locik В листинге второго исправления есть две строчки: *.param B={if(ddt(Bmid)>0,Bdn-v(200),Bup-v(100))} .param B={Bmid};индукция в магнитопроводе Первую я озвездил, что иметь возможность видеть эхо по всем трем ветвям. Тем самым удалось убедиться, что модуль coilcore, а также отчасти модуль MagCore работают правильно. Кстати я согласен, что правильная запись индуктивности должна включать мю. Но то, что значения В на выходе имеют правильную величину, говорит о том, что где-то внутри этих двух черных ящиков сидит обратная ошибка, компенсирующая первую. Теперь о двойном определении. Каждая из вышеприведенных строк объявляет свою переменную, имеющую одно и то же имя. Если снять зведу в первой, то для интерпретатора Микрокапа это тупик. Каждая переменная должна иметь свое уникальное имя. Поэтому, если есть необходимость в их дальнейшем использовании, имя одной из переменных придется изменить. Кроме того, обе функции сидят внутри модуля MagCore, а потому их эхо остается внутри его и никуда не передается. Для того, чтобы иметь возможность дальнейшей обработки результатов должна быть организована выдача наружу, либо эти функции должны быть изъяты из модуля. Хочу также обратить Ваше внимание на то, что в черных ящиках не все в порядке со знаками. Мне пришлось поменять знак в компоненте Х3, чтобы ветви заняли правильное положение. До этого получалась зеркальная картина. Но что- то еще осталось. Обратите внимание, как идет постоение картинки. Сначала она рисуется вниз, в область отрицательных значений при положительном входном воздействии, а затем уходит в плюс при минусе на входе. Отсюда и источник самовозбуждения. У Вас есть доступ к потрохам модулей. Попробуйте поменять полярность включения компонентов. Я пытался это сделать в модуле CoreCoil, но понять до конца все его завязки не получилось. Мне не удалось создать топологию этого модуля с теми же номерами узлов, как это прописано в Spice-файле. Ну и по поводу построения цикла. Сейчас идет счет всех трех ветвей одновременно. Как-то выстроить их по порядку мы не можем. В микрокапе все запаяно наглухо. Но есть возможность делать вырезки из ветвей для формирования непрерывной функции B(t). В моем варианте это делается с помощью компонента Sample and Hold. Этот компонент воспринимает команды, имеющие признак напряжения или тока. Других переменных он не признает. Поэтому в моем варианте сидит функциональный генератор напряжения, который неэлектрическую величину делает как бы электрической. Есть еще идея использовать булевские выражения для управления процессом вырезки. Микрокап в этой части вроде бы не кастрирован и может понимать такие команды, как например GOTO. Попробуйте здесь. Может, что и получится.

locik: второпях неправильно написал.I(V2) в корекойл это фактически магнитный поток.поэтому эдс Е1 равна dФ/dT*N то есть ddt(I(V2))*N.или я уже действительно забыл физику.

locik: странно.у меня со знаками все в порядке.меня с самого начала насторожило другое.сначала писал эти модели в мультисим. и все проверял достаточно долго.там со знаками тоже было все в порядке.но!! отличие было.при проверке гистерезисной модели начальная точка располагалась как и положено.при Н=0 В=-Вs и потом шла как и положено по восходящей ветке до перегиба и т. д. с той же непонятной генерацией.в микрокап начальная точка почему то Н=0 и В=0.может я действительно что то напутал с переносом моделей.попробую посмотреть в мультисим что там.

locik: никак не разберусь со знаками.может в них дело.завтра займусь.

locik: в магкоре я напутал со знаками и подключением источников Emax и Emin.только пока не разберусь как правильно сделать.но хотя бы величины их стали правильными.в точке Н=0 они равны 2*Bs и -2*Bs как и должно быть.дальше пока еще не понял в чем ошибка.

locik: извиняюсь 2*Br и -2*Br

qaki: Есть модель индуктивности с насыщающимся сердечником в виде MACRO: St_Ind.MAC Сделал ее на основе арктангенсной модели Ю.Ф. Пономарева. Ее уже можно использовать в качестве вызываемого компонента Микрокап, если добавить какой-либо shape с двумя выводами, назвав их Int1 и Int2. Открыв файл St_Ind.MAC в представленном виде, можно видеть верхнюю строчку .PARAMETERS. Сейчас я ее озвездил, т.к. используются значения параметров для феррита N87, указанные в правой группе через директиву .DEFINE. Если озвездить эти параметры и снять звезду с верхней строки, то при использовании MACRO в качестве вызываемого компонента нужные значения задаются как обычные атрибуты при его вызове. Заметьте, что параметры феррита задаются через индукцию насыщения Bs, остаточную индукцию Br и коэрцитивную силу Hc, то есть теми параметрами, которые обычно приводятся в справочниках. Никакой подгонки модели с помощью подпрограммы Model не требуется. Линейные размеры в см, площадь в кв.см, индукция в Тл, напряженность в А/м. Наименование параметров аналогично сердечнику K в Микрокапе.

locik: qaki спасибо большущее за помощь.наконец то модель почти работает.пока протестировал на синусе.правда работает только с установками "для мощных".что ей не нравится в 'стандартных" пока не разобрался.завтра займусь.

qaki: to locik Убрал я для ясности те убогие намеки на модель, что выкладывал намедни. Интереса у почтеннейшей публики они не вызвали, обсуждение не состоялось. Однако хочу сообщить Вам, что явилась идея, как очень просто организовать перемещение верхней и нижней ветвей предельного цикла по оси В, не прибегая к запоминающим ячейкам. Дело в том, что их производные не зависят от смещения. Поэтому, если строить цикл по производным, а затем интегрировать его для возвращения В, то все сшивается довольно просто. Первый вариант уже задышал, но выползает что-то весьма напоминающее не убранную постоянную интегрирования.

locik: у меня радость была преждевременной.при подключении между источником и обмоткой индуктивности имитирующей индуктивность рассеяния сходимости пока нет.и при малых значениях индукции остается постоянное смещение.если можно подробнее по вашему последнему посту про интегрирование.была такая же мысль но как ее реализовать совсем!! не понятно.все таки дифференцирование в чистом виде плохо влияет на сходимость.

qaki: Проблемы сходимости часто возникают там, где подинтегральная функция имеет разрывы производных. Так уж устроены солверы Микрокапа, что они испытывают трудности при стягивании соседних отрезков, если их производные имеют разные знаки. Индуктивность рассеяния, как мне кажется, можно записать в виде константы, вычисляемой через отношение Br/Hc и коэффициент связи. Думаю, что проблем со сходимостью это не вызовет. По поводу использования интегрирования имелось в виду вот что. После прочтения статей В. Володина и Чана возникло впечатление, что в первую очередь нужно решить задачу построения В-Н циклов, а уже из них генерировать выходные процессы. Отсюда всякие выкрутасы с перемещением ветвей предельного цикла. Однако это не совсем так. Нам нужно получить ЭДС самоиндукции обмоток с учетом гистерезиса, а для этого с неизбежностью приходится дифференцировать поток, а значит и однозначно связанную с ним В. При дифференцировании исчезает константа, выражающая смещение верхней или нижней ветвей предельного цикла. Отсюда возникает несложный алгоритм. Если рабочая точка достигла положения поворота нужно просто переходить с одной ветви на другую. При этом происходит гладкое сшивание по ЭДС самоиндукции, а саму картину цикла в координатах В-Н можно получить путем интегрирования ЭДС.

qaki: Интересные подробности реализации модели Джилса-Атертона а Микрокапе обнаруживаются при рассмотрении фазовых портретов перемещения точки, изображающей мгновенные значения токов и напряжений на плоскости I-U. На предсталенном рисунке показаны траектории первых пяти циклов синусоидального воздействия на линейную индуктивность (сверху) и индуктивность с сердечником из феррита N87 по модели Джилса-Атертона (внизу) для малосигнального случая и в начале насыщения. Прежде всего на модели Дж-Ат бросается в глаза наличие значительной невязки траекторий полуциклов. Это явный дефект программной реализации модели. Из этого следует, что модель неприменима для анализа нелинейных искажений в малосигнальной области. По этой же причине следует с осторожностью относиться к результатам анализа переходных процессов в цепях, содержащих ферромагнитные сердечники, и случае сильных воздействий. Арктангенсная модель с частичным учетом гистерезиса свободна от этих недостатков. Пример фазовых портретов при аналогичном воздействии показан ниже: При малосигнальном воздействии портреты линейной индуктивности и индуктивности с сердечником практически одинаковы. В области сильных сигналов невязка траекторий не наблюдается.

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

qaki: Не будем ругать модель Дж-Ат. В ней есть то, чего не сделали другие предшественники, начиная от нашего прапрадедушки Столетова и лорда Рэлея, а именно более или менее внятное математическое описание кривой начального намагничивания. Главным ее потребительским недостатком является то, что она не доведена до параметрического описания вида H(t) и B(t)которое собственно и необходимо для компьютерного моделирования. Не слишком удачную попытку сделать это мы имеем в Микрокапе и его родном брате Оркаде. Однако давайте от печки. В задаче есть две ипостаси - физическая и программно-алгоритмическая, которые надо соединить в виде работающей модели. Начнем с первой. Пусть на катушку с нелинейным сердечником воздействует синусоидальный ток с нулевой начальной фазой. Тут совершенно четко выделяются три первых стадии процесса. Первым шагом мы имеем начальное намагничивание. Здесь все просто. Интегрируя дифференциальное уравнение Дж-Ат, получаем зависимость В и Н от времени t, которое является аргументом входного воздействия. Понятно, что непременно использовать модель Дж-Ат на этой стадии вовсе не обязательно. Если детали начального намагничивания или слабые воздействия нас особо не интересуют, то можно воспользоваться более простым описанием, например моделью Чана. Мне так кажется более удобным арктангенсное описание. Однако здесь есть одна тонкость. Чтобы иметь инвариантность к виду входного воздействия, мы не можем использовать время как верхний предел интегрирования. Необходим другой критерий, напрямую не зависящий от времени, но однозначно связанный в физикой процесса. Вполне логичным представляется условие прекращение прироста тока намагничивания, которое завершает первую стадию процесса. Далее начинается вторая стадия - размагничивание с последующим намагничиванием противоположного знака. Исходное дифференциальное уравнение перестает действовать и теперь уже необходимо использовать гистерезисную кривую. Если бы программирование задачи велось вне рамок Микрокапа, мы бы просто воспользовались оператором GOTO для перехода к этой ветке. Но в Микрокапе этого оператора для аналоговых задач нет. Поэтому начинаются кульбиты. Машина понимает только время. Приходится физические процессы, описание которых не зависит от времени, отображать на временную ось. Возможности Микрокапа в этом плане весьма ограничены, в результате получаем огород из функциональных генераторов и ячеек хранения выборок, обильно приправленный операторами IF. Был приятно удивлен, когда обнаружил, что Микрокап в аналоговых схемах понимает операторы OR и AND. Вернемся к нашим баранам. Момент перехода от первой стадии ко второй имеет одну тонкость, на которую видимо не обратили внимания программисты Микрокапа. Для ускорения счета можно запустить траекторию второй стадии по прогнозной траектории гистерезисной кривой и, если этот прогноз не ахти, то сделав привязку кривой в исходной точке поворота (в конце стадии начального намагничивания), в конце второй стадии получим невязку с кривой начального намагничивания. В Микрокаповской реализации эта невязка для третьей стадии устраняется принудительной привязкой гистерезисной кривой в конце второй стадии. Далее следует третья стадия, когда вновь происходит размагничивание-перемагничивание, которая в Микрокапе закнчивается очередной невязкой траектории. Собственно этот процесс я попытался представить на фазовых портретах. В результате мы имеем частные циклы в виде странноватых параллелограммов, а на фазовых портретах полуциклы смещены относительно друг друга по горизонтали. Более дорогой в смысле вычислительных затрат яляется реализация второй и третьей стадии через интегрирование дифференциального уравнения соответствующей гистерезисной ветви. Но при этом нужно заметить, что не каждое описание этих веточек дает желаемые результаты. При арктангенсном описании, например, невязки не наблюдается. Модель Чана, использующая процедуру ABS, загоняет себя в тупик из-за разрыва производных. Кривая Ланжевена, о которой с восторгом отзываются Дж-Ат, имеет полюс первого рода, дающий остановку вычислительного процесса. Известные попытки протезирования этого полюса путем замены его малой окрестности более простым выражением также не всегда успешны в смысле получения сообщения о слишком малом временном шаге. Последующие стадии (полуциклы) являются повторением второй и третьей стадий, описанных выше.

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

qaki: Натолкнулся на очень простой способ построения образа петли гистерезиса. .CIR выглядит вот так : Входное воздействие пропускается через интегрирующую цепь. Далее выходное напряжение командой .DEFINE преобразуется к желаемой форме гистерезисной петли, достаточно точно воспроизводящей характеристики конкретного ферромагнетика. В качестве примера здесь использована арктангенсная модель петли. Постоянная времени работает как масштабный множитель для изменения размера петли по горизонтали. При повышении частоты петля расширяется, что можно использовать для учета частотных свойств материала. Запускаем режим .TRAN. На выходной график выводим по горизонтали V(1), по вертикали В. Получаем вот такую картинку:

locik: интересно получилось.попробую осмыслить как это применить.модель чана получилась весьма медленной т.к. из 2-х простых в общем то формул выросли почти 20 формул.и это пока еще без учета смещения по горизонтали при несимметричном намагничивании.причем непонятно как вообще спайс обрабатывает эти формулы.т.е. он работает как компилятор или транслятор этих формул.все языки высокого уровня 1 раз компилируют в исполняемый файл.этим достигается быстродействие.такое ощущение что спайс хранит эти формулы в текстовом виде и каждый раз как бы компилирует снова. непонятно тоже что же такое опция abstol.например если установить ее 1u то получается что ошибка больше чем сама величина тока.амплитуда тока порядка 100n а величина ошибки 1u.то же самое с другими опциями.

locik: с использованием функции last какие то проблемы.сделал макромодель на основе вашей схемы с использованием sample-hold.модель получилась более стабильной.смещение по H пока не получается.



полная версия страницы