|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 30)
|
Dec 27 2008, 13:19
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Цитата(Jurenja @ Dec 27 2008, 14:54)  Встроенной модели такого конденсатора в PSpice нет, но можно сделать, как вы уже написали макромодель (subckt). С помощью обычной емкости и зависимых источников. Сообщите зависимость c(v), которую необходимо реализовать. if (x<3) { p1=0.000000000029209 p2=-0.000000000032376 p3=-0.000000000302083 p4=0.00000000155; p5=1; } else if (x<9) { p1=-0.000000000001668 p2=0.000000000016579 p3=-0.000000000081081 p4=0.00000000105; p5=3; } else if (x<13) { p1=0.00000000000823 p2=-0.000000000044843 p3=-0.000000000062311 p4=0.0000000008; p5=9; } else if (x<20) { p1=-0.000000000000087 p2=0.000000000002389 p3=-0.000000000026007 p4=0.00000000036; p5=13; } else if (x<50) { p1=0 p2=0.000000000000078 p3=-0.000000000005424 p4=0.000000000265; p5=20; } x = x-p5; y=p4+x*(p3+x*(p2+x*p1)); Ну это я так, для примера выложил. Емкости все разные, с разными формулами. Интересует вид (описание) модели, а уж в источник тока или напряжения (или еще какой :-)), т.е. куда надо - туда и впишу. Да, эта формула не описывает поведение емкости ниже 0 (отрицательные) и выше 50, т.е. это просто пример. Цитата(Lonesome Wolf @ Dec 27 2008, 14:55)  Пользовался моделью диода, там есть возможность задать вольт-фарадную характеристику. При необходимости, используйте два встречно включенных элемента. По приведенной выше формуле вряд ли получиться воспользоваться таким способом... А еще и покруче будут варианты вычислений...
|
|
|
|
|
Dec 27 2008, 13:30
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Цитата(Пушкарев Михаил @ Dec 27 2008, 16:26)  Емкости и индуктивности, управляемые напряжением, можно моделировать в Orcad. Так уж завелось, что пользуюсь микрокапом... В принципе поставить Оркад есть возможность, 16 вроде. А что там за модель такая? И любой закон изменения можно вписать?
|
|
|
|
|
Dec 27 2008, 14:05
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Либо я тормознул, либо уже путаю чего то - ведь в микрокапе емкость конденсатора можно любым выражением задавать??? т.е. вписывать туда просто свою формулу?
Только вот с условиями не умеет...
Вот упростил формулу, для более удобного переваривания:
if (V(C1)<3) 1.55E-09+(V(C1)-1)*(-3.02083E-10+(V(C1)-1)*(-3.2376E-11+(V(C1)-1)*2.9209E-11)) else if (V(C1)<9) 1.05E-09+(V(C1)-3)*(-8.1081E-11+(V(C1)-3)*(1.6579E-11+(V(C1)-3)*-1.668E-12)) else if (V(C1)<13) 8E-10+(V(C1)-9)*(-6.2311E-11+(V(C1)-9)*(-4.4843E-11+(V(C1)-9)*8.23E-12)) else if (V(C1)<20) 3.6E-10+(V(C1)-13)*(-2.6007E-11+(V(C1)-13)*(2.389E-12+(V(C1)-13)*-8.7E-14)) else if (V(C1)<50) 2.65E-10+(V(C1)-20)*(-5.424E-12+(V(C1)-20)*(7.8E-14+(V(C1)-20)*0))
где V(C1) - собственно напряжение на этом конденсаторе.
|
|
|
|
|
Dec 27 2008, 19:19
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(sultantiran @ Dec 27 2008, 15:19)  if (x<3) { p1=0.000000000029209 p2=-0.000000000032376 p3=-0.000000000302083 p4=0.00000000155; p5=1; } else if (x<9) { p1=-0.000000000001668 p2=0.000000000016579 p3=-0.000000000081081 p4=0.00000000105; p5=3; } else if (x<13) { p1=0.00000000000823 p2=-0.000000000044843 p3=-0.000000000062311 p4=0.0000000008; p5=9; } else if (x<20) { p1=-0.000000000000087 p2=0.000000000002389 p3=-0.000000000026007 p4=0.00000000036; p5=13; } else if (x<50) { p1=0 p2=0.000000000000078 p3=-0.000000000005424 p4=0.000000000265; p5=20; } x = x-p5; y=p4+x*(p3+x*(p2+x*p1));
Ну это я так, для примера выложил... Что-то вот такое получилось, походу старался писать комментарии:... .subckt Cnl pin1 pin2 * * p1...p5 polynomes value tables e_p1 p1 0 TABLE {v(pin1,pin2)} + -100, 0.000000000029209 + 2.9999, 0.000000000029209 + 3.0001, -0.000000000001668 + 8.9999, -0.000000000001668 + 9.0001, 0.00000000000823 + 12.9999, 0.00000000000823 + 13.0001, -0.000000000000087 + 19.9999, -0.000000000000087 + 20.0001, 0 e_p2 p2 0 TABLE {v(pin1,pin2)} + -100, -0.000000000032376 + 2.9999, -0.000000000032376 + 3.0001, 0.000000000016579 + 8.9999, 0.000000000016579 + 9.0001, -0.000000000044843 + 12.9999, -0.000000000044843 + 13.0001, 0.000000000002389 + 19.9999, 0.000000000002389 + 20.0001, 0.000000000000078 e_p3 p3 0 TABLE {v(pin1,pin2)} + -100, -0.000000000302083 + 2.9999, -0.000000000302083 + 3.0001, -0.000000000081081 + 8.9999, -0.000000000081081 + 9.0001, -0.000000000062311 + 12.9999, -0.000000000062311 + 13.0001, -0.000000000026007 + 19.9999, -0.000000000026007 + 20.0001, -0.000000000005424 e_p4 p4 0 TABLE {v(pin1,pin2)} + -100, 0.00000000155 + 2.9999, 0.00000000155 + 3.0001, 0.00000000105 + 8.9999, 0.00000000105 + 9.0001, 0.0000000008 + 12.9999, 0.0000000008 + 13.0001, 0.00000000036 + 19.9999, 0.00000000036 + 20.0001, 0.000000000265 e_p5 p5 0 TABLE {v(pin1,pin2)} + -100, 1 + 2.9999, 1 + 3.0001, 3 + 8.9999, 3 + 9.0001, 9 + 12.9999, 9 + 13.0001, 13 + 19.9999, 13 + 20.0001, 20 * * "x = x-p5" expression e_Xshift Xshift 0 value={v(pin1,pin2)-v(p5)} * * "y=p4+x*(p3+x*(p2+x*p1))" expression, c(v) function e_Cfactor Cfactor 0 + value={v(p4)+v(Xshift)*(v(p3)+v(Xshift)*(v(p2)+v(Xshift)*v(p1)))} * * Ideal analog buffer for voltage of external pins E_pin pin 0 value={v(pin1,pin2)} * * Voltage source (zero value) is sensor of current Vsensor pin Vsens 0V * * Reference Capacitor for current measure C_ref Vsens 0 1nF * * Icap Voltage value node is equal current of C_ref * 1Meg factor is equal 1/1nF H_Icap Icap 0 Vsensor 1Meg * * Output current for simulate nonlinear capacitor. G_out pin1 pin2 value={v(Icap)*v(Cfactor)} * .ends CnlВ точках "стыковки" (3, 9, 13 и 20) в области +-0.0001 есть "всплески" результирующей функции. Это скорее всего из-за конструкции "x = x-p5" и из-за того, что PSpice не "умеет" обрабатывать конструкции "IF" и пришлось сделать кусочно-линейные аппроксимации коэффициентов полинома на заданном интервале. На картинке c(v).png "всплески" выглядят более широкими из-за того, что шаг моделирования равен 0.2. На картинке c(v)_without_spikes.png "всплески" отсунствуют, т.к. расчетные точки не попадают в точки "стыковки". ЗЫ. Посмотрел еще раз встроенную модель конденсатора, в ней возможно задать нелинейность (полином) 2-го порядка с помощью параметров VC1 и VC2. В результате емкость будет умножаться на полином 1+VC1*V+VC2*V**2. ЗЫ2. Макромодель можно сделать через полином намного большего порядка, поэтому если избавиться от "IF" то функцию можно сделать гладкой. Цитата(sultantiran @ Dec 27 2008, 16:05)  Только вот с условиями не умеет... да, переходов по условию нету к сожалению...
Эскизы прикрепленных изображений
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Dec 27 2008, 20:52
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Ну Вы МОЛОДЕЦ! Нет слов, чтоб выразить благодарность! При беглом взгляде - графики те!!! Спасибо, я в синтаксисе спайса не особо силен, вот и парюсь :-)
Емкость только в нФ должна была получиться, но это уже мелочи :-)
А вот на ЗЫ и ЗЫ2 можно поподробней?
Можно схему в виде картинки, в которой Вы это реализовали? Это ведь Оркад у Вас? У меня просто его нет.
|
|
|
|
|
Dec 28 2008, 14:00
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(sultantiran @ Dec 27 2008, 22:52)  Ну Вы МОЛОДЕЦ! Нет слов, чтоб выразить благодарность! При беглом взгляде - графики те!!! Спасибо, я в синтаксисе спайса не особо силен, вот и парюсь :-) Емкость только в нФ должна была получиться, но это уже мелочи :-) А вот на ЗЫ и ЗЫ2 можно поподробней? Можно схему в виде картинки, в которой Вы это реализовали? Это ведь Оркад у Вас? У меня просто его нет. да, емкость д.б. в нФ, значения полинома были порядка 1e-9... В макромодели одна строчка неправильная, найдите строчку " H_Icap Icap 0 Vsensor 1Meg" и замените ее на " H_Icap Icap 0 Vsensor 1e9" и будут нанофарады. OrCAD у меня есть, но использовал не его, а MicroSim DesignLab, но это не принципиально. Вообще-то это должно работать в любом Spice-подобном симуляторе. Тот текст, который жирным шрифтом, скопируйте в любой текстовый редактор и сохраните в виде файла. А потом в своем симуляторе подключить его в качестве модели к символу с двумя выводами, только полярность напряжения д.б. правильной. Схемы нету, вернее есть фрагменты на листке бумаги. Модель писал сразу именно в таком тесктовом виде, это не трансляция из графической схемы. Попробуйте нарисовать ее сами - специально писал комментарии. Если все таки не получится, то нарисую про ЗЫ (конденсатор с моделью): CFDBCK 3 33 <model name> 10pF .MODEL <model name> CAP [model parameters] ------------------------------------------------- Model Parameters, Description, Units, Default ------------------------------------------------- C, capacitance multiplier, -, 1.0 TC1, linear temperature coefficient, 1/°C, 0.0 TC2, quadratic temperature coefficient, 1/°C**2, 0.0 T_ABS, absolute temperature, °C, - T_MEASURED, measured temperature, °C, - T_REL_GLOBAL, relative to current temperature, °C, - T_REL_LOCAL, relative to AKO model temperature, °C, - VC1, linear voltage coefficient, 1/volt, 0.0 VC2, quadratic voltage coefficient, 1/volt**2, 0.0 про ЗЫ2: если можно будет сделать полином более высокого порядка и без разрывов на поддиапазоны, то у макромодели не будет всплесков и макромодель будет проще.
Сообщение отредактировал Jurenja - Dec 28 2008, 14:04
Эскизы прикрепленных изображений
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Dec 28 2008, 18:26
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Моделька вроде не ругается, но никак не могу получить такой же график, как у Вас. Что в Дизайнлабе подразумевается под MAX(I(Epin))/(2*pi*1Meg) и vpin? В тексте модели не могу найти Epin и vpin. Есть источник E_pin и вывод pin. Поясните плиз. И если можно, расшифруйте синтаксис для ИТУТ Н1_Icap.
|
|
|
|
|
Dec 28 2008, 23:04
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(sultantiran @ Dec 28 2008, 20:26)  Моделька вроде не ругается, но никак не могу получить такой же график, как у Вас. Что в Дизайнлабе подразумевается под MAX(I(Epin))/(2*pi*1Meg) и vpin? В тексте модели не могу найти Epin и vpin. Есть источник E_pin и вывод pin. Поясните плиз. И если можно, расшифруйте синтаксис для ИТУТ Н1_Icap. ниже полный нетлист для моделирования, в нем все, что не нашлось: Circuit : CNL_T * * *********************************************************** * * * * * NX-SPICE Version 1.31B * * * Copyright © 1983,1986 - Personal CAD Systems, Inc. * * * * * * File In : CNL_T.NLT * * * File Out : CNL_T.SPI * * * Log File : NXSPICE.LOG * * * * * *********************************************************** * * .WIDTH IN=80 OUT=132 * * * ELEMENTS * * X_TRAN OUT 0 CNL X PIN 0 CNL R_TRAN IN OUT 1K * * Top File Cnl_t.add .Options Itl5=0 Vntol=200mV Abstol=20uA + NoPage Node Acct *.Incl d:\pcad\SymPrt1l\add\W_L.mod * .Probe * * v_GND $g_GND 0 * Vcc $g_GND $g_Vcc -5 .Lib d:\pcad\SymPrt1l\add\S_Analog.lib .lib d:\pcad\SymPrt1l\add\BSIM3v2.mod * V_in In 0 pwl 0ns 50v 10ps 0v Cout Out 0 1fF ; very small * Epin pin V_ACsource value={Vpin} V_ACsource V_ACsource 0 AC=1 * .subckt Cnl pin1 pin2 * * p1...p5 polynomes value tables e_p1 p1 0 TABLE {v(pin1,pin2)} + -100, 0.000000000029209 + 2.9999, 0.000000000029209 + 3.0001, -0.000000000001668 + 8.9999, -0.000000000001668 + 9.0001, 0.00000000000823 + 12.9999, 0.00000000000823 + 13.0001, -0.000000000000087 + 19.9999, -0.000000000000087 + 20.0001, 0 e_p2 p2 0 TABLE {v(pin1,pin2)} + -100, -0.000000000032376 + 2.9999, -0.000000000032376 + 3.0001, 0.000000000016579 + 8.9999, 0.000000000016579 + 9.0001, -0.000000000044843 + 12.9999, -0.000000000044843 + 13.0001, 0.000000000002389 + 19.9999, 0.000000000002389 + 20.0001, 0.000000000000078 e_p3 p3 0 TABLE {v(pin1,pin2)} + -100, -0.000000000302083 + 2.9999, -0.000000000302083 + 3.0001, -0.000000000081081 + 8.9999, -0.000000000081081 + 9.0001, -0.000000000062311 + 12.9999, -0.000000000062311 + 13.0001, -0.000000000026007 + 19.9999, -0.000000000026007 + 20.0001, -0.000000000005424 e_p4 p4 0 TABLE {v(pin1,pin2)} + -100, 0.00000000155 + 2.9999, 0.00000000155 + 3.0001, 0.00000000105 + 8.9999, 0.00000000105 + 9.0001, 0.0000000008 + 12.9999, 0.0000000008 + 13.0001, 0.00000000036 + 19.9999, 0.00000000036 + 20.0001, 0.000000000265 e_p5 p5 0 TABLE {v(pin1,pin2)} + -100, 1 + 2.9999, 1 + 3.0001, 3 + 8.9999, 3 + 9.0001, 9 + 12.9999, 9 + 13.0001, 13 + 19.9999, 13 + 20.0001, 20 * * "x = x-p5" expression e_Xshift Xshift 0 value={v(pin1,pin2)-v(p5)} * * "y=p4+x*(p3+x*(p2+x*p1))" expression, c(v) function e_Cfactor Cfactor 0 + value={v(p4)+v(Xshift)*(v(p3)+v(Xshift)*(v(p2)+v(Xshift)*v(p1)))} * * Ideal analog buffer for voltage of external pins E_pin pin 0 value={v(pin1,pin2)} * * Voltage source (zero value) is sensor of current Vsensor pin Vsens 0V * * Reference Capacitor for current measure C_ref Vsens 0 1nF * * Icap Voltage value node is equal current of C_ref * 1e9 factor is equal 1/1nF H_Icap Icap 0 Vsensor 1e9 * * Output current for simulate nonlinear capacitor. G_out pin1 pin2 value={v(Icap)*v(Cfactor)} * .ends Cnl .Param Vpin=0v .Step Param Vpin 0.1V 50V 0.2V .AC lin 100 999kHz 1MegHz * *.DC V_ACsource -1V 51V 1mV * *.tran 5ns 10ns 0ns 50ps * * End File Cnl_t.add * * * .ENDПроводится АС анализ, он проводится много раз (инструкция .Step) при этом напряжение на емкости меняется от 0 до 50 В. MAX(I(Epin))/(2*pi*1Meg) - это для программы Microsim Probe формула расчета емкости C=I/(2*pi*F), MAX(I(Epin)) - это значение тока через емкость при частоте 1 МГц, т.к. AC анализ проводится в диапазоне 999кГц-1МГц и максимум тока для емкости будет на частоте 1МГц. При параметрическом анализе расчет проводится много раз, в результате получаем график c(v). Попробуйте запустить на моделирование нетлист, который выше, затем загрузите результаты (.dat файл) в Microsim Probe, затем в Microsim Probe нужно на панели нажать кнопочку Performance Analysis, а только после этого выводить кривую MAX(I(Epin))/(2*pi*1Meg). Вам совсем необязательно повторять один-в-одим мое моделирование, вы можете потестировать емкость любым другим понятным вам способом  H_Icap это ИНУТ (ист. напряжения, управляемый током) Строка H_Icap Icap 0 Vsensor 1e9 означает что напряжение в узле Icap численно равно току через источник Vsensor, умноженному на 1e9. Т.к. ток через источник Vsensor получается подачей внешнего напряжения на емкость 1нФ (1e-9), то напряжение в узле Icap соответствует току через емкость 1e9*1нФ=1Ф. Зачем этот ток умножается на полином и выдается во внешнюю цепь: G_out pin1 pin2 value={v(Icap)*v(Cfactor)}
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Dec 29 2008, 20:32
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Спасибо за подробный ликбез! Буду изучать.
|
|
|
|
|
Dec 30 2008, 06:32
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(sultantiran @ Dec 29 2008, 22:32)  Спасибо за подробный ликбез! Буду изучать. В обшем то в ДизайнЛабе про формат нетлиста PSpice все подробно расписано в документе "PSpice A/D Reference Manual" (это файл [Дизайн_Лаб]\Doc\Pspcref.pdf, смотреть раздел "Analog Devices"). А чтобы было быстрее, задавайте поросы - буду рассказывать
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Dec 30 2008, 09:00
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(Lonesome Wolf @ Dec 30 2008, 10:34)  Вообще-то, использование слова PSpice подразумевает работу в среде от Cadence... Вообще-то слово PSpice появилось еще во времена PC/XT / PC/AT и по сути означало "Spice для персоналок". Намного позже этот симулятор (но уже улучшенный) появился в составе Микросим ДизайнЛаб, который затем был перетянут в OrCAD, который, в свою очередь, продался Кэденсу. ЗЫ. Насколько я понял топикстартера, Кэденса для "взрослых", а именно пакетов типа IC_*, MMSIM_* итд, у него нет.
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Dec 30 2008, 09:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 897
Регистрация: 21-02-05
Из: Украина
Пользователь №: 2 805

