|
|
  |
PSpice модель конденсатора, емкость которого зависит от напряженяи на нем |
|
|
|
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
|
|
|