Jump to content

    

PSpice модель конденсатора, емкость которого зависит от напряженяи на нем

Спасибо за подробный ликбез! Буду изучать.
В обшем то в ДизайнЛабе про формат нетлиста PSpice все подробно расписано в документе "PSpice A/D Reference Manual" (это файл [Дизайн_Лаб]\Doc\Pspcref.pdf, смотреть раздел "Analog Devices"). А чтобы было быстрее, задавайте поросы - буду рассказывать

Share this post


Link to post
Share on other sites

Вообще-то, использование слова PSpice подразумевает работу в среде от Cadence. Как я уже отмечал, в этом случае, имеется возможность табличного задания вольт-фарадной характеристики - 25 значений по умолчанию. Так как напряжения могут быть только положительными, то задача может быть решена путем задания прямой ветви характеристики диода в виде, близком к идеальному проводнику и включению двух таких устройств последовательно.

Share this post


Link to post
Share on other sites
Вообще-то, использование слова PSpice подразумевает работу в среде от Cadence...
Вообще-то слово PSpice появилось еще во времена PC/XT / PC/AT и по сути означало "Spice для персоналок". Намного позже этот симулятор (но уже улучшенный) появился в составе Микросим ДизайнЛаб, который затем был перетянут в OrCAD, который, в свою очередь, продался Кэденсу.

 

ЗЫ. Насколько я понял топикстартера, Кэденса для "взрослых", а именно пакетов типа IC_*, MMSIM_* итд, у него нет.

Share this post


Link to post
Share on other sites
Вообще-то слово PSpice появилось еще во времена PC/XT / PC/AT и по сути означало "Spice для персоналок". Намного позже этот симулятор (но уже улучшенный) появился в составе Микросим ДизайнЛаб, который затем был перетянут в OrCAD, который, в свою очередь, продался Кэденсу.

 

ЗЫ. Насколько я понял топикстартера, Кэденса для "взрослых", а именно пакетов типа IC_*, MMSIM_* итд, у него нет.

 

Wiki - там все написано :). Ну, или почти все.

Share this post


Link to post
Share on other sites
Wiki - там все написано :). Ну, или почти все.
тоже нашел про это на Вики, собрался дописать ссылку, но вы опередили :beer:

 

ЗЫ. когда-то в далеком 1988-м начинал моделировать еще на ДОС-версии, никакого графического окна схематика, все набиралось в текстовом виде, имена узлов могли быть _только_ числами...

Позже к нему для рисования схем был прикручен PCAD 4.5...

 

ЗЫ. извинения за небольшой оффтоп...

Share this post


Link to post
Share on other sites

Вот один из возможных принципов построения нелинейной емкости в Micro-Cap

d3c7122f1d14.gif

(автору уже отвечал на другом форуме, решил и тут продублировать)

Расчетная формула упрощена и служит лишь для демонстрации принципа. RC-цепь после источника не обязательная, служит для улучшения сходимости.

Share this post


Link to post
Share on other sites

Да, от себя замечу - такой вариант реализации считается намного быстрей :-) Всех с новым годом!!! Спасибо за советы! И кстати запись типа V(C1)>=3 то же работает отлично. В общем у меня все получилось! Еще раз спасибо!

Share this post


Link to post
Share on other sites

А задачка-то оказалась интересной! Посмотрел в 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 можно найти много интересного.

post-40458-1231168257.gif

Share this post


Link to post
Share on other sites
... Посмотрел в OrCAD 9.3 и 15.7 и в PSpice AD и в в PSpice AD Basic. Стандартная модель CAP в которой (по всем описаниям) есть линейный и квадратичный множители напряжения - не работает! При попытке ею воспользоваться - дает ошибку VC2 (квадратичный коэффициент) не определен.
Не знал, что параметр VC2 в модели емкости не работает, хоть и советовал... :(

А поведенческая модель работать будет :)

Share this post


Link to post
Share on other sites
Стандартная модель 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.

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

Share this post


Link to post
Share on other sites

Возможно, если прописать их ручками и именно в template. Я баловался с библиотекой и пробовал и прямо в модели и через AKO - не проходит - говорит, что параметр VC2 не определен. А с С и VC1 - все в порядке.

 

Как-то странно, SSerge, а вы в модели пробовали?. Т.е. подставить в тексте не значение ...1e-9, а именно ссылку на модель, основанную на CAP (VC2=...). Может я где-то что-то недопонимаю.

Edited by rudy_b

Share this post


Link to post
Share on other sites
Как-то странно, 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 дело не дошло.

Share this post


Link to post
Share on other sites
При том темплейте, что в моём предыдущем сообщении так и получается, порождается две строки типа:

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 на слово... :unsure:

Все-таки она работает :) и документация на Микросим ДизайнЛаб правильная :)

Share this post


Link to post
Share on other sites

А у меня такой текст в библиотеке .lib

* CUVAR model

.SUBCKT CUVAR 1 2

CN1 1 2 CMYMOD 0.1

.MODEL CMYMOD CAP (C=1 VC1=0 VC2=0)

.ENDS CUVAR

 

странслированный в .olb при выполнении порождает

 

**** INCLUDING test6-C_TEST.net ****

* source TEST6

V_V1 N00337 0

+PWL 0 0 1e-3 100

X_U30 N02114 N00337 CUVAR

R_R1 0 N02114 1

 

**** RESUMING test6-c_test-ct.sim.cir ****

.END

ERROR -- Undefined parameter: VC2

 

Что я делаю неправильно?

Edited by rudy_b

Share this post


Link to post
Share on other sites
...

Что я делаю неправильно?

не знаю... :05:

 

Микросим Дизайнлаб не ругается (в ваш нетлист добавил расчет рабочей точки .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. Для улучшения читабельности удалил некоторые пустые строки.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this