|
Цитата(Jurenja @ Dec 30 2008, 11:00)  Вообще-то слово PSpice появилось еще во времена PC/XT / PC/AT и по сути означало "Spice для персоналок". Намного позже этот симулятор (но уже улучшенный) появился в составе Микросим ДизайнЛаб, который затем был перетянут в OrCAD, который, в свою очередь, продался Кэденсу.
ЗЫ. Насколько я понял топикстартера, Кэденса для "взрослых", а именно пакетов типа IC_*, MMSIM_* итд, у него нет. Wiki - там все написано  . Ну, или почти все.
|
|
|
|
|
Dec 30 2008, 09:31
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(Lonesome Wolf @ Dec 30 2008, 11:08)  Wiki - там все написано  . Ну, или почти все. тоже нашел про это на Вики, собрался дописать ссылку, но вы опередили  ЗЫ. когда-то в далеком 1988-м начинал моделировать еще на ДОС-версии, никакого графического окна схематика, все набиралось в текстовом виде, имена узлов могли быть _только_ числами... Позже к нему для рисования схем был прикручен PCAD 4.5... ЗЫ. извинения за небольшой оффтоп...
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Jan 3 2009, 09:57
|
Участник

Группа: Свой
Сообщений: 34
Регистрация: 17-06-04
Из: Ярославль
Пользователь №: 45

