| Power Electronics https://valvol.ru/ |
|
| Моделирование в SwCAD/LTspice для начинающих https://valvol.ru/topic322.html |
Страница 155 из 161 |
| Автор: | главный колбасист [ 03-10, 19:49 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Хоровиц с Хилом вам в помощь... |
|
| Автор: | valvol [ 03-10, 20:05 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): Нужен управляемый напряжением источник тока, у которого выход является произведением двух разностей напряжения. Как это сделать? Многое зависит от мощности источника тока. Если мощность небольшая, то на двух операционниках (вычисление разностей напряжений) и умножителе. Victorian писал(а): P.S. Возможно и было это где-то на форуме — как вести поиск подобной информации? В верхней правой части окна есть поисковая строка с возможностью обычного и расширенного поиска. |
|
| Автор: | Victorian [ 04-10, 12:56 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
valvol писал(а): Victorian писал(а): Нужен управляемый напряжением источник тока, у которого выход является произведением двух разностей напряжения. на двух операционниках (вычисление разностей напряжений) и умножителе. Моделировать физические компоненты (ОУ, умножители, каскады на транзисторах) не хотелось бы только для того, чтобы рассчитать тепловую мощность с принудительным обдувом. "Операционные" источники напряжения типа E задействовал для получения данных, но затем надо выходное напряжение умножить на другое, и тут проблема. Предполагал, что можно что-то каскодное сделать, и это уже делалось кем-то. Раз это не получается никак, то просто источник тока типа B использую для обработки по формуле, и вроде бы это работает, тестирую. Опять актуальна проблема, что не могу принудительно установить значения узловых потенциалов в начальный момент времени, из-за чего при заданной температуре окружающей среды для радиатора происходит его прогрев от температуры 0°C, что требует длительных вычислений. Модель предоставить не могу, так как не получается вычленить тот минимум компонентов, при котором проблема присутствует, а схему с многоуровневой иерархией никто смотреть не станет. Нашёл десяток компонентов, удалив которые схема рассыпается во что-то, в которой хотя бы часть потенциалов управляется директивой ".ic", но никакой закономерности в этом нет — без этого потенциалы не получается установить даже в изолированной части схемы, всего на одном конденсаторе. При этом в логах нет никаких подсказок. Удобно не ждать примерно час работы модели (что несколько дней на слабеньких компьютерах), а проверять свои предположения, установив начальные значения и затем посмотреть динамику изменения, это своего рода "игра в морской бой". |
|
| Автор: | Victorian [ 04-10, 15:26 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
valvol писал(а): Выкладывайте модель. Попробую, сделал тест с минимальными количеством элементов. Надо убрать оба RU1 и RU2, только тогда начинает работать .ic Странность в том, что устанавливаемое директивой .ic напряжение V1 и V2 недостаточно для работы варисторов, сами варисторы никуда не подключены, токи через них не протекают и кроме начального условия, никакие потенциалы на них не воздействуют. Ещё более странно то, что совершенно изолированная часть схемы с потенциалом TEST тоже перестаёт работать!!! test.asc Код: Version 4 SHEET 1 11444 4840 WIRE 32 80 16 80 WIRE 80 80 32 80 WIRE -800 128 -848 128 WIRE 80 128 80 80 WIRE -848 144 -848 128 WIRE -848 224 -848 208 WIRE 80 256 80 208 WIRE 80 256 32 256 WIRE 80 304 80 256 WIRE 32 432 16 432 WIRE 80 432 80 384 WIRE 80 432 32 432 FLAG 32 80 V1 FLAG 32 432 V2 FLAG -848 224 0 FLAG -800 128 TEST FLAG 32 256 0 SYMBOL my_models\\TDK\\Varisrots\\SIOV\\monolithic\\SIOV 64 112 R0 WINDOW 0 53 34 Left 2 WINDOW 38 53 62 Left 2 SYMATTR InstName RU1 SYMATTR SpiceModel S14K250 SYMBOL my_models\\TDK\\Varisrots\\SIOV\\monolithic\\SIOV 64 288 R0 WINDOW 0 53 32 Left 2 WINDOW 38 53 60 Left 2 SYMATTR InstName RU2 SYMATTR SpiceModel S14K250 SYMBOL cap -864 144 R0 WINDOW 0 39 14 Left 2 WINDOW 3 36 49 Left 2 SYMATTR InstName C1 SYMATTR Value 500F TEXT -864 280 Left 2 !.tran 0 {timer} {begin} {0.3us} startup\n.params timer=30ms begin=0ms\n.options noopiter=1 gminsteps=0 method=Gear ; method=trap\n.options gmin=1e-10\n.options abstol=1e-10\n.options reltol=0.003\n.options cshunt=1e-15 TEXT 208 472 Right 2 !.ic V(V1)=+10 V(V2)=-10 TEXT -856 80 Left 2 !.ic V(TEST)=3.1415926 SIOV.asy Код: Version 4 SymbolType CELL LINE Normal 16 88 16 96 LINE Normal -12 38 -34 38 LINE Normal 0 24 0 88 LINE Normal 32 24 0 24 LINE Normal 16 16 16 24 LINE Normal 32 88 0 88 LINE Normal 32 24 32 88 LINE Normal 42 81 -12 38 TEXT -23 38 Bottom 2 U WINDOW 0 36 40 Left 2 SYMATTR Prefix X SYMATTR ModelFile SIOV.SLB SYMATTR SpiceModel S20K130 SYMATTR Description Varistor SIOV PIN 16 16 NONE 0 PINATTR PinName A PINATTR SpiceOrder 1 PIN 16 96 NONE 0 PINATTR PinName B PINATTR SpiceOrder 2 Библиотечный элемент Epcos (TDK) был скачен отсюда: https://ltwiki.org/files/LTspiceIV/lib/sym/SBORKA/Varistor/SIOV.lib |
|
| Автор: | valvol [ 04-10, 21:02 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): ...потенциалы не получается установить даже в изолированной части схемы, всего на одном конденсаторе. В изолированной, это как? В SPICE симуляторах не должно быть каких-то фрагментов модели, не имеющих гальванической связи с общим узлом (GND или 0)! Victorian писал(а): Странность в том, что устанавливаемое директивой .ic напряжение V1 и V2 недостаточно для работы варисторов, сами варисторы никуда не подключены, токи через них не протекают и кроме начального условия, никакие потенциалы на них не воздействуют. Это разряжается собственная ёмкость варистора через его внутреннее сопротивление утечки. Так как варистор изолирован, то во внешних цепях тока нет. Судя по всему, модель ведет себя вполне адекватно. Попробуйте также зарядить реальный варистор и посмотрите, долго ли на нем будет сохраняться первоначально заданный потенциал. |
|
| Автор: | Victorian [ 05-10, 10:25 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
valvol писал(а): Victorian писал(а): ...потенциалы не получается установить даже в изолированной части схемы, всего на одном конденсаторе. В изолированной, это как? В SPICE симуляторах не должно быть каких-то фрагментов модели, не имеющих гальванической связи с общим узлом (GND или 0)! Разумеется, связь по GND (что и есть цепь 0) имеется. Ради интереса попробовал оставить в схеме только один варистор с плавающим потенциалом, на плавающий потенциал программа не ругается (кроме предупреждения в логах), но зато варистор не "зажат", и потенциал на нём не устанавливается, но зато работает директива ".ic". valvol писал(а): Victorian писал(а): Странность в том, что устанавливаемое директивой .ic напряжение V1 и V2 недостаточно для работы варисторов, сами варисторы никуда не подключены, токи через них не протекают и кроме начального условия, никакие потенциалы на них не воздействуют. Это разряжается собственная ёмкость варистора через его внутреннее сопротивление утечки. Так как варистор изолирован, то во внешних цепях тока нет. Судя по всему, модель ведет себя вполне адекватно. Попробуйте также зарядить реальный варистор и посмотрите, долго ли на нем будет сохраняться первоначально заданный потенциал. Достаточно долго, чтобы увидеть это осциллографом. Всё зависит от напряжения. Тем более, что в узле V1 мгновенно заряжается конденсатор C5 ёмкостью 1000μF напряжением 10V с бесконечной мощностью. Сами вопросы странные — достаточно Run мою модель, чтобы всё увидеть. Я ниже привожу сильно упрощённый вариант — всего с одним "зажатым" варистором, параллельным идеальному конденсатору огромной ёмкости, который заражается и бесконечно держит потенциал в отсутствии варистора, но директива ".ic" не работает вообще при включенном параллельно варисторе. В данном случае странно то, что если не буду пытаться задать начальный потенциал варисторам, то .ic по потенциалам работает везде. Достаточно "зажать" начальным потенциалом этот варистор, как директива перестаёт работать везде, в том числе на не связанном конденсаторе C1 ёмкостью 500F. Но достаточно один конец варистора оторвать от GND, таким образом не зажимая его начальным напряжением, как директива ".ic" начинает работает везде. Аналогично с подобной ошибкой ведёт себя модель микросхемы KA3525A Мне пришлось отключать цепи схемы от выводов INV, NI, CMP, SHD, SS, VRF, чтобы заработала директива ".ic". Причём в этих цепях не пытаюсь установить начальный потенциал директивами. Что такое "волшебное" спрятано в модели микросхемы, что она ведёт себя неадекватно? И модель ведёт себя очень неадекватно, если минус её питания смещён от GND на какую-то величину — приводит к непонятным фатальным ошибкам моделирования. Ещё одна странность: задав начальный потенциал идеальному конденсатору C1 ёмкостью 500F, вижу его разряд со скоростью 6.1V/s, но току просто негде протекать, кроме как через сам конденсатор, которому задал дополнительные параметры нулевыми. И этот ток величиной 3.0pA действительно протекает через него, но скорость разряда не соответствует ёмкости конденсатора — по расчётам имитируется конденсатор ёмкостью "0.5pF" вместо указанных явно "500F". Убираю единицу измерения у C1, теперь там просто "500", как скорость разряда меняется на 0. Экспериментируя, получаю при удалённом в схеме варисторе следующие непонятные ситуации: 1) При поставленной единице измерения Фарада появляется увеличивающийся ток утечки до 3pA в конце интервала моделирования, вопреки заданному параллельному сопротивлению, равному 0, для которого должен быть бесконечный ток утечки. Напряжение при этом ведёт себя так, словно это конденсатор 0.5pF. Каким образом наличие единицы измерения приводит у уменьшению расчётной ёмкости на 15 порядков? 2) Задаю в модели конденсатора параллельное сопротивление "1000000T", как ток утечки тоже ведёт себя странно — при практически неизменном напряжении наоборот, ток начинает убывать до нуля от теоретически правильного значения в нулевой момент времени — 0.003fA. При этом напряжение на конденсаторе не изменяется вовсе! — емкость конденсатора соответствует значению более 500F. 3) Изменяю сопротивление на "1Meg", и получаю совсем странный результат — напряжение соответствует модели в нулевой момент времени, а затем мгновенно изменяется на "4.121443e-025fV". Ток тоже мгновенно уменьшается в ноль от начального значения "3.1415925µA". 4) Убираю единицу измерения в "500F", и ток также мгновенно уменьшается в ноль от значения "3.1415925µA", но при этом напряжение практически не изменяется (скорость убывания нулевая, меньше минимальной разрядности). Чем всё это можно объяснить? test.asc Код: Version 4
SHEET 1 11444 4840 WIRE -480 80 -528 80 WIRE -416 80 -480 80 WIRE -800 128 -848 128 WIRE -416 128 -416 80 WIRE -848 144 -848 128 WIRE -528 144 -528 80 WIRE -848 224 -848 208 WIRE -528 256 -528 208 WIRE -480 256 -528 256 WIRE -416 256 -416 208 WIRE -416 256 -480 256 FLAG -480 80 V1 FLAG -848 224 0 FLAG -800 128 TEST FLAG -480 256 0 SYMBOL polcap -544 144 R0 WINDOW 3 24 56 Left 2 SYMATTR Value 1000µ SYMATTR InstName C5 SYMATTR Description Capacitor SYMATTR Type cap SYMBOL my_models\\TDK\\Varisrots\\SIOV\\monolithic\\SIOV -432 112 R0 WINDOW 0 53 34 Left 2 WINDOW 38 53 62 Left 2 SYMATTR InstName RU2 SYMATTR SpiceModel S14K250 SYMBOL cap -864 144 R0 WINDOW 0 39 14 Left 2 WINDOW 3 36 49 Left 2 SYMATTR InstName C1 SYMATTR Value 500F SYMATTR SpiceLine V=0 Irms=0 Rser=0 Lser=0 Rpar=0 Cpar=0 TEXT -864 280 Left 2 !.tran 30ms TEXT -392 32 Right 2 !.ic V(V1)=+10 TEXT -856 80 Left 2 !.ic V(TEST)=3.1415926 |
|
| Автор: | Victorian [ 05-10, 13:37 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Насколько я понял: 1. В модели микросхемы KA3525A, как и в модели варистора от TDK, есть что-то, что приводит к ошибке плавающей арифметики, из-за чего происходит игзепшен, приводящий к завершению части программы, выполняющей настройку независимых начальных условий. Один из побочных эффектов — прекращение назначения значений узловых потенциалов. Настройка токов происходит успешно ранее. Возможно, есть ещё какие-то побочные эффекты, в своё время о них узнаем. Проблема в том, что никакой диагностики в лог не пишется. 2. Емкость конденсатора 500F воспринимается как 500f, то есть 500fF, а это не 500 фарад, а 500 фемтофарад. 3. Странное поведение с разрывными значениями токов и напряжений в примере с конденсатором также является внутренней ошибкой симулятора. Теперь вопрос — как же можно доверять этому инструменту? Хорошо бы изучить, как он устроен "внутри", и получить список существующих побочных эффектов с объяснением ситуаций, где они происходят. |
|
| Автор: | Victorian [ 05-10, 15:42 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
В схеме с микросхемой SG3525A возникает такая ошибка: Код: Analysis: Time step too small; initial timepoint truble with schmitt-instance a:u1:7 В нетлисте это соответствует выводу "dch": Код: XU1 _EA EA _Sync OSCoutput Ct Rt dch Softstart EAout _Shutdown outA 0 N040 outB Vcc Vref sg3525a Однако, появляется она в том случае, если конденсаторам задаю такие значения на входах микросхемы: _Shutdown "22µ ic=12V" Softstart "2.2µ ic=12V" Без принудительной установки заряда этого не происходит. На схеме микросхему называю KA3525A. Почему происходит такая ошибка, на выходе, на первый взгляд никак не связанном с этими входами? |
|
| Автор: | valvol [ 05-10, 20:59 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): ...никакой диагностики в лог не пишется. Диагностика пишется, но обычно она только путает. Нужно просто выработать определенный стиль в составлении моделей, который минимизирует возможные проблемы. Читайте тему. Здесь об этом уже много написано. Victorian писал(а): 2. Емкость конденсатора 500F воспринимается как 500f, то есть 500fF, а это не 500 фарад, а 500 фемтофарад. Разумеется. Могли бы не совершать этого открытия, если бы внимательно читали документацию. По умолчанию, без всяких добавок, конденсаторы в Фарадах, индуктивности в Генри, а сопротивления в Омах. Victorian писал(а): 3. Странное поведение с разрывными значениями токов и напряжений Разрывные в каком смысле? А вообще надо избегать нарушений законов коммутации. Т.е. резких изменений напряжений на конденсаторах и токов в индуктивностях. Это вполне закономерно будет приводить к ошибкам симуляции, т.к. с точки зрения математики эквивалентно делению на ноль. Victorian писал(а): Теперь вопрос — как же можно доверять этому инструменту? Можете просто обидеться и уйти. Или продолжить, изучая документацию, набираясь опыта и набивая шишки. Ни кто не говорил, что будет просто. Получение знаний всегда связано с некоторыми трудозатратами. Причем главным препятствием к восприятию нового являются собственные стереотипы.
|
|
| Автор: | valvol [ 05-10, 21:14 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): Почему происходит такая ошибка, на выходе, на первый взгляд никак не связанном с этими входами? Симулятор указывает ошибку там, где её обнаруживает. Однако возникшая ошибка может являться следствием какого-либо предыдущего процесса. Victorian писал(а): Хорошо бы изучить, как он устроен "внутри", и получить список существующих побочных эффектов с объяснением ситуаций, где они происходят. Без проблем. Можете найти исходник SPICE3 на сайте Калифорнийского университета в Беркли. На этом движке построен LTspice. |
|
| Автор: | Victorian [ 06-10, 07:29 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
valvol писал(а): Victorian писал(а): Почему происходит такая ошибка, на выходе, на первый взгляд никак не связанном с этими входами? Симулятор указывает ошибку там, где её обнаруживает. Однако возникшая ошибка может являться следствием какого-либо предыдущего процесса. В библиотеке ValVol модель закрыта от изучения, потому и спрашиваю. Предыдущего процесса нет, потому что на этих двух входах в нулевой момент времени на конденсаторах устанавливаю напряжение 10V, и оно практически неизменно сохраняется во время моделирования, без скачков. При нулевом значении напряжения симуляция такую ошибку не вызывает. Интуитивно догадываюсь, но понимания нет, почему предустановленное напряжение на этих двух входах вызывает отклик ошибкой по совершенно другому выходу. |
|
| Автор: | valvol [ 06-10, 10:17 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): В библиотеке ValVol модель закрыта от изучения, потому и спрашиваю. Нет, там ничего не закрыто. Смотрите библиотечный файл ValVol.lib в архиве ValVol.zip. Там собрано текстовое описание (в SPICE формате) всех моделей. |
|
| Автор: | Victorian [ 02-11, 00:01 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
valvol писал(а): Смотрите библиотечный файл ValVol.lib Спасибо, воспользовался предложением. Немного модифицировал исходную модель, и описанные проблемы исчезли. От библиотеки варисторов TDK пришлось отказаться, вместо неё сделал собственную модель, которая не вызывает проблем и более адекватно ведёт себя. Вчера мне на компьютере нарастили память, и начальные этапы расчёта LTspice, которые занимали более получаса, выполняются не более десятка секунд. Вроде при этом исчезло большинство других проблем. И сама модель стала считаться намного быстрее. Заодно администраторы закрыли возможность писать в форум на работе, что полезно — стал разбираться самостоятельно, и это как плавать: надо самому. Пропало искушение выполнять работу быстрее, и теперь делаю как делается, зато тщательно прорабатывая детали. Всё равно как не старайся, медленный компьютер всю работу сводит на нет. Чтобы просчитать двадцать минут работы схемы, придётся непрерывно считать неделю. Однако осталось много непонятного: 1. Есть библиотека моделей, и по сути это база данных. Интересно было бы составлять таким образом свои таблицы, не генерируя сотни повторяющихся моделей ".subckt …" с незначительными изменениями некоторых параметров. Должна быть какая-то недокументированная директива, которая поддерживает это. Пока не нашёл. 2. Хотелось бы получать перечни элементов, по аналогии тому, как это сделано с компонентами Analog Devices — чтобы там указывалось не модель от третьих производителей, а мог сам указать наименование бренда, название и обозначение компонента. Как это это сделано для операционных усилителей от Analog Devices, вроде только файлы .asy и .lib задействованы, и там не нашёл ничего необычного. Какая-то недокументированная хитрость. 3. Похоже, что библиотеки содержат какие-то директивы, позволяющие конструировать пользовательские панели для заполнения параметров модели. Примером служат те же операционные усилители от Analog Devices, где на панели кнопки, позволяющие открыть пример применения и схему для тестирования работоспособности модели. Непонятно даже, где хранится этот библиотечный код, вроде кроме .lib там для этого нет ничего. 4. Из руководства непонятно, как задавать температурные коэффициенты в моделях, там какая-то квадратичная интерполяция, но нет формулы, поясняющей их использование. 5. Параметр {temp} является глобальным, с каким-то значением по-умолчанию? Из описания следует, что надо включать его в параметры модели в тех случаях, когда температура компонента отличается от заданной для других. Означает ли это, что для другой температуры, например для +85 °C, можно не включать {temp} в каждый критический компонент, а задать температуру для схемы глобально? |
|
| Автор: | Victorian [ 02-11, 00:12 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
главный колбасист писал(а): Хоровиц с Хилом вам в помощь... Я очень люблю классику перечитывать, это напоминает студенческие годы. Однако, столкнулся с проблемой, и нужен намёк, где искать подвох. Не разобрался с такой мелочью: есть модель трансформатора тока, который описывает реально работающий трансформатор из реально существующей схемы. Она представляет собой просто две 100%-связанные индуктивности с величинами, взятыми с физического оригинала. На вторичной обмотке трансформатора оставил только резистор в качестве нагрузки, и сделал так как в практической модели, так и в упрощённой, где задаю похожий сигнал, переключая источники тока. Модель работает в упрощенном виде идеально, а в полной схеме непонятный глюк — протекающий через первичный виток ток имеет прямоугольную форму с незначительными импульсными помехами, а во вторичной обмотке вижу только импульсы, после которых значение убывает до нуля, теряя часть периода с постоянной составляющей, и разумеется вижу точно такой же формы напряжение на этой обмотке. А напряжение на первичной обмотке (витке) имеет форму напряжения на вторичной обмотке, с учётом коэффициента трансформации. Логично увидеть на первичной обмотке аналогичное активное сопротивление, то есть форма напряжения на обмотке должна повторять форму тока. В модели временно нет подмагничивания, лишь две катушки, которые должны переменный сигнал с частотой порядка полсотни килогерц передавать без искажения. Почему же изменяется форма тока, где искать подсказку? P.S. В принципе модель работает, усреднённое напряжение этих импульсов показывает работоспособность обратной связи по току, но при этом масштаб значения тока не соответствует расчётному, приходится вносить масштабную поправку, и ещё не верифицировал всю модель в этой части, а остальное работает идеально, как на физическом макете. |
|
| Автор: | valvol [ 02-11, 20:55 ] |
| Заголовок сообщения: | Re: Моделирование в SwCAD/LTspice для начинающих |
Victorian писал(а): 4. Из руководства непонятно, как задавать температурные коэффициенты в моделях... 5. Параметр {temp} является глобальным, с каким-то значением по-умолчанию? Здесь нет ни какой магии. Параметр TEMP просто хранит значение температуры. По-умолчанию 27 гр.С. Можете использовать его как хотите, применительно к конкретной модели. Victorian писал(а): Модель работает в упрощенном виде идеально, а в полной схеме непонятный глюк ... Логично увидеть на первичной обмотке аналогичное активное сопротивление, то есть форма напряжения на обмотке должна повторять форму тока. Надо также учитывать ток намагничивания ТТ. Увеличьте индуктивности, скажем, на порядок и картинка станет приятнее... |
|
| Страница 155 из 161 | Часовой пояс: UTC + 4 часа |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|