|
Да, от себя замечу - такой вариант реализации считается намного быстрей :-) Всех с новым годом!!! Спасибо за советы! И кстати запись типа V(C1)>=3 то же работает отлично. В общем у меня все получилось! Еще раз спасибо!
|
|
|
|
|
Jan 5 2009, 15:12
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
А задачка-то оказалась интересной! Посмотрел в OrCAD 9.3 и 15.7 и в PSpice AD и в в PSpice AD Basic. Стандартная модель CAP в которой (по всем описаниям) есть линейный и квадратичный множители напряжения - не работает! При попытке ею воспользоваться - дает ошибку VC2 (квадратичный коэффициент) не определен. Попытка заставить вычислить емкость через задание выражения в фигурных скобках не проходит! Т.е. когда задаешь любое константное выражение типа 5*2.4 - все нормально, но как только в выражении появляется напряжение - дает ошибку. Причем расшифровывает выражение совершенно правильно и подставляет правильное напряжение. Похоже у них что-то специально сделано. При изменении емкости возникают проблемы с энергией и они что-то заблокировали. Похоже единственный способ реализовать переменную параметрическую емкость - это использование GVALUE из библиотеки abm со специальной функцией DDT(V(1,2)*V(A1,A2)). Это немного описано на http://www.orcad.com/community.pspice.faq.aspx . Т.е. вместо емкости вставляется элемент GVALUE, как показано на рисунке с EQUATION что-то вроде 1e-9*( 1+1e-12*ABS(V(%IN+, %IN-))+1e-12*V(%IN+, %IN-)*V(%IN+, %IN-))*DDT(V(%IN+, %IN-)). Здесь 1e-9 - величина емкости (1нФ), выражение в скобках ( 1+1e-12*ABS(V(%IN+, %IN-))+1e-12*V(%IN+, %IN-)*V(%IN+, %IN-)) - зависимость емкости от приложенного напряжения (линейный и квадратичный коэффициенты 1е-12 - взял с потолка), DDT(V(%IN+, %IN-)) - некая функция, имитирующая емкость. Вроде работает нормально. Кстати на http://www.orcad.com/community.pspice.faq.aspx можно найти много интересного.
Прикрепленные изображения
|
|
|
|
|
Jan 5 2009, 21:23
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(rudy_b @ Jan 5 2009, 21:12)  Стандартная модель CAP в которой (по всем описаниям) есть линейный и квадратичный множители напряжения - не работает! Хм, сейчас проверил, у меня работает (в 15.7). Да и, помнится, в V9.2 нужна была зависимость от температуры - так и там всё работало. Только темплейт надо правильно нарисовать, готового компонента в библиотеке сходу не нашлось, а стандартный только TOLERANCE позволяет моделировать. PSpiceTemplate = C^@REFDES %1 %2 CMOD^@REFDES @VALUE \n.MODEL CMOD^@REFDES CAP VC1=@VC1 VC2=@VC2 TC1=@TC1 TC2=@TC2 и, разумеется, определить properties с именами VC1, VC2, TC1, TC2. Тут фокус в том, что коэффициенты нужно в описании модели конденсатора указывать.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Jan 6 2009, 07:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(rudy_b @ Jan 6 2009, 07:50)  Как-то странно, SSerge, а вы в модели пробовали?. Т.е. подставить в тексте не значение ...1e-9, а именно ссылку на модель, основанную на CAP (VC2=...). Может я где-то что-то недопонимаю. Похоже, это одно из отличий Оркадовского PSPICE от родоначальника, Berkeley SPICE. В pspcref.pdf пишут: 4. Voltage coefficients for capacitors, and current coefficients for inductors must be put into a .MODEL (model definition) statement instead of on the device statement.
При том темплейте, что в моём предыдущем сообщении так и получается, порождается две строки типа: C_C1 N11586 N11512 CMOD_C1 1 .MODEL CMOD_C1 CAP VC1=0.1 VC2=0 TC1=0 TC2=0.1 Просто отдельно сделанная .MODEL с коэффициентами и ссылки на неё для нескольких конденсаторов тоже работает. Что интересно, на строку в .net типа C_C1 N11586 N11512 1uF TC=0.1не ругается, но и никакой зависимости от температуры или напряжения не проявляется. Атавизм (с). Пару раз при нереально больших VC1 и VC2 крепко задумывался, начинал сильно мельчить шаг по времени, но до convergence problems дело не дошло.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Jan 6 2009, 07:23
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(SSerge @ Jan 6 2009, 09:01)  При том темплейте, что в моём предыдущем сообщении так и получается, порождается две строки типа: C_C1 N11586 N11512 CMOD_C1 1 .MODEL CMOD_C1 CAP VC1=0.1 VC2=0 TC1=0 TC2=0.1 ... Что интересно, на строку в .net типа C_C1 N11586 N11512 1uF TC=0.1 не ругается, но и никакой зависимости от температуры или напряжения не проявляется. Атавизм (с). ... не проверял, поверил rudy_b на слово... Все-таки она работает  и документация на Микросим ДизайнЛаб правильная
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
|
Jan 6 2009, 12:51
|

Местный
  
Группа: Свой
Сообщений: 457
Регистрация: 7-06-07
Из: Минск
Пользователь №: 28 262

|
Цитата(rudy_b @ Jan 6 2009, 14:07)  ... Что я делаю неправильно? не знаю... Микросим Дизайнлаб не ругается (в ваш нетлист добавил расчет рабочей точки .OP и строчку .Options nopage library): **** 01/06/109 14:37:23 ****** NT PSpice 8.0 (July 1997) ****** ID# 305419896
**** test ****
**** CIRCUIT DESCRIPTION
******************************************************************************
.Options nopage library
V_V1 N00337 0 +PWL 0 0 1e-3 100
X_U30 N02114 N00337 CUVAR R_R1 0 N02114 1
.SUBCKT CUVAR 1 2 CN1 1 2 CMYMOD 0.1 .MODEL CMYMOD CAP (C=1 VC1=1m VC2=1u) .ENDS CUVAR
.OP
.END
**** Capacitor MODEL PARAMETERS
X_U30.CMYMOD C 1 VC1 1.000000E-03 VC2 1.000000E-06
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C
NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE
(N00337) 0.0000 (N02114) 0.0000
VOLTAGE SOURCE CURRENTS NAME CURRENT
V_V1 0.000E+00
TOTAL POWER DISSIPATION 0.00E+00 WATTS
**** OPERATING POINT INFORMATION TEMPERATURE = 27.000 DEG C
JOB CONCLUDED
TOTAL JOB TIME 0.00 ЗЫ для наглядности сделал VC1 и VC2 ненулевыми. При нулевых значениях тоже моделирует, только в разделе **** Capacitor MODEL PARAMETERSнулевые значения VC1 и VC2 не показывает. ЗЫ2. Для улучшения читабельности удалил некоторые пустые строки.
--------------------
Человек учится говорить два года, а молчать - всю жизнь
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|